Changes between Version 5 and Version 6 of CaoCourseTme6
- Timestamp:
- Mar 19, 2007, 1:53:20 PM (18 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
CaoCourseTme6
v5 v6 98 98 bdd_t *abl2bdd(bip_t *p) 99 99 }}} 100 Cette fonction prend comme unique argument un pointeur sur la racine d’un arbre ABL, et renvoie un pointeur sur le noeud BDD représentant la fonction. Puisque les arbres ABL ne contiennent que des opérateurs OR, AND, XOR et NOT, et qu’on dispose des fonctions apply_bdd() et not_bdd(), il est possible de construire le graphe ROBDD par application récursive deces deux fonctions.100 Cette fonction prend comme unique argument un pointeur sur la racine d’un arbre ABL, et renvoie un pointeur sur le noeud BDD représentant la fonction. Puisque les arbres ABL ne contiennent que des opérateurs OR, AND, XOR et NOT, et qu’on dispose des fonctions apply_bdd() et not_bdd(), il est possible de construire le graphe ROBDD en utilisant ces deux fonctions. 101 101 102 '''D.1''' Décrire en français, l’algorithme récursifde cette fonction abl2bdd() dans le cas particulier où tous les opérandes AND, OR ou XOR présents dans l’arbre ABL n’ont que deux opérandes. On traite successivement les trois cas suivants:102 '''D.1''' Décrire en français, l’algorithme de cette fonction abl2bdd() dans le cas particulier où tous les opérandes AND, OR ou XOR présents dans l’arbre ABL n’ont que deux opérandes. On traite successivement les trois cas suivants: 103 103 * Le pointeur p désigne une variable (on n'oubliera pas de traiter le cas particulier où cette variable est l'une des deux constante O ou 1). 104 104 * Le pointeur p désigne une expression Booléenne multi-niveaux, dont l'opérateur racine est l'opérateur NOT. 105 * Le pointeur p désigne une expression Booléenne multi-niveaux, dont l'opérateur racine est l'un des trois opérateurs OR, AND ou XOR.105 * Le pointeur p désigne une expression Booléenne multi-niveaux, dont l'opérateur racine est l'un des trois opérateurs OR, AND ou XOR. 106 106 107 107 '''D.2''' Ecrire en langage C la fonction abl2bdd() dans le cas particulier de la question précédente.