• Aucun résultat trouvé

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples

N/A
N/A
Protected

Academic year: 2022

Partager "Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples"

Copied!
80
0
0

Texte intégral

(1)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples

Chapitre 6

Modélisation en logique propositionnelle Cours 1

Premiers Exemples

(2)

Table de Matières

(3)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Introduction

Résumé du cours précedent

Formule en DNF CNF

Satisfaisabilité : trivial DPLL

Validité : DPLL dual trivial

(4)

Modéliser et résoudre

I Outils ecaces (en pratique) pour trouver des solutions des formules en forme CNF : DPLL, et plus récemment les SAT-solveurs.

I Étant donné un problème combinatoire, comment construire la formule correspondante en forme CNF ?

I Comment travailler avec un SAT-solveur ?

(5)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Introduction

Modéliser et résoudre

I Outils ecaces (en pratique) pour trouver des solutions des formules en forme CNF : DPLL, et plus récemment les SAT-solveurs.

I Étant donné un problème combinatoire, comment construire la formule correspondante en forme CNF ?

I Comment travailler avec un SAT-solveur ?

(6)

Modéliser et résoudre

I Outils ecaces (en pratique) pour trouver des solutions des formules en forme CNF : DPLL, et plus récemment les SAT-solveurs.

I Étant donné un problème combinatoire, comment construire la formule correspondante en forme CNF ?

I Comment travailler avec un SAT-solveur ?

(7)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Introduction

Pourquoi construire la formule en CNF

. . .et pas en DNF ?

I Pour beaucoup d'applications c'est plus naturel :

I On a plusieurs contraintes à respecter (donc une conjonction)

I Chaque contrainte représente un choix entre plusieurs alternatives (donc une disjonction)

(8)

Pourquoi construire la formule en CNF

. . .et pas en DNF ?

I Pour beaucoup d'applications c'est plus naturel :

I On a plusieurs contraintes à respecter (donc une conjonction)

I Chaque contrainte représente un choix entre plusieurs alternatives (donc une disjonction)

(9)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Introduction

Pourquoi construire la formule en CNF

. . .et pas en DNF ?

I Pour beaucoup d'applications c'est plus naturel :

I On a plusieurs contraintes à respecter (donc une conjonction)

I Chaque contrainte représente un choix entre plusieurs alternatives (donc une disjonction)

(10)

Pourquoi construire la formule en CNF

. . .et pas en DNF ?

I Pour beaucoup d'applications c'est plus naturel :

I On a plusieurs contraintes à respecter (donc une conjonction)

I Chaque contrainte représente un choix entre plusieurs alternatives (donc une disjonction)

(11)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 1 : Colorier une carte

Colorier la carte de l'Australie

I Colorier cette carte avec 3 couleurs (r,b,v) seulement !

(12)

Colorier la carte de l'Australie

I Colorier cette carte avec 3 couleurs (r,b,v) seulement !

(13)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 1 : Colorier une carte

Coloration d'une carte

I Donnée une carte avec plusieurs régions, et n couleurs

I Associer à chaque région une couleur, . . .

I . . . telle que deux régions adjacentes (ayant un segment de frontière commun, pas seulement un point commun) ne portent pas la même couleur.

I Avec 4 couleurs c'est toujours possible (pour une carte planaire, ou un globe) : C'est le célèbre théorème des quatre couleurs.

(14)

Coloration d'une carte

I Donnée une carte avec plusieurs régions, et n couleurs

I Associer à chaque région une couleur, . . .

I . . . telle que deux régions adjacentes (ayant un segment de frontière commun, pas seulement un point commun) ne portent pas la même couleur.

I Avec 4 couleurs c'est toujours possible (pour une carte planaire, ou un globe) : C'est le célèbre théorème des quatre couleurs.

(15)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 1 : Colorier une carte

Coloration d'une carte

I Donnée une carte avec plusieurs régions, et n couleurs

I Associer à chaque région une couleur, . . .

I . . . telle que deux régions adjacentes (ayant un segment de frontière commun, pas seulement un point commun) ne portent pas la même couleur.

I Avec 4 couleurs c'est toujours possible (pour une carte planaire, ou un globe) : C'est le célèbre théorème des quatre couleurs.

(16)

Coloration d'une carte

I Donnée une carte avec plusieurs régions, et n couleurs

I Associer à chaque région une couleur, . . .

I . . . telle que deux régions adjacentes (ayant un segment de frontière commun, pas seulement un point commun) ne portent pas la même couleur.

