J.-M. Steyaert Amphi 10 : Introduction aux Syst mes distribués : P2P

publicité
INF431 : Au-delà de Java : Logique eetive
Un peu d'histoire
1. Aristote (384-322 av. J.-C.) : le syllogisme (et les premiers para-
J.-M. Steyaert
doxes)
Cours 14 : Logique propositionnelle
Syllogisme = raisonnement qui fonde une onlusion sur deux propositions posées omme vraies :
20 mai 2009
Tous les hommes sont mortels
Or Sorate est un homme
Don Sorate est mortel.
Amphi 10 : Introdution aux Systèmes distribués : P2P
Amphi 11 : Protooles et Routages
Amphi 12 : Programmation oopérative et Életion
Le syllogisme peut parfois être un sophisme = semble logique, mais
Amphi 13 : Réseaux et réseaux mobiles
onduit à des absurdités. (La plupart du temps les syllogismes sont
Amphi 14 : Calul propositionnel
justes, logiques et don orrets.)
Amphi 15 : Logique dédutive
Exemples de syllogismes non valides :
Amphi 16 : Logique de Horn
Tout e qui est rare est her,
Un heval bon marhé est rare,
J.-M. Steyaert Éole polytehnique INF431 Promotion X2008
Don un heval bon marhé est her ( !)
Tous les hats sont mortels
&
Or Sorate est mortel
Don Sorate est un hat. ( ?)
1
3
2. Base du raisonnement oidental pendant tout le Moyen-Âge (G.
d'Oam (1285-1349, logique ternaire plus onnu pour son rasoir :
Eulide et les parallèles)
Plan : Introdution à la logique : alul propositionnel
3. G. Boole (1815-1864) et A. de Morgan (1806-1925) fondent la
logique moderne en l'algébrisant.
1. Bref historique : d'Aristote à
P = NP ?
4. F. Frege (1848-1925) : onstrution axiomatique des mathématiques sur la base du raisonnement formel (B. Russel et son paradoxe
ensembliste)
2. Fontions booléennes : exemples, représentations
5. K. Gödel (1906-1978) théorème d'inomplétude et A. Turing (19121954) théorie de la alulabilité
3. Calul propositionnel : satisfaisabilité des formules
6. Refondation algorithmique de la logique : alul propositionnel, logique premier ordre et au-delà, systèmes de preuve
4. Compléments : lauses de Horn, BDD (dans le poly)
7. Les iruits et les ordinateurs : omment les valider ?
5. Ciruits : PA Eletrial Engineering
et plus sur Wikipedia...
2
4
Les circuits
Noms spéiaux :
la fontion
la fontion
négation à un argument, ¬(0) = 1, ¬(1) = 0 ;
onjontion à deux arguments, que l'on érit usuelle-
ment en notation inxe,
la fontion
notation inxe,
la
0 ∧ 0 = 0, 0 ∧ 1 = 0, 1 ∧ 0 = 0, 1 ∧ 1 = 1
disjontion
0 ∨ 0 = 0, 0 ∨ 1 = 1, 1 ∨ 0 = 1, 1 ∨ 1 = 1
barre de Shäer ,
;
à deux arguments, enore appelée NAND,
0|0 = 1, 0|1 = 1, 1|0 = 1, 1|1 = 0
le
;
à deux arguments, érite usuellement en
;
multiplexeur , fontion de trois arguments,
α(x, y, z) = si x alors y sinon z.
Source Intel
x
y
z
α(x, y, z)
SoC = System on Chip
microprocesseurs de PC
téléphones, DVD, TV, GPS
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
0
1
1
5
7
Source Intel
2
Une porte de base (NAND)
Fontions booléennes : dénitions
Soit
B
à deux éléments,
vrai
et
faux :
B := {⊤, ⊥} := {1, 0} := {V, F },
et.
Def : On appelle fontion booléenne toute appliation totale de
Bm
p
dans B , pour m, p ≥ 1.
On onsidére des fontions de
Bm
dans
B,
pour
m ≥ 1.
Pour des raisons d'éonomie et de ommodité on adopte la représentation des valeurs de vérité par {0,1}.
Il y a
2m
appliations booléennes à
m
variables et à valeurs dans
6
B.
Source Cadence Design Systems
8
6
Représentations
La taille du résultat dépend beauoup de l'ordre des variables, mais
m bits
1. Tableau : taille (m + 1) 2
2. Table ompate : taille
on ne sait pas la prédire failement (i.e. sans onstruire l'arbre) :
ave
2m
alul de la position du bit à partir des valeurs des entrées :
T[ν(x)℄,
ν(x) =
où
P
p(x, y, z),
le dag a taille 5 pour l'ordre
bi2i
f (x) =
x
y
z
pz (x, y, z)
3. Arbres : les variables sont ordonnées arbitrairement et on onstruit
un arbre binaire omplet, exemple pour le multiplexeur :
0
x
y
0
z
x, y, z
et 7 pour
z, x, y .
bits de la dernière ligne, néessite le
0
1
1
0
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
1
0
0
1
1
0
(x, y, z)
1
(z, x, y)
Un problème voisin est elui de la reherhe de blos monovalués dans
la table (impliquants premiers). La reherhe de solutions minimales
0
α(x, y, z)
1
0
1
0
0
1
1
est d'une omplexité exponentielle .
9
11
Expressions booléennes : bases de fontions
Dérire les fontions booléennes sous la forme d'expressions algé-
4. Arbres réduits ou dag (direted ayli graph)
briques dont les valeurs sont elles données par le tableau ou l'arbre
On partage les sous-arbres identiques, le multiplexeur :
0
1
0
x
des setions préédentes. (automates nis/expressions régulières)
1
Def : On appelle algèbre de Boole tout ensemble
0
1
0
1
y
0
1
0
trois opérateurs
1
:
+
et
.
binaires et
¬
S
sur lequel existent
unaire. Deux éléments de
S
sont distingués et notés 0 et 1. Les opérateurs vérient les axiomes
0
1
0
1
0
1
z
0
suivants :
1
a + b = b + a et a.b = b.a ;
a + (b + c) = (a + b) + c et a.(b.c) = (a.b).c ;
distributivité : a.(b + c) = (a.b) + (a.c) et a + (b.c) = (a + b).(a + c) ;
idempotene : a + a = a et a.a = a ;
involutivité : ¬¬a = a ;
omplémentarité : ¬0 = 1 et ¬1 = 0 ; a + ¬a = 1 et a.¬a = 0 ;
ommutativité :
assoiativité :
0
1
0
1
α(x, y, z)
0
1
0
1
Prop : On gagne au moins un fateur 2 et en moyenne la taille du
( tiers exlus )
m
dag est O(2 /m).
absorption :
1 + a = 1 et 0.a = 0 ;
0 + a = a et 1.a = a ;
Morgan : ¬(a + b) = ¬a.¬b
neutralité :
lois de de
10
et
¬(a.b) = ¬a + ¬b.
12
Voabulaire et Propriétés
{a, b, c, d, ...}
Formes normales et minimales : évaluation des expressions
: variables booléennes > algèbre de Boole
A.
littéral : variable λ = a ou sa négation λ = ¬a.
monme : terme formé d'un produit de littéraux : λ1 λ2 ...λh .
lause : terme formé d'une somme de littéraux : λ1 + λ2 + ... + λh .
une somme de monmes est forme disjontive et un produit de
lauses est forme onjontive.
f
A
m variables
m variables,
Forme normale disjontive
(FND), disjontion de monmes et don
normalisés .
Dual de la forme normale disjontive
: onjontion de lauses ou
forme normale onjontive (FNC).
Les formes normales sont uniques à isomorphisme près.
La FNC du multiplexeur :
Toute fontion booléenne
de
est représentable par une
expression booléenne de
à
dont la taille est propor-
.
tionnelle au nombre de valeurs 1 de la fontion. (Faire la somme des
+
+
monmes valant 1) : multiplexeur.
¬
Chaque fontion booléenne possède une innité d'expressions qui la
désignent.
y
x
z
x
13
On appelle
base pour les fontions booléennes tout système ni d'opé-
rateurs qui permet de onstruire des expressions représentant toutes
les fontions booléennes.
{+, ., ¬} de l'algèbre de Boole lassique forment une
{+, ¬} et {., ¬} forment également des bases, et {α},
Les opérateurs
base. De fait
l'opérateur multiplexeur, en forme une à lui seul.
Preuve : On sait que
{+, ., ¬}
forme une base. Il sut don de traduire
haune de es fontions dans haun des trois systèmes proposés.
x + y = ¬(¬x.¬y) au moyen des lois de de Morgan, e
qui prouve que {., ¬} est une base. Semblablement ¬x = α(x, 0, 1) et
x.y = α(x, y, 0), e qui établit que {α} permet aussi d'exprimer toutes
Par exemple,
les fontions.
Parmi toutes les fontions de deux variables elles qui permettent de
onstruire des bases et de répondre à la question : peut-on faire une
base ave seulement
{+, .}
?
14
15
Un algorithme réursif de mise en FNC (et en FND dualement) :
(* le type Lit = Var ou NVar : variable ave negation ou non *)
(* le type Exp = Lit | - Exp | . Exp Exp | + Exp Exp en notation prefixe *
funtion FND(Exp e) = {
if (Lit(e)) {return(e)};
ase (opExp(e)): {
(* extrait l'operateur *)
{- : return(morganC(FNC(arg1(e))))};
(* arg1 et arg2
*)
{+ : return(+(FND(arg1(e)),FND(arg2(e))))}; (* extraient les argument
{. : return(mapmul(FND(arg1(e)),FND(arg2(e))))};}}
funtion FNC(Exp e) = {
if (Lit(e)) {return(e)};
ase (opExp(e)): {
{- : return(morganD(FND(arg1(e))))};
{. : return(.(FNC(arg1(e)),FNC(arg2(e))))};
{+ : return(mapplus(FNC(arg1(e)),FNC(arg2(e))))};}}
16
funtion morganC(Exp e) = {
(* e est en FNC
*)
if (Lit(e)) {return(-e)};
(* on retourne la negation de e *)
return(+(morganC(arg1(e)),morganC(arg2(e))));}
funtion morganD(Exp e) = {
(* e est en FND
*)
if (Lit(e)) {return(-e)};
(* on retourne la negation de e *)
return(.(morganD(arg1(e)),morganD(arg2(e))));}
Des formules aux iruits
funtion mapmul(Exp f,Exp g) = {
(* f et g sont en FND *)
if (Mon(f) && Mon(g)) {return(.(f,g))}; (* deux monomes *)
if (Mon(f)) {return(+(.(f,arg1(g)),mapmul(f,arg2(g))))};
return(+(mapmul(arg1(f),g),mapmul(arg2(f),g)));}
Du séquentiel au parallèle...
funtion maplus(Exp f,Exp g) = {
(* f et g sont en FNC *)
if (Cls(f) && Cls(g)) {return(+(f,g))}; (* deux lauses *)
if (Cls(f)) {return(.(+(f,arg1(g)),maplus(f,arg2(g))))};
return(.(maplus(arg1(f),g),maplus(arg2(f),g)));}
Le temps de alul est prépondérant
17
19
Circuit : propagation de retenue
Exemple :
(a1 + a2)(b1 + b2)...(j1 + j2),
variables, se développe sous FND en
variables,
ab...j ,
produit de 10 lauses de deux
210 = 1024
monmes de 10
haque variable étant indiée par 1 ou 2.
Prop : Le oût de la transformation en FNC ou FND est en général
r 0= 0
a0
b0
+
+
a
1
b
+
+
r1
exponentiel en la taille de la formule.
La taille de la formule représentant une fontion est-elle souvent petite ou réduite ? Existe-t-il des limites intrinsèques ?
On montre dans le as des formules onstruites ave la fontion
s0
1
s
r
1
Pour n bits
temps n
2
multiplexeur , ( résultat est valable en toute généralité,) que presque
toutes les fontions ont de très grandes formules.
Thm : La taille des formules minimales pour une fontion booléenne
de
m
m
variables est supérieure à
2m/2 log2 m
ave probabilité 1 quand
a2
b2
+
+
s2
r3
tend vers l'inni.
18
20
12
Additionneur von Neumann
Évidenes ?
Prop : Toute formule du alul propositionnel est équivalente à une
formule sous forme normale onjontive et à une formule sous forme
normale disjontive.
On note
Pour n bits
temps log(n)
E⊢F
Prop : Soit
E⊢F
Alors,
Preuve : Si
F
E
le fait que
F
est dédutible de
E.
F
un ensemble de formules, ni ou non, et
si et seulement si l'ensemble
E ⊢ F,
E ∪ {¬F }
est ontraditoire.
E
alors toute assignation satisfaisant
et par onséquent donne à
¬F
une formule.
la valeur 0 ; don
satisfait aussi
E ∪ {¬F }
est
ontraditoire.
Thm : Un ensemble de formules est ontraditoire si et seulement si
un de ses sous-ensembles nis l'est.
23
21
13
Preuve
Calul propositionnel et logique
: Un des sens est trivial. Pour la réiproque, on suppose, a
ontrario, que tout sous-ensemble ni de
onstruit par réurrene une assignation
Étant donnée une formule propositionnelle : la formule est-elle tou-
une innité de variables) et satisfaisant
jours vraie (
On ordonne les variables :
tautologie) ? la formule est-elle vraie pour au moins une
assignation de valeurs à ses variables (satisfaisable) ?
variables, et
Ek
νk
ν
E
E
est satisfaisable, et on
innie (ar il y a forément
tout entier.
est la restrition de
ν
aux
k
premières
le sous-ensemble des formules érites sur es
k
va-
Ek
est
riables.
Et plus généralement pour un ensemble (éventuellement inni) de
formules
E
: peut-on les satisfaire simultanément ou, au ontraire,
xk+1
es formules sont-elles ontraditoires ?
Enn, une formule
F
est-elle dédutible d'un ensemble
Soit la suite des
E
de formules ?
νk
prolongeable en un
est telle que, pour tout
νk+1,
Ek+1,
k, νk ,
satisfaisant
en donnant à la variable
la valeur 0 ou 1, tout en laissant les autres variables d'indie
inférieur inhangées. Et alors
Soit pour un ertain
Une assignation de valeurs aux variables qui rend toutes les formules
satisfaisant
k
E
est satisfaisable :-)
on ne peut trouver auun
νk
(parmi les
νk , il existe
(νk , xk+1 = 0),
valuations possibles) prolongeable. Et don quel que soit
vraies en est un modèle. Un ensemble de formules qui n'a pas de
toujours un sous-ensemble de
modèle est ontraditoire.
ni par
(νk , xk+1 = 1)
; don
Ek+1
Ek+1
non satisfait ni par
n'est pas satisfaisable du tout et
est ontraditoire ! D'où le théorème.
22
2k
24
L'algorithme de Davis et Putnam pour la satisfaisabilité
E,
Soit
Prop : Tautologies, formules satisfaisables et ensembles ontradi-
m variables se déident en un temps O(2m |E|), où E est la
|E| sa taille.
m
d'essayer les O(2 ) valuations possibles sur l'ensemble des
toires sur
un ensemble de lauses non vides ni, dont auune n'est
tautologique ; soit
E.
apparaît dans
x
une variable apparaissant ou dont la négation
On note
Ex
¬x
x,
le sous-ensemble des lauses ontenant
donnée et
E¬x
(Il sut
des lauses ne ontenant ni
x,
Lx
ou sa négation
le sous-ensemble des lauses ontenant
ni
¬x
et
E6x
le sous-ensemble
¬x.
formules.)
: supprime la variable
x
Peut-on trouver des algorithmes plus eaes ?
lauses ;
La dualité entre les deux problèmes préserve la omplexité des solu-
une lause ne ontient que
tions.
vide notée
Prop : Satisfaisabilité et Tautologie sont deux problèmes dont les
omplexités sont reliées linéairement. Tout algorithme de omplexité
f
Lx(E¬x)
pour l'un se transforme en un algorithme de omplexité
O(f )
pour
3
ontient les lauses de
x
ou
¬x,
¬x
E¬x
dans un ensemble de
privées du littéral
¬x.
Si
elle est ainsi réduite à la lause
et dont la valeur de vérité est 0, puisqu'il est impossible
de la satisfaire !
Soient alors
P (E, x) = E6x ∪ Lx(Ex)
et
N (E, x) = E6x ∪ Lx(E¬x)
les deux
nouveaux ensembles de lauses à onsidérer.
l'autre. De plus la satisfaisabilité en FNC est équivalente à la tautoPreuve :
F
E est satisfaisable si et seulement si l'un
P (E, x) = Ex6 ∪ Lx(Ex) ou N (E, x) = E6x ∪ Lx(E¬x)
Prop : Un ensemble de lauses
logie en FND.
est satisfaisable si et seulement si
¬F
n'est pas tautolo-
gique.
des deux ensembles
l'est.
25
27
On onstruit don un arbre de dédutions suessives qui est de
Une lause est une tautologie si et seulement elle ontient au moins
un littéral
λ
et sa négation
¬λ.
λ
et sa négation
k,
nombre de variables. Si toutes les feuilles de l'arbre
ontiennent la lause vide
Un monme est satisfaisable si et seulement si il ne ontient pas un
littéral
profondeur
3
alors la formule n'est pas satisfaisable ;
si, au ontraire, au moins une des feuilles ne ontient que des lauses
réduites à une seule variable et sans ontradition la formule est sa-
¬λ.
tisfaisable d'après la proposition préédente.
E
Une formule en FNC est tautologique si et seulement si haune de
p
ses lauses l'est.
Une formule en FND est satisfaisable si et seulement si l'un de ses
q
monmes l'est.
D'où un algorithme naïf pour la tautologie :
r
(s)(r)
(r + s)
(s)(s)
3
Transformer la formule en FNC et vérier que haque lause vaut
1 ( !)
(s)(q + r)
(r + s)(q + s)
(s)(s)
(s)(s)
(r + s)
3
s
s
3
3
Idem pour la satisfaisabilité et la FND.
3
Pas très eae :-(
Un arbre D-P sur la formule
E = (p + q + ¬r)(p + r + s)(p + ¬q +
s)(¬p + s)(¬s)
On proède par frationnement des lauses :
26
28
.
L'arbre de dédutions a dans la plupart des as une taille exponentielle
en le nombre de variables. On doit herher à optimiser la stratégie
heuristique pour aboutir le plus vite possible à une assignation satisfaisant la formule ou à une ontradition globale. On herhe alors
des as partiuliers qui permettent d'éviter de développer deux sousarbres.
Supposons par exemple que
E¬x = ∅
N (E, x) = E6x ⊂ P (E, x) et, don,
P (E, x) satisfait aussi N (E, x).
pour quelque littéral
toute assignation
ν
x, ;
alors
satisfaisant
Un autre as utile est elui où une lause est réduite à un seul littéral
λ.
Comme
L({λ}, λ)
est la lause vide
3,
l'ensemble
P (E, λ)
la ontient
et est don ontraditoire.
List of string litt = null;
boolean DP(List_Exp e) = {
if (e == null) {return true};
if (existelausevide(e)) {return false};
List_string litt = litteraux(e);
// liste des litte'raux dans e
for (l in litt)
{if (formulevide (xtrtneg(e,l))) // auune lause ne ontient -l
{if (DP(xtrtsans(e,l))) return true}; // reur^t sur sans l
else
{for ( in lause(e))
{if (lauseunit())
{l=litteral();
if (DP(xtrtsans(e,l) et elim(xtrtneg(e,l)))) return true;}
else
{if (DP(xtrtsans(e,l) et elim(xtrtneg(e,l)))) return true;
if (DP(xtrtsans(e,l) et elim(xtrtpos(e,l)))) return true;}}}
31
29
La méthode de résolution
(* Algorithme de Davis-Putnam a` la Java *)
(* e est une liste de lauses; on utilise la fontion
formulevide(e) a` re'sultat boole'en *)
(* une lause est une liste de litte'raux; on utilise
la fontion lausevide() a` re'sultat boole'en
true si est vide et une fontion lauseunit()
a` re'sultat boole'en true si est un litte'ral *)
(* les fontions xtrtpos(e,l), xtrtneg(e,l)
et xtrtsans(e,l) fabriquent respetivement les sous-ensembles
de lauses de e ontenant l, ontenant -l et ne ontenant pas l *)
(* la fontion elim(e,l) retourne la liste des lauses de e
prive'es du litte'ral l *)
(* la fontion litteraux(e) retourne la liste des litte'raux de e *)
Def : Soient deux lauses (réduites)
que
x∈c
la lause
c
et
d,
et ¬x ∈ d. On appelle résolvante
ρx(c, d) = c ∪ d\{x, ¬x}.
x une
(c, d) (par
et soit
variable telle
de
rapport à
c et d deux lauses réduites et x une variable telle que
x ∈ c et ¬x ∈ d, alors si la formule {c, d} est satisfaisable, la résolvante
ρx(c, d) l'est aussi.
Prop : Soient
Prinipe de l'algorithme :
Soit
E
un ensemble de lauses. Une suite de lauses
appelée dérivation par résolution de
i ≤ n, ci est soit
ck , pour j, k < i.
résolution de E .
élément de
Si
cn = 3,
E,
cn
depuis
E
c1, c2, ..., cn
si pour haque
soit est la résolvante de deux
la dérivation est appelée
est
1≤
cj
et
réfutation par
R(E, x) = E6x ∪ {ρx(c, d)|c ∈ Ex, d ∈ E¬x}.
30
x)
32
Thm : Soit
E
un ensemble de lauses, et soit
est satisfaisable si et seulement si
R(E, x)
Preuve : Une valuation qui satisfait
E6x
E,
x
une variable. Alors,
E
l'est.
satisfait aussi toutes les lauses
c et d, partageant
c et d le sont.
Réiproquement, soit ν qui satisfait la résolvante R(E, x) de E ; ou
bien P (E, x) ou bien N (E, x) est satisfait. Si P (E, x) ne l'est pas ; une
′
lause c au moins de P (E, x) ne l'est pas, alors que c = c ∪ {x} est
′
dans Ex ; or les résolvantes de c ave toutes les lauses d de E¬x sont
satisfaites par ν ; don toutes ses lauses doivent être satisfaites une
à une et par onséquent simultanément. Don N (E, x) est satisfait.
de
ainsi que toute résolvante de deux lauses,
la variable
x,
puisque
Cor : Soit
E
une formule en FNC et soit
par résolution ; alors si l'assignation
ν
Beaucoup d'algorithmes difficiles !
c
une lause qui en dérive
satisfait
E,
elle satisfait aussi
c.
33
• Compilation des spécifications en portes logiques
• Optimisation logique
• Portes physiques optimisées
• Placement / routage des fils
• Construction de jeux de tests
• Constructions des masques (téra-octets)
•...
Beaucoup sont NP-Complets => heuristiques !
Une grande industrie: EDA*, ~5 milliards de $
* EDA = Electronic Design Automation
35
47
Thm : La formule
E
en FNC est ontraditoire si et seulement si elle
admet une réfutation par résolution.
{¬p, ¬q, s}
FPGA = circuit programmable par
logiciel
{p}
{¬q, s}
portes logiques configurables
routage configurable
=> téléchargement du circuit!
{¬u, ¬s, w}
{¬q, ¬u, w}
{q}
{¬u, w}
{u}
{w}
{¬w}
3
Un arbre de réfutation pour l'ensemble de lauses
E = {{¬p, ¬q, r}, {¬p, ¬q, s}, {¬t, ¬u, v}, {¬u, ¬s, w}, {p}, {q}, {t}, {u}, {¬w}}.
34
routeurs
émulation
petit volume
prototypage
recherche
36
50
La Semaine Prohaine
Cours 11 : Introdution aux réseaux :
Comment faire des aluls à plusieurs ?
Aujourd'hui : PC de révision pour le CC1 de la semaine prohaine
Et enn le PI
C.C.C.P...
37
Téléchargement