To know everything about everything .....Pour tout savoir

Fourni par Blogger.

jeudi 19 novembre 2015

mardi 17 novembre 2015

PROgrammationLOGique

PROgrammationLOGique

.PROgrammationLOGiqueLesoriginesduProlog(vers1970):A.Colmeraueretal.,Univ.d’Aix-Marseille.Unsystèmedecommunicationhomme-machineenfrançaisR.A.Kowalski,ImperialCollege,London.PredicatelogicasaprogramminglanguagesL’aged’or(1982-1992):projetderecherche“Ordinateursde5èmegénération”auJapon.LaProgrammationparContraintes(dépuis1987):extensiondeProlog.Applicationsindustriellesetintérêtacadémique.



Ungrandnombred’implementationsdisponibles.Voirparexemple:http://fr.wikipedia.org/wiki/PrologLaversionquenousallonsutiliser:ECLiPSehttp://eclipseclp.org/Principaleavantaged’ECLiPSeparrapportàd’autresimplémentationslibres(GNUprolog,SWIProlog,YAP,...),pourcecours:traitementsatisfaisantdelaProgrammationparContraintes.




Theuserstatestheproblem,thecomputersolvesitExemple:trierlalisteLrevientàproduireunelisteGayantlesmêmesélémentsqueLetquisoittriée.tri(L,G):-meme_elts(L,G),triee(G).LalisteGesttriéesichaqueélémentdeGestpluspetitquel’élémentquilesuit(versionitérative).LalisteGesttriéesisonpremierélémentestpluspetitquesondeuxième(àconditionqu’ilsexistent),etsilasous-listecommençantaudeuxièmeélémentestelle-mêmetriée(versionrécursive).triee([]).triee([_]).triee([X,Y|L]):-X=<Y,triee([Y|L]).LetGontlesmêmesélémentssi...


Unprogrammeprolog:assertionsetrègles/*bio(nom,sexe,ne_en,dcd_en,pere,mere)*/bio(louis13,h,1601,1643,henri4,marie_medicis).bio(elisabeth_france,f,1603,1644,henri4,marie_medicis).bio(louis14,h,1638,1715,louis13,anne_autriche)./*pere(pere,enfant)*/pere(X,Y):-bio(Y,_,_,_,X,_)./*age(personne,age)*/age(X,Y):-bio(X,_,Z,T,_,_),YisT-Z.

Oninterrogeleprogramme:butsQuelestladatedenaissancedeLouisXIV?bio(louis14,_,X,_,_,_).QuiestlepèredeLouisXIII?pere(X,louis13)....maisaussi...bio(louis13,_,_,_,X,_).Combiend’annéeLouisXIVasurvecuàsonpère?bio(louis14,_,_,Y,Z,_),bio(Z,_,_,T,_,_),RisY-T.Parmilespersonnesdontondisposedela“biographie”,quisontleshommes?bio(X,h,_,_,_,_).


Interactionautoplevel:eclipse/*bio.pl*/bio(louis13,h,1601,1643,henri4,marie_medicis).bio(elisabeth_france,f,1603,1644,henri4,marie_medicis).bio(louis14,h,1638,1715,louis13,anne_autriche).pere(X,Y):-bio(Y,_,_,_,X,_).age(X,Y):-bio(X,_,T,Z,_,_),YisZ-T.#eclipse[eclipse1]:compile(bio).bio.plcompiled1744bytesin0.00secondsYes(0.07scpu)[eclipse2]:bio(louis14,_,X,_,_,_).X=1638Yes(0.00scpu)[eclipse3]:pere(X,louis13).X=henri4Yes(0.00scpu)


Interactionautoplevel:tkeclipse#tkeclipse& 
                                                                                      


/*arc(source,destination)*/arc(a,b).arc(a,e).arc(b,e).arc(c,e).arc(e,d).arc(d,a)./*connexe(source,destination)*/connexe(X,Y):-arc(X,Y).connexe(X,Y):-arc(X,Z),connexe(Z,Y).
تطوير : مدونة حكمات