• Aucun résultat trouvé

Encodeur de programmation dynamique

2.4 Discussion

3.1.2 Encodeur de programmation dynamique

Nous d´efinissons ici la notion d’encodeur. Nous d´ecrivons le cadre de travail pour des probl`emes de minimisation sous forme d´ecisionnelle, c’est-`a- dire de la forme Π ={(G, k) | ∃S, mΠ(S) 6 k, (G, S) ∈ LΠ} (cf. section 1.3),

le cadre de travail pour un probl`eme de maximisation en d´ecoule ais´ement. Un encodeur est destin´e `a d´ecrire les tables de programmation dynamique et comment les remplir. Nous donnons ensuite deux propri´et´es n´ecessaires pour que l’encodeur simule une programmation dynamique efficace qui r´esout le probl`eme consid´er´e.

Intuitivement, nous l’avons dit, un encodeur formalise la programma- tion dynamique pour un probl`eme g´en´erique Π. Rappelons qu’une table est g´en´er´ee pour chacun des sous-graphes consid´er´es par la programmation dy- namique. Cette table `a pour entr´ees les descriptions de toutes les fa¸cons dont une solution peut traverser le bord du sous-graphe ; et, pour chacune de ces entr´ees, la table enregistre la taille de la meilleure solution (traversant selon la fa¸con d´ecrite par l’entr´ee). Notre encodeur contiendra donc une fonction qui, ´etant donn´e un bord, g´en`ere les entr´ees de la table (nous les appellerons encodages), un langage qui permette de reconnaˆıtre les solutions partielles et une fonction qui d´etermine les valeurs `a enregistrer (cf. figure 3.5).

D´efinition 61 : encodeur

Un encodeur est un triplet E = (CE, LE, fE), avec :

CE une fonction calculable de 2N → 2Υ∗

qui, `a chaque ensemble d’entiers I ⊆ N, associe un ensemble CE(I) de chaˆınes de caract`eres sur un

certain alphabet Υ (qui correspondront aux entr´ees d’une table) ; un encodage est une chaˆıne R∈ CE(I) ;

LE un langage calculable qui reconnaˆıt des triplets de la forme (G, S, R)

Γ∗× Σ∗× Υ, o`u G est un graphe bord´e d´ecrit sur Γ, S est un certificat

