GMEE 329 Optimisation Logique Bruno Rouzeyre rouzeyrelirmm fr
GMEE 329 Optimisation Logique Bruno Rouzeyre rouzeyre@lirmm. fr http: //www. lirmm. fr/~rouzeyre
Principe de minimisation Cas des fonctions incomplètes Cas des fonctions multiples Base première complète : • dc ba 00 01 11 10 Karnaugh 00 1 0 0 f Quine Mc Cluskey 01 0 0 1 f 11 1 0 10 f f 1 1 Consensus Base minimale : Table de choix (heuristique) Résolution Algébrique Branch & bound
Cas des fonctions incomplètes Id[f(d, c, b, a)] = R 1(0, 7, 10, 11, 12, 15) + Rf(2, 6, 8, 9) ba dc dc ba 00 01 11 10 00 1 0 0 f 01 0 0 1 f 11 1 0 10 f f 1 1 ba 00 01 11 10 00 1 0 01 0 0 1 1 1 0 1 0 1 1 1 1 00 01 11 10 00 1 0 01 0 0 1 11 1 0 10 0 0 dc Bpinf(f) = c b a + d c' b + d' c' b' a' + d c' b a' Bpsup(f) = c' a' + d c' + d b' a' + d b a + d' c b + c b a + d' b a' Pour la minimisation Bp => Bpsup
Cas des fonctions incomplètes Id[f(d, c, b, a)] = R 1(0, 7, 10, 11, 12, 15) + Rf(2, 6, 8, 9) Bp(f) = c' a' + d c' + d b' a' + d b a + d' c b + c b a dc ba 0 00 01 11 10 00 1 0 0 f 01 0 0 1 f 11 1 0 10 f f 1 1 A = c' a' B = d c' 7 X 10 11 X X X C = d b' a' 12 15 X D=dba X E = d' c b X F=cba G = d' b a' X X X 1 - Prendre un sommet non encore couvert (choix aléatoire ou dirigé par une heuristique), 2 - Prendre un monôme couvrant ce sommet (choix aléatoire ou dirigé par une heuristique), 3 - Éliminer tous les sommets couverts par ce monôme, 4 - Réitérer la procédure jusqu'à avoir couvert tous les sommets.
Cas des fonctions multiples dc ba 00 01 11 10 00 1 1 01 1 1 10 d c f 1 d' b a' f 2 d' b Minimisation séparée => f 1 = d c + d' b a f 2 = b a' + d' b 11 1 10 1 d c f 1 d' b a f 2 b a' Réalisation minimale => f 1 = d c + d' b a f 2 = b a + d' b a
Cas des fonctions multiples • Soit M = {m 1, m 2, … mq-1, mq} ensemble minimal de monôme distincts tel quel toute composante de F puisse s'exprimer comme une somme de termes de M • Soit mi un monôme quelconque de M apparaissant dans p composants de F, fi 1, fi 2, …, fip => mi est donc un monôme de la fonction produit f = fi 1*fi 2*…*fip • Principe : cher les monômes des fonctions produits
dc ba Cas des fonctions multiples ba ba 00 01 11 10 00 1 01 1 1 10 1 dc 1 00 01 dc 11 10 00 1 1 00 1 01 1 11 10 f 1 f 2 1 f 1. f 2 Bp complète => dcba' + d' b a + b a' + d' b + d c + c b a dcba' d' b dc cba (14) (3, 7) (2, 6, 10, 14) (2, 3, 6, 7) (12, 13, 14, 15) (7, 15) -> f 1 f 2 -> f 1 Si un monôme premier est trouvé plusieurs fois, on ne considère que la première instance
Cas des fonctions multiples A= dcba' B = d' b a C = b a' D = d' b E=dc F=cba (14) (3, 7) (2, 6, 10, 14) (2, 3, 6, 7) (12, 13, 14, 15) (7, 15) -> f 1 f 2 -> f 1 f 2 f 1 3 7 12 13 14 15 2 3 6 7 10 14 A B C D E F B(f 1, f 2), E(f 1), C(f 2) Réalisation minimale => f 1 = d c + d' b a f 2 = b a' + d' b a
Cas des fonctions multiples Id(f 1) = R 1(3, 9, 10, 11, 12, 13, 14, 15) Id(f 2) = R 1(1, 3, 5, 9, 10, 13, 15) Id(f 3) = R 1(1, 3, 5, 6, 12, 14)
Cas des fonctions multiples ba Id(f 1) = R 1(3, 9, 10, 11, 12, 13, 14, 15) Id(f 2) = R 1(1, 3, 5, 9, 10, 13, 15) Id(f 3) = R 1(1, 3, 5, 6, 12, 14) dc 00 01 11 00 1 10 ba 1 01 11 1 10 01 11 00 1 1 01 1 dc 00 1 11 1 1 10 1 ba 00 01 00 A = d' c' b a B = d' c' a C = d' b' a D = d c a' E=dca F = d b' a G = d c' b a' H = c b a' I = b' a J=dc K=db L=da M = c' b a (3) -> f 1 f 2 f 3 (1, 3) -> f 2 f 3 (1, 5) -> f 2 f 3 (12, 14) -> f 1 f 3 (13, 15) -> f 1 f 2 (9, 13) -> f 1 f 2 (10) -> f 1 f 2 (6, 14) -> f 3 (1, 5, 9, 13) -> f 2 (12, 13, 14, 15) -> f 1 (10, 11, 14, 15) -> f 1 (9, 11, 13, 15)-> f 1 (3, 11) -> f 1 11 10 ba dc 01 10 1 00 1 1 01 1 00 01 1 1 1 f 3 11 10 1 f 1 f 3 ba dc ba 01 11 00 1 1 01 1 dc 00 11 10 f 1 f 2 00 10 10 1 01 11 1 00 1 11 ba dc f 2 f 1 dc 10 01 00 f 2 f 3 11 1 01 11 10 f 1 f 2 f 3 10 10
Cas des fonctions multiples f 2 f 1 3 9 10 11 12 13 14 15 1 3 5 9 10 13 15 f 3 1 3 5 6 12 14 A B C D E F G H I J K L M A = d' c' b a B = d' c' a C = d' b' a D = d c a' E=dca F = d b' a (3) (1, 5) (12, 14) (13, 15) (9, 13) -> f 1 f 2 f 3 -> f 1 f 2 -> f 1 f 2 G = d c' b a' H = c b a' I = b' a J=dc K=db L=da M = c' b a (10) (6, 14) (1, 5, 9, 13) (12, 13, 14, 15) (10, 11, 14, 15) (9, 11, 13, 15) (3, 11) -> f 1 f 2 -> f 3 -> f 2 -> f 1
- Slides: 11