I Avec 4 couleurs c'est toujours possible (pour une carte planaire, ou un globe) : C'est le célèbre théorème des quatre couleurs.

(17)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 1 : Colorier une carte

Formulation mathématique du problème

On cherche une fonction

couleur:{WA,NT,SA,QLD,NSW,VIC,TAS} → {r,b,v} telle que

couleur(x)6=couleur(y) si x et y sont adjacents

(18)

Vers une modélisation

On coupe la construction de la formule en deux parties : 1. Modélisation des fonctions

couleur:{WA,NT,SA,QLD,NSW,VIC,TAS} → {r,b,v} 2. Modélisation de la contrainte :

couleur(x)6=couleur(y) si x et y sont adjacents

(19)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 1 : Colorier une carte

Vers une modélisation

On coupe la construction de la formule en deux parties : 1. Modélisation des fonctions

couleur:{WA,NT,SA,QLD,NSW,VIC,TAS} → {r,b,v} 2. Modélisation de la contrainte :

couleur(x)6=couleur(y) si x et y sont adjacents

(20)

Vers une modélisation

On coupe la construction de la formule en deux parties : 1. Modélisation des fonctions

couleur:{WA,NT,SA,QLD,NSW,VIC,TAS} → {r,b,v} 2. Modélisation de la contrainte :

couleur(x)6=couleur(y) si x et y sont adjacents

(21)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 1 : Colorier une carte

Modélisation des colorations

I Si on avait seulement deux couleurs (blanc et noir, par exemple) :

I On pourrait dénir une variable propositionnelle par région, avec la convention que 0 représente noir, et 1 représente blanc.

I Dans ce cas on aurait une correspondance parfaite entre aectations et colorations : toute aectation des variables correspond à une coloration de la carte, et inversement.

(22)

Modélisation des colorations

I Si on avait seulement deux couleurs (blanc et noir, par exemple) :

I On pourrait dénir une variable propositionnelle par région, avec la convention que 0 représente noir, et 1 représente blanc.

I Dans ce cas on aurait une correspondance parfaite entre aectations et colorations : toute aectation des variables correspond à une coloration de la carte, et inversement.

(23)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 1 : Colorier une carte

Modélisation des colorations

I Si on avait seulement deux couleurs (blanc et noir, par exemple) :

I On pourrait dénir une variable propositionnelle par région, avec la convention que 0 représente noir, et 1 représente blanc.

I Dans ce cas on aurait une correspondance parfaite entre aectations et colorations : toute aectation des variables correspond à une coloration de la carte, et inversement.

(24)

Modélisation des colorations

I Comment faire avec n couleurs (n≥3) ?

I La solution la plus simple : choisir une variable [x,y] pour toute région x et toute couleur y.

I Donc, pour 7 régions et 3 couleurs on a 21 variables : [WA,r],[WA,b],[WA,v],[NT,r], . . . ,[TAS, v]

(25)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 1 : Colorier une carte

Modélisation des colorations

I Comment faire avec n couleurs (n≥3) ?

I La solution la plus simple : choisir une variable [x,y] pour toute région x et toute couleur y.

I Donc, pour 7 régions et 3 couleurs on a 21 variables : [WA,r],[WA,b],[WA,v],[NT,r], . . . ,[TAS, v]

(26)

Modélisation des colorations

I Comment faire avec n couleurs (n≥3) ?

I La solution la plus simple : choisir une variable [x,y] pour toute région x et toute couleur y.

I Donc, pour 7 régions et 3 couleurs on a 21 variables : [WA,r],[WA,b],[WA,v],[NT,r], . . . ,[TAS, v]

(27)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 1 : Colorier une carte

Modélisation des colorations

Pour toute coloration c de la carte il y a une aectationα qui lui correspond :

α([x,y]) =

1 si c(x) =y 0 si c(x)6=y

(28)

Modélisation des colorations

Problème : L'inverse n'est pas vrai. Il y a des aectations des variables qui ne correspondent pas à une coloration !

I Si

α([WA,r]) =0, α([WA,b]) =0, α([WA,v]) =0 alors on aurait aucune couleur pour WA.

I Si

α([WA,r]) =1, α([WA,b]) =1 alors on aurait plusieurs couleurs pour WA.

(29)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 1 : Colorier une carte

Modélisation des colorations

Problème : L'inverse n'est pas vrai. Il y a des aectations des variables qui ne correspondent pas à une coloration !

I Si

α([WA,r]) =0, α([WA,b]) =0, α([WA,v]) =0 alors on aurait aucune couleur pour WA.

I Si

