Chpitre 3 : Grphes de déision inires Chpitre 3 Grphes de déision inires Pour répondre u prolème posé pr l roissement de l tille des fontions logiques à triter (grnd nomre de fontions, de monômes et de vriles), de nouvelles tehniques de représenttion des fontions ooléennes ont été développées. Elles sont générlement sées sur l réursivité du théorème de Shnnon et non plus sur les théorèmes hituels du lul ooléen. Les Grphes de Déision Binires (BDD pour Binry Deision Digrm) sont des modèles de représenttion prtiulièrement effies pour représenter et mnipuler de telles fontions logiques. Ils ont été introduits pr Akers en 978. En 986, Brynt propose les OBDD (Ordered Binry Deision Digrm), une représenttion nonique des BDD insi que des lgorithmes pour luler effiement les opértions ooléennes sur es strutures de données. 3.. Arres de déision inire Les rres de déision inires onstituent un modèle de représenttion des fontions ooléennes. Un rre de déision inire est un rre orienté omposé d une rine, de sommets intermédiires et de sommets terminux vlnt ou. L rine et les sommets intermédiires sont indexés et possèdent deux sommets fils, un fils guhe et un fils droit. Le fils guhe est tteint en empruntnt l rnhe, le fils droit en empruntnt l rnhe. Un rre de déision inire est otenu en ppliqunt réursivement l première forme du théorème de Shnnon sur l ensemle des vriles de l fontion. Théorème de Shnnon (rppel): f(x,x 2,...,x i,...,x n ) = x i. f(x,x 2,...,,...,x n ) + x i. f(x,x 2,...,,...,x n ) Si e théorème est ppliqué à f pour x, puis ux deux sous-fontions otenues pour x 2, et insi de suite jusqu à x n, on peut réliser un rre de déision inire. Exemple : f(,,) =.. +. f(,,) =.f(,.) +.f(,,) f(,,) =. f(,,) = f(,,) =.f(,.) +.f(,,) f(,,) = f(,,) = f(,,) =.f(,,) +.f(,,) f(,,) = f(,,) = f(,,) =. f(,,) +.f(,,) f(,,) =
Chpitre 3 : Grphes de déision inires f(,,) = f(,,) =.f(,.) +.f(,,) f(,,) = f(,,) = f(,,) =.f(,,) +.f(,,) f(,,) = f(,,) = f(,,) =. f(,,) +.f(,,) f(,,) = f(,,) = Ces reltions peuvent être exprimées sous forme d rre de déision inire de l fçon suivnte : Figure 3.. Arre de déision inire ssoié à l fontion f = + Notons qu il est possile de réduire l tille de l rre en s rrêtnt dns l pplition du théorème de Shnnon dès que l on se trouve en présene d une onstnte ou. Ainsi, dns l exemple préédent nous voyons que f(,,)=, est à dire que f= quelle que soit l vleur qui ser ssignée à. En s rrêtnt à e niveu dns l pplition du théorème de Shnnon, l rre de déision inire ssoié à l fontion f devient: Figure 3.2. Arre de déision inire simplifié ssoié à l fontion f = + 3.2. Digrmmes de déision inires (BDD) Après s onstrution, un rre de déision inire peut être réduit pr trnsformtion en un grphe ylique orienté ppelé grphe de déision inire (BDD). En effet, nous vons pu remrquer qu un rre de déision
Chpitre 3 : Grphes de déision inires inire peut posséder des feuilles, voir des sous-grphes identiques. L représenttion peut être simplifiée en ne onservnt qu une seule représenttion des feuilles et sous-grphes onernés, et en remplçnt les utres feuilles et sous-grphes pr un r vers le premiers. Le grphe de déision inire insi otenu peut églement être réduit pr élimintion des sommets redondnts, est à dire des sommets ynt un fils guhe et un fils droit identique. Figure 3.3. Rédution pr élimintion des feuilles et sous-grphes identiques Figure 3.4. Rédution pr élimintion sommets redondnts En herhnt et remplçnt tous les sous-rres équivlents d un digrmme de déision inire, on otient le digrmme de déision inire miniml pour l ordre orrespondnt des vriles (ROBDD pour Redued Ordered BDD). Il est importnt de noter que pour un ordre donné de vriles, le grphe de déision inire miniml est unique. Cette uniité peut évidemment être utilisée pour montrer l équivlene de deux expressions logiques. Remrques : - L omplexité de l proédure de rédution d un BDD est O(nlog(n)). - L struture du BDD (et en prtiulier s tille) dépend de l ordre dns lequel sont onsidérées les vriles. Ainsi, pour deux ordres différents, les BDD peuvent être de tilles très différentes. 3
Chpitre 3 : Grphes de déision inires niveu = niveu = 2 niveu = 3 niveu = niveu = 2 niveu = 3 Figure 3.5. OBDDs et ROBDD de l fontion f = (+). Figure 3.6. ROBDD de l fontion f = (+). sous l'ordre,,. 3.3. Constrution des BDDs Afin de grntir l noniité de l représenttion, les ontrintes suivntes sont imposées : - hque vrile ne peut pprître qu une fois u plus sur hque hemin entre l rine et une feuille - les vriles sont ordonnées de telle fçon que si un sommet de lel x i un fils de lel x j lors ord(x i ) < ord (x j ) Il y 2 strtégies priniples de onstrution des BDDs :
Chpitre 3 : Grphes de déision inires - de l rine vers les feuilles (top-down). Cette méthode est utilisée lorsque on prt d une formule lgérique - des feuilles vers l rine (ottom-upp) lorsque l on prt d une desription struturelle du iruit. 3.3.. Méthode top-down On utilise l formule de Shnnon. Exemple : soit f(,,)= + ve ord()<ord()<ord() - Si l on fit l expnsion pr rpport à on otient l Fig.3.7. - En fisnt l expnsion pr rpport à on otient l Fig.3.7. - En fisnt l expnsion pr rpport à on otient l Fig.3.7. ' ' ) ) ) Figure 3.7. Constrution du BDD de l fontion f = + 3.3.2. Méthode ottom-up Le niveu d une formule est défini pr : - les vriles d entrée sont de niveu - hque sous-formule f=g<op>h un niveu égl à Mx (niveu(g), niveu(h)) + Méthode pour onstruire le BDD d une fontion f de n vriles :. onstruire les BDD des vriles 2. onstruire les BDDs des formules de niveu à l ide de l fontion : ppliquer (f : BDD, f2 : BDD, opérteur <Op>) : BDD 3. répéter l étpe 2 jusqu à e que tous les niveux soient onsidérés. Pr exemple si f = xy + z : on onstruit les BDD de x, y et z puis elui de x.y puis elui de x.y + z. 3.4. Opértions logiques entre deux fontions représentées pr BDD Les opértions logiques ppliles sur les BDD on été définies pr Brynt. Ces opértions sont les opértions de omplémenttion, de test d implition, de ET logique, de OU logique, et de OU Exlusif. L lgorithme permettnt de déterminer le BDD résultnt d une opértion logique entre deux fontions est sé sur l pplition réursive du théorème de Shnnon. 5
Chpitre 3 : Grphes de déision inires Etnt donné deux fontions f et g, un opérteur Op et un ordre des vriles on : f<op>g = x i.(f/x i = <Op> g/x i = ) + x i.(f/x i = <Op> g/x i =) Le BDD résultnt d une opértion logique entre deux fontions peut être onçu à prtir des deux BDD originux en ppliqunt l proédure suivnte : Considérer les sommets rines des BDD. En fontion de l nture de es deux sommets, ppliquer réursivement l une des règles suivntes. Itérer le proessus jusqu à l génértion des sommets terminux. R : Si les deux sommets Sf et Sg sont des sommets terminux lors le sommet résultnt est un sommet terminl de vleur Vleur(Sf) <Op> Vleur(Sg). R2 : Si le sommet Sf est un sommet terminl mis ps le sommet Sg, réer le sommet Sg en lui ssoint omme fils droit le résultt de l omprison (Sg, fils droit de Sf) et omme fils guhe le résultt de l omprison (Sg, fils guhe de Sf). R3 : Si ni le sommet Sf ni le sommet Sg ne sont des sommet terminux lors : R3. : Si Sf et Sg représentent l même vrile, réer un sommet représentnt l vrile en lui ssoint omme fils droit le résultt de l omprison (fils droit de Sg, fils droit de Sf) et omme fils guhe le résultt de l omprison (fils guhe de Sg, fils guhe de Sf). R3.2 : Si Sf et Sg ne représentent ps l même vrile, réer un sommet S représentnt l vrile intervennt l première dns l ordonnnement onsidéré (S=min[ord(Sf), ord(sg)] en lui ssoint omme fils droit (guhe) le résultt de l omprison entre le fils droit (guhe) de min[ord(sf), ord(sg)] et l utre sommet (mx[ord(sf), ord(sg)]). Remrque : Etnt donné deux fontions f et g dont les BDD respetifs ont n et m sommets. En termes d ppels réursif, l omplexité de l proédure d pplition d une opértion entre es deux BDD est 2.n.m. R: op => <op> R2: op => R3.: op => d e d e R3.2: op => d e f d Figure 3.8. Illustrtion des règles de ominisons de BDD
Chpitre 3 : Grphes de déision inires Remrque : Etnt donné deux fontions f et g dont les BDD respetifs ont n et m sommets. En termes d ppels réursifs, l omplexité de l proédure d pplition d une opértion entre es deux BDD est 2.n.m. Remrque : Cette méthode permet (outre les opértions) : - de onstruire un BDD de fçon sendnte, - de luler l inverse d une fontion en fisnt "f " - de luler une implition f => f2 <=> not ( f. not(f2)) Exemple : Soit les fontions f(,,) = '+' et g(,,) =. représentées pr leurs BDD. Construire le BDD de l fontion h(,,) = f(,,) + g(,,). n n2 m m2 n3 n4 m3 m4 f(,,) = '+' g(,,) =. (n3,m) (n3,m2) (n3,m3) (n,m) (n2,m) (n2,m3) (n2,m2) (n3,m3) (n3,m4)(n3,m3) (n4,m3)(n3,m3) (n4,m4) h(,,) = f(,,) + g(,g,) h(,g,) près rédution Figure 3.9. Opértion entre deux BDD 7
Chpitre 3 : Grphes de déision inires 3.5 Implnttion informtique des BDD L struture informtique permettnt de représenter un BDD peut être un tleu tel que hque ligne omporte 3 hmps : un hmps «Identifiteur» permettnt d identifier le sommet dns le BDD, un hmps Ar_ donnnt l dresse du fils guhe du sommet en question et un hmps Ar_ donnnt l dresse du fils droit. Identifiteur Ar_ Ar_ - - - - Vrile sommet i Adresse sommet guhe Adresse sommet droit Exemple : soit une fontion f(,,) = ' + ' +. 2 3 4 5 6 7 Figure 3.. BDD de l fontion f = ' + ' +. Le BDD de l fontion f peut se représenter informtiquement pr le tleu suivnt : - - - - 2 3 4 3 5 4 6 7 5 6 7 3.6. Algorithme de rédution des BDD L lgorithme de rédution d un BDD pour ojetif de supprimer les sommets redondnts et les sous-grphes isomorphes. Le prinipe de lgorithme est le suivnt : Fire id(v) = pour hque feuille v ve vleur (v) = ;
Chpitre 3 : Grphes de déision inires Fire id(v) = pour hque feuille v ve vleur (v) = ; Initiliser le ROBDD ve 2 feuilles ve id = et id = ; Nextid = ; /* Nextid = identifiteur suivnt disponile */ Pour (i = n to ve i=i-) { V(i) = { v V / niveu(v) = i }; Pour hque v V(i) { if (id(guhe(v)) = id (droit(v)) { /* sommet redondnt */ id(v) = id(guhe(v)) enlever v de V(i)} else lef(v) = id (guhe(v)), id (droit(v)) } /* l lef est définie omme l pire d identifiteurs des fils*/ nienne_lef =, ; Pour hque v V(i) trié selon l lef { if lef(v) = nienne_lef id(v) = nextid /* le grphe de rine v est redondnt */ else { Nextid++; id(v)=nextid; nienne_lef = lef (v); jouter v u ROBDD ve des rs llnt ux sommets dont l id est égle à eux de guhe(v) et droit(v)) }}} L figure 3. donne un exemple d pplition de et lgorithme de rédution d un BDD. niveu = id=4 id=4 niveu = 2 niveu = 3 2 id=3 3 id=2 id=3 4 id=2 5 id=2 id=2 id= id= id= id= id= id= id= Figure 3.. Constrution du ROBDD de l fontion f = (+) 3.7. Applitions diretes des BDD 3.7.. Evlution d une fontion représentée sous forme de BDD Etnt donnée une ssigntion des vriles d entrées d une fontion f, l vleur de l fontion f peut être trouvée en trversnt le BDD depuis l rine jusqu à une feuille en empruntnt l rnhe guhe ou droite de 9
Chpitre 3 : Grphes de déision inires hque sommet selon l vleur de l vrile d entrée orrespondnt. Dns le pire s, le BDD orrespondnt à une fontion f de n vriles est omposé de 2 n - sommets. De plus, le nomre de rnhes entre l rine et une feuille est u plus égl à n. L omplexité d une proédure d évlution d une fontion, est à dire de trversée d un BDD depuis s rine jusqu à une feuille est O(n). L représenttion sous forme de BDD d une fontion f permet de trouver rpidement une ominison des entrées telles que f= ou telle que f=. L proédure permettnt de trouver une solution x de f(x) = ( = ou ) est en O(n). 3.7.2. Equivlene de 2 fontions Puisque pour un ordre donné le ROBDD d une fontion est unique, pour que 2 fontions soit identiques, il suffit que leurs ROBBDs respetifs soient isomorphes. 3.7.3. Cofteurs Pour otenir le ofteur pr rpport à x i il suffit de supprimer le sommet x i et de lier les sommets pointnt sur x i u fils droit de x i. Pour otenir le ofteur pr rpport à x i il suffit de supprimer le sommet x i ' et de lier les sommets pointnt sur x i u fils guhe de x i f f ' Figure 3.2. BDD des ofteurs 3.7.4. Preuve de tutologie Une fontion simple est une tutologie si elle est toujours égle à. Démontrer qu une fontion est une tutologie est reltivement simple en élornt l rre de déision inire de l fontion. En effet, une ondition néessire et suffisnte pour qu une fontion soit une tutologie est que tous les sommets terminux (feuilles) de l rre de déision inire villent (uun sommet terminl à ). Exemple : L fontion f(,,) = '.. +.. +.' + ' est une tutologie r tous les sommets terminux de l rre de déision inire sont à.
Chpitre 3 : Grphes de déision inires Figure 3.3. Arre de déision inire de l fontion f =.. +.. +. + Pour démontrer qu une fontion est ou n est ps une tutologie, on peut risonner de l mnière suivnte: Si l un des s suivnts est déteté, il est possile d rrêter le tritement, l fontion n est ps une tutologie. - Toutes les vriles de F sont monoformes, - Une vrile monoforme est présente dns tous les monômes, - L somme des tilles (dns le sens nomre de points ouverts) des monômes est inférieure à 2n. (rppel : un monôme de p termes ouvre 2(n-p) points) Si uune des onditions préédentes n est remplie, réliser l rre de déision inire. Pour simplifier le tritement, on pourr ppliquer le théorème suivnt : Théorème : Soit f une ouverture monoforme pr rpport à une vrile x (f=x.g + h), h le sous-ensemle de f ne dépendnt ps de x. f est une tutologie si et seulement si h est une tutologie. Preuve : Soit f monoforme en x: f=x.g + h () : h = => f = don h tutologie => f tutologie (2) : f tutologie => f = quelque soit l vleur de x Si x=, f = h => h = Ainsi, on pourr églement onsidérer les vriles de l mnière suivnte: - Si des monômes sont omposés d une seule vrile prendre es vriles en premier, - Si une vrile x pprît toujours sous s forme direte, ne ps ontinuer le grphe sur l rnhe (f = <=> f x' = ) puisque f = x.f x + f x' ve f x' indépendnt de x. - Si une vrile x pprît toujours sous s forme omplémentée, ne ps ontinuer le grphe sur l rnhe (f = <=> f x = ) puisque f = f x + x.f x' ve f x indépendnt de x. Exemple : Soit l fontion f(,,) = '.. +.. +.' + '. - Il existe des vriles iformes - Auune vrile monoforme n est présente dns tous les monômes - L somme des tilles des monômes (++2+4=8) n est ps inférieure à 2 n. L rre de déision inire doit être rélisé. Un monôme est onstitué d une seule vrile (') => ser pris en premier. Auune vrile n pprît uniquement sous s forme normle ou uniquement sous s forme omplémentée.
Chpitre 3 : Grphes de déision inires Figure 3.4. Arre de déision inire de l fontion f = '.. +.. +.' + ' Exemple2 : Soit l fontion f(,,) =.' +. +..' +. - Il existe des vriles iformes - Auune vrile monoforme n est présente dns tous les monômes - L somme des tille des monômes (2+2+2+2=8) n est ps inférieure à 2 n. L rre de déision inire doit être rélisé. L vrile est monoforme direte, ne ps développer suivnt l rnhe. Figure 3.5. Arre de déision inire l fontion f =.' +. +..' +. Exemple3 : Soit l fontion f(,,) =.' + ' +. +.' - Il existe des vriles iformes. - Auune vrile monoforme n est présente dns tous les monômes. - L somme des tille des monômes (++2+4=8) n est ps inférieure à 2 n. L rre de déision inire doit être rélisé. L vrile est monoforme direte, ne ps développer suivnt l rnhe.
Chpitre 3 : Grphes de déision inires Figure 3.6. Arre de déision inire de l fontion f =.' + ' +. +.' 3.7.5. Test d'inlusion Svoir si un monôme est inlus dns l expression de l fontion, est à dire ouvert pr une fontion, peut être un prolème omplexe. Le théorème d inlusion permet de rmener e prolème à une prolème de preuve de tutologie sur des ofteurs. Rppel du théorème d inlusion : Une expression F ontient un monôme m si et seulement si le ofteur de F pr rpport à m (F m ) est une tutologie. m F F m = Exemple : Soit l fontion f(,,) =. +. + ' Cherhons à svoir si le monôme est ouvert pr ette expression. L onstrution du BDD de l fontion f représenté sur l figure 3.7 nous permet de onlure imméditement à l inlusion (omme onfirmé pr lz tle de Krnugh) f f Figure 3.7. Arre de déision inire de l fontion f 3
Chpitre 3 : Grphes de déision inires 3.8. Représenttion des multi-fontions L représenttion des multi-fontions peut se fire soit en rélisnt un BDD pr fontion, soit on prtgent des sous-rres. Cette dernière possiilité peut onduire à un gin de ple onséquent. Exemple : f(,) =. ' f2(,) = f3(,) = ' f4(,) = + ' f f2 f3 f4 Figure 3.8. BDD d'une multi-fontion L représenttion informtique d un tel BDD peut être : - - - - 2 3 f3 4 3 f 5 2 3 f2 6 3 f4 3.9. Mnipultion des ROBDDs : fontion ITE On peut mnipuler simplement les ROBDD à l ide de l fontion ITE (f,g,h) (if then else) définie pr : ITE (f,g,h) = f.g + f.h (i.e. If f Then g Else h) Soit x l première vrile (i.e. Ord(x) = ) de f,g,h. Soit z = ITE (f,g,h). L fontion z est ssoiée u sommet de vrile x et dont les fils implntent : ITE(f x, g x, h x ) et ITE (f x, g x, h x ).
Chpitre 3 : Grphes de déision inires On : z = x.z x + x.z x = x.(f.g + f h) x + x.(f.g + f h) x = x.(f x. g x + f x h x ) + x (f x.g x + f x.h x ) = ITE (x, ITE (f x, g x, h x ), ITE (f x, g x, h x )) Identités remrqules : ITE (f,,) = f ITE (,g,h) = g ITE (,g,h) = h ITE (f,g,g) = g ITE (f,,) = f De plus toutes les opértions hituelles peuvent être trduites en terme d opérteur ITE : => => f => f f => ITE (f,,) f.g => ITE (f,g,) f.g => ITE (f,g,) f g => ITE (f,,g) f g => ITE (f,g,g) f + g => ITE (f,,g) (f+g) => ITE (f,,g ) f + g => ITE (f,,g ) f + g => ITE (f,g,) (f.g) => ITE (f,g,) Exemple : Constrution du ROBDD à l ide de l fontion ITE. Soit f(,,) =. +. et l ordre (,,). Soit les ROBDDs de, et sur l figure suivnte 3.9. Le ROBDD de. est lulé omme ITE (,, ). Le ROBDD de. est otenu pr ITE (,, ) Le ROBDD de f est otenu pr : f = ITE (,, ) = ITE (, ITE(,,.), ITE (,,.)) = ITE (,,.). L vrile top est, l rnhe guhe est le ROBDD de. et l rnhe droite est le ROBDD de. De plus puisque il y dns le ROBBD de. un sommet, e sommet est utilisé pour noter l rnhe guhe. Le résultt est dérit sur l figure 3.9. 5
Chpitre 3 : Grphes de déision inires Figure 3.9. ROBDDs de, et. ROBDDs de., de. et de f =. +. Algorithme : ITE(f,g,h) { if (s terminl) /* -àd ou figurnt dns l tle lulée */ return ( r = résultt trivil) else { if ( l tle-lulee une entrée {(f,g,h),r} ) /* déjà lulé */ return (r à prtir de l tle-lulée) else { x = vrile top de f, g, h ; t = ITE (fx, gx, hx); e = ITE (fx, gx, hx ); if ( t == e) /* fils guhe et droit isomorphes */ return (t); r = trouve-ou-joute-dns-tle (x, t, e); /* jout r à tle*/ mise--jour-tle-lulee ve {(f,g,h), r}; return (r); } } } } Cet lgorithme utilise deux tles : Tle et Tle_lulee. Tle est un tleu dont hque ligne représente un sommet (-à-d le tleu préédent). Ses olonnes sont l identifiteur du sommet, le nom de l vrile ssoiée, l identifiteur du fils guhe et l identifiteur du fils droit. Tle-lulée est utilisée pour élérer l lgorithme. Elle mémorise pour hque triplet (f,g,h) le sommet implntnt ITE (f,g,h).
Chpitre 3 : Grphes de déision inires Exemple : l Tle orrespondnt à l exemple de l Figure 3.2. est l suivnte : Clef Identifiteur Vrile Fils guhe Fils droit 4 3 2 3 2 2 id=4 id=3 id=2 id= id= Figure 3.2. ROBDD et tle-unique 3.. Ordre des vriles L'ordre peut euoup influer sur le tille (nomre de nœuds) du BDD. L reherhe de l'ordre optiml est un prolème NP-omplet. En prtique on peut reherher l'ordre optiml jusqu'à 2 vriles. Pour plus de vriles on utilise des heuristiques Règles empiriques : Prendre en priorité. Les vriles qui ontrôlent le plus l fontion - Vriles pprissnt sous l même forme dns tous les monômes - Vriles onstitunt un monôme à elles seules - Vriles d ourrene mximle 2. les groupes de vriles ynt une reltion "prohe". Exemple : f = x x 2 + x 3 x 4 +x 5 x 6 +x 7 x 8 Si on prend l'ordre x,x 2,x 3,...,x 8 => 8 sommets pour 8 vriles Si on prend l'ordre x, x 8, x 2, x 7,... => 3 (2 n/2+ -2) sommets Exemple : un multiplexeur 8 voies (,...,7) ve 3 its de ontrôle (,,2). Ordre,,2,,,..., 7 => 7+8 sommets Ordre,,...,7,,,2 => 2 sommets 7
Chpitre 3 : Grphes de déision inires 3.. Comprison ve d utres représenttions Le tleu suivnt donne l omplexité de ertins lgorithmes en fontion du type de représenttion des fontions logiques. non F SIGMA - PI Glois BDD O ( f f /2+ ) O () O () f => g O ( ( f + g ) ( f + g ) /2+ ) O ( f * g ) log( f * g )) O ( f * g ) f <=> g O ( ( f + g ) ( f + g ) /2+ ) O ( f + g ) log( f + g )) O ( f * g ) f et g O ( f * g ) O ( f * g ) log( f * g )) O ( f * g ) f ou g O ( f + g ) O ( f * g ) log( f * g )) O ( f * g ) Stisftion NP-omplet O (n) O (n) Tutologie NP-omplet O () O () Dns le s d une représenttion pr BDD, dns l mjorité des s, l orne supérieure du nomre de nœuds n est ps tteinte. Cei justifie en fit l effiité des BDD ompré à d utres représenttions.