• Aucun résultat trouvé

6.2 Programmation stochastique avec règles de décision constantes par morceaux

6.2.3 L’approche SPSDR en détails

SPSDR est donc une alternative à la Programmation Stochastique classique. Les phases de ré- solution de cette heuristique sont ainsi les mêmes que pour la programmation stochastique, sauf pour la phase de construction des partitions. Comme nous le verrons, cette phase est plus flexible dans SPSDR.

Nous allons présenter les différentes phases de cette approche avant de présenter l’algorithme.

Phase 1 : Construction des ensembles de décisions

Formulation et méthodologie

Comme nous l’avons déjà expliqué, l’approche SPSDR nécessite des partitions Pt de scénarios

en chaque instant, sans obligation de raffinement d’un pas de temps sur l’autre. Chaque élément des partitions est appelé ensemble de décisions. L’approche utilisée pour construire ces partitions est inspirée de [7]. Nous définissons une distance entre 2 scénarios (par exemple `1, `2 ou `∞)

sur l’espace des scénarios Ξ. Pour chaque élément de la partition, nous associons un scénario représentatif et nous attribuons une distribution de probabilité à l’ensemble de ces scénarios représentatifs. Le but est de calculer la distance entre 2 distributions : celle de l’ensemble originel des scénarios et celle de l’ensemble des scénarios représentatifs.

Posons brièvement ce problème : soit Ξ = {ξ1, . . . , ξN} l’espace des scénarios, µ et ˆµ deux mesures discrètes de probabilité sur cet espace. Nous introduisons les deux probabilités pi et ˆpi

telles que pi = µ{ξ = ξi} et ˆpi= ˆµ{ξ = ξi}.

Nous supposons que le support de ˆµ est ΞJ = {ξi}i∈J, où J ⊂ {1, . . . , N }, impliquant donc que

ˆ

pi= 0, ∀i /∈ J . En se munissant d’une distance c : Ξ × Ξ → R, nous estimons la distance entre

les deux mesures de probabilité via la fonction de Kantorovitch ψ :

ψ(µ, ˆµ) = min

η { N

X

i,j=1

c(ξi, ξj)ηi,j|ηi,j ≥ 0, ∀i, j, N X i=1 ηij = ˆpj ∀j, N X j=1 ηij = pi ∀i}. (6.4)

Ce problème (6.4) est un problème linéaire de transport.

Pour construire une partition, il est donc nécessaire de trouver un ensemble d’indices J , tel que |J | = s (s fixé), et une mesure de probabilité ˆµ sur Ξ avec un support ΞJ telle que la distance

ψ(µ, ˆµ) est minimale. Ce problème est équivalent à un problème de p-médianes, affirmation que nous allons prouver.

6.2. PROGRAMMATION STOCHASTIQUE AVEC RÈGLES DE DÉCISION CONSTANTES PAR MORCEAUX

min ˆ p,η N X i,j=1 c(ξi, ξj)ηij N X i=1 ηij = ˆpj, ∀j = 1, . . . , N N X j=1 ηij = pi, ∀i = 1, . . . , N ηij ≥ 0, ∀i, j N X j=1 ˆ pj = 1, ˆpj ≥ 0, ∀j ∈ J, ˆpj = 0, ∀j /∈ J.

La solution optimale de ce problème de transport de masse à J fixé peut être obtenue comme suit. Nous construisons une partition de l’ensemble I = {1, . . . , N } en assignant chaque élément i de I à l’élément j de J le plus proche (en cas d’égalité, i est assigné à l’élément ayant le plus petit indice). Les éléments de la partition sont ainsi définis par

∆(j) = {i ∈ I = {1, . . . , N }|j = arg min

k∈J c(ξ

i, ξk)}, ∀j ∈ J.

Comme c(ξj, ξj) = 0, alors j ∈ ∆(j). Le minimum du problème est ainsi atteint en

ˆ pj =    X i∈∆(j) pi si j ∈ J 0 sinon et ηij =  0 si j /∈ ∆(J ) pi sinon.

A la vue de l’analyse précédente, nous concluons que pour trouver l’ensemble J et la mesure de probabilité ˆµ, nous devons résoudre un problème d’optimisation combinatoire. En notant cij = pic(ξi, ξj), le problème d’optimisation devient :

6.2. PROGRAMMATION STOCHASTIQUE AVEC RÈGLES DE DÉCISION CONSTANTES PAR MORCEAUX

min x,y N X i=1 N X j=1 cijxij (6.5) N X j=1 xij = 1, ∀i (6.6) 0 ≤ xij ≤ yj, ∀i, j (6.7) N X j=1 yj = s (6.8) yj ∈ {0, 1}, ∀j. (6.9)

C’est précisément la formulation du problème de p-médianes. Les médianes du problème sont

les j tels que yj = 1. 

Le problème de p-médianes dans notre cas consiste à trouver s scénarios médians parmi les N possibles et d’assigner chacun des N − s scénarios au scénario médian le plus proche. Ce pro- blème est un problème classique en Recherche Opérationnelle et est connu pour être NP-difficile [8]. Il existe des algorithmes pour générer une solution exacte [12] ou pour générer des solutions proches de l’optimal théorique [6].

Nous venons de voir comment créer une partition à un instant donné. Nous pouvons généraliser facilement au cas multipériodique. Les partitions :

– ne sont pas nécessairement des raffinements de l’instant précédent : en conséquence, nous pouvons construire les partitions à chaque instant indépendamment des autres pas de temps ; – doivent dépendre du passé : pour cela nous considérons le sous-scénario ˆσ en t qui est une restriction du scénario σ sur la période {1, . . . , t}. Au lieu de définir une distance à un instant, nous définissons une distance qui prenne en compte toute la période de 1 à t. Il ne reste ensuite qu’à résoudre le problème (6.5) à chaque instant.

Phase 2 : Optimisation des règles de décisions

Nous venons de construire des ensembles de décisions en chaque instant : soit Itk le kème des |It| ensembles de décisions à l’instant t. Nous imposons sur chaque ensemble de décisions une

unique décision vtk (figure 6.4).

Introduisons la fonction indicatrice 1

t∈Itk} qui vaut 1 si le sous-scénario σt est associé à l’en-

semble de décisions Itk et 0 sinon. Comme, pour un scénario, nous ne pouvons prendre qu’une seule décision par pas de temps, nous pouvons récrire la commande ut, solution du problème (6.3), sous la forme : ut(σt) = |It| X k=1 1{σt∈Itk}v k t, ∀t = 2, . . . , T − 1. (6.10)

6.2. PROGRAMMATION STOCHASTIQUE AVEC RÈGLES DE DÉCISION CONSTANTES PAR MORCEAUX

Fig. 6.4 – Règles de décision

Les variables vtk sont les véritables décisions du problème d’optimisation. Une fois cette optimi- sation achevée, pour adapter la décision à un scénario réalisé quelconque σ, il suffit de trouver de quel ensemble de décisions ce scénario appartient (à chaque pas de temps) pour lui appliquer la décision correspondante. Finalement, la décision à prendre n’est pas systématique et dépend de la réalisation de l’aléa : nous avons donc défini une règle de décision. utétant une somme de fonctions indicatrices, nous avons ainsi défini des règles de décision constantes par mor-

ceaux.

Phase 3 : Validation

Une fois que la règle de décision finale est calculée, il ne reste plus qu’à évaluer la qualité de cette solution. Pour cela,

1. nous étendons cette règle à l’ensemble des scénarios de Ξ en déterminant pour chaque scénario quelle décision prendre en chaque instant par des calculs de distance. En effet, pour chaque partition construite à chacun des pas de temps t, nous disposons d’un sous- scénario σts = {σ1, . . . , σt} de référence. Pour chaque sous-scénario σt, il s’agit donc de

trouver quel sous-scénario s de référence est le plus proche de σt au sens de la distance c. Ce sous-scénario de référence est donné par s = arg mink≤νtc(σt, σ

k t).

Nous obtenons ainsi un coût de gestion et une évolution de l’état du système différents par scénario ;

2. nous pouvons calculer des indicateurs de comparaison tels que le coût moyen, le nombre de violations de contraintes,. . .

Utilisation d’experts

Faire une optimisation sur l’ensemble des N scénarios du pool initial peut s’avérer coûteux en temps de calcul. Pour contourner cette difficulté, nous proposons une approche basée sur la

6.2. PROGRAMMATION STOCHASTIQUE AVEC RÈGLES DE DÉCISION CONSTANTES PAR MORCEAUX

création d’experts. Un expert n’est rien d’autre qu’un sous-ensemble ˜Ξ de taille N0 ≤ N de Ξ. Nous le construisons par tirage aléatoire à l’intérieur du pool initial de scénarios. Du point de vue de l’optimisation, nous n’obtenons désormais plus un jeu de commandes u1, . . . , uT mais

une série de jeux de commandes ul1, . . . , ulT, ∀l = 1, . . . , K où K est le nombre d’experts :

ult(σt) = |Itk,l| X k=1 1t∈Ik,l t }v k,l t , ∀t = 2, . . . , T − 1, ∀l = 1, . . . , K. (6.11)

La commande finale qui sera appliquée sera une combinaison convexe des commandes obtenues par chaque expert :

ut(σt) = K X l=1 αlult(σt), K X l=1 αl= 1, ∀t = 1, . . . , T. (6.12)

En pratique, nous choisirons αl= K1, ∀l. Au lieu de résoudre un gros problème d’optimisation, nous résolvons désormais K problèmes mais d’une complexité moindre.

Les mêmes types d’approches ont été utilisées dans [9]. De même, la combinaison de conseils d’ex- perts a aussi été exploitée dans le contexte des statistiques et du “machine learning” [3].

Algorithme

L’algorithme associé à cette approche SPSDR est le suivant :

1. - Identifier le processus stochastique et ses paramètres 2. - Générer un grand pool de N scénarios

3. - Répéter pour chaque expert k :

(a) - Tirer Kk scénarios parmi les N pour créer l’expert k

(b) - Créer les ensembles de décisions sur tous les pas de temps (c) - Optimiser les règles de décisions sur tous les aléas

4. - Créer la règle de décision finale par combinaison convexe des ex- perts

5. - Valider la règle finale sur le pool initial des N scénarios

Parallélisation de SPSDR

Comme nous le verrons en 6.3.3, les temps de calcul peuvent être très élevés, notamment pour créer les partitions. Cependant, SPSDR possède une propriété très intéressante pour sa mise en place : elle peut être massivement parallélisée. En effet, les constructions des partitions à chacun des T pas de temps et les optimisations de chacun des K experts sont indépendants. Nous

6.3. ADAPTATIONS DE L’APPROCHE POUR LE PROBLÈME DE COUVERTURE

pouvons donc faire des gains considérables de temps de calcul en effectuant les KT constructions puis les K optimisations en parallèle.