La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Optimisation Logique Bruno Rouzeyre

Présentations similaires


Présentation au sujet: "Optimisation Logique Bruno Rouzeyre"— Transcription de la présentation:

1 Optimisation Logique Bruno Rouzeyre
GMEE329 Optimisation Logique Bruno Rouzeyre

2 Minimisation de « grosses fonctions »
Minimisation (> 10 variables) => Dans le cas général, il n'est pas possible d'obtenir une solution exacte (problème np complet) Méthodes heuristiques Ne nécessitent pas la base première complète Recherche d'une base première irrédondante Basées sur le test d'inclusion Nécessite des méthodes de preuve de tautologie efficaces (BDD, Cube de position, ...)

3 Principe de minimisation
On ne cherchera pas une base première complète, mais une base première irrédondante issue de la forme de départ. Cette méthode peut se résumer en deux étapes principales: Prendre un monôme et le rendre premier en l'agrandissant au maximum Supprimer tous les monômes inclus dans ce monôme Agrandir un monôme consiste à essayer de lui “enlever” une ou plusieurs variables. Le monôme ainsi agrandi doit être encore inclus dans la fonction. Une fois le monôme agrandi dans toutes les directions, ce monôme est premier.

4 Algorithme de minimisation
1 - Marquer les monômes de départ avec l'indicateur "non-premier” 2 – S'il existe un monôme m marqué "non-premier", le prendre Sinon fin (les monômes restants forme une base première irrédondante) 3 – S'il existe une des variables de m que l'on a pas essayé de supprimer alors: Générer le diviseur md de m en enlevant cette variable de m Sinon aller à l'étape 5 4 - Tester l'inclusion de md dans l'ensemble des monômes. Si le test est positif remplacer m par md Sinon revenir à l'étape 3 5 - Supprimer les monômes marqués “non-premiers” inclus dans md. Revenir à l'étape 2 6 – Eliminer les monômes redondants

