On parle darbre de recherche dune question *Racine de larbre : question *Nœuds : points de choix (formule à démontrer) *Passage dun nœud vers son fils.

Slides:



Advertisements
Présentations similaires
Les Structures.
Advertisements

Transformation de documents XML
Le langage Prolog Structures de données
Un langage de programmation logique
GEF 243B Programmation informatique appliquée Expressions et opérateurs.
Algorithmes à base darbre BSP. Principe Se servir dune structure arborescente afin déliminer le traitement dune branche entière sur un test de visualisation.
Cours d’Algorithmique
Cours d’Algorithmique
Mise en œuvre d’un programme
Termes préfixés et N-uplets
Systèmes Experts implémentation en Prolog
Fonctionnement du moteur Prolog
INTRODUCTION.
Chapitre VI. Arbres (définition, parcours, représentation)
Objets Opérateurs Listes
CSI2520 ?- insert(a, L, [b, a, d, a, f]). L = [b, d, a, f] ; L = [b, a, d, f] ; no Linsertion et le retrait sont 2 concepts complémentaires!
Partie 1 Etude de l'existant
Analyser une phrase % extraire une phrase et retourner le reste
Cours d’Algorithmique
Expressions et assignations
Algo-Prog en Ada TD6 2 MIC Romaric GUILLERM
LOGO Responsable du cours Mlle Amina GHRAB : 1 ère année IAG Institut Supérieur de Gestion de Tunis.
OCaml – Les arbres L3 MI.
Les structures de données arborescentes
Arbre binaire de recherche
Heuristiques A. Introduction B. Recherche d ’une branche
Calcul Relationnel Chapitre 4, Section 4.3.
Arbre Rouge Noir.
Programmation logique Démonstrateur automatique
TD4 2 MIC Romaric GUILLERM Algo-Prog en Ada.
Gestion de Fichiers Arbres B.
Les fichiers indexés (Les B-arbres)
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Structures de données IFT-2000
Xpath XML Path language par Yves Bekkers
CSI2520, Hiver 2007 Paradigmes de Programmation CSI 2520.
Nommer les composés chimiques
Les arbres binaires.
Expressions et affectations
Arbres en Prolog Un arbre binaire est une structure pouvant contenir des données. Chaque élément de l'arbre contient une donnée et a au plus un 'parent'
CSI2520 Ecriture sur l'écran ou dans un fichier Lecture à partir du clavier ou dun fichier Affichage de termes : *write(1+2) affiche 1+2 *write(X). affiche.
CSI2520 Un arbre binaire est une structure pouvant contenir des données. Chaque élément de l'arbre contient une donnée et a au plus un 'parent' et deux.
Exposé en structures de données
Programmation logique Le Langage PROLOG
IV. Arbres  Arbre binaire (AB) Représentation SDD d’un AB
Algorithmique et structures de données en C
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.
Structures de données IFT Abder Alikacem Semaine 10 Les arbres SPLAY Département dinformatique et de génie logiciel Édition septembre
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.
Jacques Nicolas INRIA /IRISA Rennes
Heuristiques C. Recherche de la meilleure branche . Branch And Bound
Exploration systématique de graphes
Prolog Listes Arbres en prolog Structures : bases de données
Mathématiques Discrètes
Algorithmes Branch & Bound
Arbres binaires et tables de hachage
Outils pour la programmation logique par contraintes
Exploration systématique de graphes
Structures de données avancées : MBT ( Multidimensional B-trees )
Objets Opérateurs Listes
Travail 1 Tutorial de mathématique
Algorithmique et Conception Objet
Modélisation des documents: DTD et Schéma
Anitha sivaganesh foyer 140
FRANÇAIS ANGLAIS. EX:3x5x(4- -6)+-9=? P* En premier, (de gauche à droite) on calcule la somme qui est entre la parenthèse, 3x5x(4- -6)+-9, alors, maintenant.
UE MAREP Cours 10 : Projet Patricia Renault UPMC 2005/2006.
Le Jeu et l’intelligence artificielle
LOGIQUE ET PROGRAMMATION LOGIQUE
4/25/2017 4:30 PM Arbres (2,4) CSI2510 CSI2510.
Les arbres Arbres binaires
Transcription de la présentation:

On parle darbre de recherche dune question *Racine de larbre : question *Nœuds : points de choix (formule à démontrer) *Passage dun nœud vers son fils en considérant lune des règles et en effectuant une unification et une étape (pas) de démonstration CSI2520

*Nœuds de gauche à droite dans lordre de déclaration des règles *Nœuds d'échec : aucune règle ne permet de démontrer la première formule du nœud *Nœuds de succès : ne contient plus aucune formule, tout a été démontré et les éléments de solution sont trouvés en remontant vers la racine de larbre CSI2520

Pour résoudre une question, Prolog construit larbre de recherche de la question Parcours en profondeur dabord *nœud de succès : cest une solution, Prolog laffiche et cherche dautres solutions *nœud d'échec : remontée dans larbre jusqu'à un point de choix possédant des branches non explorées CSI2520

On parle de backtracking. Si un tel nœud de choix nexiste pas, la démonstration est terminée, il ny a pas dautres solutions. Possibilité de branche infinie et donc de recherche sans terminaison… Attention à : *ordre des littéraux dans la queue de clause *ordre des clauses CSI2520

f(a). f(b). g(a). g(b). h(b). k(X):- f(X), g(X), h(X). ?- k(Y).

CSI2520

pere(charles,jean). noble(henri). noble(louis). noble(charles). noble(X):- pere(Y,X), noble(Y). pere(charles,jean). noble(X):- pere(Y,X), noble(Y). noble(henri). noble(louis). noble(charles). pere(charles,jean). noble(henri). noble(louis). noble(charles). noble(X):- noble(Y), pere(Y,X). ?- noble(jean).

CSI2520 aime(vincent,mimi). aime(marcel,mimi). jaloux(X,Y) :- aime(X,Z),aime(Y,Z). ?- jaloux(X,Y). Combien de solutions? … 4

CSI2520 Ils permettent dutiliser une syntaxe infixée, préfixée ou suffixée pour écrire des prédicats. Ils ont des priorités différentes.

CSI2520 Trois types : *Opérateur binaire infixé : il figure entre ses 2 arguments et désigne un arbre binaire X + Y *Opérateur unaire préfixé : il figure avant son argument et désigne un arbre unaire -X *Opérateur unaire suffixé : il figure après son argument et désigne un arbre unaire (Ex : X^2)

CSI2520 Associativité : *A gauche : *X op Y op Z est lu comme (X op Y) op Z *A droite : *X op Y op Z est lu comme X op (Y op Z) *Non associatif : les parenthèses sont obligatoires *la syntaxe X op Y op Z est interdite

CSI2520 Déclaration des opérateurs : *possibilité de modifier la syntaxe Prolog en définissant de nouveaux opérateurs *définition : par lenregistrement de faits de la forme suivante op(Priorite, Specif, Nom) *Nom : nom de lopérateur *Priorite :compris entre 0 (le plus prioritaire) et 1200 *Specif :type de l'opérateur (infixé, associatif…)

CSI2520 Infix: xfx non-associative xfy right to left yfx left to right Prefix fx non-associative fy left to right Postfix: xf non-associative yf right to left

CSI2520 is_in(apple, room(kitchen)). :-op(35,xfx,is_in). ?- apple is_in X. X = room(kitchen) ?- X is_in room(kitchen). X = apple ?- is_in(banana, room(kitchen)) = banana is_in room(kitchen). yes

CSI2520 :-op(33,fx,room). ?- room kitchen = room(kitchen). yes ?- apple is_in X. X = room kitchen pear is_in room kitchen. ?- is_in(pear, room(kitchen)) = pear is_in room kitchen. yes

CSI2520 :-op(35,xfy,is_in). ?- key is_in desk is_in office = is_in(key, is_in(desk, office)). yes :-op(35,yfx,is_in) ?- key is_in desk is_in office = is_in(is_in(key, desk), office). yes

CSI2520 :-op(100, xfx, a_des). :-op(100, xfx, est_un). Animal a_des ailes :- Animal est_un oiseau.