α([WA,r]) =1, α([WA,b]) =1 alors on aurait plusieurs couleurs pour WA.

(30)

Modélisation des colorations

Problème : L'inverse n'est pas vrai. Il y a des aectations des variables qui ne correspondent pas à une coloration !

I Si

α([WA,r]) =0, α([WA,b]) =0, α([WA,v]) =0 alors on aurait aucune couleur pour WA.

I Si

α([WA,r]) =1, α([WA,b]) =1 alors on aurait plusieurs couleurs pour WA.

(31)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 1 : Colorier une carte

Modélisation des colorations

Exprimer que toute région a au moins une couleur : P1:= ([WA,r]∨[WA,b]∨[WA,v])

∧ ([NT,r]∨[NT,b]∨[NT,v])

∧ ([SA,r]∨[SA,b]∨[SA,v])

∧ ([QLD,r]∨[QLD,b]∨[QLD,v])

∧ ([NSW,r]∨[NSW,b]∨[NSW,v])

∧ ([VIC,r]∨[VIC,b]∨[VIC,v])

∧ ([TAS,r]∨[TAS,b]∨[TAS,v])

(32)

Modélisation des colorations

Exprimer que toute région a au plus une couleur :

P2 :=

[WA,r]∨ ¬[WA,b]) [WA,r]∨ ¬[WA,v]) [WA,b]∨ ¬[WA,v])

[NT,r]∨ ¬[NT,b]) [NT,r]∨ ¬[NT,v]) [NT,b]∨ ¬[NT,v])

[SA,r]∨ ¬[SA,b]) [SA,r]∨ ¬[SA,v]) [SA,b]∨ ¬[SA,v])

[QLD,r]∨ ¬[QLD,b]) [QLD,r]∨ ¬[QLD,v]) [QLD,b]∨ ¬[QLD,v])

[NSW,r]∨ ¬[NSW,b]) [NSW,r]∨ ¬[NSW,v]) [NSW,b]∨ ¬[NSW,v])

[VIC,r]∨ ¬[VIC,b]) [VIC,r]∨ ¬[VIC,v]) [VIC,b]∨ ¬[VIC,v])

[TAS,r]∨ ¬[TAS,b]) [TAS,r]∨ ¬[TAS,v]) [TAS,b]∨ ¬[TAS,v])

(33)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 1 : Colorier une carte

Modéliser la contrainte spécique

Exclure toutes les aectations qui donnent la même couleur à deux régions adjacentes :

P3:=

[WA,r]∨ ¬[NT,r]) [WA,b]∨ ¬[NT,b]) [WA,v]∨ ¬[NT,v])

[WA,r]∨ ¬[SA,r]) [WA,b]∨ ¬[SA,b]) [WA,v]∨ ¬[SA,v])

[NT,r]∨ ¬[SA,r]) [NT,b]∨ ¬[SA,b]) [NT,v]∨ ¬[SA,v])

[NT,r]∨ ¬[QLD,r]) [NT,b]∨ ¬[QLD,b]) [NT,v]∨ ¬[QLD,v])

[SA,r]∨ ¬[QLD,r]) [SA,b]∨ ¬[QLD,b]) [SA,v]∨ ¬[QLD,v])

[SA,r]∨ ¬[NSW,r]) [SA,b]∨ ¬[NSW,b]) [SA,v]∨ ¬[NSW,v])

[SA,r]∨ ¬[VIC,r]) [SA,b]∨ ¬[VIC,b]) [SA,v]∨ ¬[VIC,v])

[NSW,r]∨ ¬[VIC,r]) [NSW,b]∨ ¬[VIC,b]) [NSW,v]∨ ¬[VIC,v])

[NSW,r]∨ ¬[QLD,r]) [NSW,b]∨ ¬[QLD,b]) [NSW,v]∨ ¬[QLD,v])

La Tasmanie n'y gure pas car c'est une île.

(34)

Modéliser la contrainte spécique

Exclure toutes les aectations qui donnent la même couleur à deux régions adjacentes :

P3:=

[WA,r]∨ ¬[NT,r]) [WA,b]∨ ¬[NT,b]) [WA,v]∨ ¬[NT,v])

[WA,r]∨ ¬[SA,r]) [WA,b]∨ ¬[SA,b]) [WA,v]∨ ¬[SA,v])

[NT,r]∨ ¬[SA,r]) [NT,b]∨ ¬[SA,b]) [NT,v]∨ ¬[SA,v])

[NT,r]∨ ¬[QLD,r]) [NT,b]∨ ¬[QLD,b]) [NT,v]∨ ¬[QLD,v])

