Approche logique de l’intelligence artificielle
Jean-Philippe Préaux
http://www.i2m.univ-amu.fr/~preaux
Où l’on voit comment une méthode de démonstration formelle
en logique des prédicats a permis la réalisation d’un langage
de programmation logique –Prolog– capable de concevoir des
« systèmes intelligents ».
2010
1
Table des matières
Introduction…………………………………………………………………………………….3
I) Logique des prédicats………………………………………………………………………..5
I.1) Syntaxe du calcul des prédicats……………………………………………………………7
I.1.1) Langage du calcul des prédicats ...............................……………………………7
I.1.2) Formules bien formées………………………………………………….……….7
a) Les termes…………………………………………………………………...…7
b) Les atomes……………………………………………………………………..8
c) Formules bien formées…………………………………………………………8
I.1.3) Représentation d’un FBF sous la forme d’un arbre……………………………...9
I.1.4) Portée d’un quantificateur, variable libre ou liée………………………………10
a) Portée d’un quantificateur………………………………………………….…10
b) Variable libre, variable liée………………………….......................................11
I.2) Sémantique du calcul des prédicats………………………………………………………12
I.2.1) Réalisation d’un langage……………………………………………………….12
I.2.2) Valeur d’une formule………………………………………………………..…12
a) Assignation de variables……………………………………………………...12
b) Valeur d’une formule dans un modèle, pour une assignation……………...…13
c) Valeur d’une formule dans un modèle……………………………………......14
I.2.3) Formules valides, inconsistantes, équivalentes………………………………...14
I.2.4) Théorie, conséquence logique………………………………………………….15
I.2.5) Equivalence du calcul des prédicats……………………………………………17
I.3) Système axiomatique, règles d’inférences……………………………………………….19
I.3.1) Définitions……………………………………………………………………...19
I.3.2) Système axiomatique du calcul des prédicats…………………………………..19
I.3.3) Complétude du calcul des prédicats…...…………….…………………………20
I.3.4) Indécidabilité du calcul des prédicats…………………………………………..21
II) Procédure de Preuve par réfutation : le principe de résolution……..……………………..23
II.1) Ecriture sous forme clausale…………………………………………………………….25
II.1.1) Formes prénexes…………………………………………………………….…25
II.1.2) Formes normales conjonctives………………………………………………...28
II.1.3) Formes de Skolem……………………………………………………………..30
II.1.4) Formes clausales………………………………………………………………31
II.1.5) En résumé : Algorithme de mise sous forme clausale………………………...33
II.1.6) Exemple complet………………………………………………………………34
II.2) Principe de résolution……………………………………………………………………35
II.2.1) Principe de résolution appliqué à des clauses concrètes………………………35
II.2.2) Unification de littéraux………………………………………………………...36
a) Substitution…………………………………………………………………36
b) Unification………………………………………………………………….37
c) Algorithme d’unification…………………………………………………...38
II.2.3) Principe de résolution appliqué à des clauses quelconques…………………...41
II.2.4) Propriétés du principe de résolution…………………………………………...41
II.3) Preuve par réfutation en utilisant le principe de résolution……………………………...43
II.3.1) Réfutation par résolution………………………………………………………43
Approche logique de l'I.A.
Jean-Philippe Préaux
http://www.i2m.univ-amu.fr/~preaux
2
II.3.2) Non déterminisme de la réfutation par résolution……………………………..46
a) Non déterminisme………………………………………………………….46
b) Stratégies de résolution par réfutation, complètes, effectivement
complètes…………………………………………………………………...47
c) Graphe de dérivation, graphe de réfutation………………………………...47
II.3.3) Quelques exemples de stratégies………………………………………………49
a) Stratégie de résolution « en largeur »………………………………………49
b) Stratégie de résolution « linéaire »………………………………………....49
c) Stratégie « linéaire par entrée »…………………………………………….52
II.3.4) Principe de résolution restreint aux clauses de Horn …………………………53
II.3.5) Principes de programmation logique………………………………………….54
II.4) Illustrations………………………………………………………………………………57
Approche logique de l'I.A.
Jean-Philippe Préaux
http://www.i2m.univ-amu.fr/~preaux
3
Introduction
Il faudrait plus que quelques lignes pour définir fidèlement si tant est que cela soit
possible ce que l’appellation d’Intelligence Artificielle recouvre de nos jours. Disons que ce
domaine, d’orientation plus pragmatique que théorique, a pour objet de faire réaliser à des
systèmes informatiques des tâches complexes nécessitant une forme de « raisonnement » dit
« intelligent ». Des activités mentales comme par exemple celles nécessitées par la conduite
d’un véhicule, la pratique des mathématiques, la compréhension d’une langue, la pratique des
échecs ou l’étude d’un cours de l’école de l’air (…) sont habituellement considérées comme
faisant appel à un raisonnement « intelligent ». Durant ces dernières décennies de nombreux
systèmes informatiques pouvant accomplir des tâches de cette nature ont été conçus. Il existe
par exemple des systèmes capables de diagnostiquer une maladie, de battre le champion du
monde aux échecs, de prévoir la synthèse de produits chimiques complexes, de résoudre des
équations différentielles, d’écrire de petits programmes répondant à certaines spécifications
formelles, de traduire des textes de construction assez simple, ou de retranscrire un discours
oral (etc…). Ainsi l’intelligence artificielle est déjà présente dans le monde technologique qui
nous entoure. Plus que cela, son développement est intimement lié aux développements
technologiques à venir.
La conception de tels systèmes repose essentiellement sur des techniques générales
provenant de la logique, des mathématiques, et de l’informatique théorique. Ces techniques
sont encore en nombre relativement restreint l’IA est une discipline récente. Nous nous
focaliserons dans ce cours seulement sur l’une d’entre-elle, à cause de son importance et de sa
généralité (certaines techniques de théorie des graphes, d’heuristique, ou d’optimisation
combinatoire seront abordées par ailleurs, pour elles-mêmes, dans d’autres cours de la
mineure de Recherche Opérationnelle). La technique que nous étudierons est le fondement
théorique du langage de programmation logique PROLOG, langage utilisé pour la conception
de nombreux systèmes « intelligents ». Il s’agit grosso modo d’une technique de
démonstration automatique de théorèmes même si elle sera rarement utilisée pour résoudre
des problèmes mathématiques.
Cette technique utilise la logique des prédicats pour représenter les connaissances dont
on dispose. Le langage des prédicats est suffisamment riche pour représenter formellement un
grand nombre de connaissances ou faits, et leurs relations logiques. A partir d’un ensemble de
connaissances initiales (c'est-à-dire de formules dans le langage des prédicats), on peut se
poser la question de savoir si un fait quelconque (traductible en une formule du même
langage) doit nécessairement être vrai (par exemple si : « Tous les hommes sont mortels » et
si « Socrate est un homme », alors « Socrate est mortel » est nécessairement vrai). Dans ce
cadre logique, la véracité d’un tel fait constitue un théorème, et pour l’établir il s’agit d’en
effectuer une démonstration. Pour qu’un système informatique soit capable à partir de certains
faits exprimés dans le langage des prédicats, d’en déduire d’autres il faut qu’il soit capable
d’effectuer des démonstrations automatiques. C’est d’une telle technique de démonstration
automatique dont ce cours fait l’objet.
Le cours se compose de deux chapitres. Dans le premier chapitre nous introduisons la
logique des prédicats, d’une façon assez classique. Dans le deuxième chapitre nous
établissons la procédure de preuve automatique dite procédure de preuve par réfutation. Nous
terminons ce chapitre par un survol (très rapide) du langage PROLOG, et par quelques
illustrations.
Novembre 2003
Approche logique de l'I.A.
Jean-Philippe Préaux
http://www.i2m.univ-amu.fr/~preaux
1 / 62 100%