• Aucun résultat trouvé

Optimisation d’un critère additif de partitionnement multivarié

Cette section introduit la notion d’additivité pour les critères d’évaluation d’une par- tition multivariée relative à un modèle en grille. Les principes généraux d’optimisation de tels critères, sont ensuite présentés de façon macroscopique.

Les algorithmes correspondants sont détaillés en annexe D dans le cas particulier des partitions bivariées, notamment en ce qui concerne les preuves pour les complexités algorithmiques annoncées.

3.2.1

Critère additif

Soient X1, X2, . . . , XK un ensemble de K variables instanciées sur N individus, et M

un modèle de partitionnement multivarié en grille. Chaque variable Xk est partitionnée

en Ik parties P (k) 1 , P (k) 2 , . . . , P (k)

Ik . Le produit cartésien des K partitions univariées définit

une partition multivariée des individus en une grille de cellules Ci1i2...iK de dimension

I = (I1, I2, . . . , IK).

La définition 3.2 introduit la notion d’additivité pour les critères d’évaluation des modèles de partitionnement multivarié.

Définition 3.2. Un critère d’évaluation c(M ) d’un modèle M de partitionnement multi- varié est additif s’il peut s’écrire sous la forme

c(M ) = c(G)(I) + K X k=1 c(V )(Xk, Ik) + K X k=1 Ik X ik=1 c(P )Pi(k) k  + I1 X i1=1 I2 X i2=1 . . . IK X ik=1 c(C)(Ci1i2...iK) (3.2) où

– c(G)(I) ne dépend que des tailles I

1, I2, . . . , IK des partitions univariées de la grille,

– c(V )(Xk, Ik) ne dépend que des caractéristiques de la variable Xk et de la taille Ik

de sa partition univariée, – c(P )(P(k)

ik ) ne dépend que des caractéristiques de la partie P

(k) ik ,

– c(V )(Ci1i2...iK) ne dépend que des caractéristiques de la cellule Ci1i2...iK et est nul

pour les cellules vides.

3.2.2

Principes généraux d’optimisation

On décrit ci-dessous les principes généraux permettant l’implémentation efficace des algorithmes d’optimisation des modèles en grille avec critère d’évaluation additif. La mise en oeuvre effective de ces principes est relativement sophistiquée. Elle est détaillée dans le cas particulier du partitionnement bivarié en annexe D.

Utilisation de l’additivité du critère. L’additivité d’un critère d’évaluation permet

de limiter l’impact d’une modification élémentaire d’une partition. Par exemple, lors de la fusion de deux parties adjacentes d’une variable, l’impact sur le coût de partition se limite essentiellement aux deux parties concernées et aux cellules non vides qu’elles contiennent.

Exploitation de la faible densité des individus dans la grille. Alors qu’une grille

de K variables et N individus comporte potentiellement NK cellules, le nombre de cellules

non vides est majoré par N . Dans le cas multivarié, les grilles de données sont donc des structures fortement creuses. Cette faible densité des individus peut être exploitée au moyen de structure de données appropriées, pour ne traiter que les cellules non vides d’une grille.

Accès optimisé à une cellule par sa signature. Une grille multivariée est un produit

cartésien de K partitions univariées. Chaque cellule Ci1i2...iK d’une grille est identifiée par

sa signature (Pi(1)1 , Pi(2)2 , . . . , Pi(K)K ) dans ce produit cartésien.

La signature d’une cellule sert de base au calcul d’une clé de hachage, permettant de tester en O(1) l’existence d’une cellule non vide au moyen d’une table de hachage [Knuth, 1997]. Le calcul de la clé de hachage demande O(K) opérations, puisque la signature est de longueur K.

Utilisation de fonctions de hachage incrémentales. La signature d’une cellule est

utilisée pour fabriquer un identifiant entier Id(Ci1i2...iK) =

PK−1

k=0 Id(P (k) ik )N

k compris

entre 0 et NK−1, en utilisant pour chaque partie un identifiant Id(P

ik) compris entre 0 et

N − 1.

On utilise la fonction modulo Hash(n) = n mod S comme base pour la fonction de hachage, avec S ≥ N un nombre premier représentant la taille de la table de hachage.

La fonction de hachage Hash(Id(Ci1i2...iK)) = Hash(

PK−1

k=0 Hash(Id(P

(k)

ik ))Hash(N )

k)

