INTELLIGENCE ARTIFICIELLE IAR-1001
Contenu du cours 4 Connaissances et Raisonnement Introduction Logique propositionnelle Logique des prédicats Système expert LECTURES: Chapitres 7 8 9 Russell & Norvig Notes de cours (site ftp UQTR)
Connaissances et Raisonnement Introduction Quand un agent veut agir de façon “intelligente” dans un environnement donné, il doit avoir des connaissances relatives à cet environnement. Pour concevoir un agent doté d’une “intelligence artificielle”, deux problèmes majeurs se posent: Comment représenter les connaissances de l’agent (par exemple : “un véhicule est en avant et roule à une vitesse plus lente”); Comment raisonner à partir de ces connaissances (par exemple : “puisqu’un véhicule est en avant et roule à une vitesse plus lente, il faut ralentir ”) ? Ces deux problématiques sont interconnectées car la façon de représenter les connaissances a un impact important sur le type de raisonnements qui peuvent être effectués ainsi que sur la complexité (calculatoire) du raisonnement.
Connaissances et Raisonnement Introduction La représentation des connaissances, a pour but l’étude des formalismes qui permettent la représentation de toutes formes de connaissances. Le formalisme peut être sous forme de langages logiques ou probabilistes. Les langages logiques sont basés sur les principes de la logique propositionnelle, la logique du premier ordre, et autres logiques.
Connaissances et Raisonnement Logique propositionnelle Ce logique est une logique très simple qui se trouve à la base de presque toutes les logiques qui sont étudiées aujourd’hui. Les éléments de bases sont des propositions (ou variables propositionnelles) qui représentent des énoncés qui peuvent être soit vrais ou faux. La proposition p: "Marc est un étudiant" ou une proposition q: "Deux est un nombre pair". Des propositions complexes peuvent être construites à partir des propositions en utilisant les connecteurs logiques : (“et”), (“ou”), et ¬ (négation).
Connaissances et Raisonnement Logique propositionnelle (exemple de proposition)
Connaissances et Raisonnement Logique propositionnelle (opérateurs populaires) Nom formel Nom court Parité Symbole Négation NOT (NON) Unaire ¬ Conjonction AND (ET) Binaire Disjonction OR (OU) OU-Exclusif XOR (OUX) Implication IMPLIQUE Biconditionnel SSI ↔
Connaissances et Raisonnement Logique propositionnelle (opérateurs populaires) L’opérateur de négation “¬” (NOT) transforme une prop. dans sa forme logique complémentaire (négation). Ex: SI p = “J’ai les cheveux blanc.” ALORS ¬p = “Je n’ai pas les cheveux blanc.” Table de vérité du NOT: T :≡ True; F :≡ False “:≡” “est défini comme” Opérande Résultat
Connaissances et Raisonnement Logique propositionnelle (opérateurs populaires) L’opérateur de conjonction “” (AND, ET) combine deux propositions pour former leur conjonction logique. Ex: p=“J’irai à Québec.” et q=“J’irai au Château Frontenac.”, alors pq=“J’ira à Québec et au Château Frontenac.” ND Rappel: “” pointe vers le haut comme un “A”, et correspond au “ND”
Connaissances et Raisonnement Logique propositionnelle (opérateurs populaires) Notez qu’une conjonction p1 p2 … pn de n propositions aura 2n rangées dans sa table de vérité. Aussi: Les opérations ¬ et sont suffisantes pour déduire n’importe quelles tables de vérités Booléennes Opérandes p q pq F T
Connaissances et Raisonnement Logique propositionnelle (opérateurs populaires) L’opérateur de disjonction “” (OU) combine deux propositions pour former une disjonction logique. p=“Mon ordinateur a une bonne carte graphique.” q=“Mon ordinateur a un CPU performant.” pq=“Mon ordinateur a soit une bonne carte graphique, or (ou) mon ordinateur a un CPU performant.”
Connaissances et Raisonnement Logique propositionnelle (opérateurs populaires) Notez que pq signifie que p est VRAI, ou q est vrai, ou les deux sont vraies! Cette opération est aussi appelée ou inclusif, et inclus la possibilité que p et q soient VRAIES. Notez la différence avec AND
Connaissances et Raisonnement Logique propositionnelle (opérateurs populaires) Posons p = “Il a plue la nuit dernière”, q = “Le balai mécanique a lavée la rue cette nuit”, r = “La rue est mouillée ce matin.” Tranduisez chaque proposition: ¬p = r ¬p = ¬ r p q = “Il n’a pas plue la nuit dernière.” “La rue est mouillée mais il n’a pas plue” “Soit que la rue n’était pas mouillée, ou il a plue la nuit dernière, ou la rue a été lavée cette nuit.”
Connaissances et Raisonnement Logique propositionnelle (opérateurs populaires) L’opérateur OU-Exclusif “” (XOR) combine deux propositions formant leur “OU exclusif” logique. p = “J’obtiendrai un A+ dans ce cours,” q = “J’abandonnerai ce cours,” p q = “Je vais soit avoir un A+ dans ce cours, ou j’abandonnerai (mais pas les deux)”
Connaissances et Raisonnement Logique propositionnelle (opérateurs populaires) Notez que pq veut dire que p est vrai, ou q est vrai, mais pas les deux! Cette opération est appelée OU-exclusif, puisqu’elle exclus la possibilité que p et q soient VRAIES. Notez la différence avec le OR.
Connaissances et Raisonnement Logique propositionnelle (opérateurs populaires) Notez qu’en français le “ou” peut être ambïgu en regard des cas inclusif et exclusif “Joe est un plombier ou Joe est un politicien.” - “Joe a eu un A dans son cours de plomberie ou Joe a eu un B dans ce cours.” - Besoin du contexte pour désambiguïser le sens des propositions
Connaissances et Raisonnement Logique propositionnelle (opérateurs populaires: implication) L’ implication p q signifie que p implique q. Ex:, posons p = “Vous étudiez beaucoup.” q = “Vous obtenez une bonne cote.” p q = “Si vous étudiez beaucoup, vous obtiendrai Alors une bonne cote.” Hypothèse Conclusion
Connaissances et Raisonnement Logique propositionnelle (opérateurs populaires: implication) p q est faux seulement quand p est VRAI mais que q n’est pas VRAI (not true). p q ne veut pas dire que p a causé q p q ne requiert pas que p ou q soit VRAIE EX: “(1=0) Dumbo l’éléphant vole” est VRAIE Le seul cas FAUX
Connaissances et Raisonnement Logique propositionnelle (opérateurs populaires: implication) Considérons une phrase comme, “Si je regarde CNN demain, il tombera de la grêle” En logique, cette phrase est considérée VRAIE tant que je ne regarde pas CNN ou qu’il grêle. Mais, dans une conversation normale, ce genre d’affirmation est déconcertante et questionnable.
Connaissances et Raisonnement Logique propositionnelle (opérateurs populaires: implication) Une phrase en langage courant “SI p ALORS q” peut signifier implicitement: “Dans toutes les situations possibles, p implique q.” SI p est VRAI ALORS q est aussi VRAI. SI p n’est pas VRAI ALORS q est FAUX. Il existe une relation entre, l’hypothèse et la conclusion. Ce n’est pas le cas en logique. pq signifie ¬p V q Ex.: “Si vous avez 100 au final, vous aurez A+” Si vous avez 100, vous vous attendez à avoir un A+ (11=1) Sinon, vous pourriez avoir un A+ quand même (01=1) Par contre, si vous avez un 100 et n’avez pas un A+, vous vous sentirez probablement lésé (10 = 0)
Connaissances et Raisonnement Logique propositionnelle (opérateurs populaires: implication) “Si ce cours ne se termine jamais, Alors le soleil se lèvera demain.” True or False? “Si lundi est un jour de la semaine, Alors Je suis un singe.” True or False? “Si 1+1=6, Alors Obama est président.” True or False? “Si la Suisse est un fromage, Alors je suis plus riche que Warren Buffet.” True or False?
Connaissances et Raisonnement Logique propositionnelle (Sens de phrases en langage courant p q) “p implique q” “Si p, Alors q” “Si p, q” “quand p, q” “chaque fois que p, q” “q si p” “q quand p” “q chaque fois que p” “p seulement si q” “p est suffisant pour que q” “q est nécessaire pour que p” “q découle de p” “q est supposé par p”
Connaissances et Raisonnement Logique propositionnelle (Réciproque, Inverse, Contraposée) Formes découlants de l’implication p q: Sa réciproque est: q p. Son inverse est: ¬p ¬q. Sa contraposée: ¬q ¬ p. Une de ces formes a le même sens (même table de vérité) que p q. Laquelle ? Contraposée
Connaissances et Raisonnement Logique propositionnelle (Réciproque, Inverse, Contraposée) Prouvons l’équivalence de p q et sa contraposée par table de vérité:
Connaissances et Raisonnement Logique propositionnelle (biconditionnelle ) Une forme biconditionelles p q est vraie si la proposition p est vraie et si la proposition q est vraie. Nous dirons p SSI q. p = “Obama gagne les élections de 2008.” q = “Obama sera président jusqu’en 2012.” p q = “Obama gagne les élections de 2008, SSI, Obama sera président jusqu’en 2012.” 2012 2008 Yes we can!
Connaissances et Raisonnement Logique propositionnelle (biconditionnelle ) p q signifie que p et q ont la même valeur de vérité. Notez que cette table de vérité est l’opposée du XOR Donc, p q est équivalent ¬(p q) p q ne veut pas dire que p et q sont VRAIES, ou que chacune est la cause de l’autre, ou découlent d’une cause commune.
Connaissances et Raisonnement Logique propositionnelle (précédence des opérateurs) Nous pouvons avoir des énoncés composés r p q Quel est l’ordre d’application des opérateurs logiques? Les parenthèses spécifient l’ordre r (p q) : Implication en premier Si pas de parenthèses, la précédence des opérateurs intervient Opérateur Précédence ¬ 1 2 3 4 5
Connaissances et Raisonnement Logique propositionnelle (sommaire des opérateurs) Table de vérité des opérateurs logiques vus jusqu’à maintenant.
Connaissances et Raisonnement Logique des prédicats La logique des prédicats est une extension de la logique propositionnelle permettant un raisonnement concis sur diverses classes d’entités. La logique propositionnelle traite des propositions simples (phrases) comme des entités atomiques. Par contre, la logique des prédicats distingue le sujet d’une phrase de son prédicat. Termes de la grammaire Française?
Connaissances et Raisonnement Logique des prédicats Dans la phrase “La vache rumine”: La phrase “La vache” correspond au sujet - l’objet ou l’entité par rapport auquel la phrase complète est construite. La phrase “rumine” correspond au prédicat- une propriété qui est VRAIE pour le sujet. En logique des prédicats, un prédicat représente une fonction P(·) qui transpose les objets en propositions. P(x) = “x rumine” (ou x est un objet quelconque).
Connaissances et Raisonnement Logique des prédicats Convention: Variables en minuscules x, y, z... Dénotent les objets/entités; variables en majuscules P, Q, R… dénotent les prédicats. Il faut savoir que l’application d’un prédicat P à un objet x est une proposition P(x). Mais le prédicat P lui même (ex: P=“rumine”) n’est pas une proposition (pas une phrase complète). Ex: si P(x) = “x est un nombre premier”, P(3) est la proposition “3 est un nombre premier.” En Java: les predicats sont des méthodes qui retournent des valeurs booléenne someLinkedList.isEmpty() isPrime(17)
Connaissances et Raisonnement Logique des prédicats C’est la base pour exprimer les spécifications formelles de systèmes complexes. Utiliser comme outil de validation automatique de preuves et dans de multiples systèmes en Intelligence Artificielle. Ex: Systèmes de vérification automatique de programmes. Des énoncés en logique des prédicats sont supportés par des interpréteurs de requêtes de BD et autres librairies de classes Ils sont perçus comme des outils de programmation.
Connaissances et Raisonnement Logique des prédicats (Univers du discours, domaine) La possibilité de distinguer des objets à partir de prédicats permet de faire des affirmations sur un ensemble d’objets en un seul coup. Ex: posons P(x)=“x+1>x”. Nous pouvons alors dire: “Pour tout nombre x, P(x) est VRAI” au lieu de faire l’énumération: (0+1>0) (1+1>1) (2+1>2) ... La collection des valeurs de x est appelée l’univers du discours (domaine) de x.
Connaissances et Raisonnement Logique des prédicats (Univers du discours, domaine) Dans les langages de programmation le domaine correspond à la notion de type. En JAVA, il existe deux catégories de type: : type reference (objets et arrays), et des types primitifs comme int, boolean, char, etc. Exemples de domaine en Java: int, char, int[][], Object, String, java.util.LinkedList, Exception, etc.
Connaissances et Raisonnement Logique des prédicats (Quantificateur) Les quantificateurs sont une notation permettant de quantifier (compter) combien d’objects dans l’univers du discours satisfont un prédicat donné. “” POUR TOUT ou quantificateur universel. x P(x) Pour tout x, P est satisfait. “” EXISTE or quantificateur existentiel. x P(x) il existe une valeur de x tel que P(x) est VRAI.
Connaissances et Raisonnement Logique des prédicats (Quantificateur universel) Exemple: Avec le domaine de x les étudiants en informatique. Posons S(x) le prédicat “x est dans le cours IAR1001” Posons P(x) le prédicat “x étudient la logique des prédicats.” Avec le quantificateur universel, x (S(x) -> P(x)), est la proposition: “Tous les étudiants en informatique du cours IAR1001 étudient la logique des prédicats” i.e., “Tous les étudiants du cours IAR1001 étudient la logique des prédicats.” i.e., “Chaque étudiant du cours IAR1001, étudie la logique des prédicats.”
Connaissances et Raisonnement Logique des prédicats (Négation) x : Que représente x ? x : Que représente x ? Que représente la négation dex P(x)? Ou la négation de x P(x)? (x P(x)) : x P(x) (x P(x)) : x P(x)
Connaissances et Raisonnement Logique des prédicats (Variables libres ou liées) Une expression comme P(x) possède une variable libre x (x est non définie). Un quantificateur ( ou ) opèrent sur une expression ayant une ou plusieurs variables libres, et lie une ou plusieurs de ces variables, pour produire une expression ayant une ou plusieurs variables liées.
Connaissances et Raisonnement Logique des prédicats (Liaisons) P(x,y) a 2 variables libres, x et y. x P(x,y) a 1 variable libre, et une variable liée. “P(x), où x=3” permet de lier x. Une expression avec aucune variable libre est une proposition réelle. Une expression avec une ou plus variables libres ne reste qu’un prédicat: Ex: posons Q(y) = x P(x,y)
Connaissances et Raisonnement Logique des prédicats (Liaisons VS quantificateurs multiples) Exemple: Posons le domaine de x et y sont des personnes. Posons A(x,y)=“x aime y” (prédicat: 2 f.v., x,y) Alors y A(x,y) = “Quelqu’un est aimé par x.” (prédicat: 1 f.v., x) Alors x (y A(x,y)) = “Chacun a quelqu’un qu’il aime.” (Une __________ avec ___ variable libre.) Proposition
Connaissances et Raisonnement Logique des prédicats (Quantificateurs) x : Pour tout x y : Il existe un ‘y’ Si C(x,y)=“x compte sur y,” s’exprime en français non ambigue : x(y C(x,y))= y(x C(x,y))= x(y C(x,y))= y(x C(x,y))= x(y C(x,y))= Chacun a quelqu’un sur qui compter. Il existe quelqu’un sur qui tous peuvent compter même lui-même. Il existe quelqu’un qui compte sur tous même lui-même. Tous ont quelqu’un qui compte sur eux. Tous comptent sur tous même eux-mêmes.
Connaissances et Raisonnement Logique des prédicats (Autres conventions) Parfois le domaine est restreint à l’intérieure de la quantification, ex:, x>0 P(x) correspond à “Pour tout x > 0, P(x).” =x (x>0 P(x)) x>0 P(x) correspond à “Il existe un x > 0 tel que P(x).” =x (x>0 P(x))
Connaissances et Raisonnement Logique des prédicats (Un peu plus sur les liaisons) x x P(x) - x n’est pas une f.v. dans x P(x), alors la liaison x n’est pas utilisée. (x P(x)) Q(x) - La variable x est hors de la portée du quantificateur x, donc x est une f.v.. Une proposition incomplète. (x P(x)) (x Q(x)) – Légale, puisque nous avons 2 x différents
Connaissances et Raisonnement Logique des prédicats (Règles d’équivalence) Définitions des quantificateurs: Si l’u.d.=a,b,c,… x P(x) P(a) P(b) P(c) … x P(x) P(a) P(b) P(c) … Nous pouvons alors prouver les règles: x P(x) x P(x) x P(x) x P(x) Quelle règle d’équivalence propositionnelle peut être utilisée? DeMorgan's
Connaissances et Raisonnement Logique des prédicats (Règles d’équivalence) x y P(x,y) y x P(x,y) x y P(x,y) y x P(x,y) x (P(x) Q(x)) (x P(x)) (x Q(x)) x (P(x) Q(x)) (x P(x)) (x Q(x))
Connaissances et Raisonnement Logique des prédicats (Exemple) x( C(x) y( C(y)F(x,y) )) où C(x): “x a un portable” F(x,y): “x et y sont amis” Domaine de x et y sont les étudiants de l’école x( C(x) y( C(y)F(x,y) ) ) Pour tout x, x a un portable OU Il existe un y qui a aussi un portable ET x et y sont amis
Connaissances et Raisonnement Logique des prédicats (Exemple) Si une personne est femme et est un parent, alors cette personne est la mère de quelqu’un. F(x): “x est une femme”, P(x): “x est un parent” M(x,y): “x est la mère de y” Pour chaque personne x, Si x est un parent, alors x est la mère de quelqu’un. x ( ( F(x) P(x) ) yM(x,y) )
Connaissances et Raisonnement Système Expert (introduction) Modélisation de la connaissance Raisonnement
Connaissances et Raisonnement Système Expert (introduction) Les systèmes experts (SE) permettent de modéliser et simuler, de façon logiciel, le savoir (la connaissance) - ou le "savoir faire« (raisonnement) - d'un expert humain dans un domaine donné. Leur champ d'application est vaste : ils permettent de solutionner des problèmes pour lesquels: il n'existe pas de solution algorithmique connue, possible ou souhaitable; les connaissances mises en oeuvre sont de nature intuitive; les connaissances mises en oeuvre ne sont pas consignées explicitement par écrit; il existe de nettes différences de performance entre un individu moyen et un expert; les connaissances mises en oeuvre sont de nature qualitative plutôt que quantitative; les connaissances mises en oeuvre sont en évolution rapide et constante; la résolution implique des coûts élevés; la résolution se fait dans des conditions difficiles, voire stressantes; les données sont imprécises, voire incomplètes.
Connaissances et Raisonnement Système Expert (introduction) Les experts humains peuvent raisonner à cause de leur grande expérience et connaissance sur leurs domaines d’expertise. Un SE utilise la connaissance d’un domaine spécifique afin de fournir une performance comparable à l’expert humain. Les concepteurs de SEs effectuent l’acquisition de connaissance par des entrevues avec les experts du domaine. Ces experts humains fournissent aussi les heuristiques qu’ils ont acquises grâce à l’utilisation de leurs connaissances. Contrairement à la modélisation cognitive, les SE ne tentent de modéliser le fonctionnement du cerveau humain mais sont des logiciels utilisant des stratégies heuristiques pour la résolution des problèmes spécifiques. Le raisonnement effectué par un SE doit être objet à l’inspection, et ceci en fournissant d’information sur l’état de la résolution du problème et des explications sur les choix et les décisions du système. D’un autre côté, la solution fournie par le système doit être évaluée par un expert humain pour ainsi raffiner l’information contenue dans la base de connaissances.
Connaissances et Raisonnement Système Expert (introduction)
Connaissances et Raisonnement Système Expert (introduction) L’interface utilisateur sert à simplifier la communication, elle peut utiliser la forme question-réponse, menu, langage naturel, etc.; La base de connaissances contient les connaissances concernant la résolution du problème. Le moteur d’inférence applique une stratégie de résolution en utilisant les connaissances et ceci pour en dériver une nouvelle information. La base de faits contient les données spécifiques liées à l’application traitée. La base de règles permet de modéliser les relations entre les données de la base de faits, et ce sous forme d’énoncés du genre: SI condition(s) ALORS conséquence(s).
Connaissances et Raisonnement Système Expert (Moteur d’inférence) Dans un système à base de règles, les connaissances sont représentées par des règles. Le moteur d’inférence peut fonctionner en chaînage arrière ou avant. Le chaînage arrière signifie que le raisonnement est guidé par le but. Le chaînage avant signifie que le raisonnement est guidé par les données (ex: les symptômes d’un patient qui permettent de déduire les maladies possibles).
Connaissances et Raisonnement Système Expert (Moteur d’inférence: chaînage avant) En chaînage avant, le contenu de la mémoire correspond aux données qui peuvent vérifier certaines prémisses des règles, ces règles deviennent des règles candidates à être utilisées dans le raisonnement. Ensuite, le système prend en compte les règles candidates selon un ordre donné et teste si le reste des prémisses sont vérifiées.
Connaissances et Raisonnement Système Expert (Moteur d’inférence: Chaînage arrière) Avec le chaînage arrière, le but est placé au début dans la mémoire du système. Ensuite, le système cherche dans sa base de connaissances les règles dont la conclusion correspond au but recherché. Une des règles est choisie selon une stratégie donnée. Ses prémisses sont empilées dans la mémoire du SE et deviennent les sous-buts actuels à résoudre. Le système continue à travailler de cette façon jusqu’à ce que tous les sous buts placés en mémoire soient vérifiés. Les sous-buts peuvent être résolus en posant des questions à l’expert.