26
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

  • Upload
    umeko

  • View
    67

  • Download
    0

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Programmation logique  Logique des prédicats du premier ordre

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

Page 2: Programmation logique  Logique des prédicats du premier ordre

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.

Page 3: Programmation logique  Logique des prédicats du premier ordre

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.

Page 4: Programmation logique  Logique des prédicats du premier ordre

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

Page 5: Programmation logique  Logique des prédicats du premier ordre

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.

Page 6: Programmation logique  Logique des prédicats du premier ordre

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.

Page 7: Programmation logique  Logique des prédicats du premier ordre

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.

Page 8: Programmation logique  Logique des prédicats du premier ordre

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) )

Page 9: Programmation logique  Logique des prédicats du premier ordre

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.

Page 10: Programmation logique  Logique des prédicats du premier ordre

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.

Page 11: Programmation logique  Logique des prédicats du premier ordre

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

Page 12: Programmation logique  Logique des prédicats du premier ordre

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.

Page 13: Programmation logique  Logique des prédicats du premier ordre

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.

Page 14: Programmation logique  Logique des prédicats du premier ordre

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

Page 15: Programmation logique  Logique des prédicats du premier ordre

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] )

Page 16: Programmation logique  Logique des prédicats du premier ordre

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

Page 17: Programmation logique  Logique des prédicats du premier ordre

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)

Page 18: Programmation logique  Logique des prédicats du premier ordre

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.

Page 19: Programmation logique  Logique des prédicats du premier ordre

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.

Page 20: Programmation logique  Logique des prédicats du premier ordre

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.

Page 21: Programmation logique  Logique des prédicats du premier ordre

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.

Page 22: Programmation logique  Logique des prédicats du premier ordre

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

Page 23: Programmation logique  Logique des prédicats du premier ordre

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

Page 24: Programmation logique  Logique des prédicats du premier ordre

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

Page 25: Programmation logique  Logique des prédicats du premier ordre

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 P Q . P & Q

Page 26: Programmation logique  Logique des prédicats du premier ordre

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