[SA,r]∨ ¬[QLD,r]) [SA,b]∨ ¬[QLD,b]) [SA,v]∨ ¬[QLD,v])

[SA,r]∨ ¬[NSW,r]) [SA,b]∨ ¬[NSW,b]) [SA,v]∨ ¬[NSW,v])

[SA,r]∨ ¬[VIC,r]) [SA,b]∨ ¬[VIC,b]) [SA,v]∨ ¬[VIC,v])

[NSW,r]∨ ¬[VIC,r]) [NSW,b]∨ ¬[VIC,b]) [NSW,v]∨ ¬[VIC,v])

[NSW,r]∨ ¬[QLD,r]) [NSW,b]∨ ¬[QLD,b]) [NSW,v]∨ ¬[QLD,v])

La Tasmanie n'y gure pas car c'est une île.

(35)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 1 : Colorier une carte

I La formule complète : P1∧P2∧P3, elle est déjà en forme CNF.

I La première étape (modélisation des coloration) était indépendante de la carte spécique (à part du nombre de pays).

I La deuxième étape était spécique à la carte donnée, même si le principe de construction s'applique à n'importe quelle carte.

(36)

I La formule complète : P1∧P2∧P3, elle est déjà en forme CNF.

I La première étape (modélisation des coloration) était indépendante de la carte spécique (à part du nombre de pays).

I La deuxième étape était spécique à la carte donnée, même si le principe de construction s'applique à n'importe quelle carte.

(37)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 1 : Colorier une carte

I La formule complète : P1∧P2∧P3, elle est déjà en forme CNF.

I La première étape (modélisation des coloration) était indépendante de la carte spécique (à part du nombre de pays).

I La deuxième étape était spécique à la carte donnée, même si le principe de construction s'applique à n'importe quelle carte.

(38)

Généralisation

Donnés :

I un ensemble de pays 1, . . . ,n

I un ensemble de couleurs 1, . . . ,m

I une fonction A:{1, . . . ,n} × {1, . . . ,n} → {true,false}qui indique si deux pays sont adjacents.

(39)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 1 : Colorier une carte

Modélisation dans le cas général

I L'ensemble des variables propositionnelles est {[i,j]|1≤i ≤n,1≤j ≤m}

I

P1= ^

1in

_

1jm

[i,j]

I

P2 = ^

1in

^

1jm1

^

j<km

(¬[i,j]∨ ¬[i,k])

I

P3 = ^

1in1

^

i<jn A(i,j)=true

^

1km

(¬[i,k]∨ ¬[j,k])

(40)

Modélisation dans le cas général

I L'ensemble des variables propositionnelles est {[i,j]|1≤i ≤n,1≤j ≤m}

I

P1= ^

1in

_

1jm

[i,j]

I

P2 = ^

1in

^

1jm1

^

j<km

(¬[i,j]∨ ¬[i,k])

I

P3 = ^

1in1

^

i<jn A(i,j)=true

^

1km

(¬[i,k]∨ ¬[j,k])

(41)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 1 : Colorier une carte

Modélisation dans le cas général

I L'ensemble des variables propositionnelles est {[i,j]|1≤i ≤n,1≤j ≤m}

I

P1= ^

1in

_

1jm

[i,j]

I

P2 = ^

1in

^

1jm1

^

j<km

(¬[i,j]∨ ¬[i,k])

I

P3 = ^

1in1

^

i<jn A(i,j)=true

^

1km

(¬[i,k]∨ ¬[j,k])

(42)

Modélisation dans le cas général

I L'ensemble des variables propositionnelles est {[i,j]|1≤i ≤n,1≤j ≤m}

I

P1= ^

1in

_

1jm

[i,j]

I

P2 = ^

1in

^

1jm1

^

j<km

(¬[i,j]∨ ¬[i,k])

I

P3 = ^

1in1

^

i<jn A(i,j)=true

^

1km

(¬[i,k]∨ ¬[j,k])

(43)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 1 : Colorier une carte

Le programme complet

On peut maintenant facilement écrire un programme qui

1. lit la carte (dans une représentation appropriée) et le nombre de couleurs

2. construit la formule propositionnelle comme décrit au-dessus 3. lance un SAT-solveur externe (par exemple MiniSat) sur cette

formule

4. analyse l'aectation trouvée par le SAT-solveur (quand une solution existe) pour acher une coloration de la carte.

(44)

Le programme complet

On peut maintenant facilement écrire un programme qui

1. lit la carte (dans une représentation appropriée) et le nombre de couleurs

