info-f-302, cours d’informatique fondamentale - … · info-f-302, cours d’informatique...
TRANSCRIPT
INFO-F-302, Cours d’Informatique Fondamentale
INFO-F-302, Cours d’Informatique Fondamentale
Emmanuel FiliotDepartement d’Informatique
Faculte des SciencesUniversite Libre de Bruxelles
Annee academique 2016-2017
INFO-F-302, Cours d’Informatique Fondamentale
Informatique Fondamentale
Informatique fondamentale et modelisation
L’informatique fondamentale est une branche de l’informatique dont leprincipal but est la modelisation de problemes, concepts ou applicationsinformatiques, et le developpement d’algorithmes pour analyser lesmodeles.
I les modeles sont generalement des concepts abstraits, basesnotamment sur les mathematiques
I l’abstraction permet de simplifier les problemes concrets et de seconcentrer sur leurs aspects essentiels
I l’abstraction permet plus de rigueur par une formalisation precise
INFO-F-302, Cours d’Informatique Fondamentale
Exemples de modeles
I graphes : modeles de reseaux – sociaux, routiers, web, etc. –), dedependances (entre les variables d’un programme, entre les classesen programmation objet, etc.), ...
I la logique : modelise les enonces mathematiques
I les systemes de deduction : modelisent la notion de preuve
I la machine de Turing
I les automates : modelisent des programmes informatiques “simples”
I les mots sur un alphabet quelconque : modelisent par exemple lesinstances d’un probleme, qu’on representent comme des mots, oudes sequences d’ADN, etc.
I langages de mots : modelisent des problemes de decision (ensembledes instances ayant une solution)
I chaınes de Markov : modelisent des systemes probabilistes
INFO-F-302, Cours d’Informatique Fondamentale
Reductions entre problemesI une notion essentielle en informatique fondamentaleI modelisation d’un probleme par un autre
Pour les problemes de decision (reponse oui/non)
Reduire un probleme A dans un probleme B , c’est trouver une methodepermettant d’encoder toute entree I
A
du probleme A comme une entreeIB
du probleme B , telle que
IA
a une solution si et seulement si IB
a une solution
I parfois on demandera que cette methode soit un algorithmeI pour les problemes qui ne sont pas des problemes de decision (trier
un tableau par exemple), on demandera que toute solution de IA
s’encode en une solution de IB
et reciproquement toute solution deIB
se decode en une solution de IA
INFO-F-302, Cours d’Informatique Fondamentale
Exemple de reduction
I probleme A :I INPUT : un tableau d’entier
I OUTPUT : oui si tous les elements sont distincts, non sinon
I probleme B :I INPUT : un tableau d’entier,
I OUTPUT : oui si la suite des elements est strictement croissante,
non sinon
I reduction : trier le tableau.
I complexite en temps = Reduction + cout pour resoudre B= O(n.log(n)) + O(n) = O(n.log(n))
I nous verrons beaucoup d’autres exemples dans ce cours.
INFO-F-302, Cours d’Informatique Fondamentale
6 Objectifs du cours
I apprendre a modeliser des problemes de maniere precise et rigoureuse
I maıtriser la notion de reduction entre problemes
I acquerir des notions de base sur les concepts et modelesfondamentaux de l’informatique
Plan
I modeles pour les enonces mathematiques et les preuves : la logiqueet les systemes de deduction
I application de la logique a l’informatique : les solveurs SAT
I notion de complexite de problemes et reduction entre problemes
I modeles de calcul et notion d’indecidabilite
I modeles de programmes : les automates finis
INFO-F-302, Cours d’Informatique Fondamentale
7 Organisation pratique du cours
References I Logic in Computer Science : Modeling and Reasoningabout Systems, M. R. A. Huth and M. Ryan,Cambridge University Press, 1999.
I Mathematical Logic for Computer Science, M.Ben-Ari, Prentice Hall, 1993.
I Introduction to the theory of computation, MichaelSipser, Wadsworth Publishing Co Inc, 2012.
Page web du cours www.ulb.ac.be/di/info-f-302/
Materiel Les slides utilises lors des cours seront disponibles sur lapage web du cours au fur et a mesure.
Travaux pratiques Assistant : Ismael Jecker
Contact I email : [email protected] pro jet314 examen
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
9 Qu’est-ce que la logique ?
Definition du Littre“Science qui a pour objet les procedes du raisonnement”.
Definition du Tresor“Science relative aux processus de la pensee rationnelle (induction,deduction, hypothese p. ex.) et a la formulation discursive des verites.”.
Definition du Larousse“Science du raisonnement en lui-meme, abstraction faite de la matiere alaquelle il s’applique et de tout processus psychologique.”.
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
10 Origines de la logique : Grece Antique
I enseignement du discours (logos en grecque) et de la rhetorique.Aristote (�384,�322) .
I Formaliser les regles de deduction.
I Decrire avec precision et rigueur des enonces et des raisonnementssur ces enonces.
I Exemple : syllogisme
1. Tous les hommes sont mortels.
2. Or X est un homme.
3. Donc X est mortel.
I Si les premisses sont vrais (1 et 2), les regles de la logique assurentque 3 est vrai, peu importe la valeur de X .
I En notation ensembliste, cela s’exprime ainsi : si H ✓ M et X 2 H,alors X 2 M.
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
11 Fausses verites et paradoxes
I l’utilisation du langage naturel comme notation est imprecise et peutmener a des enonces faux ...
1. Tout ce qui est rare est cher
2. Or une chose pas chere, c’est rare
3. Donc une chose pas chere, c’est cher.
I ... ou a des paradoxes
ICette phrase est fausse. Probleme de l’auto reference.
IUn crocodile s’empare d’un bebe crocodile et propose a sa mere de
recuperer son bebe si elle devine ce qu’il va en faire, ce a quoi elle
repond “tu vas le devorer”. Que va donc faire le crocodile ?
ILe barbier rase tous les hommes qui ne se rasent pas eux-memes et
seulement ceux-la. Qui rase le barbier ?
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
13 Logique Moderne
I 19e siecle : la logique devient un outil scientifique (Boole, Hilbert,Godel, Church, Turing ...).
I Formaliser les mathematiques comme un langage. Formaliser leconcept de demonstration.
I Specifier des proprietes de systemes informatiques de maniereprecise et rigoureuse : c’est cet aspect qui va nous interesser pourle model-checking.
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
14 Exemple
Considerons la situation decrite par les a�rmations suivantes :
1. Si le train arrive en retard et il n’y a pas de taxis a la gare alorsl’invite arrive en retard.
2. L’invite n’est pas en retard.
3. Le train est arrive en retard.
Et la deduction suivante : il y avait des taxis a la gare.
QuestionPourquoi peut-on deduire qu’il y avait des taxis a la gare ?
Premierement, si on met l’a�rmation 1 et l’affirmation 3 ensemble, onpeut a�rmer que s’il n’y avait pas eu de taxis a la gare, alors l’inviteserait arrive en retard. D’apres l’a�rmation 2, l’invite n’est pas arrive enretard. Donc il y avait des taxis a la gare.
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
15 Autre Exemple
Considerons un autre exemple :
1. Si il pleut et l’invite a oublie son parapluie alors l’invite est trempe.
2. L’invite n’est pas trempe.
3. Il pleut.
Et la deduction suivante : l’invite n’a pas oublie son parapluie.
QuestionPourquoi peut-on deduire que l’invite n’a pas oublie son parapluie ?
Premierement, si on met l’a�rmation 1 et l’affirmation 3 ensemble, onpeut a�rmer que si l’invite avait oublie son parapluie, alors il seraittrempe. D’apres l’a�rmation 2, l’invite n’est pas trempe. Donc l’inviten’a pas oublie son parapluie.
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
16 Remarque
La deuxieme demonstration suit la meme structure logique que lapremiere demonstration. Il su�t de remplacer les fragments de phrase
comme suit :
Exemple du train Exemple du parapluieLe train est arrive en retard Il pleutIl y a des taxis a la gare L’invite a son parapluieL’invite est en retard L’invite est mouille.
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
17 Formalisation Logique
Exemple du train Exemple du parapluie PropositionLe train est arrive en retard Il pleut pIl y a des taxis a la gare L’invite a son parapluie qL’invite est en retard L’invite est mouille r
Demonstration
1. Hypothese : si p et non q, alors r
2. Hypothese : p
3. Hypothese : non r
4. Deduction : si non q alors r
5. Deduction : comme non r , alors q.
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
18 Formalisation logique
Alors nous pouvons formaliser les situations decrites dans ces deuxpremiers exemples par la formule logique suivante :
((p ^ ¬q) ! r) ^ ¬r ^ p
Et nous pouvons formaliser la deduction par :
((p ^ ¬q) ! r) ^ ¬r ^ p |= q
Ou “|=” se lit : “q est une consequence logique de((p ^ ¬q) ! r) ^ ¬r ^ p”.
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
19 Conditions Booleennes dans les langages de programmation
Considerons le test suivant :
if (x � 3 and z 3) or (y 2 and z 3) then ...
Il peut-etre remplace par
if (x � 3 or y 2) and z 3 then ...
Car (p _ q) ^ r est logiquement equivalent a (p ^ r) _ (q ^ r).
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
20 Logique Propositionnelle
I les propositions sont representees par des variables propositionnellesp, q, r , . . .
I les formules sont des suites de symboles construites a partir desvariables propositionnelles et des connecteurs Booleens ^, _, ¬,!,. . . . On parlera de syntaxe.
I Exemple : (p ^ q) ! (p _ q).I La semantique des formules est definie en interpretant les variables
propositionnelles par des valeurs Booleennes vrai (>) et faux (?), eten interpretant les connecteurs Booleens comme des fonctionsBooleennes.
I Une formule est satisfaisable si elle est vraie pour une certaineinterpretation de ses variables. Ex : p, p_ q, p ! q, mais pas p^¬p.
I Une formule est valide si elle est vraie pour tout interpretation de sesvariables. Ex : p ! p, p _ ¬p, p ! (q ! (p ^ q)).
I Questions : comment decider si une formule est satisfaisable ?valide ?
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
21 Modelisation en Logique Propositionnelle
Modelisation
I Soit une instance I d’un probleme P quelconque (par exemple, unebase de donnees d’etudiants et de cours, une grille de jeu Sudoku,un ensemble de tache avec des delais et un ensemble de processeurs,...).
I Il s’agira de definir un ensemble de propositions Prop et une formulede la logique propositionnelle � construite sur Prop, telle que I aune solution si et seulement si � est satisfaisable, i.e. il existe unassignement des variables de Prop (a vrai ou faux) qui rend vraie laformule.
I idealement, l’assignement trouve doit nous donner la solution auprobleme I : emploi du temps, grille resolue, ordre d’a↵ectation destaches aux processeurs ...
P SAT
I -A> $
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
22 Exemple
I Prop = {pi,j,v | i , j , v 2 {1, . . . , 9}}
I pi,j,v est mise a vraie ssi la case de coordonnees
(i , j) contient la valeur v
I les formules devront exprimer les regles duSudoku :
1. chaque valeur de 1 a 9 apparaıt exactement une
fois sur chaque ligne et chaque colonne
2. chaque sous-carre 3x3 doit contenir chaque
valeur de 1 a 9 exactement une fois
3. les contraintes de depart doivent etre respectees
I ce qui donnera par exemple :p1,1,1 ! ¬p1,2,1 ^ · · · ^ ¬p1,9,1 (si la case decoordonnees (1, 1) contient la valeur 1, alors lescases de coordonnees (1, 2) a (1, 9) necontiennent pas la valeur 1).
1>42,6 ^ . . -...
i
Pyz ,6demaete
y-
vraie j→ Of
0
( 3,6 ) he doit Pas contain deux valeurs different :
Example de contraire-
( 3,4 ) he wnhentpas dux
valens different- ( 3,4 ) he contiestpas 1 et 2
7/03 , 4,1✓ 7P3
, 4,2.
-
-- - - . n et 3
7103, 4,1
✓ 7103,4 ,]
. -
-. - .
^ er 4
:
1
2 et 3iz et 4
7ps, g. 2
✓ 73,4,
4
Nfl103,4, .ir
✓ 1103,4 ,⇒( on , vote { 1
,. . -1932
4 FVZPourtoutesles cases
..NL?isioiV7Pi.j,⇒( i ,j)C{ 1
,. .
, 932( v
, ,vz)e4 ... ,9Tv. ⇐ on
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
23 Vers plus d’expressivite
PhraseChaque etudiant est plus jeune qu’un professeur.
Nous pouvons identifier cette phrase avec une variable propositionnelle p.La logique propositionnelle n’est n’est pas assez fine pour modeliser cettesituation de maniere precise
Decomposition
Quels sont les elements essentiels de cette phrase ?
1. etre un etudiant
2. etre un professeur
3. etre plus jeune que quelqu’un d’autre
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
24 Vers plus d’expressivite : les predicats
PhraseChaque etudiant est plus jeune qu’un professeur.
1. etre un etudiant
2. etre un professeur
3. etre plus jeune que quelqu’un d’autre
Ces qualites sont representees par des predicats.
1. E (alice) : alice est une etudiante
2. P(john) : john est un professeur
3. J(alice, john) : alice est plus jeune que john
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
25 Vers plus d’expressivite : les variables
De maniere generale, on utilise des variables x , y , z , . . . pour abstrairedes valeurs concretes :
1. E (x) : x est un etudiant
2. P(y) : y est un professeur
3. J(x , y) : x est plus jeune que y
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
26 Vers plus d’expressivite : les quantificateurs
PhraseChaque etudiant est plus jeune qu’un professeur.
On a besoin de quantificateurs :
universel 8, pour toutexistentiel 9, il existe
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
27 Vers plus d’expressivite : la logique du premier ordre
PhraseChaque etudiant est plus jeune qu’un professeur.
Voici comment representer cette phrase en logique du premier ordre(appelee aussi logique des predicats) :
8x : (E (x) ! (9y : P(y) ^ J(x , y)))
qui se lit : “pour tout x , si x est un etudiant, alors il existe y tel que yest un professeur et x est plus jeune que y .
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
28 Logique du premier ordre : autre exemple
I Considerons les predicats suivants :I O(x) : x est un oiseau
I V (x) : x sait voler
I et les phrases suivantes :
Iil n’est pas vrai que tous les oiseaux savent voler
¬(8x : (O(x) ! V (x)))
Ide maniere equivalente, il existe un oiseau qui ne sait pas voler :
9x : O(x) ^ ¬V (x)
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
29 La logique du premier ordre : un dernier exemple
Considerons les regles suivantes :
1. les parents d’un enfant sont des ancetres de cet enfant ;
2. les ancetres d’une personne qui est l’ancetre d’une deuxiemepersonne sont egalement ancetres de cette deuxieme personne ;
3. deux personnes sont d’une meme famille si et seulement si elles ontun ancetre commun.
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
30 La logique du premier ordre – un dernier exemple
Formalisation de la regle SpecApparente :
1. 8x , y : Parent(x , y) ! Ancetre(x , y)
2. 8x , y : (9z : Ancetre(x , z) ^ Ancetre(z , y)) ! Ancetre(x , y)
3. 8x , y : Apparente(x , y) $ 9z : Ancetre(z , x) ^ Ancetre(z , y)↳anamf.it?z...itE...y
?
• ×
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
31 La logique du premier ordre – un dernier exemple
La formalisation de cet exemple permet maintenant de faire des “calculs”pour raisonner sur cette regle. Par exemple, il est possible de poser demaniere precise des questions comme :
I est-ce qu’un parent x et son enfant y sont apparentes ?
SpecApparente |=? 8x , y : Parent(x , y) ! Apparente(x , y)
I est-ce que la relation Apparente est symetrique ?
SpecApparente |=? 8x , y : Apparente(x , y) ! Apparente(y , x)
NoteRepondre a ces questions de maniere formelle revient a faire une preuvequi etablit la propriete ou a construire un contre-exemple.
INFO-F-302, Cours d’Informatique Fondamentale
Introduction a la logique
Exemples d’application de la logique en informatique
I design de circuits numeriques
I verification hardware et software, model-checking. Logiquestemporelles.
I preuves de programmes
I bases de donnees : SQL.
I theorie de la complexite. Classes P et NP .
I ...
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Logique PropositionnelleLogique Propositionnelle Definitions de base : Syntaxe, Semantique et
Exemples
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Syntaxe
34 Construction des formules
Le vocabulaire du langage de la logique propositionnelle est compose :
I d’un ensemble, fini ou denombrable, de propositions noteesp, q, r , . . .Dans la suite, nous notons les ensembles de propositions par leslettres P , Q,... ;
I de deux constantes : vrai (notee >) et faux (notee ?), parfois notee1 et 0 ;
I d’un ensemble de connecteurs logiques : et (note ^), ou (note _),non (note ¬), implique (note !), equivalent (note $) ;
I les parentheses : (,).
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Syntaxe
35 Construction des formules
Soit P un ensemble de propositions. Les formules de la logiquepropositionnelle respectent la regle de formation BNF suivante :
� ::= > | ? | p | �1 ^ �2 | �1 _ �2 | �1 ! �2 | �1 $ �2 | ¬�1 | (�1)
Ou >, ? sont respectivement les constantes vrai et faux, p 2 P est uneproposition et �1, �2 sont des formules propositionnelles bien formees.
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Syntaxe
36 Quelques exemples de formules
Voici quelques exemples de formules et leur lecture intuitive :
I la formule propositionnelle ”p ! (q ^ r)”, peut etre lue de la faconsuivante ”p implique q et r”, ou peut etre egalement lue comme ”sip est vrai alors q et r doivent etre vrais” ;
I la formule propositionnelle ”¬(p ^ q)”, peut-etre lue de la faconsuivante ”il est faux que p et q soient vrais (en meme temps)”.
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Syntaxe
37 AmbiguıtesL’utilisation de la notation infixe s’accompagne de problemes de lecture :
Comment lire p ^ q _ r ? p ! q ! r ?
Pour lever les ambiguıtes, on utilise les parentheses ou des regles depriorite entre operateurs :
I si op1 a une plus grande precedence (priorite) que op2 alors
e1op1e2op2e3 est equivalent a ((e1op1e2)op2e3)I
Par ex :2⇥ 3 + 5 = (2⇥ 3) + 5 = 11 6= 2⇥ (3 + 5) = 16.
I si op2 a une plus grande precedence (priorite) que op1 alors
e1op1e2op2e3 est equivalent a (e1op1(e2op2e3))I
Par ex :2 + 3⇥ 5 = 2 + (3⇥ 5) = 17.
I si op est associatif a gauche alors
e1ope2ope3 est equivalent a ((e1ope2)ope3)I
Par ex : 10/2/5 = (10/2)/5 = 1 6= 10/(2/5) = 25.
Il faut donc fixer des regles de priorite entre operateurs afin d’avoir unelecture unique de la formule.
A #rail:
e, op e
, ope ]se
lit
( e, oplezope}))
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Syntaxe
38 Regles de precedence en logique propositionnelle
Ordre de precedence � sur les operateurs :
$ � ! � _ � ^ � ¬
et associativite a gauche pour $,_,^ et a droite pour !.
Exemplesp _ q ^ r se lit p _ (q ^ r)p ! q ! p se lit p ! (q ! p)p _ q ! r se lit (p _ q) ! r¬p ^ q se lit (¬p) ^ qp ! q ^ r ! s se lit p ! ((q ^ r) ! s)
Remarque
Les parentheses permettent de contrecarrer ces regles, si elles neconviennent pas. Elles permettent aussi de rendre une formule plus lisible,ou de ne pas devoir retenir les regles de precedence.
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Syntaxe
39 Arbre correspondant a une formuleLa formule p ! q ^ r ! s est donc equivalente a
p ! ((q ^ r) ! s)
et donc son arbre de lecture est :
!
p !
^
q r
s
1 |
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Semantique
40 La semantique
I jusqu’ici, on a vu la syntaxe des formules, qui ne sont rien d’autreque des suites de caracteres sans signification.
I la semantique donne du sens aux formules, elle permet de lesinterpreter et de leur attribuer une valeur de verite vrai ou faux.
I l’interpretation des symboles de proposition est cependant libre etc’est a nous de la fixer. On se donnera donc une une fonctiond’interpretation V pour l’ensemble P de propositions considerees :
V : P ! {0, 1}
Cette fonction assigne a chaque proposition de P la valeur vrai ou lavaleur faux.
I Dans la suite, nous utiliserons parfois le terme valuation , souventutilise dans la litterature, au lieu de fonction d’interpretation.
I A partir d’une fonction d’interpretation V des symboles deproposition, nous allons voir comment interpreter les formules.
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Semantique
41 La semantique
Definition
I La valeur de verite d’une formule propositionnelle � formee a partirdes propositions d’un ensemble P , evaluee avec la fonctiond’interpretation V , est notee [[�]]
V
. En particulier, on a[[�]]
V
2 {0, 1}.I La fonction [[�]]
V
est definie par induction sur la syntaxe de � de lafacon suivante :
I � = >, dans ce cas, [[�]]V
= 1 ;
I � = ?, dans ce cas, [[�]]V
= 0 ;
I � = p, dans ce cas, [[�]]V
= V (p).
I � = ¬�1, [[�]]V =
⇢0 si [[�1]]V = 1
1 si [[�1]]V = 0
I � = �1 _ �2, [[�]]V = 1 ssi [[�1]]V = 1 ou [[�2]]V = 1
I � = �1 ^ �2, [[�]]V = 1 ssi [[�1]]V = 1 et [[�2]]V = 1
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Semantique
42 La semantique
I � = �1 ! �2,
[[�]]V
= 1 ssi [[�1]]V = 0ou [[�2]]V = 1
I � = �1 $ �2,
[[�]]V
= 1 ssi[[�1]]V = 0 et [[�2]]V = 0ou[[�1]]V = 1 et [[�2]]V = 1
I � = (�1), [[�]]V = [[�1]]V .
Nous notons V |=� si et seulement si [[�]]V
= 1, qui se dit “V satisfait �”.
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Semantique
43 La semantique sous forme de tables de verites
L’information contenue dans la definition precedente est souventpresentee sous forme de tables, appelees tables de verite :
> ?1 0
� ¬� (�)1 0 10 1 0
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Semantique
44 La semantique sous forme de tables de verites
�1 �2 �1 ^ �2 �1 _ �2 �1 ! �2 �1 $ �21 1 1 1 1 11 0 0 1 0 00 1 0 1 1 00 0 0 0 1 1
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Exemples
45 Exemples
I Prenons l’interpretation V1(p) = 0, alors on a :
[[p]]V1 = 0 [[¬p]]
V1 = 1 [[p ^ p]]V1 = 0 [[p ^ ¬p]]
V1 = 0[[p ! p]]
V1 = 1 [[p $ p]]V1 = 1 [[¬p ! p]]
V1 = 0
I Prenons la formule � = (p _ q) ^ (¬q _ r) et l’interpretationV2(p) = V2(r) = 1 et V2(q) = 0. Pour calculer la valeur de verite de�, on calcule d’abord les valeurs de verite des sous-formules et onapplique les tables de verite.
(p _ q) ^ (¬q _ r)(1 _ 0) ^ (¬0 _ 1)(1 _ 0) ^ (1 _ 1)
1 ^ (1 _ 1)1 ^ 11
Donc [[�]]V2 = 1.
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Exemples
46 Exemples
I Prenons la meme formule � = (p _ q) ^ (¬q _ r) et l’interpretationV3(r) = 1 et V3(p) = V3(q) = 0.
(p _ q) ^ (¬q _ r)(0 _ 0) ^ (¬0 _ 1)(0 _ 0) ^ (1 _ 1)
0 ^ (1 _ 1)0 ^ 10
Donc [[�]]V3 = 0.
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Exemples
47 Exemples
On peut utiliser le principe de decomposition en sous-formule etl’application des tables de verite pour obtenir la valeur de verite de �pour toutes les interpretations possibles des variables
p q r (p _ q) ¬q (¬q _ r) (p _ q) ^ (¬q _ r)1 1 1 1 0 1 11 1 0 1 0 1 11 0 1 1 1 1 11 0 0 1 1 1 10 1 1 1 0 1 10 1 0 1 0 0 00 0 1 0 1 1 00 0 0 0 1 1 0
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Exemples
48 Exemples
I ¬p _ q (qui se lit (¬p) _ q)
p q ¬p ¬p _ q1 1 0 11 0 0 00 1 1 10 0 1 1
I Remarque : c’est la meme table de verite que pour l’implication :
p q p ! q1 1 11 0 00 1 10 0 1
I On dira que les deux formules ¬p _ q et p ! q sont equivalentes.
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Exemples
49 Remarques sur l’implication
I l’implication �1 ! �2 modelise le raisonnement si-alors :
Si �1 est vraie, ALORS �2 est vraie aussi.
I le cas ou �1 est faux ne nous interesse pas dans l’implication.
I par consequent, si �1 est faux, alors peu importe la valeur de veritede �2, l’implication �1 ! �2 reste vraie.
I Autrement dit le faux implique le vrai, et le faux, mais le vrai doittoujours impliquer le vrai.
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Exemples
50 Un dernier exemple : � = ¬(p ^ q) $ (¬p _ ¬q)
I Calculons la table de verite :
p q p ^ q ¬(p ^ q) ¬p ¬q ¬p _ ¬q �1 1 1 0 0 0 0 11 0 0 1 0 1 1 10 1 0 1 1 0 1 10 0 0 1 1 1 1 1
I pour toute les interpretations possibles des propositions, � est vraie.On dira dans ce cas que � est valide.
I En fait, on a montre ici que les deux formule ¬(p ^ q) et ¬p _ ¬qsont equivalentes. C’est une des lois de Morgan.
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Exemples
51 Exercices
Dire pour les interpretations V et les formules � suivantes si V |= � :
1. V (p) = 1, V (q) = 0 et � = (p ! q) ^ (p ! ¬q)2. V (p) = V (q) = 0 et � = ((¬p ! q) ! (¬q ! p)) ^ (p _ q)
3. V (p) = 0 et V (q) = 1 et � = ((¬p _ q) ! (q ^ (p $ q))
4. V (p) = V (r) = 1 et V (q) = 0 et� = ((¬r ! ¬p ^ ¬q) _ s) $ (p _ q ! r _ s)
5. V (p) = V (q) = 0 et V (r) = 1 et� = (p ^ (q ! r)) $ ((¬p _ q) ! (p ^ r)).
Construire les tables de verite pour les formules suivantes :
1. (p ! q) _ (q ! p)
2. p ^ (p ! ¬q) ^ q
3. (p ! (q ^ r)) $ (p ! q) ^ (p ! r)
4. (p ! (q ! r)) ! ((p ^ q) ! r)
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Satisfaisabilite et Validite
52 Validite et Satisfaisabilite
Voici deux definitions importantes :
Definition (Satisfaisabilite)
Une formule propositionnelle � est satisfaisable si et seulement si il existeune fonction d’interpretation V pour les propositions de �, telle queV |=�.
Definition (Validite)
Une formule propositionnelle � est valide si et seulement si pour toutefonction d’interpretation V pour les propositions de �, on a V |=�.
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Satisfaisabilite et Validite
53 Exemples
formule satisfaisable valide> oui ouip oui non
V (p) = 1 V (p) = 0¬p oui non
V (p) = 0 V (p) = 1(p _ q) ^ (¬q _ r) oui non
voir table precedente voir table precedentep ^ ¬p non non
p ^ ¬q ^ (¬q ! ¬p) non nonp _ ¬p oui oui
(p ! q) _ (q ! p) oui oui
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Satisfaisabilite et Validite
54 Notion de consequence logique
DefinitionSoit �1, . . . ,�n,� des formules. On dira que � est une consequencelogique de �1, . . . ,�n, note �1, . . . ,�n |= �, si (�1 ^ · · · ^ �
n
) ! � estvalide.
Par exemple, p,¬p |= ?, et �1,�1 ! �2 |= �2.
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Satisfaisabilite et Validite
55 Application importante de la notion de validite
DefinitionDeux formules � et sont dites equivalentes si la formule �$ estvalide. On notera � ⌘ pour signifier que � et sont equivalentes.
I dans une formule, on peut substituer une sous-formule par une autreequivalente sans changer la semantique de la formule de depart
I par exemple, dans la formule
� = (p _ q) ^ ¬(p ^ r)
on peut remplacer la sous-formule ¬(p ^ r) par (¬p _ ¬r) et onobtient la formule suivante, qui est equivalente a � :
�0 = (p _ q) ^ (¬p _ ¬r)
I l’application d’equivalences simples va nous permettre de simplifierdes formules, et de les mettre sous des formes particulieres
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Satisfaisabilite et Validite
56 Quelques equivalences
Pour toutes formules �1,�2,�3, on a :
I ¬¬�1 ⌘ �1 (double negation)
I ¬(�1 ^ �2) ⌘ (¬�1 _ ¬�2) (loi de De Morgan pour le ’et’)
I ¬(�1 _ �2) ⌘ (¬�1 ^ ¬�2) (loi de De Morgan pour le ’ou’)
I �1 ^ (�2 _ �3) ⌘ (�1 ^ �2) _ (�1 ^ �3) (distributivite du ’et’)
I �1 _ (�2 ^ �3) ⌘ (�1 _ �2) ^ (�1 _ �3 (distributivite du ’ou’)
I �1 ! �2 ⌘ ¬�2 ! ¬�1 (contraposition)
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Satisfaisabilite et Validite
57 Lien entre satisfaisibilite et validite
TheoremeUne formule propositionnelle � est valide ssi sa negation ¬� n’est passatisfaisable.
Par consequent, si on dispose d’un algorithme qui decide si une formuleest satisfaisable ou non, on obtient un algorithme qui decide si la formuleest valide, il su�t de tester la (non-)satisfaisabilite de sa negation.
$ uol.de 7$^ °
'0g } goanwfasole
;
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Satisfaisabilite et Validite
58 Diagramme
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Satisfaisabilite et Validite
59 Comment tester la satisfaisabilite d’une formule ?
I on a vu la methode des tables de verite : tester toutes lesinterpretations de propositions jusqu’a ce qu’on en trouve une quisatisfait la formule
I probleme : quelle est la complexite d’un tel algorithme ? combiend’interpretations faut-il tester si la formule contient n propositions ?
I il faut essayer, dans le pire des cas (c’est a dire le cas ou la formulen’est pas satisfaisable), 2n interpretations : cet algorithme a doncune complexite exponentielle dans le nombre de propositions
I ce n’est pas raisonnable pour les applications que nous allonsaborder, car nous allons generer des formules contenant plusieurscentaines de propositions.
I nous allons maintenant etudier un algorithme “plus intelligent” : lamethode des tableaux semantiques.
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Satisfaisabilite et Validite
60 Remarques sur la complexite du probleme SAT
I le probleme de satisfaisabilite d’une formule propositionnelle, appeleprobleme SAT, est dans la classe NP (voir courscalculabilite/complexite)
I actuellement, on ne sait toujours pas s’il existe un algorithme pource probleme dont la complexite en temps est polynomiale.
I la plupart des scientifiques pensent que ce n’est pas le cas, maispersonne n’a ete capable de le montrer.
I ce defit scientifique est plus connu sous la question P 6= NP : est-cequ’il existe un probleme resoluble en temps non-deterministepolynomial qui n’est pas resoluble en temps polynomial ?
I le premier qui aura la reponse (et la preuve de son a�rmation)gagnera 1.000.000$ 1
1. Millenium Prize Problems du Clay Mathematics Institute http://www.claymath.org/millennium/
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Satisfaisabilite et Validite
61 Pourquoi SAT est-il si interessant ?
I beaucoup de problemes pratiques interessants se trouvent dans laclasse NP, voir http://www.nada.kth.se/
~
viggo/problemlist/.
I par exemple le probleme du voyageur de commerce : etant donneune distance d et n villes, est-il possible de construire un cycle delongueur au plus d qui passe par les les n villes exactement une fois(sauf la ville de depart). Application : optimiser la trajectoire d’unefraiseuse, d’un bus scolaire, d’un camion de livraison, etc ...
I autre exemple, le bin-packing : etant donne k boıtes de contenancedi↵erentes, n objets de volumes di↵erents, et d � 0 un entier, est-ilpossible de ranger les n objets en utilisant au plus d boıtes.Application : rangement de fichiers sur un support informatique,remplissage de camions ou containers ...
' Death U
INFO-F-302, Cours d’Informatique Fondamentale
La Logique Propositionnelle
Satisfaisabilite et Validite
62 Pourquoi SAT est-il si interessant ?
I tous les problemes de la classe NP se reduisent au probleme SAT entemps polynomial. En d’autre terme, pour resoudre une instance I duprobleme du voyageur de commerce ou du bin-packing, il est possiblede construire, en temps polynomial, une formule de la logiquepropositionnelle �
I
telle que �I
est satisfaisable ssi I a une solution
I il est donc important d’avoir de “bons” algorithmes pour SAT