résultante est incrémentale vis à vis des changements de partie d’une signature.

Tout déplacement d’une cellule vers une partie adjacente implique un seul changement de partie dans sa signature, et la clé de hachage résultant se recalcule en O(1) au lieu de O(K) pour une fonction de hachage non incrémentale. Cela permet de gagner un facteur K dans les algorithmes d’optimisation des grilles, qui sont basés sur l’évaluation massive de fusions de parties adjacentes, impliquant des tests de "collision" entre cellules ne différent que par une seule partie.

3.2.3

Algorithme glouton

L’algorithme 3.2 généralise au cas multivarié l’heuristique gloutonne ascendante 3.1 décrite dans le cas univarié. On part de la grille initiale la plus fine, basée sur le produit cartésien des partition univariées comportant autant de parties élémentaires que d’indivi- dus. On évalue pour chaque variable toutes les fusions possibles entre parties adjacentes. La meilleure fusion est effectuée si elle améliore le coût de la partition, et l’algorithme est réitéré tant qu’il y a amélioration du coût.

Durant l’algorithme 3.2, la grille initiale comportant O(NK) cellules est transformée

en O(KN ) étapes de fusions de parties en une grille finale comportant O(1) cellules. A

chaque étape, O(KN ) grilles sont évaluées, ce qui fait un total de O(K2N2) grilles évaluées

durant le déroulement complet de l’algorithme.

En exploitant l’additivité du critère et la faible densité des individus dans la grille, il est démontré dans [Boullé, 2007c] (reproduit en annexe D) que l’algorithme 3.2 peut être implémenté en O(N log N ) dans le cas bivarié. Dans le cas multivarié, en tenant compte de K dans le calcul de complexité, cette implémentation se généralise avec une complexité

algorithmique de O(K2N log N ).

De façon plus précise ces complexités algorithmiques correspondent aux cas de va- riables toutes numériques. Dans le cas de variables catégorielles, on se limite aux grilles

impliquant au plus √N groupes de valeurs. L’algorithme 3.2 a alors une complexité algo-

rithmique de O(K2N√N log N ) dans le cas de variables catégorielles.

3.2.4

Post-optimisation

Comme dans le cas univarié, des post-optimisations sont utilisées pour améliorer les grilles issue de l’heuristique gloutonne 3.2.

Post-optimisation de la taille de la grille. Afin de sortir d’un éventuel optimum

Algorithme 3.2 Heuristique d’optimisation gloutonne ascendante d’une grille Entrées: M {Grille initiale}

Sorties: M∗, c(M∗) ≤ c(M ) {Grille finale optimisée}

1: M∗ ← M

2: Tant que amélioration faire

3: {Recherche de la meilleure amélioration}

4: M+← M

5: Pour tout Variable X de la grille faire

6: Pour tout Fusion m entre deux parties adjacentes de la partition de X faire

7: {Evaluation de l’impact de la fusion m sur la partition M∗}

8: M0 ← M∗+ m 9: Si c(M0) < c(M+) alors 10: M+ ← M0 11: Fin si 12: Fin pour 13: Fin pour 14: {Test d’amélioration} 15: Si c(M+) < c(M∗) alors 16: M∗ ← M+ 17: Fin si

18: Fin tant que

gorithme 3.2 est réitérée jusqu’à l’obtention d’une grille en une seule cellule. La meilleure grille rencontrée au cours de ces fusions "forcées" est retournée en sortie.

Post-optimisation de la grille. Pour post-optimiser une grille, on fige son partition-

nement univarié sur (K − 1) dimensions et on optimise le partitionnement univarié sur

la Kieme dimension restante. En utilisant le fait qu’un critère additif de partitionnement

multivarié est un critère additif de partitionnement univarié une fois (K − 1) dimensions fixées, les algorithmes de post-optimisation univariés introduits dans la section 3.1 sont réutilisables. Ainsi, les variables numériques sont post-optimisées en explorant des ajouts, suppressions ou redécoupages de frontières entre intervalles, et les variables catégorielles en déplaçant des valeurs entre groupes de valeurs.

3.2.5

Méta-heuristique

L’heuristique gloutonne 3.2 évalue O(K2N2) grilles parmi O(N2K

) avec un temps de

calcul de O(K2N log N ). Comme l’heuristique gloutonne est efficace en temps de calcul,

