Y,!. % prédicat faux. O*��?�����f�����`ϳ�g���C/����O�ϩ�+F�F�G�Gό���z����ˌ��ㅿ)����ѫ�~w��gb���k��?Jި�9���m�d���wi獵�ޫ�?�����c�Ǒ��O�O���?w| ��x&mf������ FERTITEST vous permet d'obtenir en 4 étapes les réglages de largeur et de débit pour votre Epandeurs d’engrais PROLOG équipé d’un dispositif d’épandage 700 GB-X (pour engrais granulé), PROLOG est le n°1 des épandeurs et manutention en coopératives et négoces. Untermeest soit une constante, soit une variable, soit un terme fonctionnel Un terme fonctionnelest de la forme f(t1,…,tn)avec: Exemples : succ(zero), f(X,12), adresse(2,"rue des mimosas", valbonne), ... les constantes sont des fonctions d'arité nulle), - Foncteur : .
On a: p ? A,ou si A = ?, alors x est quantifié existentiellement dans B, même_pere(X,Y):-pere(P,X),pere(P,Y). ... /* parents(Père,Mère,Enfant) */ parents(P,M,E) :- pere(P,E), mere(M,E). append([],L,L). plus(suc(X),Y,suc(Z)) :- plus(X,Y,Z). minimum(X,Y,X) :- Y ? [7A�\�SwBOK/X/_�Q�>Q�����G�[��� �`�A�������a�a��c#����*�Z�;�8c�q��>�[&���I�I��MS���T`�ϴ�k�h&4�5�Ǣ��YY�F֠9�=�X���_,�,S-�,Y)YXm�����Ěk]c}džj�c�Φ�浭�-�v��};�]���N����"�&�1=�x����tv(��}�������'{'��I�ߝY�)�
Σ��-r�q�r�.d.�_xp��Uە�Z���M�v�m���=����+K�G�ǔ����^���W�W����b�j�>:>�>�>�v��}/�a��v���������O8� � endobj
homme(jacques). B, alors x est quantifié universellement dans A et B, Si x ? Soit le prédicat p défini par le programme : p :- a1, a2, a3. Prolog - 21 rue Jean Monnet - 28630 Fontenay sur Eure - Tél. A n'est pas une conséquence logique de P ? ¬a1 ? endobj ?- homme(X),\+(riche(X)). fusion([X|Xs],[Y|Ys],[X|Zs]) :- X < Y,!,fusion(Xs,[Y|Ys],Zs). q(a). Principales caractéristiques de ce type de programmation III. Coupure Prolog dans la vie reelle. Transmission de paramètres, Clauses d'un paquet ? Sémantique des programmes PROLOG V. Le problème de la négation en PROLOG : l’hypothèse du monde clos et la négation par échec. endstream A et x ?
endobj
<< /Length 5 0 R /Filter /FlateDecode >> << /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 720 540] B et x ? coupure([V1,C,V2 R],[V1,’-’,C R_coupe]) :- fusion([X|Xs],[Y|Ys],[Y|Zs]) :- X > Y,!,fusion([X|Xs],Ys,Zs). Découvrez nos matériels en condition d'utilisation avec notre nouvelle page ''Vidéos''!
MODIFICATION DE LA SEMANTIQUE DU PROGRAMME.
inconditionnelle(fait) exemple : homme(pierre). Si { Q1,...,Qn } ? % Où échec est un non(X). Les prédicats findall/3, bagof/3 et setof/3 permettent de faire la liste des solutions d'un prédicat. Il ne faut pas oublier de garder la deuxième voyelle en tête du mot restant à traiter car elle peut servir de délimiteur pour une coupure ultérieure. La coupure est un prédicat prédéfini très important qui a pour effet de stopper la recherche de Prolog dès qu'il aura trouvé une solution. ?, la clause est une. r(b,b1). Ensemble des réponses, ?Stratégie de recherche n'est pas complète: l'arbre de recherche peut être infini, • l'ordre des clauses dans un paquet est significatif, • l'ordre des atomes dans une clause est significatif, Unification ? endobj
Plusieurs ’égalités’ Coupure Récurrence Ordre supérieure Jeux Partiel2015,Exercice4,suite 3Écrireunprédicatvariables(+P,-Liste_Var) quirenvoiela A1�v�jp ԁz�N�6p\W�
p�G@ X, !. ¬a3 ) & (p ? Exemple : homme(pierre). ߏƿ'� Zk�!� $l$T����4Q��Ot"�y�\b)���A�I&N�I�$R$)���TIj"]&=&�!��:dGrY@^O�$� _%�?P�(&OJEB�N9J�@y@yC�R
�n�X����ZO�D}J}/G�3���ɭ���k��{%O�חw�_.�'_!J����Q�@�S���V�F��=�IE���b�b�b�b��5�Q%�����O�@��%�!BӥyҸ�M�:�e�0G7��ӓ����� e%e[�(����R�0`�3R��������4�����6�i^��)��*n*|�"�f����LUo�՝�m�O�0j&jaj�j��.��ϧ�w�ϝ_4����갺�z��j���=���U�4�5�n�ɚ��4ǴhZ�Z�Z�^0����Tf%��9�����-�>�ݫ=�c��Xg�N��]�. endobj fusion([X|Xs],[Y|Ys],[X,Y|Zs]) :- X = Y,!,fusion(Xs,Ys,Zs). • Paquet = ensemble de clauses qui ont : - le même symbole de prédicat en tête de clause - la même arité.
Y is X*Y1. 2612 Introduction à la programmation logique : langage PROLOG II.
La coupure s’effectue et le traitement se poursuit récursivement. r(a,a1).
choix des clauses à partir de la première du paquet, ? '(b, '. VI. stream procédureadd(arg1, arg2, arg3) : ifarg1 = zerothenunify(arg2,arg3) elseifunify(arg1,suc(X)) and unify(arg3,suc(Z)) thenadd(X, arg2, Z), • Coût élevé du parcours de l'ensemble de l'arbre de, • Expression de la connaissance négative, • La coupure est sans signification logique, • L'appel de la coupure réussit toujours, • L'appel de la coupure a pour effet de bord de modifier l'arbre de recherche, • L'appel de la coupure supprime toutes les branches en attente dans l'arbre depuis l'appel de la clause qui la contient. 12 0 obj ?
[ /ICCBased 12 0 R ]
4�^��M���ng0i�4Y��. f(b,b),f(b,a), f(X,Y) :- q(X), p(Y).} ?-parent(P, françois) ?-parent(P,théodore), P = claude false, • Signification logique d'un programme P : Dénotation de P, DEN(P) = Ensemble des atomes qui sont des conséquences logiques de P. P= { p(a). 5 0 obj minimum(X,Y,Y). Le Contrôle • Définition de la Coupure—Exemples • Applications de la Coupure 2. Geneve .
'(2, X)) notée [1, 2 | X], • atome logique:propriété, relation entre termes, Syntaxe : symbole_de_prédicat(terme1,…,termen) n : arité du prédicat, est_pere_de(pierre,paul), temps(ensoleillé) est_mere_de(X,paul), atome_sans_termes, est_pere_de(pierre,paul), temps(ensoleillé), • clause :relation (certaine ou conditionelle), T : littéral positif, appelé Tête de Clause.
Syntaxe et structures de données – opérateur de coupure IV. endobj p :- b1, b2. Définition de la procédure. Calcul de toutes les instances d'un but appartenant à la dénotation du programme, Parcours en profondeur d'abordet de gauche à droitede l' arbre de recherche, ?
IV - Contrôle et la Négation 1) Le Contrôle • Définition de la Coupure— Exemples • Applications de la Coupure 2) La Négation : définition de la négation par échec— Exemples x��wTS��Ͻ7��" %�z �;HQ�I�P��&vDF)VdT�G�"cE��b� �P��QDE�k �5�ޚ��Y�����g�} P���tX�4�X���\���X��ffG�D���=���HƳ��.�d��,�P&s���"7C$ • Approche: Utilisation des arbres de preuve (arbres finis orientés) •Arbre de preuve: - à chaque nœud non terminal est associé une instance i d'une clause tel que : - fils du nœud = atomes du corps de i (si le corps de i est vide, alors le nœud a pour unique fils vrai) •Propriétés des arbres de preuve : - tout sous arbre d'un arbre de preuve est un arbre de preuve. I. �FV>2 u�����/�_$\�B�Cv�< 5]�s.,4�&�y�Ux~xw-bEDCĻH����G��KwF�G�E�GME{E�EK�X,Y��F�Z� �={$vr����K���� r(a,a2). non (A est une conséquence logique de P) Définition en Prolog : non(X) :- X,!, échec. - syntaxe : . au lieu de fact(0,1). Un prédicat est défini par une conjonction de clauses. Inclusion dans le C et le C++ Les sockets Prolog client web Prolog serveur web Bordeaux .
f(a,a),f(a,b), q(X) :- p(X). endobj III Sémantique d'un programme Prolog : 1 - Sémantique logique, dénotation 2 - Signification opérationnelle: SLD, exploration en profondeur 3 - Vision procédurale de Prolog IV Contrôle et la Négation: 1. B, ou si B = ?, alors x est quantifié universellement dans A, Si x ? spécification exécutable, • Programmer en logique = Décrire l'univers du problème, • Programme Prolog = Ensemble de propriétés et relationsentre les objets de l'univers, Un programme Prolog ne décrit pas une solution : c'est une suite d'affirmations, • Problème = Ensemble de questions concernant certains objets, • Exécution = Déduction de nouvelles relations à partir des affirmations du programme, • Variable:objet inconnu de l'univers du problème.
On a: p ? A,ou si A = ?, alors x est quantifié existentiellement dans B, même_pere(X,Y):-pere(P,X),pere(P,Y). ... /* parents(Père,Mère,Enfant) */ parents(P,M,E) :- pere(P,E), mere(M,E). append([],L,L). plus(suc(X),Y,suc(Z)) :- plus(X,Y,Z). minimum(X,Y,X) :- Y ? [7A�\�SwBOK/X/_�Q�>Q�����G�[��� �`�A�������a�a��c#����*�Z�;�8c�q��>�[&���I�I��MS���T`�ϴ�k�h&4�5�Ǣ��YY�F֠9�=�X���_,�,S-�,Y)YXm�����Ěk]c}džj�c�Φ�浭�-�v��};�]���N����"�&�1=�x����tv(��}�������'{'��I�ߝY�)�
Σ��-r�q�r�.d.�_xp��Uە�Z���M�v�m���=����+K�G�ǔ����^���W�W����b�j�>:>�>�>�v��}/�a��v���������O8� � endobj
homme(jacques). B, alors x est quantifié universellement dans A et B, Si x ? Soit le prédicat p défini par le programme : p :- a1, a2, a3. Prolog - 21 rue Jean Monnet - 28630 Fontenay sur Eure - Tél. A n'est pas une conséquence logique de P ? ¬a1 ? endobj ?- homme(X),\+(riche(X)). fusion([X|Xs],[Y|Ys],[X|Zs]) :- X < Y,!,fusion(Xs,[Y|Ys],Zs). q(a). Principales caractéristiques de ce type de programmation III. Coupure Prolog dans la vie reelle. Transmission de paramètres, Clauses d'un paquet ? Sémantique des programmes PROLOG V. Le problème de la négation en PROLOG : l’hypothèse du monde clos et la négation par échec. endstream A et x ?
endobj
<< /Length 5 0 R /Filter /FlateDecode >> << /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 720 540] B et x ? coupure([V1,C,V2 R],[V1,’-’,C R_coupe]) :- fusion([X|Xs],[Y|Ys],[Y|Zs]) :- X > Y,!,fusion([X|Xs],Ys,Zs). Découvrez nos matériels en condition d'utilisation avec notre nouvelle page ''Vidéos''!
MODIFICATION DE LA SEMANTIQUE DU PROGRAMME.
inconditionnelle(fait) exemple : homme(pierre). Si { Q1,...,Qn } ? % Où échec est un non(X). Les prédicats findall/3, bagof/3 et setof/3 permettent de faire la liste des solutions d'un prédicat. Il ne faut pas oublier de garder la deuxième voyelle en tête du mot restant à traiter car elle peut servir de délimiteur pour une coupure ultérieure. La coupure est un prédicat prédéfini très important qui a pour effet de stopper la recherche de Prolog dès qu'il aura trouvé une solution. ?, la clause est une. r(b,b1). Ensemble des réponses, ?Stratégie de recherche n'est pas complète: l'arbre de recherche peut être infini, • l'ordre des clauses dans un paquet est significatif, • l'ordre des atomes dans une clause est significatif, Unification ? endobj
Plusieurs ’égalités’ Coupure Récurrence Ordre supérieure Jeux Partiel2015,Exercice4,suite 3Écrireunprédicatvariables(+P,-Liste_Var) quirenvoiela A1�v�jp ԁz�N�6p\W�
p�G@ X, !. ¬a3 ) & (p ? Exemple : homme(pierre). ߏƿ'� Zk�!� $l$T����4Q��Ot"�y�\b)���A�I&N�I�$R$)���TIj"]&=&�!��:dGrY@^O�$� _%�?P�(&OJEB�N9J�@y@yC�R
�n�X����ZO�D}J}/G�3���ɭ���k��{%O�חw�_.�'_!J����Q�@�S���V�F��=�IE���b�b�b�b��5�Q%�����O�@��%�!BӥyҸ�M�:�e�0G7��ӓ����� e%e[�(����R�0`�3R��������4�����6�i^��)��*n*|�"�f����LUo�՝�m�O�0j&jaj�j��.��ϧ�w�ϝ_4����갺�z��j���=���U�4�5�n�ɚ��4ǴhZ�Z�Z�^0����Tf%��9�����-�>�ݫ=�c��Xg�N��]�. endobj fusion([X|Xs],[Y|Ys],[X,Y|Zs]) :- X = Y,!,fusion(Xs,Ys,Zs). • Paquet = ensemble de clauses qui ont : - le même symbole de prédicat en tête de clause - la même arité.
Y is X*Y1. 2612 Introduction à la programmation logique : langage PROLOG II.
La coupure s’effectue et le traitement se poursuit récursivement. r(a,a1).
choix des clauses à partir de la première du paquet, ? '(b, '. VI. stream procédureadd(arg1, arg2, arg3) : ifarg1 = zerothenunify(arg2,arg3) elseifunify(arg1,suc(X)) and unify(arg3,suc(Z)) thenadd(X, arg2, Z), • Coût élevé du parcours de l'ensemble de l'arbre de, • Expression de la connaissance négative, • La coupure est sans signification logique, • L'appel de la coupure réussit toujours, • L'appel de la coupure a pour effet de bord de modifier l'arbre de recherche, • L'appel de la coupure supprime toutes les branches en attente dans l'arbre depuis l'appel de la clause qui la contient. 12 0 obj ?
[ /ICCBased 12 0 R ]
4�^��M���ng0i�4Y��. f(b,b),f(b,a), f(X,Y) :- q(X), p(Y).} ?-parent(P, françois) ?-parent(P,théodore), P = claude false, • Signification logique d'un programme P : Dénotation de P, DEN(P) = Ensemble des atomes qui sont des conséquences logiques de P. P= { p(a). 5 0 obj minimum(X,Y,Y). Le Contrôle • Définition de la Coupure—Exemples • Applications de la Coupure 2. Geneve .
'(2, X)) notée [1, 2 | X], • atome logique:propriété, relation entre termes, Syntaxe : symbole_de_prédicat(terme1,…,termen) n : arité du prédicat, est_pere_de(pierre,paul), temps(ensoleillé) est_mere_de(X,paul), atome_sans_termes, est_pere_de(pierre,paul), temps(ensoleillé), • clause :relation (certaine ou conditionelle), T : littéral positif, appelé Tête de Clause.
Syntaxe et structures de données – opérateur de coupure IV. endobj p :- b1, b2. Définition de la procédure. Calcul de toutes les instances d'un but appartenant à la dénotation du programme, Parcours en profondeur d'abordet de gauche à droitede l' arbre de recherche, ?
IV - Contrôle et la Négation 1) Le Contrôle • Définition de la Coupure— Exemples • Applications de la Coupure 2) La Négation : définition de la négation par échec— Exemples x��wTS��Ͻ7��" %�z �;HQ�I�P��&vDF)VdT�G�"cE��b� �P��QDE�k �5�ޚ��Y�����g�} P���tX�4�X���\���X��ffG�D���=���HƳ��.�d��,�P&s���"7C$ • Approche: Utilisation des arbres de preuve (arbres finis orientés) •Arbre de preuve: - à chaque nœud non terminal est associé une instance i d'une clause tel que : - fils du nœud = atomes du corps de i (si le corps de i est vide, alors le nœud a pour unique fils vrai) •Propriétés des arbres de preuve : - tout sous arbre d'un arbre de preuve est un arbre de preuve. I. �FV>2 u�����/�_$\�B�Cv�< 5]�s.,4�&�y�Ux~xw-bEDCĻH����G��KwF�G�E�GME{E�EK�X,Y��F�Z� �={$vr����K���� r(a,a2). non (A est une conséquence logique de P) Définition en Prolog : non(X) :- X,!, échec. - syntaxe : . au lieu de fact(0,1). Un prédicat est défini par une conjonction de clauses. Inclusion dans le C et le C++ Les sockets Prolog client web Prolog serveur web Bordeaux .
f(a,a),f(a,b), q(X) :- p(X). endobj III Sémantique d'un programme Prolog : 1 - Sémantique logique, dénotation 2 - Signification opérationnelle: SLD, exploration en profondeur 3 - Vision procédurale de Prolog IV Contrôle et la Négation: 1. B, ou si B = ?, alors x est quantifié universellement dans A, Si x ? spécification exécutable, • Programmer en logique = Décrire l'univers du problème, • Programme Prolog = Ensemble de propriétés et relationsentre les objets de l'univers, Un programme Prolog ne décrit pas une solution : c'est une suite d'affirmations, • Problème = Ensemble de questions concernant certains objets, • Exécution = Déduction de nouvelles relations à partir des affirmations du programme, • Variable:objet inconnu de l'univers du problème.
On a: p ? A,ou si A = ?, alors x est quantifié existentiellement dans B, même_pere(X,Y):-pere(P,X),pere(P,Y). ... /* parents(Père,Mère,Enfant) */ parents(P,M,E) :- pere(P,E), mere(M,E). append([],L,L). plus(suc(X),Y,suc(Z)) :- plus(X,Y,Z). minimum(X,Y,X) :- Y ? [7A�\�SwBOK/X/_�Q�>Q�����G�[��� �`�A�������a�a��c#����*�Z�;�8c�q��>�[&���I�I��MS���T`�ϴ�k�h&4�5�Ǣ��YY�F֠9�=�X���_,�,S-�,Y)YXm�����Ěk]c}džj�c�Φ�浭�-�v��};�]���N����"�&�1=�x����tv(��}�������'{'��I�ߝY�)�
Σ��-r�q�r�.d.�_xp��Uە�Z���M�v�m���=����+K�G�ǔ����^���W�W����b�j�>:>�>�>�v��}/�a��v���������O8� � endobj
homme(jacques). B, alors x est quantifié universellement dans A et B, Si x ? Soit le prédicat p défini par le programme : p :- a1, a2, a3. Prolog - 21 rue Jean Monnet - 28630 Fontenay sur Eure - Tél. A n'est pas une conséquence logique de P ? ¬a1 ? endobj ?- homme(X),\+(riche(X)). fusion([X|Xs],[Y|Ys],[X|Zs]) :- X < Y,!,fusion(Xs,[Y|Ys],Zs). q(a). Principales caractéristiques de ce type de programmation III. Coupure Prolog dans la vie reelle. Transmission de paramètres, Clauses d'un paquet ? Sémantique des programmes PROLOG V. Le problème de la négation en PROLOG : l’hypothèse du monde clos et la négation par échec. endstream A et x ?
endobj
<< /Length 5 0 R /Filter /FlateDecode >> << /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 720 540] B et x ? coupure([V1,C,V2 R],[V1,’-’,C R_coupe]) :- fusion([X|Xs],[Y|Ys],[Y|Zs]) :- X > Y,!,fusion([X|Xs],Ys,Zs). Découvrez nos matériels en condition d'utilisation avec notre nouvelle page ''Vidéos''!
MODIFICATION DE LA SEMANTIQUE DU PROGRAMME.
inconditionnelle(fait) exemple : homme(pierre). Si { Q1,...,Qn } ? % Où échec est un non(X). Les prédicats findall/3, bagof/3 et setof/3 permettent de faire la liste des solutions d'un prédicat. Il ne faut pas oublier de garder la deuxième voyelle en tête du mot restant à traiter car elle peut servir de délimiteur pour une coupure ultérieure. La coupure est un prédicat prédéfini très important qui a pour effet de stopper la recherche de Prolog dès qu'il aura trouvé une solution. ?, la clause est une. r(b,b1). Ensemble des réponses, ?Stratégie de recherche n'est pas complète: l'arbre de recherche peut être infini, • l'ordre des clauses dans un paquet est significatif, • l'ordre des atomes dans une clause est significatif, Unification ? endobj
Plusieurs ’égalités’ Coupure Récurrence Ordre supérieure Jeux Partiel2015,Exercice4,suite 3Écrireunprédicatvariables(+P,-Liste_Var) quirenvoiela A1�v�jp ԁz�N�6p\W�
p�G@ X, !. ¬a3 ) & (p ? Exemple : homme(pierre). ߏƿ'� Zk�!� $l$T����4Q��Ot"�y�\b)���A�I&N�I�$R$)���TIj"]&=&�!��:dGrY@^O�$� _%�?P�(&OJEB�N9J�@y@yC�R
�n�X����ZO�D}J}/G�3���ɭ���k��{%O�חw�_.�'_!J����Q�@�S���V�F��=�IE���b�b�b�b��5�Q%�����O�@��%�!BӥyҸ�M�:�e�0G7��ӓ����� e%e[�(����R�0`�3R��������4�����6�i^��)��*n*|�"�f����LUo�՝�m�O�0j&jaj�j��.��ϧ�w�ϝ_4����갺�z��j���=���U�4�5�n�ɚ��4ǴhZ�Z�Z�^0����Tf%��9�����-�>�ݫ=�c��Xg�N��]�. endobj fusion([X|Xs],[Y|Ys],[X,Y|Zs]) :- X = Y,!,fusion(Xs,Ys,Zs). • Paquet = ensemble de clauses qui ont : - le même symbole de prédicat en tête de clause - la même arité.
Y is X*Y1. 2612 Introduction à la programmation logique : langage PROLOG II.
La coupure s’effectue et le traitement se poursuit récursivement. r(a,a1).
choix des clauses à partir de la première du paquet, ? '(b, '. VI. stream procédureadd(arg1, arg2, arg3) : ifarg1 = zerothenunify(arg2,arg3) elseifunify(arg1,suc(X)) and unify(arg3,suc(Z)) thenadd(X, arg2, Z), • Coût élevé du parcours de l'ensemble de l'arbre de, • Expression de la connaissance négative, • La coupure est sans signification logique, • L'appel de la coupure réussit toujours, • L'appel de la coupure a pour effet de bord de modifier l'arbre de recherche, • L'appel de la coupure supprime toutes les branches en attente dans l'arbre depuis l'appel de la clause qui la contient. 12 0 obj ?
[ /ICCBased 12 0 R ]
4�^��M���ng0i�4Y��. f(b,b),f(b,a), f(X,Y) :- q(X), p(Y).} ?-parent(P, françois) ?-parent(P,théodore), P = claude false, • Signification logique d'un programme P : Dénotation de P, DEN(P) = Ensemble des atomes qui sont des conséquences logiques de P. P= { p(a). 5 0 obj minimum(X,Y,Y). Le Contrôle • Définition de la Coupure—Exemples • Applications de la Coupure 2. Geneve .
'(2, X)) notée [1, 2 | X], • atome logique:propriété, relation entre termes, Syntaxe : symbole_de_prédicat(terme1,…,termen) n : arité du prédicat, est_pere_de(pierre,paul), temps(ensoleillé) est_mere_de(X,paul), atome_sans_termes, est_pere_de(pierre,paul), temps(ensoleillé), • clause :relation (certaine ou conditionelle), T : littéral positif, appelé Tête de Clause.
Syntaxe et structures de données – opérateur de coupure IV. endobj p :- b1, b2. Définition de la procédure. Calcul de toutes les instances d'un but appartenant à la dénotation du programme, Parcours en profondeur d'abordet de gauche à droitede l' arbre de recherche, ?
IV - Contrôle et la Négation 1) Le Contrôle • Définition de la Coupure— Exemples • Applications de la Coupure 2) La Négation : définition de la négation par échec— Exemples x��wTS��Ͻ7��" %�z �;HQ�I�P��&vDF)VdT�G�"cE��b� �P��QDE�k �5�ޚ��Y�����g�} P���tX�4�X���\���X��ffG�D���=���HƳ��.�d��,�P&s���"7C$ • Approche: Utilisation des arbres de preuve (arbres finis orientés) •Arbre de preuve: - à chaque nœud non terminal est associé une instance i d'une clause tel que : - fils du nœud = atomes du corps de i (si le corps de i est vide, alors le nœud a pour unique fils vrai) •Propriétés des arbres de preuve : - tout sous arbre d'un arbre de preuve est un arbre de preuve. I. �FV>2 u�����/�_$\�B�Cv�< 5]�s.,4�&�y�Ux~xw-bEDCĻH����G��KwF�G�E�GME{E�EK�X,Y��F�Z� �={$vr����K���� r(a,a2). non (A est une conséquence logique de P) Définition en Prolog : non(X) :- X,!, échec. - syntaxe : . au lieu de fact(0,1). Un prédicat est défini par une conjonction de clauses. Inclusion dans le C et le C++ Les sockets Prolog client web Prolog serveur web Bordeaux .
f(a,a),f(a,b), q(X) :- p(X). endobj III Sémantique d'un programme Prolog : 1 - Sémantique logique, dénotation 2 - Signification opérationnelle: SLD, exploration en profondeur 3 - Vision procédurale de Prolog IV Contrôle et la Négation: 1. B, ou si B = ?, alors x est quantifié universellement dans A, Si x ? spécification exécutable, • Programmer en logique = Décrire l'univers du problème, • Programme Prolog = Ensemble de propriétés et relationsentre les objets de l'univers, Un programme Prolog ne décrit pas une solution : c'est une suite d'affirmations, • Problème = Ensemble de questions concernant certains objets, • Exécution = Déduction de nouvelles relations à partir des affirmations du programme, • Variable:objet inconnu de l'univers du problème.
(b1 & b2), D'ou (p ? >> ¬b2), Paquet = ensemble de Clauses qui ont le même prédicat (i.e., même symbole de prédicat et même arité de prédicat) comme tête de clause, | Atome_logique ':-' Atome_logique ',' ... ',', | Symbole_de_prédicat '(' Terme ',' ... ',' Terme ')', | Symbole_de_fonction '(' Terme ',' ... ',' Terme ')', Constante = Entier | Réel | '"' Caractère* '"' |, Variable= Majuscule (Car_alphanum | '_')* | '_'. minimum(X,Y,Y) :- X > Y,!. % prédicat faux. O*��?�����f�����`ϳ�g���C/����O�ϩ�+F�F�G�Gό���z����ˌ��ㅿ)����ѫ�~w��gb���k��?Jި�9���m�d���wi獵�ޫ�?�����c�Ǒ��O�O���?w| ��x&mf������ FERTITEST vous permet d'obtenir en 4 étapes les réglages de largeur et de débit pour votre Epandeurs d’engrais PROLOG équipé d’un dispositif d’épandage 700 GB-X (pour engrais granulé), PROLOG est le n°1 des épandeurs et manutention en coopératives et négoces. Untermeest soit une constante, soit une variable, soit un terme fonctionnel Un terme fonctionnelest de la forme f(t1,…,tn)avec: Exemples : succ(zero), f(X,12), adresse(2,"rue des mimosas", valbonne), ... les constantes sont des fonctions d'arité nulle), - Foncteur : .
On a: p ? A,ou si A = ?, alors x est quantifié existentiellement dans B, même_pere(X,Y):-pere(P,X),pere(P,Y). ... /* parents(Père,Mère,Enfant) */ parents(P,M,E) :- pere(P,E), mere(M,E). append([],L,L). plus(suc(X),Y,suc(Z)) :- plus(X,Y,Z). minimum(X,Y,X) :- Y ? [7A�\�SwBOK/X/_�Q�>Q�����G�[��� �`�A�������a�a��c#����*�Z�;�8c�q��>�[&���I�I��MS���T`�ϴ�k�h&4�5�Ǣ��YY�F֠9�=�X���_,�,S-�,Y)YXm�����Ěk]c}džj�c�Φ�浭�-�v��};�]���N����"�&�1=�x����tv(��}�������'{'��I�ߝY�)�
Σ��-r�q�r�.d.�_xp��Uە�Z���M�v�m���=����+K�G�ǔ����^���W�W����b�j�>:>�>�>�v��}/�a��v���������O8� � endobj
homme(jacques). B, alors x est quantifié universellement dans A et B, Si x ? Soit le prédicat p défini par le programme : p :- a1, a2, a3. Prolog - 21 rue Jean Monnet - 28630 Fontenay sur Eure - Tél. A n'est pas une conséquence logique de P ? ¬a1 ? endobj ?- homme(X),\+(riche(X)). fusion([X|Xs],[Y|Ys],[X|Zs]) :- X < Y,!,fusion(Xs,[Y|Ys],Zs). q(a). Principales caractéristiques de ce type de programmation III. Coupure Prolog dans la vie reelle. Transmission de paramètres, Clauses d'un paquet ? Sémantique des programmes PROLOG V. Le problème de la négation en PROLOG : l’hypothèse du monde clos et la négation par échec. endstream A et x ?
endobj
<< /Length 5 0 R /Filter /FlateDecode >> << /Type /Page /Parent 3 0 R /Resources 6 0 R /Contents 4 0 R /MediaBox [0 0 720 540] B et x ? coupure([V1,C,V2 R],[V1,’-’,C R_coupe]) :- fusion([X|Xs],[Y|Ys],[Y|Zs]) :- X > Y,!,fusion([X|Xs],Ys,Zs). Découvrez nos matériels en condition d'utilisation avec notre nouvelle page ''Vidéos''!
MODIFICATION DE LA SEMANTIQUE DU PROGRAMME.
inconditionnelle(fait) exemple : homme(pierre). Si { Q1,...,Qn } ? % Où échec est un non(X). Les prédicats findall/3, bagof/3 et setof/3 permettent de faire la liste des solutions d'un prédicat. Il ne faut pas oublier de garder la deuxième voyelle en tête du mot restant à traiter car elle peut servir de délimiteur pour une coupure ultérieure. La coupure est un prédicat prédéfini très important qui a pour effet de stopper la recherche de Prolog dès qu'il aura trouvé une solution. ?, la clause est une. r(b,b1). Ensemble des réponses, ?Stratégie de recherche n'est pas complète: l'arbre de recherche peut être infini, • l'ordre des clauses dans un paquet est significatif, • l'ordre des atomes dans une clause est significatif, Unification ? endobj
Plusieurs ’égalités’ Coupure Récurrence Ordre supérieure Jeux Partiel2015,Exercice4,suite 3Écrireunprédicatvariables(+P,-Liste_Var) quirenvoiela A1�v�jp ԁz�N�6p\W�
p�G@ X, !. ¬a3 ) & (p ? Exemple : homme(pierre). ߏƿ'� Zk�!� $l$T����4Q��Ot"�y�\b)���A�I&N�I�$R$)���TIj"]&=&�!��:dGrY@^O�$� _%�?P�(&OJEB�N9J�@y@yC�R
�n�X����ZO�D}J}/G�3���ɭ���k��{%O�חw�_.�'_!J����Q�@�S���V�F��=�IE���b�b�b�b��5�Q%�����O�@��%�!BӥyҸ�M�:�e�0G7��ӓ����� e%e[�(����R�0`�3R��������4�����6�i^��)��*n*|�"�f����LUo�՝�m�O�0j&jaj�j��.��ϧ�w�ϝ_4����갺�z��j���=���U�4�5�n�ɚ��4ǴhZ�Z�Z�^0����Tf%��9�����-�>�ݫ=�c��Xg�N��]�. endobj fusion([X|Xs],[Y|Ys],[X,Y|Zs]) :- X = Y,!,fusion(Xs,Ys,Zs). • Paquet = ensemble de clauses qui ont : - le même symbole de prédicat en tête de clause - la même arité.
Y is X*Y1. 2612 Introduction à la programmation logique : langage PROLOG II.
La coupure s’effectue et le traitement se poursuit récursivement. r(a,a1).
choix des clauses à partir de la première du paquet, ? '(b, '. VI. stream procédureadd(arg1, arg2, arg3) : ifarg1 = zerothenunify(arg2,arg3) elseifunify(arg1,suc(X)) and unify(arg3,suc(Z)) thenadd(X, arg2, Z), • Coût élevé du parcours de l'ensemble de l'arbre de, • Expression de la connaissance négative, • La coupure est sans signification logique, • L'appel de la coupure réussit toujours, • L'appel de la coupure a pour effet de bord de modifier l'arbre de recherche, • L'appel de la coupure supprime toutes les branches en attente dans l'arbre depuis l'appel de la clause qui la contient. 12 0 obj ?
[ /ICCBased 12 0 R ]
4�^��M���ng0i�4Y��. f(b,b),f(b,a), f(X,Y) :- q(X), p(Y).} ?-parent(P, françois) ?-parent(P,théodore), P = claude false, • Signification logique d'un programme P : Dénotation de P, DEN(P) = Ensemble des atomes qui sont des conséquences logiques de P. P= { p(a). 5 0 obj minimum(X,Y,Y). Le Contrôle • Définition de la Coupure—Exemples • Applications de la Coupure 2. Geneve .
'(2, X)) notée [1, 2 | X], • atome logique:propriété, relation entre termes, Syntaxe : symbole_de_prédicat(terme1,…,termen) n : arité du prédicat, est_pere_de(pierre,paul), temps(ensoleillé) est_mere_de(X,paul), atome_sans_termes, est_pere_de(pierre,paul), temps(ensoleillé), • clause :relation (certaine ou conditionelle), T : littéral positif, appelé Tête de Clause.
Syntaxe et structures de données – opérateur de coupure IV. endobj p :- b1, b2. Définition de la procédure. Calcul de toutes les instances d'un but appartenant à la dénotation du programme, Parcours en profondeur d'abordet de gauche à droitede l' arbre de recherche, ?
IV - Contrôle et la Négation 1) Le Contrôle • Définition de la Coupure— Exemples • Applications de la Coupure 2) La Négation : définition de la négation par échec— Exemples x��wTS��Ͻ7��" %�z �;HQ�I�P��&vDF)VdT�G�"cE��b� �P��QDE�k �5�ޚ��Y�����g�} P���tX�4�X���\���X��ffG�D���=���HƳ��.�d��,�P&s���"7C$ • Approche: Utilisation des arbres de preuve (arbres finis orientés) •Arbre de preuve: - à chaque nœud non terminal est associé une instance i d'une clause tel que : - fils du nœud = atomes du corps de i (si le corps de i est vide, alors le nœud a pour unique fils vrai) •Propriétés des arbres de preuve : - tout sous arbre d'un arbre de preuve est un arbre de preuve. I. �FV>2 u�����/�_$\�B�Cv�< 5]�s.,4�&�y�Ux~xw-bEDCĻH����G��KwF�G�E�GME{E�EK�X,Y��F�Z� �={$vr����K���� r(a,a2). non (A est une conséquence logique de P) Définition en Prolog : non(X) :- X,!, échec. - syntaxe : . au lieu de fact(0,1). Un prédicat est défini par une conjonction de clauses. Inclusion dans le C et le C++ Les sockets Prolog client web Prolog serveur web Bordeaux .
f(a,a),f(a,b), q(X) :- p(X). endobj III Sémantique d'un programme Prolog : 1 - Sémantique logique, dénotation 2 - Signification opérationnelle: SLD, exploration en profondeur 3 - Vision procédurale de Prolog IV Contrôle et la Négation: 1. B, ou si B = ?, alors x est quantifié universellement dans A, Si x ? spécification exécutable, • Programmer en logique = Décrire l'univers du problème, • Programme Prolog = Ensemble de propriétés et relationsentre les objets de l'univers, Un programme Prolog ne décrit pas une solution : c'est une suite d'affirmations, • Problème = Ensemble de questions concernant certains objets, • Exécution = Déduction de nouvelles relations à partir des affirmations du programme, • Variable:objet inconnu de l'univers du problème.