Programmation logique Logique des prédicats du premier ordre

Slides:



Advertisements
Présentations similaires
P.T. 2012/2013 Mise en œuvre de Prolog.
Advertisements

Sémantique des déclarations pour le langage Z minimal
« 1.5. Les fonctions logiques »
Un langage de programmation logique
Apprentissage relationnel Apprentissage Data Mining ILP.
Spécification et qualité du logiciel
Céline Espenel et Nicolas Julien
Cours d'algorithmique 9 - Intranet 1 12 décembre 2006 Cours dAlgorithmique Logique de Hoare (début) : Principes et constructions élémentaires.
Algèbre relationnelle
Séminaire Biblio LISC - 3/04/02 Complexité, information Daprès JP Delahaye (1999)
Rappels / concepts de base de l’IA
Algèbre de Boole.
Termes préfixés et N-uplets
La voie intuitionniste
Logique et raisonnement scientifique cours transversal Collège Doctoral Pr. Alain Lecomte.
Vers une interprétation « concrète »
Calcul propositionnel
Système formel Nous avons introduit : signes de variables (x, y, z, …), de constantes (0, 1), d’opérations (+, ), de relations (=, ) Axiomes : ce sont.
Logique et raisonnement scientifique
Systèmes Experts implémentation en Prolog
INTRODUCTION.
Les systèmes experts L3 MI.
Logiques Mathématiques
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Récursivité.
Agents Logiques Chap. 7.
Algorithmique et structure de données
Graphes Conceptuels J.F. Baget Inria.
Lambda-Calcul Sémantique de Montague
Calcul Relationnel Chapitre 4, Section 4.3.
Programmation fonctionnelle Le langage LISP
Programmation logique Démonstrateur automatique
Systèmes d’équations linéaires
Rappels de logique des prédicats du 1er ordre
CSI2520, Hiver 2007 Paradigmes de Programmation CSI 2520.
1 CSI3525: Concepts des Languages de Programmation Notes # 4: Description Semantique des Languages.
CSI 4506: Introduction à l’intelligence artificielle
CSI3525: Concepts des Languages de Programmation
CSI 4506: Introduction à l’intelligence artificielle
Révisions - IA Généralité: problèmes de lIA Recherche Logique Traitement de lincertitude Apprentissage Langue naturelle.
Partie II Sémantique.
Lesson 2-1 Conditional Statements 1 MÉTHODES DE RAISONNEMENT.
Programmation logique Le Langage PROLOG
Programmation non procédurale Le projet ECOLE 2000
Modélisation des opérations Spécifier les transformations détat que lon attend des services de la machine Létat dune machine entièrement déterminée par.
Introduction à la Logique (Logique I) 1ère Année
Jacques Nicolas INRIA /IRISA Rennes
Programmation procédurale Transformations
La Logique des propositions
Paradigmes des Langages de Programmation
Présenté par : Attia Hamza Merzouk Abdelkrim 2003/2004
Expressions logiques Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
1 CSI 4506: Introduction à l’Intelligence Artificielle Representation et Logique II.
Programmation fonctionnelle Lambda-calcul
La Logique du premier ordre LPO
Cours n°2UE102e(S. Sidhom) UE 102e. M1.IST-IE cours n°2 Systèmes à base de règles Par : Sahbi SIDHOM MCF. Université Nancy 2 Équipe de recherche SITE –
D.E ZEGOUR Ecole Supérieure d’Informatique
Approches Formelles en Systèmes d'information
Programmation procédurale preuves D. Preuves Preuves sur les R-algorithmes. Règle de l'appel (Hoare). Exemple Preuves sur les B-algorithmes (Floyd) Automatisation.
Programmation linéaire en nombres entiers
Rappel - analyse et synthèse de fonctions combinatoires
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
Introduction à l’algèbre Séminaires démultipliés 2013 Jour 2.
Programmation fonctionnelle Preuve
CSI 4506: Introduction à l’Intelligence Artificielle
Raisonnement et logiques
LOGIQUE ET PROGRAMMATION LOGIQUE
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
Relation de conséquence logique Nous avons vu une relation entre formules: l’équivalence tautologique (  ) Nous allons définir une nouvelle relation,
Programmation par contraintes Réalisé par: WETCHA Chaima MOKDED Mohamed Ali FIA3-GL-AL 1 1.
Transcription de la présentation:

Programmation logique Logique des prédicats du premier ordre A. Introduction B. Logique des prédicats du premier ordre Syntaxe Sémantique Propriétés Inconsistance et validité d'une formule Variables libres, variables liées Forme normale conjonctive Forme normale disjonctive Règle d'inférence

Programmation logique Logique des prédicats du premier ordre Introduction Elle est basée sur le principe de la démonstration automatique de théorèmes(utilisant la logique du premier ordre) Un programme en Logique est un ensemble d'énoncés. Les énoncés sont des formules du calcul du premier ordre ne contenant pas de variables libres. Tout problème calculable peut être formulé dans ce langage.

Programmation logique Logique des prédicats du premier ordre Introduction Programmer en logique consiste : à définir les hypothèses (énoncés definis dans un programme exprimant la connaissance relative au problème à résoudre. à introduire la conclusion (poser le problème). L'interpréteur tente ensuite de réaliser la preuve du but en utilisant l'inférence logique. Le langage le plus représentatif est PROLOG(1971) basé sur deux mécanismes : unification et résolution.

Programmation logique Logique des prédicats du premier ordre Syntaxe : Éléments de base Constantes : a, b, c,... Variables : x, y, z,... Fonctions : f, g, h, .... Relation( prédicat ou fonctions booléennes): P, Q, R

Programmation logique Logique des prédicats du premier ordre Syntaxe : définition d'un terme Toute constante est un terme. Toute variable est un terme. Si t1, t2, ..tn sont des termes et si f est une fonction n-aire, alors f(t1, t2, ..,tn) est un terme.

Programmation logique Logique des prédicats du premier ordre Syntaxe : définition d'un atome Si t1, t2, ..., tn sont des termes et si P est un prédicat n-aires alors P(t1, t2, .., tn) est un atome.

Programmation logique Logique des prédicats du premier ordre Syntaxe : définition d'une formule . Tout atome est une formule. . Si P et Q sont deux formules alors : Non P, P & Q, P V Q, P ==> Q, P <==> Q,  x P(x), x P(x) sont des formules.

Programmation logique Logique des prédicats du premier ordre Syntaxe : exemples x NOMBRE(x) ==> (y PLUSGRANDQUE(y, x) x, y (P(x) & Q(y)) ==> (R(a) V Q(b) )

Programmation logique Logique des prédicats du premier ordre Sémantique Quand on attribue des valeurs a chaque terme et à chaque symbole de prédicat dans une fbf on dit qu'une interprétation est donnée a la fbf. Si les valeurs de vérité de fbf sont les mêmes pour toute interprétaion, on dit qu'il sont équivalents.

Programmation logique Logique des prédicats du premier ordre Sémantique Soit à évaluer E :  x (( A(a, x) V B(f(x)) & C(x)) ==> D(x) A, B, C et D sont des prédicats.

Programmation logique Logique des prédicats du premier ordre Sémantique Soit l'interprétation suivante de domaine D = {1, 2} a = 2 f(1) = 2 ; f(2) = 1 A(2, 1) = vrai ; A(2, 2) = faux B(1) = vrai ; B(2) = faux C(1) = vrai ; C(2) = faux D(1) = faux ; D(2) = vrai

Programmation logique Logique des prédicats du premier ordre Sémantique ( Évaluation ) : Cas x = 1 A(2, 1) vrai et B(2) faux donc A(2, 1) V B(2) vrai C(1) vrai donc (A(2, 1) V B(2)) & C(1) vrai D(1) faux l'implication est donc fausse Cas x = 2 On montre de la même façon que E est vraie Puisque E n'est pas vrai pour tout x, l'expression est alors fausse.

Programmation logique Logique des prédicats du premier ordre Propriétés L'évaluation de fbf complexes peut être facilité par une phase de substitution( transformation syntaxique) On dispose alors des propriétés suivantes : F, G et H sont des fbf ne contenant pas de variable F[x] est une fbf contenant la variable x.

Programmation logique Logique des prédicats du premier ordre Propriétés Double négation NON ( NON F) = F Commutativité F & G = G & F F V G = G V F Associativité F & ( G & H ) = ( F & G ) & H F V ( G V H ) = ( F V G ) V H Distributivité F V( G & H) = (F V G) & ( F V H) F &( G V H) = (F & G) V ( F & H) De Morgan NON ( F & G ) = NON F V NON G NON ( F V G) = NON F & NON G

Programmation logique Logique des prédicats du premier ordre Propriétés F ==> G = NON F V G F <==> G = (NON F V G)&(NON G VF) NON (x F[x] ) = x NON F[x] NON (x F[x] ) = x NON F[x] x F[x] & x G[x] = x ( F[x] & G[x] ) x F[x] V x G[x] = x ( F[x] V G[x] )

Programmation logique Logique des prédicats du premier ordre Inconsistance et validité d'une formule fbf inconsistante (in satisfiable) fausse pour toute interprétation. fbf valide : vraie pour toute interprétaion. (Donc fbf satisfiable : vraie pour quelques interpétations fbf non valide : fausse pour quelques interpétations ) Conséquences fbf valide ==> fbf satisfiable fbf inconsistante ==> fbf invalide

Programmation logique Logique des prédicats du premier ordre Inconsistance et validité d'une formule Q est une conséquence logique de P1, P2, ....Pn ] <==> [Si P1 & p2 ...& Pn est vraie pour toute interprétation, alors Q est aussi vrai]. Exemples : P & NON P : inconsistante ( fausse pour toute interprétation) P V NON P : valide ( vrai pour toute interprétaion)

Programmation logique Logique des prédicats du premier ordre Variables liées et libres Dans l'expression x ( P(x) ==> Q(x, y) ) x est une variable liée et y est une variable libre. Une expression ne peut être évaluée que lorsque toutes les variables sont liées. Aussi, nous exigeons que toutes les fbf contiennent que les variables liées.

Programmation logique Logique des prédicats du premier ordre Forme normale conjonctive Soient F1, F2, ...des formules : Si chaque Fi est uniquement sous forme disjonctive de littéraux(V), alors la forme F1 & F2 &.....Fn est dite une forme normale conjonctive. Exemple : (NON P V Q V R) & (NON P V NON Q) & NON R est une forme conjonctive.

Programmation logique Logique des prédicats du premier ordre Forme normale disjonctive Soient F1, F2, ...des formules : Si chaque Fi est uniquement sous forme conjonctive de littéraux(V), alors la forme F1 V F2 V.....Fn est dite une forme normale disjonctive. Exemple: (P & Q & R) V (Q & R) V P est une forme disjonctive. Il a été démontré que toute formule peut être transformée en une forme normale disjonctive ou conjonctive.

Programmation logique Logique des prédicats du premier ordre Règles d'inférence Les règles d'inférence fournissent un moyen de faire des démonstrations ou des déductions logiques. Le problème est le suivant : étant donné un ensemble d'énoncés {s1, s2, ...sn} les prémices, prouver la vérité de s( conclusion). L'utilisation de la table de vérité est un moyen de démonstration(sémantique). D'autres méthodes reposent uniquement sur les transformations syntaxiques. Elles utilisent alors les règles d'inférences suivantes : Modus Ponens, Modus tollens, Chaînage, Substitution, Conjonction, contraposée.

Programmation logique Logique des prédicats du premier ordre Règles clés utilisées dans les démonstrateurs : Modus ponens De P et P-->Q, on déduit Q, qui s'exprime : P P-->Q ---------Modus Ponens Q

Programmation logique Logique des prédicats du premier ordre Règles clés utilisées dans les démonstrateurs : Modus Tollens De Non Q et P -->Q, on déduit Non P. Non Q P ==> Q ----------Modus Tollens Non P

Programmation logique Logique des prédicats du premier ordre Règles clés utilisées dans les démonstrateurs : Chaînage De P --> Q et Q --> R, on déduit P --> R P-->Q Q-->R P-->R Cette dernière est équivalente à: Non P V Q Non Q V R Non P V R

Programmation logique Logique des prédicats du premier ordre Autres règles : Substitution : De P & Q, on déduit P P & Q P Conjonction De P et de Q, on déduit P & Q Q .

Programmation logique Logique des prédicats du premier ordre Autres règles : Contraposée De P --> Q, on déduit Non Q --> Non P P --> Q Non Q --> Non P