il est naturel de l’appliquer de façon répétée afin de mieux explorer l’espace de recherche. La solution la plus simple est d’appliquer l’heuristique gloutonne plusieurs fois en partant de grilles initiales aléatoires. On applique ici la méta-heuristique de recherche à voisi- nage variable (VNS = Variable Neighborhood Search) [Hansen and Mladenovic, 2001], légèrement plus sophistiquée.

bivarié. Pour une grille courante donnée, une nouvelle grille candidate est générée aléa- toirement dans une voisinage de la grille courante. La grille candidate est optimisée (et post-optimisée), et devient la grille courante s’il y a amélioration. On recommence avec une nouvelle grille candidate dans un voisinage de même taille s’il y a eu amélioration, de taille élargie sinon. La procédure est réitérée jusqu’à atteindre la taille maximum de voisinage.

La méta-heuristique VNS est implémentée sous la forme d’un algorithme AnyTime, dont le seul paramètre est le temps de calcul alloué à l’optimisation. La complexité de base de l’algorithme est celle de l’heuristique gloutonne utilisée. Tout temps de calcul supplémentaire alloué en supplément de l’heuristique gloutonne permet une meilleure exploration de l’espace de recherche.

Cas bivarié. Dans le cas des grilles bivariées, la taille du voisinage est basée sur le

nombre de parties ajoutées aux partitions univariées de la grille.

Cas multivarié, petit nombre de variables. Dans le cas multivarié, des modifica-

tions sont apportées à la notion de voisinage d’une grille, en incorporant l’aspect sélection de variable. Principalement, des ajouts ou suppressions de variables sont considérés, dont le nombre croît avec la taille du voisinage.

Cas multivarié, grand nombre de variables. Une grille comportant Ks ≥ KM ax =

dlog2N e variables sélectionnées (partitionnées en au moins deux parties) contient plus

de N cellules (car 2K

M ax ≥ N ) et en moyenne moins de un individu par cellule. En se

fondant sur la pénalisation des grilles complexes pour les critères d’évaluation présentés dans le chapitre 2, on choisit de limiter la recherche de solution aux grilles de dimension

inférieure à KM ax. L’application de l’heuristique gloutonne 3.2 a dans ce cas un coût

algorithmique de O(KM ax2 N log N ). En appliquant l’heuristique gloutonne à K/KM ax

sous-ensembles de KM ax variables, toutes les variables sont analysées une fois. De ce

fait, on peut considérer que la complexité de base utile de la méta-heuristique VNS

est O(KN log N max(K, log N )) dans le cas de variables numériques, O(KN√N log N -

max(K, log N )) dans le cas de variables catégorielles.

3.2.6

Synthèse

L’optimisation d’un modèle en grille peut se résumer à une extension au cas multivarié des algorithmes de partitionnement univarié relatifs à la discrétisation ou au groupement de valeurs.

L’algorithme d’optimisation principal est une heuristique gloutonne ascendante, qui partant d’une grille initiale élémentaire, recherche itérativement les meilleures fusions de parties pour chaque variable. Des post-optimisations sont effectuées afin d’améliorer la solution obtenue, en exploitant de façon locale le voisinage de cette solution. L’algorithme principal (accompagné des post-optimisations) est répété en partant de plusieurs solutions initiales, issues de l’exploration d’un voisinage global de la meilleure solution.

Ces algorithmes peuvent être implémentés efficacement en se basant sur les caracté- ristiques suivantes :

– additivité du critère d’évaluation des grilles, qui se décompose en une somme de termes indépendants portant sur la dimension de la grille, les variables, les parties de variables et les cellules,

– faible densité des individus dans la grille, qui comporte O(NK) cellules pour au plus

N cellules non vides,

– utilisation de fonctions de hachage incrémentales, qui permettent de détecter les collisions de cellules entre parties adjacentes en O(1).

L’exploitation systématique de ces caractéristiques conduit à des algorithmes relativement sophistiqués dans leur implémentation, mais permettant d’atteindre les performance sui- vantes :

– occupation mémoire en O(KN ) pour K variables et N individus,

– temps de calcul en O(KN log N max(K, log N )) si toutes les variables sont numé- riques,

– temps de calcul en O(KN√N log N max(K, log N )) dans le cas général de variables

numériques ou catégorielles ayant de grands nombres de valeurs (V ≥√N ).

3.3

Application à l’optimisation des modèles en grille