INFO-F-302, Cours d’Informatique Fondamentale - … · INFO-F-302, Cours d’Informatique...

64
INFO-F-302, Cours d’Informatique Fondamentale INFO-F-302, Cours d’Informatique Fondamentale Emmanuel Filiot epartement d’Informatique Facult´ e des Sciences Universit´ e Libre de Bruxelles Ann´ ee acad´ emique 2016-2017

Transcript of INFO-F-302, Cours d’Informatique Fondamentale - … · INFO-F-302, Cours d’Informatique...

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

INTRODUCTION A LALOGIQUE

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

12 Un petit dernier ...

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/

0¥.

p

¥6AT

NP

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