5 Algorithme de minimisation
Pb de l'algorithme de minimisation Test d'inclusion (Vérifier qu'un monôme est inclus dans une fonction) a bc 00 01 10 11 1 b.c F ??? F = a.b + a.c + a'

6 Algorithme de minimisation: Exemple (1)
F = d'c'b'a' + d'c'ba' + d'cba' + d'cba + dc'b'a' + dc'b'a + dc'ba' + dc'ba + dcb'a' + dcba m = d'c'b'a' Elimination de d => md = c'b'a' est inclus dans F m = c'b'a' Elimination de c => md = b'a' n'est pas inclus dans F m = c'b'a' Elimination de b => md = c'a' est inclus dans F m = c'a' Elimination de a => md = c' n'est pas inclus dans F ba dc 00 01 11 10 00 1 1 01 1 1 11 1 1 10 1 1 1 1 On remplace d'c'b'a' par c'a' On supprime d'c'ba', dc'b'a', dc'ba' F = c'a' + d'cba' + d'cba + dc'b'a + dc'ba + dcb'a' + dcba

7 Algorithme de minimisation: Exemple (2)
F = c'a' + d'cba' + d'cba + dc'b'a + dc'ba + dcb'a' + dcba m = d'cba' Elimination de d => md = cba' n'est pas inclus dans F m = d'cba' Elimination de c => md = d'ba' est inclus dans F m = d'ba' Elimination de b => md = d'a' n'est pas inclus dans F m = d'ba' Elimination de a => md = d'b n'est pas inclus dans F ba dc 00 01 11 10 00 1 1 01 1 1 11 1 1 10 1 1 1 1 On remplace d'cba' par d'ba' F = c'a' + d'ba' + d'cba + dc'b'a + dc'ba + dcb'a' + dcba

8 Algorithme de minimisation: Exemple (3)
F = c'a' + d'ba' + d'cba + dc'b'a + dc'ba + dcb'a' + dcba m = d'cba Elimination de d => md = cba est inclus dans F m = cba Elimination de c => md = ba n'est pas inclus dans F m = cba Elimination de b => md = ca n'est pas inclus dans F m = cba Elimination de a => md = cb n'est pas inclus dans F ba dc 00 01 11 10 00 1 1 01 1 1 11 1 1 10 1 1 1 1 On remplace d'cba par cba On supprime dcba F = c'a' + d'ba' + cba + dc'b'a + dc'ba + dcb'a'

9 Algorithme de minimisation: Exemple (4)
F = c'a' + d'ba' + cba + dc'b'a + dc'ba + dcb'a' m = dc'b'a Elimination de d => md = c'b'a n'est pas inclus dans F m = dc'b'a Elimination de c => md = db'a n'est pas inclus dans F m = dc'b'a Elimination de b => md = dc'a est inclus dans F m = dc'a Elimination de a => md = dc' est inclus dans F ba dc 00 01 11 10 00 1 1 01 1 1 11 1 1 10 1 1 1 1 On remplace dc'b'a par dc' On supprime dc'ba F = c'a' + d'ba' + cba + dc'+ dcb'a'

10 Algorithme de minimisation: Exemple (5)
F = c'a' + d'ba' + cba + dc' + dcb'a' m = dcb'a' Elimination de d => md = cb'a' n'est pas inclus dans F m = dcb'a' Elimination de c => md = db'a' est inclus dans F m = db'a' Elimination de b => md = da' n'est pas inclus dans F m = db'a' Elimination de a => md = db' n'est pas inclus dans F ba dc 00 01 11 10 00 1 1 01 1 1 11 1 1 10 1 1 1 1 On remplace dcb'a' par db'a' F = c'a' + d'ba' + cba + dc'+ db'a'

11 Algorithme de minimisation: Exemple (6)
F = c'a' + d'ba' + cba + dc' + db'a' 1 dc ba 00 01 10 11 Remarque: Avec cet algorithme, le nombre de monômes n'est jamais augmenté. On limite ainsi la complexité du processus de minimisation

12 Algorithme de minimisation: Exemple (7)
Opération « Irredondant » Prendre chaque monôme « m » de la fonction F: Vérifier si ce monôme est inclus dans F – m - Si oui l'éliminer (monôme redondant) - Si non le conserver F = c'a' + d'ba' + cba + dc' + db'a' 1 dc ba 00 01 10 11

13 Algorithme de minimisation
Pb de l'algorithme de minimisation Test d'inclusion (Vérifier qu'un monôme est inclus dans une fonction) a bc 00 01 10 11 1 b.c F ??? F = a.b + a.c + a'

14 Test d'inclusion: définitions préliminaires
Théorème de Shannon: F(x1,x2, ... , xi, ... ,xn) = xi' . F(x1,x2, ... , 0, ... ,xn) + xi . F(x1,x2, ... , 1, ... ,xn) Cofacteurs: Fxi = F(x1,x2,...,1,...xn) -> Cofacteur de F par rapport à la variable xi Fxi' = F(x1,x2,...,0,...xn) -> Cofacteur de F par rapport à la variable xi' Le cofacteur de F par rapport à un monôme m (noté Fm) est obtenu en remplaçant dans F chaque occurrence des variables apparaissant dans m par : - 1 si elle est sous forme normale - 0 si elle est sous forme complémentée Exemple: F = a.b + a'.b'.c' + a.c Fa,b' = c

15 Test d'inclusion m F <=> Fm = 1 Théorème:
Une expression F contient un monôme m si et seulement si Fm est une tautologie Test d'inclusion: Prouver qu'un monôme m est inclus dans une fonction F revient à prouver que le cofacteur de F par rapport à m est une tautologie Exemple: a bc 00 01 10 11 1 F = a.b + a.c + a' Fb,c = a + a' = 1 b.c F

16 Test d 'inclusion m F <=> Fm = 1 Théorème :
Preuve : Remarquons que m Í F <=> F . m = m (1) Supposons que m Í F et donc que F . m = m Considérons les cofacteurs par rapport à m des 2 termes. Les termes étant égaux, les cofacteurs sont égaux. => (F . m)m = mm mm = 1 => (F . m)m = 1 => Fm . mm = 1 => Fm = 1 => Fm est une tautologie (2) Réciproquement, supposons que Fm soit une tautologie => Fm = 1 => Fm . m = m => F . m = [ (m . Fm) + (m' . Fm') ] . m = Fm . m = m => m Í F

17 Preuve de Tautologie F =1 F = a.b + a.c + a.b'.c' + a' ??? a bc 00 01
10 11 1 F =1 ??? F = a.b + a.c + a.b'.c' + a' Preuve de Tautologie : Problème NP complet - Diagramme de décision binaire (BDD) - Cube de position

18 Transformation du problème de minimisation
Test d'inclusion Cofacteur Preuve de tautologie m F <=> Fm = 1 Preuve de tautologie : Prouver qu'une fonction est égale à 1

19 “Cube de position” “Synthesis and Optimization of Digital Circuits”
G. DeMicheli (Stanford University) Editions McGraw-Hill

20 Cube de position” cube universel U = 11 11 …
Notation: > > F -> I > (Invalide) F = a'.d' + a'.b + a.b' + a.c'.d Liste de monômes Cube universel - tautologia cube universel U = … cube non valide :

21 Union et intersection de monômes
Intersection -> Produit Union -> Somme (plus petit monôme englobant) a = a.b -> b = b.c' -> a .b = ( ) . ( ) = ( ) => a.b.c' a +b = ( ) + ( ) = ( ) => b bc a 00 01 11 10 a = a.b -> b = b'.c' -> 1 a .b = ( ) . ( ) = ( ) => Intersection vide a +b = ( ) + ( ) = ( ) => Union =1

22 Union et intersection d'ensemble de monômes
Union de 2 ensembles de monômes (somme de 2 fonctions) Fusionnement des 2 ensembles (avec élimination des duplications) Intersection de 2 ensembles de monômes (produit de 2 fonctions) Intersection de tous les couples de monômes (Complexité = Produit des cardinalité)

23 Calcul des Cofacteurs Définition: Le cofacteur d'un monôme a (a = a1,a2,...an) par rapport à un monôme b (b = b1,b2,...bn) noté ab est nul si l'intersection entre a et b est vide sinon il est donné par : ab = a1+b1' a2+b2' an+bn' Le cofacteur d'un monôme par rapport à une variable peut être obtenu par la formule précédente (Une variable est un monôme particulier) Le cofacteur d'un ensemble de monômes par rapport à un monôme a est l'ensemble des cofacteurs entre chacun des monômes de l'ensemble et le monômes a

24 Décomposition de fonctions
Théorème de Shannon: F(x1,x2, ... , xi, ... ,xn) = xi'.Fxi' + xi.Fxi Fxi = F(x1,x2,...,1,...xn) -> Cofacteur de F par rapport à la variable xi Fxi' = F(x1,x2,...,0,...xn) -> Cofacteur de F par rapport à la variable xi' La décomposition de fonctions permet de traiter les fonctions de manière récursive Développer une fonction revient à calculer les cofacteurs par rapport aux variables

25 Décomposition de fonctions - Cofacteurs
Fa = b + b'.c Fa' = b.c + b'.c F = a.b + a'.b.c + b'.c a = a.b => b = a'.b.c => c = b'.c => a => a' => aa = ba = vide (b.a => ) ca = aa' = vide (a.a' => ) ba' = ca' = Fa' = b.c + b'.c Fa = b + b'.c F = a.(b + b'.c) + a'.( b.c + b'.c)