2. construit la formule propositionnelle comme décrit au-dessus 3. lance un SAT-solveur externe (par exemple MiniSat) sur cette

formule

4. analyse l'aectation trouvée par le SAT-solveur (quand une solution existe) pour acher une coloration de la carte.

(45)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 1 : Colorier une carte

Le programme complet

On peut maintenant facilement écrire un programme qui

1. lit la carte (dans une représentation appropriée) et le nombre de couleurs

2. construit la formule propositionnelle comme décrit au-dessus 3. lance un SAT-solveur externe (par exemple MiniSat) sur cette

formule

4. analyse l'aectation trouvée par le SAT-solveur (quand une solution existe) pour acher une coloration de la carte.

(46)

Le programme complet

On peut maintenant facilement écrire un programme qui

1. lit la carte (dans une représentation appropriée) et le nombre de couleurs

2. construit la formule propositionnelle comme décrit au-dessus 3. lance un SAT-solveur externe (par exemple MiniSat) sur cette

formule

4. analyse l'aectation trouvée par le SAT-solveur (quand une solution existe) pour acher une coloration de la carte.

(47)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 1 : Colorier une carte

Comportement d'un SAT-solveur pour ce problème

I Initialement il n'y a ni de clause unitaire, ni de variable en une seule polarité.

I On choisi donc une variable, disons [WA,r], et essaye de la mettre à la valeur 1, sinon à 0.

I Quand la variable [WA,r] est mise à 1, toutes les clauses binaires qui contiennent le littéral négatif¬[WA,r] vont se transformer en clause unaire, et donc déclencher un grand nombre de résolutions unaires.

I En particulier, le choix de la couleur rouge va être enlevé pour tous les pays qui sont adjacents avec WA.

(48)

Comportement d'un SAT-solveur pour ce problème

I Initialement il n'y a ni de clause unitaire, ni de variable en une seule polarité.

I On choisi donc une variable, disons [WA,r], et essaye de la mettre à la valeur 1, sinon à 0.

I Quand la variable [WA,r] est mise à 1, toutes les clauses binaires qui contiennent le littéral négatif¬[WA,r] vont se transformer en clause unaire, et donc déclencher un grand nombre de résolutions unaires.

I En particulier, le choix de la couleur rouge va être enlevé pour tous les pays qui sont adjacents avec WA.

(49)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 1 : Colorier une carte

Comportement d'un SAT-solveur pour ce problème

I Initialement il n'y a ni de clause unitaire, ni de variable en une seule polarité.

I On choisi donc une variable, disons [WA,r], et essaye de la mettre à la valeur 1, sinon à 0.

I Quand la variable [WA,r] est mise à 1, toutes les clauses binaires qui contiennent le littéral négatif¬[WA,r] vont se transformer en clause unaire, et donc déclencher un grand nombre de résolutions unaires.

I En particulier, le choix de la couleur rouge va être enlevé pour tous les pays qui sont adjacents avec WA.

(50)

Comportement d'un SAT-solveur pour ce problème

I Initialement il n'y a ni de clause unitaire, ni de variable en une seule polarité.

I On choisi donc une variable, disons [WA,r], et essaye de la mettre à la valeur 1, sinon à 0.

I Quand la variable [WA,r] est mise à 1, toutes les clauses binaires qui contiennent le littéral négatif¬[WA,r] vont se transformer en clause unaire, et donc déclencher un grand nombre de résolutions unaires.

I En particulier, le choix de la couleur rouge va être enlevé pour tous les pays qui sont adjacents avec WA.

(51)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 2 : Le concours de danse

Le problème

I Trois étudiants : Adam, Bruno, Chen.

I Trois étudiantes : Xanthia, Ylenia, Zoé.

I Qui aime bien qui: Adam aime bien Xanthia et Zoé, Bruno aime bien Ylenia, Chen aime bien Ylenia et Xanthia, tandis que Xanthia aime bien Bruno et Chen, Ylenia aime bien Adam et Bruno, Zoé aime bien Adam et Chen.

I Le tango se danse en couple un homme et une femme.

I Est-il possible de composer trois couples pour un concours de tango, de telle manière que chacun(e) danse avec une

personne qu'il (qu'elle) aime bien?

(52)

Le problème

I Trois étudiants : Adam, Bruno, Chen.

I Trois étudiantes : Xanthia, Ylenia, Zoé.

I Qui aime bien qui: Adam aime bien Xanthia et Zoé, Bruno aime bien Ylenia, Chen aime bien Ylenia et Xanthia, tandis que Xanthia aime bien Bruno et Chen, Ylenia aime bien Adam et Bruno, Zoé aime bien Adam et Chen.

