300 likes | 401 Views
GRAPHES FONCTIONNELS ANR-GRAAL Serge Burckel avril 2007. Informatique pour les Graphes. Graphes pour l’Informatique. Exemple de l’échange E( A,B ) = ( B,A ). Calcul Classique C :=A A:=B B:= C dimension= 3. Calcul Clos A:=A B B:=A B A:=A B dimension= 2.
E N D
GRAPHES FONCTIONNELS ANR-GRAAL Serge Burckel avril 2007
Informatique pour les Graphes Graphes pour l’Informatique
Exemple de l’échange E(A,B) = (B,A) Calcul Classique C:=A A:=B B:=C dimension=3 Calcul Clos A:=A B B:=A B A:=A B dimension=2 Motivations : Réconcilier les maths et l’info…. Maths : hautement parallèles Info : fortement séquentielle
Image E(S) S Copie de S N étapes N étapes
cache UC RAM OBJECTIFS Image E(S) S
Processeurs In Situ Zero-Delay Flat-tech Pré-Comp Compilateurs Post-Comp Faisabilité DATA Space = Comp. Space Applications Traitement d’images
Cas facile : l’infini Axiome du choix => (Tarski 1926) l’ensemble S admet un « pairing » càd une injection de S² dans S. Toute application E sur SN se calcule en N+1 étapes d’assignations. Exemple : calcul de E sur 5 x1 := 2x1 . 3x2 . 5x3 . 7x4 . 11x5 x2 := E2 (d2(x1), d3(x1), d5(x1), d7(x1), d11(x1)) x3 := E3 (d2(x1), d3(x1), d5(x1), d7(x1), d11(x1)) x4 := E4 (d2(x1), d3(x1), d5(x1), d7(x1), d11(x1)) x5 := E5 (d2(x1), d3(x1), d5(x1), d7(x1), d11(x1)) x1 := E1 (d2(x1), d3(x1), d5(x1), d7(x1), d11(x1)) où dp(x) = max{ k : pk | x }
Cas difficile : {0,1} Puisque : si on peut calculer in situ pour {0,1}N alors on peut aussi le faire pour FN. Codage/décodage binaire : xi [ib1 ib2 …. ibk ]
Graphes Eulériens de De Bruijn + un peu d’Arithmétique Résultats par les graphes : 1. Toute application E sur la structure {0,1}N a un calcul clos. (SB) Le modèle standard de Calcul :
Corollaire 1 Décompositions de graphes par « Complémentation Locale Relative » + Par les matrices : 2. Toute application E sur la structure {0,1}N a un calcul clos en au plus N2 opérations. (Marianne Morillon & SB) 3. Toute application linéaire E sur une structure KN a un calcul clos en au plus 2N-1 opérations linéaires. (Marianne Morillon, SB)
Corollaire 2 : décomposition des matrices/graphes TOUTE matrice carrée sur {0,1} (pas nécessairement inversible) est obtenue à partir de l’identité par une séquence finie d’opérations : Lignei := Lignei Lignej Corollaire 3 : représentation calculatoire des matrices. Toute matrice M à coefficients dans un corps K est représentable par une nouvelle matrice associée MC . Ce codage permet de calculer directement les images, les images inverses….
Exemple sur {0,1} : E(a,b,c,d)=(a+d,a+b+c, a+c+d,a+c) M= Calcul de E : a:=a+d b:=a+b+c+d c:=a+c d:=c+d MC= « remonter le temps » ==>Calcul de E-1: d:=c+d c:=a+c b:=a+b+c+d a:=a+d
Algorithme de « séquentialisation » simple d’une matrice M. Le cas {0,1} et à réflexion près. Input : M Output : MC Pour i de 1 à N : --si M[i,i]=0 alors ----faire M[i,i]:=1(et éventuellement ----rectifier la structure initiale associée à M) --pour j de i+1 à N : ----si M[j,i]=1 alors : ------faire M[j,i]:=0 ------faire M[j]:=M[j] M[i] (lignes)
GC Contribution à la quête du GRAAL Graphes comme constructeurs de graphes A réflexivité près + ordre total sur les sommets matrice d’adjacence=graphe dirigé ==> calcul clos de matrice en N étapes ==> dim(M)=dim(MC) ==> l’algorithme précédent entraîne que : Tout graphe G est «construit» par un graphe GC G Programme x1:=x1+x2 2 1 x2:=x1+x2
== == G=GC Relation d ’équivalence : GC == HC : « ils construisent les mêmes graphes (toujours à réflexions près). » Simplifications de constructeurs. Exemples :
Une autre conséquence : Analogie avec décompositions modulaires et généralisations... « les sommets peuvent se servir des opérations réalisées par les sommets précédents » G GC HC H
Un point important et agréable : par construction, les graphes GC sont toujours réflexifs…donc aucun soucis pour faire une itération des constructeurs : G <= GC <= GCC <= GCCC <=…. <= signifiant : appliquer le calcul puis mettre tous les arcs réflexifs. Mais alors...par finitude, on a ultimement : G => GCCC...C Pour un certain k, G construit lui même son k-ième constructeur itéré !!
GC G 2 1 Ici G => GC Mais ce k peut-être très grand….Pour 4 sommets…jusqu’à 18 itérations.
Une autre conséquence : Noyaux itératifs THEOREME : Soit G=(V,E) un graphe dirigé fini avec V={ x1 , x2 ,…. ,xN } ordonné. Il existe un stable K0 de G tel que l ’algorithme suivant colorie tous les sommets de G : 0. Colorer les sommets de K0 1. Pour i de 1 à N si xi est coloré colorer les xk tels que (xi , xk)E
Remarque : La preuve de ce Thm initialement basée sur les GC a été simplifiée depuis et encore plus par une bonne remarque de Stephan Thomassé (le 4 avril 2007).
résultats récents : inductions/coloriages 4. Toute application bijective E sur une structure FN a un calcul clos en au plus 2N-1 opérations. (SB) 5. Toute application E sur une structure FN a un calcul clos en au plus 5N-4 opérations. (Emeric Gioan & SB) 6. Toute application E sur une structure FN a un calcul clos en au plus 4N opérations. (Emeric Gioan & SB)
Remarque : le calcul clos d’une bijection sur {0,1}N est toujours de la forme : x1 := x1 + f1 ( x2 x3 …. xN-1 xN ) x2 := x2 + f2 (x1 x3 …. xN-1 xN ) x3 := x3 + f3 (x1 x2 …. xN-1 xN ) …... xN-1 := xN-1 + fN-1(x1 x2 x3 …. xN ) xN := xN + fN (x1 x2 x3 …. xN-1 ) xN-1 := xN-1 + gN-1(x1 x2 x3 …. xN ) …... x3 := x3 + g3 (x1 x2 …. xN-1 xN ) x2 := x2 + g2 (x1 x3 …. xN-1 xN ) x1 := x1 + g1 ( x2 x3 …. xN-1 xN ) Conséquence :comme pour les linéaires, le « sens inverse » calcule la bijection inverse E-1. Pour le LOGarithme Discret..??
Graphes fonctionnels Les 14 modèles de calculs sur 3 éléments.
1 2 1 1 1 4 1 234 4 3 4 1 2 234 4 234 23 1 23 3 Jeux en 3 étapes. F(1)=3 , F(2)=1 , F(3)=1 , F(4)=1 STEP : 0 1 2 3 Rem : aussi en 2 étapes. Mais pas (2,1,1,1) Toute application sur {1,2,3,4} se réalise en 3 étapes de ce jeu.
Définitions G=(V,E) un graphe dirigé. A(V) : les applications de V dans V B(V) : les bijections de V dans V I(G) A(V) : les applications F ayant comme support G : Pour tout x de V, (x , F(x)) est un arc de E. Soient : G0 ={idV} et Gk+1 ={i f : i dans I(G) et f dans Gk } Définition G est k-fonctionnel si A(V) Gk G est k-bijectif si B(V) Gk
Autre exemple : « la boule de sapin » Il est n²-fonctionnel. Conjecture/Tests pour n=3…7 : il est (n²-3n+3)-fonctionnel.
CONJECTURE K-bijectif (K+1)-fonctionnel ??? Résultats partiels : k-fonctionnel (k+1)-fonctionnel k-bijectif (k+1)-bijectif k-fonctionnel k-bijectif (trivial) k-bijectif nk-fonctionnel (…..) La conjecture entraîne que toute application sur FN se calcule par une séquence de 2N assignations.
Ceci n’est plus vrai s’il ne peut que calculer ses bijections en au plus k étapes : 3-bijectif et 4-fonctionnel K-bijectif K-fonctionnel Point remarquable : TOUT graphe qui permet de calculer toutes ses bijections en exactement k étapes permet toujours de calculer toutes ses applications !!
Développements Ordres d’assignations & calculs rapides. EX : E(a,b,c)=(a.b+a.c , b+c , a+b+c) c := a b := b+c a := a.b c := c+b (Strassen) Autres modèles de calculs par autres graphes.
QUESTION TECHNIQUE OUVERTE BUT : Etant donnée une bijection E sur {0,1}N exprimée sous forme de N expressions algébriques pour ses projections, trouver une expression algébrique d’un « coloriage » C(X): {0,1}N --> {0,1} des lignes de la table de E tel que pour tous X,X’ C(X)=1+C(X’) si X=[0,x] et X’=[1,x] ou E(X)=[0,y] et E(X’)=[1,y] METHODE ACTUELLE….trop gourmande et sans doutes inutile : Exemple E(a,b,c)=(b+c,b,a) : 000 000 001 100 010 110 011 010 100 001 101 101 110 111 111 011 0 0 au choix 1 0 0 au choix ==> C(a,b,c)=a+c 1 1 0 1 0 MERCI…/