26 Vérification de tautologie (4 règles)
R1 - Une couverture est une tautologie lorsqu'elle a une ligne de 1 (cube universel => un monôme =1) R2 - Une couverture est une tautologie lorsqu'elle ne dépend que d'une variable et qu'il n'y a pas de colonne de 0 dans le champs correspondant (a + a' =1) R3 - Une couverture n'est pas une tautologie lorsqu'elle a une colonne de 0 (Variable monoforme sur tous les monômes) R4 - Une couverture n'est pas une tautologie lorsqu'elle est monoforme et qu'il n'y a pas de ligne de 1 (Toute les variables sont monoforme)

27 Procédure de vérification de tautologie
Théorème : Une fonction est une tautologie ssi ses cofacteurs par rapport à toutes les variables et variables complémentées sont des tautologies F = xi'.Fxi' + xi.Fxi F = 1  Fxi' = 1 et Fxi = 1 Procédure Lorsque la tautologie ne peut être décidée à partir des 4 règles d'arrêt, la fonction doit être expansée par rapport à une variable. La procédure doit être réitérée sur l'ensemble des variables tant qu'aucune décision ne peut être prise (l'ordre des variable est important)

28 Simplification de la procédure de vérification de tautologie
Règles de simplification de la procédure de vérification de tautologie T1 - Lorsque la couverture est monoforme sur certaines variables, la vérification de tautologie peut être faite en considérant uniquement les lignes ne dépendant pas des variables monoformes T2 - Lorsqu'une couverture peut s'écrire comme une union de 2 couvertures dépendant de sous-ensembles disjoints de variables, la vérification de tautologie peut être réduite en vérifiant la tautologie des 2 sous-ensembles T1 ok T2 F = ab + cd

29 Preuve de tautologie - Exemple 1
a bc 00 01 10 11 1 F = a.b + a.c + a.b'.c' + a' Toutes les variables sont biformes a apparait le plus souvent => 1ère variable considérée Cofacteur par rapport à a ( ) => ( ),( ),( ) Cofacteur par rapport à a' ( ) => ( ) (R1) Le cofacteur par rapport à a' est une tautologie (Règle 1) => L'étude doit se poursuivre sur le cofacteur par rapport à a Dans les 2 dernières colonnes, les variables sont biformes Les 2 variables interviennent le même nombre de fois (2) => on considère b Cofacteur par rapport à b ( ) => ( ),( ) (R1) Cofacteur par rapport à b' ( ) => ( ),( ) (R2) Les cofacteurs par rapport à b et b' sont des tautologies (Règle 1 et Règle 2) => F est une tautologie

30 Preuve de tautologie - Exemple 2
bc a 00 01 11 10 F = a.b + a.c + a' 1 b et c sont monoformes => L'étude peut se faire uniquement sur les lignes ne dépendant pas de b et c donc sur (Règle de simplification 1). => La couverture est monoforme et il n'y a pas de ligne de F n'est pas une tautologie (Règle 4)

31 Test d'inclusion - Exemple
m F <=> Fm = 1 a bc 00 01 10 11 1 F = a.b + a.c + a' Cherchons à savoir si le monôme b.c est couvert par F b.c => Cofacteur de F par rapport à b.c => ( ),( ),( ) Les monômes ne dépendent que d'une variable (a) et il n'y a pas de colonne de 0 => L'expression est une tautologie (Règle 2) => b.c est couvert par F ab = a1+b1' a2+b2' an+bn'

32 Test d'inclusion - Exemple
F = a'cd'f' + bd'ef + ade + b'cf + abce + bc'def bc'ef F (?) Per rispondere bisogna provare che Fbc'ef é una tautologia

33 Test d'inclusion - Exemple
F = a'cd'f' + bd'ef + ade + b'cf + abce + bc'def a b c d e f -> vide -> -> -> (bc'ef ) T1 - Lorsque la couverture est monoforme sur certaines variables, la vérification de tautologie peut être faite en considérant uniquement les lignes ne dépendant pas des variables monoformes R2 - Une couverture est une tautologie lorsqu'elle ne dépend que d'une variable et qu'il n'y a pas de colonne de 0 dans le champs correspondant (a + a' =1)

34 Le minimiseur ESPRESSO (De Micheli 1985)
ESPRESSO (F1 , Ff) { F0 = Complément (F1  Ff) ; F = Expansion (F1 , F0) ; F = Irrédondant (F , Ff) ; E = Essentiel (F , Ff) ; F = F - E ; Ff = Ff  E ; repeat{ F2 = coût (F) ; repeat{ F1 = coût (F) ; F = Réduction (F , Ff) ; F = Expansion (F , F0) ; F = Irrédondant (F , Ff) ; }until coût(F)<F1 ; F=Nouvelles_heuristiques(F , Ff , F0) ; }until coût(F)<F2 ; F = F  E ; Ff = Ff - E ; } Notation : Utilise la notation cube de position F1 l'ensemble des monômes tels que f=1 F0 l'ensemble des monômes tels que f=0 Ff l'ensemble des monômes tels que f=f

35 Diagramme de décision binaire (BDD)
“Graph-based Algorithms for Boolean Function Manipulation” R.E. BRYANT IEEE Transaction on Computers 1978, pp “Binary Decision Diagrams” S.B. AKERS IEEE Transaction on Computers 1986, pp

36 Diagramme de décision binaire
Théorème de Shannon: F(x1,x2, ... , xi, ... ,xn) = xi' . F(x1,x2, ... , 0, ... ,xn) + xi . F(x1,x2, ... , 1, ... ,xn) Ce théorème étant appliqué à F pour x1, puis aux deux sous-fonctions obtenues pour x2, et ainsi de suite jusqu'à xn, on peux réaliser un arbre de décision binaire xi 1

37 Diagramme de décision binaire (BDD)
F(a,b,c) = a'.b.c + a.c a F(a,b,c) = a'.F(0,b.c) + a.F(1,b,c) F(0,b,c) = b.c F(1,b,c) = c F(0,b,c) = b'.F(0,0.c) + b.F(0,1,c) F(0,0,c) = 0 F(0,1,c) = c F(0,1,c) = c'.F(0,1,0) + c.F(0,1,1) F(0,1,0) = 0 F(0,1,1) = 1 F(1,b,c) = b'.F(1,0.c) + b.F(1,1,c) F(1,0,c) = c F(1,1,c) = c F(1,0,c) = c'.F(1,0,0) + c.F(1,0,1) F(1,0,0) = 0 F(1,0,1) = 1 F(1,1,c) = c'.F(1,1,0) + c.F(1,1,1) F(1,1,0) = 0 F(1,1,1) = 1 1 b b 1 1 c c c 1 1 1 1 1 1

38 Diagramme de décision binaire réduit (RBDD)
Réduction par élimination des feuilles et sous-graphes identiques des sommets redondants a b 1 c a b 1 c a 1 b c Propriété : Pour un ordonnancement donné le BDD réduit (RBDD) est unique.

39 Représentation informatique des BDD
2 1 3 4 b b 1 1 c 5 c 6 c 7 1 1 1 1 1 1 1 - 1 2 a 3 4 b 5 6 7 c

40 Procédure de réduction des BDD
a 2 2 a 1 b c 1 3 4 b b 3 1 1 5 c 5 c 6 c 7 1 1 1 1 1 1 - 1 2 a 3 4 b 5 6 7 c - 1 2 a 3 4 b 5 c - - 1 1 - - 2 a 3 5 3 b 5 5 c 1 Complexité : O(nlogn)

41 Influence de l'ordre des variables
F(a,b,c) = a'.b.c + a.c b c 1 a a 1 b c b c 1 a Ordre: abc Ordre: bca

42 Ordre des variables Règles de priorité:
1 - Variables apparaissant sous la même forme dans tous les monômes - Variables constituant un monôme à elles seules 2 - Variables d'occurrence maximale 3 - Variables x minimisant l'expression | Occ(x) - Occ(x') | (Occ(x): Nombre d'occurrences de la variable x)

43 Construction des BDD 2 stratégies principales de construction des BDDs : de la racine vers les feuilles (top-down). Cette méthode est utilisée lorsque on part d'une formule algébrique des feuilles vers la racine (bottom-up) lorsque l'on part d'une description structurelle du circuit.

44 Construction des BDD - Méthode top-down
On utilise la formule de Shannon. Exemple: soit f(a,b,c)=a'bc' + ac avec ord(a)<ord(b)<ord(c) Si l'on fait l'expansion par rapport à a on obtient la Fig.a En faisant l'expansion par rapport à b on obtient la Fig.b En faisant l'expansion par rapport à c on obtient la Fig.c a a a 1 1 1 bc' c c b bc' bc' 1 1 c' c c 1 1 a) b) c) 1 1

