• Aucun résultat trouvé

Choix de la fonction d’optimisation

3.2 Outils pour les applications

3.2.2 Choix de la fonction d’optimisation

Nous d´ecrivons ici, de fa¸con informelle, des formulations g´en´eriques de la fonction d’optimisation fE. Le choix de la fonction fE est une ´etape cruciale

dans l’application de notre cadre, en effet c’est cette fonction qui remplit les tables de programmation dynamique, et donc qui choisit, au fur et `a mesure de l’ex´ecution de l’algorithme, quelle est l’information pertinente `a conserver. D’une part, si nous conservons trop d’information, nous obtenons des tables trop grandes, autrement dit, notre encodeur n’est pas confin´e. D’autre part, si nous ne conservons pas assez d’information, nous ne pouvons pas calculer la solution optimale ; autrement dit, notre encodeur n’est pas adapt´e `a la programmation dynamique. Il faut donc conserver juste assez d’information. Nous proposons trois types de fonctions d’optimisation fE, que nous ap-

pelons respectivement fonction naturelle, fonction tronqu´ee, et fonction per- tinente. Chacune des trois sections suivantes est un exemple d’application d’un des trois types de fonctions. Ces trois types nous permettent d’appli- quer notre cadre, et sont suffisamment g´en´eriques pour ˆetre utilis´es sur un grand nombre de probl`emes ; cependant, ils n’excluent pas tout autre type de fonction.

Au lieu de faire de fE un ´el´ement de l’encodeur, nous aurions pu imposer la forme de cette fonction, ce qui nous aurait ´epargn´e la tˆache de la red´efinir `a chaque application, mais nous aurions ´et´e contraints de restreindre notre cadre `a une cat´egorie particuli`ere de probl`emes.

L’intuition la plus naturelle consiste `a d´efinir fE comme la fonction qui

minimise la mesure d’une solution partielle ; autrement dit, fE (d´efinie sur les

graphes bord´es) est une extension de la fonction d’optimisation du probl`eme fΠ (d´efinie sur les graphes). La notion de mesure d’une solution partielle est

