Optimisation de fonctions logiques par les méthodes de Quine MacCluskey et recrouvrements optimaux

---

Installation sous Unix

  1. décompresser l'archive qmc.tgz
    tar xzf qmc.tgz
    ou zcat qmc.tgz | tar x
  2. se placer dans le repertoire opti
    cd opti
  3. compiler les programmes make

---

Installation sous un autre système

Débrouillez-vous pour compiler les deux fichiers C avec votre compilateur favori. Pour plus d'aide, installez Linux.

---

Utilisation

Il y a deux programmes qmc et qmc2. Ils font exactement la même chose, si ce n'est la manière de saisie de la table de vérité:

---

Exemple avec qmc

Cf aussi exemples fournis
qmc < test1 | more
qmc < test2 | more

simplot@brunehaut-~/ens/a...ence/C/opti] qmc
Nombre de variables de votre fonction logique : 3
Vos variables seront étiquetées de a2 à a0.

Nombre de lignes de la table de vérité : 8

Vous désirez faire la saisie par :
  1. points vrais - le reste à faux,
  2. points faux - le reste à vrai,
  3. points vrais et points faux - le reste indifférent,
  4. points vrais et points indifférents - le reste à faux,
  5. points faux et points indifférents - le reste à vrai.
Votre choix : 3


Nombre de points vrais : 2
Nombre de points faux : 3
Nombre de points indefinis : 3
Entrez en décimal (a0=pds faible) les points vrais
2
7
Entrez en décimal (a0=pds faible) les points faux
0
3
4
Mode d'optimisation :
  0. choix par défaut (forme disjonctive)
  1. forme disjonctive
  2. forme conjonctive
Votre choix : 1

Etape 1 : trouver les implicants premiers

Passage 1 :
001 X
010 X
101 X
110 X
111 X

Passage 2 :
*01
*10
1*1
11*

Liste des implicants premiers :
*01
*10
1*1
11*

Etape 2 : recouvrement optimal

liste des termes à valider
{  0}   2 010
{  1}   7 111

              2   7
[  0] *01 ----|---| 2
[  1] *10 ----X---| 2
[  2] 1*1 ----|---X 2
[  3] 11* ----|---X 2

suppression des lignes inutiles... [0] 
liste des termes à valider
{  0}   2 010
{  1}   7 111

              2   7
[  1] *10 ----X---| 2
[  2] 1*1 ----|---X 2
[  3] 11* ----|---X 2

suppression des lignes inutiles... aucune
règle 1 : IP obligatoires... [1] 
liste des termes à valider
{  1}   7 111

              7
[  2] 1*1 ----X 2
[  3] 11* ----X 2

suppression des lignes inutiles... aucune
règle 1 : IP obligatoires... aucun
règle 2 : colonnes dominantes... aucune
règle 3 : lignes dominées... [2] 
liste des termes à valider
{  1}   7 111

              7
[  3] 11* ----X 2

suppression des lignes inutiles... aucune
règle 1 : IP obligatoires... [3] 
terminé !

f = a1!a0 + a2a1

simplot@brunehaut-~/ens/a...ence/C/opti] 

---

Exemple avec qmc2

Cf aussi exemples fournis
qmc2 < testb2 | more

simplot@brunehaut-~/ens/a...ence/C/opti] qmc2
Entrez la liste des points vrais en binaire (au moins un point vrai
est requis), puis '-', puis les points faux, puis '-', le reste est
indifférent. Vous pouvez utiliser des wildcards.
001*
11*1
-
0000
010*
-
Mode d'optimisation :
  0. choix par défaut (forme conjonctive)
  1. forme disjonctive
  2. forme conjonctive
Votre choix : 1

Etape 1 : trouver les implicants premiers

Passage 1 :
0001 X
0010 X
1000 X
0011 X
0110 X
1001 X
1010 X
1100 X
0111 X
1011 X
1101 X
1110 X
1111 X

Passage 2 :
00*1 X
*001 X
001* X
0*10 X
*010 X
100* X
10*0 X
1*00 X
0*11 X
*011 X
011* X
*110 X
10*1 X
1*01 X
101* X
1*10 X
110* X
11*0 X
*111 X
1*11 X
11*1 X
111* X

Passage 3 :
*0*1
0*1* X
*01* X
**10 X
10** X
1*0* X
1**0 X
**11 X
*11* X
1**1 X
1*1* X
11** X

Passage 4 :
**1*
1***

Liste des implicants premiers :
*0*1
**1*
1***

Etape 2 : recouvrement optimal

liste des termes à valider
{  0}   2 0010
{  1}   3 0011
{  2}  13 1101
{  3}  15 1111

               2   3  13  15
[  0] *0*1 ----|---X---|---| 2
[  1] **1* ----X---X---|---X 1
[  2] 1*** ----|---|---X---X 1

suppression des lignes inutiles... aucune
règle 1 : IP obligatoires... [1] [2] 
terminé !

f = a1 + a3

simplot@brunehaut-~/ens/a...ence/C/opti] 

---

Bug reports

Si vous trouvez des disfonctionnements, merci de me les signaler a l'adresse simplot@lifl.fr

---

Nombre d'accès : counter

dernière mise à jour : le 10 janvier 2001 - David Simplot Powered by
  Mimine 1.0Valid HTML 4.0!