Télécharger la présentation
1
Fonctions booléennes complexes
Jean Francis MICHON LIFAR 12/04/2001 Exposé à l'IML
2
Les complexités La notion de Machine de Turing permet de donner une définition rigoureuse de la complexité. On distingue ici 3 complexités d ’une fonction f: algorithmique (Chaitin-Kolmogorov) : taille du plus petit programme qui calcule f : CA(f) en temps : combien de temps pour calculer f(n) : CT(n) n étant la taille des données en espace: combien de mémoire nécessaire : CE(n) ? Ces complexités dépendent bien sûr du type de machine de Turing utilisé. 12/04/2001 Exposé à l'IML
3
Fonctions booléennes Définition : C ’est une application d ’un ensemble quelconque vers {0,1}. Définition risquée : prendre un sous ensemble non récursif de N alors la fonction caractéristique de cet ensemble n ’est pas calculable! On se restreindra aux ensembles finis. Pas de structure algébrique à priori mais plusieurs potentielles. 12/04/2001 Exposé à l'IML
4
On note leur ensemble Bn Card (Bn) = 22n
Définition 2 : On appellera fonction booléenne à n variables toute application f : {0,1}n {0,1} (n 0) L ’étude des fonctions booléennes est donc équivalente à l ’études des parties de {0,1}n On note leur ensemble Bn Card (Bn) = 22n Pour installer une structure sur Bn il suffit d ’en mettre une sur {0,1} et de « relever » la structure. On a deux possibilités « classiques ». 12/04/2001 Exposé à l'IML
5
Structure 2 : {0,1} est un corps fini avec la loi + et
Structure 1 : {0,1} est une algèbre de Boole : on utilise deux opérations binaires , et une unaire Structure 2 : {0,1} est un corps fini avec la loi + et Attention le + correspond au XOR des informaticiens, le correspond au . Remarque : On en déduit respectivement pour {0,1}n une structure d ’algèbre de Boole . une structure de F2 - algèbre (et pas de corps). Cette algèbre n’est autre que l’algèbre produit (F2 )n. Ne pas confondre cette algèbre avec le corps fini F2n. 12/04/2001 Exposé à l'IML
6
exemple : f (x,y,z)(g(x,y,z) h(x,y,z))
Les structures induites sur Bn sont, respectivement 1/ : aussi une structure d ’algèbre de Boole (c ’est l ’algèbre de Boole des parties de {0,1}n exemple : f (x,y,z)(g(x,y,z) h(x,y,z)) 2/ : une structure de F2-algèbre isomorphe à F2[X1,…,Xn]/(X12+X1,…,Xn2+Xn) F 2^n exemple : 1+x+yz+xyz Dans les deux cas les variables désignent les fonctions coordonnées sur Bn. 12/04/2001 Exposé à l'IML
7
Formes normales canoniques
(uniques à l’ordre près des termes et des variables) Forme normale disjonctive canonique (fndc) exemple à 2 variables : x y = (x y’ ) ( x y) (x’y) où y ’= y Forme normale conjonctive canonique (fncc) exemple à 2 variables : x y est une fncc. Forme normale polynomiale (ordre degré-lexicographique): exemple à 2 variables : x y = x+y+xy 12/04/2001 Exposé à l'IML
8
Exemple : la fndc de la constante 1 comporte 2n termes.
Les formes normales sont difficiles à utiliser dès que le nombre des variables est grand : elles comportent au plus 2n termes. La fndc par exemple n’est autre que la table de vérité de la fonction f. La fncc n ’est autre que la table de vérité de sa fonction complémentaire f=1+f (qu ’on note souvent f ’). Exemple : la fndc de la constante 1 comporte 2n termes. 12/04/2001 Exposé à l'IML
9
f g = f+g+fg f g = fg f = 1+f
Il existe donc une différence très marquée entre les deux écritures d’une fonction booléenne. C’est-à-dire entre l ’écriture en , , et l ’écriture polynomiale. La différence peut être exponentielle en nombre de termes. Les règles de conversion d’une écriture vers l’autre sont les suivantes : f g = f+g+fg f g = fg f = 1+f f + g = (f g) ( f g) 12/04/2001 Exposé à l'IML
10
Pourquoi l ’étude des fonctions booléennes est elle difficile ? :
L ’existence des formes polynomiales montre que cette étude est équivalente à celle de la géométrie algébrique sur F2. Tout ensemble de n-uples de bits est envisageable comme un ensemble de points rationnels sur F2 d ’une variété algébrique définie sur F2. L ’exploration informatique est difficile : pour n>5, on ne peut plus faire de recherches exhaustives. 12/04/2001 Exposé à l'IML
11
Arbre de vérité 12/04/2001 Exposé à l'IML
12
La Table de vérité (ordre lexicographique)
Espace nécessaire pour le stockage 2n bits 12/04/2001 Exposé à l'IML
13
2n nœuds terminaux (feuilles) 2(2n-1) arcs
Pour toute fonction booléenne à n variables, son arbre de vérité comporte 2n-1 nœuds non terminaux 2n nœuds terminaux (feuilles) 2(2n-1) arcs L ’arbre de vérité permet l ’interprétation de l ’identité de Boole (1854 : The Law of Thought) : f(x,y,…)= x ’f(0,y,…) + x f(1,y,…) qui s ’écrit aussi (remarquable) f(x,y,…)= x ’f(0,y,…) xf(1,y,…) ainsi 12/04/2001 Exposé à l'IML
14
12/04/2001 Exposé à l'IML
15
Arbre de vérité = automate
Etat initial Etat final 1 Etat puit 12/04/2001 Exposé à l'IML
16
BDD quasi réduit = Automate minimal
= Identification des sous-arbres isomorphes 1 (final) 12/04/2001 Exposé à l'IML
17
Réduction L ’identification des sous arbres isomorphes est toujours possible si n>3. En effet le nombre des sous arbres de hauteur 1 dans l ’arbre de vérité est 2 n-1 , c ’est plus grand que le nombre de fonctions booléennes à 1 variable (qui est 4). Tous les sous arbres de hauteur 1 vont donc s ’identifier en au plus 4 classes. De même pour les sous arbres de hauteur 2 qui vont se repartir en au plus 16 classes etc.. 12/04/2001 Exposé à l'IML
18
BDD (réduction des liens doubles)
1 12/04/2001 Exposé à l'IML
19
BDD : réduction supplémentaire du BDDQR
Les BDD (Binary Decision Diagram) de Lee (1959) et Ackers 1978, étudiés par R.E. Bryant (1986) sont issus d ’une étape supplémentaire de réduction à partir du BDDQR. Si lors d ’une étape de résuction, un état X a le même fils droit et gauche on identifie cet état x avec son successeur. Mais... A A X devient B B C D C D 12/04/2001 Exposé à l'IML
20
BDD et rang des noeuds Le BDD n’est plus l’automate minimal, il ne reconnaît plus le même langage ! Les BDD ne sont pas des graphes, on doit faire figurer la variable concernée par chaque état. Les nœuds ont des rangs. Le nombre de nœuds du BDD d’une fonction booléenne n’est donc pas une mesure de sa complexité algorithmique. 12/04/2001 Exposé à l'IML
21
BDDQR et complexité algorithmique
Le nombre d ’états (de nœuds) du BDDQR donne directement un majorant de la complexité algorithmique du calcul de la fonction booléenne. La complexité en temps est toujours majorée par le nombre de variables. La table de transition de l’automate est la table de transition de la machine de Turing: Etat Caract lu Etat suivant Caract écrit Déplacement Initial 0 A 0 1 Initial 1 B 0 1 A 0 C 0 1 A 1 D 0 1 B 0 D 0 1 B 1 E 0 1 etc... 12/04/2001 Exposé à l'IML
22
Tous les QRBDD minimaux pour n=3
Nbre de nœuds Nbre de fonctions booléennes 4 (minimum) (constantes 0 et 1) (z et 1+z) 9 (maximum) les fonctions « dures » Total: 256 fonctions booléennes dans B3 12/04/2001 Exposé à l'IML
23
Graphes des fonctions dures pour n=3
1 4!=24 manières d ’établir les connexions en bas 12/04/2001 Exposé à l'IML
24
Tous les QRBDD minimaux pour n=4
Nombre de nœuds Nombre de fonctions booléennes du QRBDD 5 (minimum) (constantes 0 et 1) (t et 1+t) 13 (maximum) les fonctions « dures » Total 12/04/2001 Exposé à l'IML
25
Graphes des fonctions dures pour n=4
1 31728 manières d ’établir les connexions entre les rangs 3 et 4 (flèches rouges) . Pourquoi? 12/04/2001 Exposé à l'IML
26
Fonctions booléennes dures
On peut chercher pour un nombre de variables donné, quelles sont les fonctions booléennes dont le BDDQR possède un nombre maximal de nœuds. De telles fonctions booléennes seront dites dures. Il est assez facile de déterminer cette complexité maximale (Champarnaud-Pin) et notre objectif est de décrire les QRBDD correspondants et de les dénombrer. 12/04/2001 Exposé à l'IML
27
Complexité algorithmique des fonctions booléennes dures
Pour un nombre de variable n fixé , on considère la fonction dn(k)= inf(2k-1,22 n-k+1) Alors Cmax = Complexité algo maximale des fonction booléennes à n variables = dn(1)+…+dn(n+1) n = 3 Cmax = = 9 n = 4 Cmax = = 13 n = 5 Cmax = = 21 12/04/2001 Exposé à l'IML
28
Fonctions dures (suite)
Cmax = Complexité (nombre de nœuds) maximale = dn(1)+…+dn(n+1) n = 3 Cmax = = 9 n = 4 Cmax = = 13 n = 5 Cmax = = 21 n = 6 Cmax = = 37 n = 7 Cmax = = 53 n = 8 Cmax = = 85 n= 9 Cmax = =149 12/04/2001 Exposé à l'IML
29
QRBDD des fonction dures
Arbre binaire hauteur n - log2n Une seule possibilité de connexion Zone d ’Inflexion Arbre comprimé hauteur log2n Une seule possibilité de connexion 12/04/2001 Exposé à l'IML
30
Dénombrement des possibilités n=3
Seul le rang 3 offre des possibilités de connexion variées : 4 types de connexions à répartir sur 4 sommets : 4! = 24 possibilités. C ’est la zone d ’inflexion 12/04/2001 Exposé à l'IML
31
Dénombrement : cas de n=4
L ’exploration par ordinateur montre que le nombre de configurations est On remarque d ’abord qu’une configuration étant donnée on peut la permuter de 4!=24 façons différentes: 31728=24 x Il y a donc 1322 configurations distinctes à permutation près. 12/04/2001 Exposé à l'IML
32
Dénombrement : cas général
On note le nombre de configurations des flèches k!A(m,k) où m est le nombre de nœuds du rang inférieur et k le nombre de nœuds du rang supérieur (zone d ’inflexion). Chaque nœud du rang inférieur est indexé de 1 à m. Il y a toujours deux flèches qui sortent de chaque nœud supérieur, elles atteignent respectivement les nœuds i et j du rang inférieur (éventuellement i=j). Le couple (i,j) est unique par le principe de minimisation : sinon les nœuds dont elles sont issues seraient identifiés. D ’autre part tous les nœuds du rang inférieur reçoivent au moins une flèche. On peut donc poser le problème sous la forme combinatoire suivante : 12/04/2001 Exposé à l'IML
33
Problème combinatoire
Dans un carré m x m cocher k cases de façon que, pour tout i (1 i m), la ligne i ou la colonne i contienne au moins une case cochée. On appelle configuration correcte un tel ensemble de k cases. Combien y a t il de configurations correctes ? Ce nombre n ’est autre que le A(m,k) précédent. Ci-contre, un exemple de configuration correcte, pour m=4 et k=4 12/04/2001 Exposé à l'IML
34
Solution Si k > m2 alors A(m,k)=0 .
Si (m-1)2 < k m2 alors A(m,k) = m2 k car toutes les configurations de k points sont correctes. Dans les autres cas : A(m,k)= - m A(m-1,k) - (m(m-1)/2) A(m-2,k) - ... m2 k On retranche à l ’ensemble de toutes les configurations de k cases, celles qui ratent exactement un indice, puis celles qui en ratent exactement 2, etc... 12/04/2001 Exposé à l'IML
35
Pourquoi 31728 ? Calculons A(4,4) :
A(4,4) = ( / ) - 4A(3,4) - 6A(2,4) = A(3,4) - 6 A(3,4) = / ) - 3A(2,4)= = 123 Donc A(4,4) = * = = 1322 Finalement 1322*4!=31728 12/04/2001 Exposé à l'IML
36
C’est la table de vérité d’une fonction de 6 variables
Forme explicite Je ne connais pas de forme algébrique générale sympatique des fonctions dures. On peut néanmoins donner leur table de vérité d ’après le tableau combinatoire précédent . Par exemple en code hexadécimal la fonction de table de vérité : ABCDEF est dure ! C’est la table de vérité d’une fonction de 6 variables 26 = 16x4 =64 bits . En fait on peut montrer que, pour 6 variables, les tables de vérité des fonctions dures correspondent exactement aux 16! permutations des 16 symboles hexa. 12/04/2001 Exposé à l'IML
37
Classement des fonctions booléennes par leur complexité
La plus petite complexité est n + 1 (pour les 2 fonctions constantes 0 et 1). Comment se répartissent les fonctions booléennes entre n +1 et Cmax? On l’a vu pour n = 3 et n = 4. Il « semble » que les fonctions booléennes sont très souvent dures (une sur deux si n = 4). L ’ estimation asymptotique de la proportion (densité) n = nbre de fonctions dures pour n donné 22n= nbre de fonctions booléennes semble difficile. Je pense que n tend vers 0 (lentement) 12/04/2001 Exposé à l'IML
38
Résultats On a obtenu les résultats suivants :
La complexité des fonctions dures est invariante par un « gros sous groupe » de Sn. Pour certaines valeurs spéciales de n de la forme a+2a la complexité est totalement invariante par Sn. Le degré des fonctions dures tend vers l’infini avec n. Il existe des fonctions dures équilibrées c ’est-à-dire de poids de Hamming 2 n-1. La complexité maximale des BDD peut être déduite de celle des QRBDD. On obtient les fonctions « super dures » 12/04/2001 Exposé à l'IML
39
Questions ouvertes Montrer que la densité des fonctions dures tend vers 0 avec le nombre des variables . Plus généralement quel est le spectre de complexité des fonctions booléennes à n variables (voir les calculs présentés pour n=3 et 4) Etude de la transformation de Fourier Walsh Hadamard des fonctions dures : certaines fonctions dures atteignent elles la distance maximale aux fonctions affines? 12/04/2001 Exposé à l'IML
40
Applications Classement de certaines fonctions connues (linéaires, addition binaire, multiplication, fonctions courbes, S-box du DES, etc…) Les fonctions dures forment une catégorie dans laquelle on peut chercher des candidats pour des problèmes ou des conjectures (crypto, codes). Actuellement je les utilise comme candidates pour la recherche de fonctions à distance maximale de R(1,m) . 12/04/2001 Exposé à l'IML
41
fs (x1,…,xn) = f( xs(1),…,xs(n))
Le groupe symétrique On peut faire agir le groupe Sn des permutations de n variables sur les fonctions booléennes . Si s est une permutation de Sn et f une fonction booléenne de Bn on pose : fs (x1,…,xn) = f( xs(1),…,xs(n)) Cette opération est en faite une représentation linéaire de Sn sur l ’espace Bn : représentation de caractéristique 2 et de dimension 2n. 12/04/2001 Exposé à l'IML
42
Groupe symétrique et complexité
La complexité du QRBDD d’une fonction booléenne n’est pas invariante par l ’action des permutations. On se pose les questions suivantes: Comment trouver une permutation qui minimise la complexité d’une fonction booléenne donnée ? Il semble que le problème soit NP complet (Bollig & Wegener) Comment se comportent les fonctions dures sous cette action ? Existe-t-il des fonctions -dures, c’est-à-dire dont toutes les permutées sont dures en dehors des valeurs spéciales? 12/04/2001 Exposé à l'IML
43
De Sn à S2n Toute permutation est produit de transpositions. On montre facilement qu’on peut n’utiliser que des transposition du type (i i+1) , où 1i n-1. On appellera échange une telle transposition. On peut étudier l’effet d’un échange sur un arbre binaire. Plus généralement la permutation des variables induit une permutation sur les fonctions booléennes donc un homomorphisme de Sn vers S2n. Lien avec les matrices de Sylvester et la transformation de Fourier-Hadamard. 12/04/2001 Exposé à l'IML
44
Echange de variables sur l ’arbre de vérité
xi xi+1 xi+1 xi+1 xi xi A B C D A C B D Les sous-arbres B et C sont échangés. De nouveaux sous-arbres enracinés en xi apparaissent mais pas de nouveaux sous-arbres plus bas, ni plus hauts. 12/04/2001 Exposé à l'IML
45
Exemple d ’effet d ’un échange
1 1 1 1 réduction réduction 1 1 12/04/2001 Exposé à l'IML
46
Fonctions symétriques
Les fonctions symétriques booléennes jouent certainement un rôle dans la question du comportement de la complexité sous l’action du groupe des permutations. Considérons la sous-algèbre des fonctions symétriques Bsym. L’algèbre Bn est alors une Bsym-algèbre et on connaît des générateurs (base ?). Quelle est la complexité de ces générateurs? La complexité des BDD de fonctions symétriques a été calculée (Don Ross- thèse U. of Texas.) 12/04/2001 Exposé à l'IML
47
Bibliographie Mon travail sur le sujet est mis à jour dans un document technique « Fonctions booléennes » disponible sur demande. On y trouvera quelques exemples explicites, des démonstrations, ainsi que les nombreuses identités magiques que vérifient les A(m,k). Sur le problème de l ’ordre des variables et de son impact sur la complexité : Beate Bollig et Ingo Wegener Improving the variable ordering in OBDD is NP complete. IEEE Transactions on Computers Vol45 n°9 sept 1996. 12/04/2001 Exposé à l'IML
48
Bibliographie suite Beate Bollig et Ingo Wegener : Asymptotic optimal bounds for OBDDs ans the solution of some basic obdd problems ICALP 2000 LNCS 1853p Les relations entre BDD et codage sont présentées dans : John Lafferty et Alexander Vardy Ordered Binary Decision Diagrams and Minimal treillises, IEEE Transactions on computers Vol 48 N°9 September 1999. Une présentation claire sur les questions concernant les codes de Reed Muller se trouve dans la thèse de Caroline Fontaine (INRIA-Groupe codes ) 12/04/2001 Exposé à l'IML
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.