45 Construction des BDD - Méthode Bottom-up
Définition: le niveau d'une formule est défini par : les variables d'entrée sont de niveau 0 chaque sous-formule f = g <Op> h a un niveau égal à Max (niv(g),niv(h)) + 1 Méthode pour construire le BDD d'une fonction f de n variables : 1) construire les BDD des variables 2) construire les BDDs des formules de niveau i répéter l'étape 2 pour tous les niveaux (i = 1, n) Exemple : f = xy + z : On construit les BDD de x , y et z puis celui de x.y puis celui de x.y + z.

46 Opérations logiques entre BDD
Le BDD résultant d'une opération logique entre 2 fonctions peut être conçu à partir des 2 BDD originaux en appliquant la procédure suivante: Considérer les sommets racines des BDD En fonction de la nature des 2 sommets appliquer une des règles (R1,R2,R3) Itérer le processus jusqu'à la génération des sommets terminaux x <Op> y 1 1

47 Opérations logiques entre BDD
R1: Si les 2 sommets Sf et Sg sont des sommets terminaux => Le sommet résultant est un sommet terminal de valeur Valeur(Sf) <Op> Valeur(Sg) <Op> 1 => 0 <Op> 1 R2: Si le sommet Sf est un sommet terminal mais pas Sg => Créer le sommet Sg en lui associant comme fils droit le résultat de la comparaison (Sf, fils droit de Sg) comme fils gauche le résultat de la comparaison (Sf, fils gauche de Sg) <Op> a a 1 1 b c b c