I Le tango se danse en couple un homme et une femme.

I Est-il possible de composer trois couples pour un concours de tango, de telle manière que chacun(e) danse avec une

personne qu'il (qu'elle) aime bien?

(53)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 2 : Le concours de danse

Le problème

I Trois étudiants : Adam, Bruno, Chen.

I Trois étudiantes : Xanthia, Ylenia, Zoé.

I Qui aime bien qui: Adam aime bien Xanthia et Zoé, Bruno aime bien Ylenia, Chen aime bien Ylenia et Xanthia, tandis que Xanthia aime bien Bruno et Chen, Ylenia aime bien Adam et Bruno, Zoé aime bien Adam et Chen.

I Le tango se danse en couple un homme et une femme.

I Est-il possible de composer trois couples pour un concours de tango, de telle manière que chacun(e) danse avec une

personne qu'il (qu'elle) aime bien?

(54)

Le problème

I Trois étudiants : Adam, Bruno, Chen.

I Trois étudiantes : Xanthia, Ylenia, Zoé.

I Qui aime bien qui: Adam aime bien Xanthia et Zoé, Bruno aime bien Ylenia, Chen aime bien Ylenia et Xanthia, tandis que Xanthia aime bien Bruno et Chen, Ylenia aime bien Adam et Bruno, Zoé aime bien Adam et Chen.

I Le tango se danse en couple un homme et une femme.

I Est-il possible de composer trois couples pour un concours de tango, de telle manière que chacun(e) danse avec une

personne qu'il (qu'elle) aime bien?

(55)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 2 : Le concours de danse

Comment dénir les variables propositionnelles?

I Tentative : variable hX,Yi, où X et Y sont des personnes, qui dénotent le fait que X aime bien Y .

I Ça serait une mauvaise approche. Pourquoi ?

I Les (aectations à des) variables doivent modéliser des solutions, la formule doit modéliser leproblème !

(56)

Comment dénir les variables propositionnelles?

I Tentative : variable hX,Yi, où X et Y sont des personnes, qui dénotent le fait que X aime bien Y .

I Ça serait une mauvaise approche. Pourquoi ?

I Les (aectations à des) variables doivent modéliser des solutions, la formule doit modéliser leproblème !

(57)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 2 : Le concours de danse

Comment dénir les variables propositionnelles?

I Tentative : variable hX,Yi, où X et Y sont des personnes, qui dénotent le fait que X aime bien Y .

I Ça serait une mauvaise approche. Pourquoi ?

I Les (aectations à des) variables doivent modéliser des solutions, la formule doit modéliser leproblème !

(58)

Comment dénir les variables propositionnelles?

I Variables [X,Y]pour toutes personnes X , Y , exprimant le fait que X danse avec Y (6∗6=36 variables).

I Cela nous obligera à exprimer par une formule le fait que chaque couple comporte un garçon et une lle, et en plus que le couple X , Y est la même chose que le couple Y , X .

I Choisir mieux les variables : on choisit des variables [G,F]où G est un garçons, et F une lle.

I Seulement 3∗3=9 variables :

[A,X], [A,Y], [A,Z], [B,X], [B,Y], [B,Z], [C,X], [C,Y], [C,Z]

(59)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 2 : Le concours de danse

Comment dénir les variables propositionnelles?

I Variables [X,Y]pour toutes personnes X , Y , exprimant le fait que X danse avec Y (6∗6=36 variables).

I Cela nous obligera à exprimer par une formule le fait que chaque couple comporte un garçon et une lle, et en plus que le couple X , Y est la même chose que le couple Y , X .

I Choisir mieux les variables : on choisit des variables [G,F]où G est un garçons, et F une lle.

I Seulement 3∗3=9 variables :

[A,X], [A,Y], [A,Z], [B,X], [B,Y], [B,Z], [C,X], [C,Y], [C,Z]

(60)

Comment dénir les variables propositionnelles?

I Variables [X,Y]pour toutes personnes X , Y , exprimant le fait que X danse avec Y (6∗6=36 variables).

I Cela nous obligera à exprimer par une formule le fait que chaque couple comporte un garçon et une lle, et en plus que le couple X , Y est la même chose que le couple Y , X .

I Choisir mieux les variables : on choisit des variables [G,F]où G est un garçons, et F une lle.

I Seulement 3∗3=9 variables :

[A,X], [A,Y], [A,Z], [B,X], [B,Y], [B,Z], [C,X], [C,Y], [C,Z]