d´ecrit sur Σ (qui correspondra au certificat d’une solution partielle au probl`eme), et R∈ CE(Λ(G)) est un encodage sur Υ ; si (G, R, S)∈ LE,

nous dirons que S satisfait l’encodage R (dans G) ;

fE une fonction calculable de Γ∗× Υ∗ → N ∪ {+∞} qui `a un graphe bord´e

G et un encodage R∈ CE(Λ(G)) associe un entier (qui correspondra `a

130 CHAPITRE 3. M ´ETA-NOYAUX EXPLICITES La taille d’un encodeur est sE(t) = max{|CE(I)| | I ⊆ {1, . . . , t}}.

y Les encodages dans CE(I) correspondent aux entr´ees de la table pour un

graphe dont le bord est labell´e par I. Chaque encodage R∈ CE(I) peut ˆetre

appr´ehend´e ou bien comme une fa¸con dont une solution peut traverser le bord du graphe, ou bien comme une contrainte suppl´ementaire devant ˆetre v´erifi´ee par une solution partielle. Un autre point de vue serait de faire correspondre `a chaque encodage R un probl`eme ΠR d´efinie `a partir du probl`eme initial Π

plus les contraintes impos´ees par R.

Le langage LEidentifie les certificats qui sont des solutions partielles satis-

faisant sur le bord les conditions impos´ees par un encodage. D’un autre point de vue, nous pourrions dire que ΠR se base sur le langage LR = {(G, S) |

(G, S, R)∈ LE}. Remarquons que d’un point de vu th´eorique, nous n’avons

pas besoin de LE. Aucun des r´esultats de cette section n’y fait r´ef´erence. N´eanmoins nous avons jug´e que ce langage joue un rˆole important dans la compr´ehension de ce qu’est un encodage. Soulignons que toutes nos applica- tions utilisent un tel langage pour d´efinir la fonction fE.

La fonction fE peut ˆetre vue de deux fa¸cons. Si nous fixons G, la fonction

fE(G, · ) : R 7→ fE(G, R) remplit la table de G. Si nous fixons R, la fonction

fE( · , R) : G 7→ fE(G, R) peut ˆetre vue comme la fonction d’optimisation

du probl`eme ΠR.

La taille de l’encodeur sE(t) est une fonction qui, ´etant donn´ee la taille du bord (le sac consid´er´e par la programmation dynamique), donne le nombre d’encodages d´efinis sur un graphe t-bord´e ; c’est-`a-dire, le nombre d’entr´ees de la table.

Remarquons que nous demandons `a ce que le g´en´erateurCE et le langage

LE et la fonction fE soient simplement calculables (sans contraindre plus la

complexit´e). Rappelons que t = |∂G| est une constante qui ne d´epend que du probl`eme. Donc, CE, qui ne d´epend que du bord, se calcule en temps

constant. Par contre fE d´epend du graphe bord´e ; cependant, nous montrons

dans le lemme 18, qu’il nous suffit d’appliquer fE sur des graphes de taille

constante.

La propri´et´e suivante assure qu’un encodeur est effectivement con¸cu pour r´esoudre un probl`eme. Elle traduit l’id´ee que, arriv´e `a la fin de la program- mation dynamique, la table associ´ee au graphe entier (de bord vide) contient la r´eponse au probl`eme. Elle nous servira de cas de base pour montrer le raf- finement de l’´equivalence canonique par notre ´equivalence (cf.d´efinition 64). D´efinition 62 : Π-encodeur

Un encodeur E est un Π-encodeur si CE(∅) est un singleton {R

3.1. R `EGLE DE REMPLACEMENT DE PROTRUSIONS 131 pour tout graphe 0-bord´e fE(G, R) = fΠ(G).

y Au premier abord, il semblerait plus naturel d’avoir une condition im- posant l’´egalit´e entre LE et LΠ : pour tout certificat S, (G, S, R

∅) ∈ LE si

et seulement si (G, S) ∈ LΠ. Cette condition n’est ni n´ecessaire, ni suffi-

sante. En effet, d’une part, puisque nous ´etudions des probl`emes de d´ecision, nous n’avons pas besoin de connaˆıtre toutes les solutions, il nous suffit d’en connaˆıtre une de taille optimum ; d’autre part, puisque la forme de la fonc- tion fE n’est pas contrainte, il est possible que fE contredise l’intuition et ne

soit pas d´efini `a partir de LE.

La propri´et´e de confinement ci-dessous assure qu’une table enregistrera peu de valeurs (cf. figure 3.5). Cela impliquera un petit nombre de classes pour laE-´equivalence (cf.d´efinition 64). Elle joue un rˆole similaire `a celui de la monotonicit´e [8].

D´efinition 63 : confinement

Un encodeur E est g-confin´e si il existe une fonction g : N → N telle que pour tout graphe t-bord´e G avec Λ(G) = I :

ou

{R ∈ CE(I)| fE(G, R)6= +∞} = ∅ ou

— maxR∈CE(I){fE(G, R)6= +∞} − minR∈CE(I){fE(G, R)6= +∞} 6 g(t).

y ∂G G CE fE R0 R1 . . .                     0 |G| g(t) +∞ N O N O U I

Figure 3.5 – Repr´esentation sch´ematique d’un encodeur confin´e (cf. d´efinitions

61 et 63). A partir d’un graphe t-bord´e, la fonction CE g´en`ere les entr´ees de la

table, la fonction fE remplie cette table avec les tailles de solutions possibles, ou la valeur +∞. Toutes les valeurs (sauf +∞) sont comprises dans un intervalle de largeur g(t). La valeur enregistr´ee pour un encodage Ri d´elimite l’intervalle pour

132 CHAPITRE 3. M ´ETA-NOYAUX EXPLICITES