48 Opérations logiques entre BDD
R3: Si ni le sommet Sf ni le sommet Sg ne sont des sommets terminaux R3.1: Si Sf et Sg représentent la même variable => Créer un sommet représentant la variable en lui associant comme fils droit le résultat de la comparaison (fils droit de Sf, fils droit de Sg) comme fils gauche le résultat de la comparaison (fils gauche de Sf, fils gauche de Sg) a <Op> a a 1 1 1 b c d e b d c e

49 Opérations logiques entre BDD
R3: Si ni le sommet Sf ni le sommet Sg ne sont des sommets terminaux R3.2 : Si Sf et Sg ne représentent pas la même variable => Créer un sommet S représentant la variable intervenant la 1ère dans l'ordonnancement considéré (S=min(Ord(Sf),Ord(Sg)) en lui associant : comme fils droit le résultat de la comparaison (fils droit de min(Ord(Sf),Ord(Sg)) , max(Ord(Sf),Ord(Sg))) comme fils gauche le résultat de la comparaison (fils gauche de min(Ord(Sf),Ord(Sg)) , max(Ord(Sf),Ord(Sg))) a <Op> b a 1 1 1 c d e f c b d b

50 Opérations logiques entre BDD
f 1 a c d => 0 <Op> 1 R1: R2: R3.1: R3.2:

51 Opérations logiques entre BDD
c 1 m1 m2 m3 m4 1 c n2 1 n3 1 n4 f(a,b,c) = a'+c' g(a,b,c) = b.c a b 1 c (n1,m1) (n3,m1) (n2,m1) (n3,m3) (n3,m2) (n3,m4) (n2,m3) (n2,m2) (n4,m3) (n4,m4) h(a,b,c) = f(a,b,c) + g(a,g,c) a c 1 b

52 Diagramme de décision binaire
Complexité de la procédure de réduction: O(nlogn) Structure du BDD dépend de l'ordre dans lequel sont considérées les variables (OBDD) Opérations logiques entre fonctions => directement sur les OBDD ROBDD -> formes canoniques Applications Evaluation de fonctions Equivalence de fonction Calcul de cofacteurs Preuve de tautologie Test d'inclusion ...

53 Application: Evaluation de fonctions
La représentation d'une fonction F sous forme de BDD permet de trouver rapidement la valeur de la fonction pour une combinaison d 'entrées donnée. La représentation d'une fonction F sous forme de BDD permet de trouver rapidement une combinaison des entrées telles que F=0 ou telle que F=1. La complexité des deux procédures est en O(n) (Le nombre de branches entre la racine et une feuille est au plus égal à n). a c 1 b

54 Application: Equivalence de 2 fonctions
Pour un ordre donné le ROBDD est unique. Pour savoir si 2 fonctions sont identiques, il suffit de voir si les 2 ROBBDs sont isomorphes.

55 Application: Preuve de tautologie
Si l'un des cas suivant est détecté, la fonction n'est pas une tautologie Toutes les variables de F sont monoformes Une variable monoforme est présente dans tous les monômes La somme des tailles (dans le sens nbre de points couverts) des monômes est inférieure à 2n Si aucune des conditions précédente n'est remplie, réaliser le BDD. Une condition nécessaire et suffisante pour qu'une fonction soit une tautologie est que tous les sommets terminaux (feuilles) du BDD vaillent 1 (ou que le RBDD soit restreint à la feuille 1) Exemple: F(a,b,c) = a'.b.c + a.b.c + b.c' + b' BDD a RBDD b b 1 c c 1 1 1 1 1 1

56 Application: Preuve de tautologie
Le graphe (BDD) peut être simplifiée en appliquant les règles suivantes: Si une variable x apparaît toujours sous la forme directe, ne pas continuer le graphe sur la branche 1 (F=1 <=> Fx'=1) Si une variable x apparaît toujours sous la forme complémentée, ne pas continuer le graphe sur la branche 0 (F=1 <=> Fx=1)

57 Application: Evaluation des cofacteurs
F(x1,x2, ... , xi, ... ,xn) = xi' . F(x1,x2, ... , 0, ... ,xn) + xi . F(x1,x2, ... , 1, ... ,xn) Pour obtenir le cofacteur par rapport à xi il suffit de supprimer le sommet xi et de lier les sommets pointant sur xi au fils droit de xi Pour obtenir le cofacteur par rapport à xi' il suffit de supprimer le sommet xi et de lier les sommets pointant sur xi au fils gauche de xi a 1 b c Fc Fc' F = ac + a'bc

58 Application: Test d 'inclusion
m F <=> Fm = 1 Soit la fonction f = a.b + a.c + a' . Cherchons à savoir si le monôme ”bc” est couvert par cette expression. a b c F Fbc 1 00 01 11 10 1 a bc

59 Test d'inclusion - Exemple
F = a'cd'f' + bd'ef + ade + b'cf + abce + bc'def bc'ef F (?) Fbc'ef = d' + ad + d


Télécharger ppt "Optimisation Logique Bruno Rouzeyre"

Présentations similaires


Annonces Google