(61)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 2 : Le concours de danse

Comment dénir les variables propositionnelles?

I Variables [X,Y]pour toutes personnes X , Y , exprimant le fait que X danse avec Y (6∗6=36 variables).

I Cela nous obligera à exprimer par une formule le fait que chaque couple comporte un garçon et une lle, et en plus que le couple X , Y est la même chose que le couple Y , X .

I Choisir mieux les variables : on choisit des variables [G,F]où G est un garçons, et F une lle.

I Seulement 3∗3=9 variables :

[A,X], [A,Y], [A,Z], [B,X], [B,Y], [B,Z], [C,X], [C,Y], [C,Z]

(62)

Qu'est-ce qu'il reste à faire ?

I Modéliser les contraintes :

I tout le monde danse.

I personne ne danse avec deux partenaires.

I Modéliser la condition que dans chaque couple, on s'aime bien.

(63)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 2 : Le concours de danse

Qu'est-ce qu'il reste à faire ?

I Modéliser les contraintes :

I tout le monde danse.

I personne ne danse avec deux partenaires.

I Modéliser la condition que dans chaque couple, on s'aime bien.

(64)

Qu'est-ce qu'il reste à faire ?

I Modéliser les contraintes :

I tout le monde danse.

I personne ne danse avec deux partenaires.

I Modéliser la condition que dans chaque couple, on s'aime bien.

(65)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 2 : Le concours de danse

Qu'est-ce qu'il reste à faire ?

I Modéliser les contraintes :

I tout le monde danse.

I personne ne danse avec deux partenaires.

I Modéliser la condition que dans chaque couple, on s'aime bien.

(66)

Tous dansent

P1 := ([A,X]∨[A,Y]∨[A,Z])

∧ ([B,X]∨[B,Y]∨[B,Z])

∧ ([C,X]∨[C,Y]∨[C,Z]) P10 := ([A,X]∨[B,X]∨[C,X])

∧ ([A,Y]∨[B,Y]∨[C,Y])

∧ ([A,Z]∨[B,Z]∨[C,Z])

(67)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 2 : Le concours de danse

Pas de partenaires multiples pour les garçons

P2:=

[A,X]∨ ¬[A,Y]) [A,X]∨ ¬[A,Z]) [A,Y]∨ ¬[A,Z])

[B,X]∨ ¬[B,Y]) [B,X]∨ ¬[B,Z]) [B,Y]∨ ¬[B,Z])

[C,X]∨ ¬[C,Y]) [C,X]∨ ¬[C,Z]) [C,Y]∨ ¬[C,Z])

(68)

Pas de partenaires multiples pour les lles

P20 :=

[A,X]∨ ¬[B,X]) [A,X]∨ ¬[C,X]) [B,X]∨ ¬[C,X])

[A,Y]∨ ¬[B,Y]) [A,Y]∨ ¬[C,Y]) [B,Y]∨ ¬[C,Y])

[A,Z]∨ ¬[B,Z]) [A,Z]∨ ¬[C,Z]) [B,Z]∨ ¬[C,Z])

(69)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 2 : Le concours de danse

Modéliser les couples

I Condition : P1∧P10 ∧P2∧P20

I Il aurait sut de poser : P1∧P20 (ou P10 ∧P2).

I Avec la formule complète, un solveur a plus de chances de tomber sur des clauses unaires, ce qui peut donner la solution plus rapidement.

I Des clauses qui sont logiquement redondantes peuvent être bénéques si elles permettent des raccourcis dans le calcul.

(70)

Modéliser les couples

I Condition : P1∧P10 ∧P2∧P20

I Il aurait sut de poser : P1∧P20 (ou P10 ∧P2).

I Avec la formule complète, un solveur a plus de chances de tomber sur des clauses unaires, ce qui peut donner la solution plus rapidement.

I Des clauses qui sont logiquement redondantes peuvent être bénéques si elles permettent des raccourcis dans le calcul.

(71)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 2 : Le concours de danse

Modéliser les couples

I Condition : P1∧P10 ∧P2∧P20

I Il aurait sut de poser : P1∧P20 (ou P10 ∧P2).

I Avec la formule complète, un solveur a plus de chances de tomber sur des clauses unaires, ce qui peut donner la solution plus rapidement.

I Des clauses qui sont logiquement redondantes peuvent être bénéques si elles permettent des raccourcis dans le calcul.

(72)

Modéliser les couples

I Condition : P1∧P10 ∧P2∧P20

I Il aurait sut de poser : P1∧P20 (ou P10 ∧P2).