plus ou moins obvie selon le probl`eme : pour r-Domination, la solution ´etant un ensemble de sommets, la mesure est ´evidement le nombre de sommets ; pourF-Paquetage, la solution est un ensemble de mod`eles, le mesure est donc le nombre de mod`eles, mais une solution partielle contient aussi des mod`eles potentiels (en cours de r´ealisation), pour lesquels il faut ´etablir une convention (en d’autres termes, il convient de correctement d´efinir mΠR `a

partir de mΠ).

3.2. OUTILS POUR LES APPLICATIONS 149 ´

Etant donn´e un g´en´erateur d’encodages CE et un langage LE, nous d´efi-

nissons la fonction naturelle fE : Γ× Υ→ N ∪ {+∞} telle que :

fE(G, R) = min{k | ∃S ∈ Σ∗, mΠR(S) 6 k, (G, S, R)

∈ LE}. Si un tel S n’existe pas, nous posons fE(G, R) = +∞.

L’encodeur naturel est donc E = (CE, LE, fE).

y Cependant, dans de nombreux cas, l’encodeur naturel d´eriv´e `a partir d’un programme dynamique ad hoc n’est pas confin´e. Dans ce cas, nous pouvons essayer de forcer le confinement. Autrement dit, la fonction naturelle n’est utilisable que si le probl`eme est naturellement confin´e (remarquons que les probl`emes naturellement confin´es correspondent aux probl`emes monotones [8]). Sinon, il nous faut trouver un moyen de supprimer de l’information. Pour cela, nous introduisons la fonction tronqu´ee, que nous notons fE

g, pour

une certaine fonction g. Cette fonction tronqu´ee ´elimine (dans les tables) toutes les valeurs `a une distance sup´erieure `a g(t) de l’optimale. Intuitive- ment, nous voulons que, `a chaque ´etape de la programmation dynamique, le programme cesse de consid´erer des solutions partielles qui sont trop ´eloign´ees d’un optimal partiel (calcul´e `a cette ´etape) pour pouvoir ˆetre compl´et´ees en une solution optimale (`a la fin de l’ex´ecution). La difficult´e r´eside dans le choix d’une fonction g qui pr´eserve suffisamment de valeurs dans les tables pour ex´ecuter le programme dynamique (c’est-`a-dire, telle que l’encodeur soit adapt´e, cf. d´efinition 67).

D´efinition ´

Etant donn´e un encodeur (naturel) E = (CE, LE, fE), et une fonction g :

N → N, nous d´efinissons la fonction tronqu´ee fE

g : Γ∗× Υ∗ → N ∪ {+∞} telle que : fgE(G, R) =    +∞, si fE(G, R)− g(t) > min{fE(G, R)| R ∈ CE(Λ(G))}, fE(G, R), sinon.

L’encodeur tronqu´e est doncEg = (CE, LE, fgE).

y N´eanmoins, pour certains probl`emes il n’existe pas de fonction g qui per- mette l’application de la programmation dynamique (c’est-`a-dire, que l’enco- deur tronqu´e n’est pas adapt´e). Pour cette raison, nous proposons la fonction pertinente, que nous notons ¯fE

g. Pour remplir la table d’un nœud (dans une

150 CHAPITRE 3. M ´ETA-NOYAUX EXPLICITES fils. Plus pr´ecis´ement, cette fonction permet de transmettre `a la racine l’in- formation que, quelque part parmi les descendants, une valeur `a ´et´e tronqu´ee (c’est-`a-dire, un solution partielle a ´et´e ´elimin´ee). Intuitivement, l’usage de cette fonction est justifi´e par le fait que, si une solution partielle S a ´et´e ´elimin´ee `a un certain moment, il n’y a pas raison qu’une solution construite `a partir de S, redevienne utile (mˆeme si sa mesure retourne dans l’intervalle de confinement) ; cela revient `a dire que l’usage de la fonction pertinente conserve la propri´et´e d’ˆetre un Π-encodeur.

Pour pouvoir d´efinir la fonction pertinente, nous avons besoin qu’une solu- tion induise un encodage lorsqu’elle traverse un s´eparateur. Bien ´evidemment, il est difficile de d´efinir un protocole g´en´erique qui d´ecrive comment construire un encodage `a partir d’une solution, pour tous les probl`emes. Nous ne don- nerons donc pas une d´efinition formelle de ce que ≪une solution induit un

encodage≫ veut dire ici, et nous le d´efinirons de fa¸con ad hoc dans chaque

application. D´efinition

´

Etant donn´e un graphe G∈ Btde bord A, un encodage RA sur A est non

pertinent s’il existe un certificat S tel que (G, S, RA)∈ LEet|S| = fE(G, RA),

et il existe un s´eparateur B ⊂ V (G) tel que B 6= A et |B| 6 t de sorte que S ≪induise≫ un encodage RB sur B avec ¯fE

g(GB, RB) = +∞.

y D´efinition

´

Etant donn´e un encodeur (naturel) E = (CE, LE, fE), et une fonction g :

N → N, nous d´efinissons la fonction pertinente ¯fE

g : Γ∗ × Υ∗ → N ∪ {+∞} telle que : ¯ fgE(G, R) =        +∞, si fE(G, R)− g(t) > min{fE(G, R)| R ∈ CE(Λ(G))},

ou si R est non pertinent, fE(G, R), sinon.

L’encodeur pertinent est donc ¯Eg = (CE, LE, ¯fgE).

y Remarquons que, par d´efinition, un encodeur tronqu´eEg ou un encodeur

pertinent ¯Eg est n´ecessairement g-confin´e. Remarquons que dans tous les

faits, lemmes et th´eor`emes de la section 3.1 pr´ec´edente un encodeur E peut en particulier ˆetre un encodeur tronqu´e ou pertinent.