I Avec la formule complète, un solveur a plus de chances de tomber sur des clauses unaires, ce qui peut donner la solution plus rapidement.

I Des clauses qui sont logiquement redondantes peuvent être bénéques si elles permettent des raccourcis dans le calcul.

(73)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 2 : Le concours de danse

Deuxième étape : exprimer la contrainte spécique

Il reste maintenant à exprimer le fait que chaque garçon danse avec une lle qu'il aime bien, et vice-versa.

P3 = ([A,X]∨[A,Z])

∧ [B,Y]

∧ ([C,X]∨[C,Y])

∧ ([B,X]∨[C,X])

∧ ([A,Y]∨[B,Y])

∧ ([A,Z]∨[C,Z])

(74)

La formule entière

La formule entière est :

P1∧P10 ∧P2∧P20 ∧P3

(75)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 2 : Le concours de danse

Subsomption

I Chacune des clauses de P1 et de P10 sont subsumées par des clauses en P3.

I P1 consiste en des clauses comme

([A,X]∨[A,Y]∨[A,Z]) (Adam danse avec une lle)

I P3 consiste en des clauses comme ([A,X]∨[A,Z]) (Adam danse avec une lle qu'il aime bien)

(76)

Subsomption

I Chacune des clauses de P1 et de P10 sont subsumées par des clauses en P3.

I P1 consiste en des clauses comme

([A,X]∨[A,Y]∨[A,Z]) (Adam danse avec une lle)

I P3 consiste en des clauses comme ([A,X]∨[A,Z]) (Adam danse avec une lle qu'il aime bien)

(77)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 2 : Le concours de danse

Subsomption

I Chacune des clauses de P1 et de P10 sont subsumées par des clauses en P3.

I P1 consiste en des clauses comme

([A,X]∨[A,Y]∨[A,Z]) (Adam danse avec une lle)

I P3 consiste en des clauses comme ([A,X]∨[A,Z]) (Adam danse avec une lle qu'il aime bien)

(78)

Clauses subsumées

I Des clauses redondantes sont bénéques seulement quand elles permettent des déductions plus rapides (avec moins de choix)

I Les clauses subsumées par des autres clauses sont redondantes, et en plus ne donnent aucun avantage dans l'algorithme DPLL.

I On ferra mieux supprimer les clauses redondantes : P2∧P20 ∧P3

(79)

Chapitre 6 Modélisation en logique propositionnelle Cours 1 Premiers Exemples Exemple 2 : Le concours de danse

Clauses subsumées

I Des clauses redondantes sont bénéques seulement quand elles permettent des déductions plus rapides (avec moins de choix)

I Les clauses subsumées par des autres clauses sont redondantes, et en plus ne donnent aucun avantage dans l'algorithme DPLL.

I On ferra mieux supprimer les clauses redondantes : P2∧P20 ∧P3

(80)

Clauses subsumées

I Des clauses redondantes sont bénéques seulement quand elles permettent des déductions plus rapides (avec moins de choix)

I Les clauses subsumées par des autres clauses sont redondantes, et en plus ne donnent aucun avantage dans l'algorithme DPLL.

I On ferra mieux supprimer les clauses redondantes : P2∧P20 ∧P3

Références

Documents relatifs

I Il y a aussi une technique utilisant des variables qui peuvent prendre plusieurs valeurs diérentes (appelées des variables à domaine ni).. I Résolution de contraintes avec

Lorsque l’on veut désigner un énoncé, on lui donne un nom qui décrit le type d’acte en quoi cet énoncé consiste. La description de ce type général et abstrait est une

Le lecteur attentif aura remarqu´e que les th´eor`emes que nous avons ´enonc´es pour la repr´esentation des fonctions bool´eennes par des formules, faisaient intervenir des

Donner un sens aux formules = interpr´ eter dans l’alg` ebre de Boole D´ efinition 2.. Une interpr´ etation du calcul propositionnel est une fonction I : X

Article premier : Tout membre non ´ Ecossais porte des chaussettes oranges. Article second : Tout membre porte un kilt ou ne porte pas de

C’est pourquoi nous donnons les axiomes comme schémas, ce qui veut dire que toutes les formules propositionnelles de L ayant la même forme que les formules qu’on énumère dans la

L’axiome (T), par contre, peut être lu comme restriction aux relations d’accessibilité : il force cette relation à être réflexive : si w est en relation avec n’importe quel

Une formule propositionnelle est une conséquence (sémantique) ďun ensemble de propositions (écrit : “ Th | = φ ”) si et seulement si toute interprétation qui rend vraies toutes