• Aucun résultat trouvé

Processus interactif d'optimisation avec prise en charge des préférences de l'utilisateur

N/A
N/A
Protected

Academic year: 2021

Partager "Processus interactif d'optimisation avec prise en charge des préférences de l'utilisateur"

Copied!
161
0
0

Texte intégral

(1)

© Alexis Gauthier, 2019

Processus interactif d'optimisation avec prise en charge

des préférences de l'utilisateur

Mémoire

Alexis Gauthier

Maîtrise en informatique - avec mémoire

Maître ès sciences (M. Sc.)

(2)

Processus interactif d’optimisation

avec prise en charge des préférences de l’utilisateur

Mémoire

Alexis Gauthier

Sous la direction de :

Jonathan Gaudreault, directeur de recherche

Claude-Guy Quimper, codirecteur de recherche

(3)

Résumé

Un décideur utilisant un système d’optimisation peut se voir offrir une solution qu’il juge inadéquate. Il lui est possible, s’il utilise un système interactif de réoptimisation, d’ajouter une contrainte ou une préférence et de requérir une nouvelle solution. Ce-pendant, les préférences émises quant aux multiples valeurs composant la solution sont généralement perdues au fil des itérations successives. Pour remédier à ce problème, ce mémoire propose une approche pour la prise en compte des préférences de l’utilisa-teur. Celle-ci fait appel aux techniques de la programmation mathématique avec cible. Une méthodologie pour la mise en application de l’approche est également proposée. Finalement, une comparaison est effectuée entre l’approche proposée et une approche par heuristiques pour le problème de planification interactive des cotisations et retraits d’un Régime enregistré d’épargne étude. Dans les deux cas, les prototypes permettent d’ajuster en temps réel, et à la pointe de la souris, les solutions sur des graphiques in-teractifs. Le prototype mu par des heuristiques spécifiques ne permet pas à l’utilisateur d’atteindre toutes les solutions admissibles, notamment à cause de problèmes d’ajuste-ments circulaires où l’utilisateur peut se retrouver au même point après quelques itéra-tions. Le prototype utilisant l’approche proposée de programmation mathématique avec cibles permet à l’utilisateur de naviguer de façon cohérente à travers l’espace solution. Dans la plupart des contextes, cette méthode devrait permettre au décideur d’accéder plus facilement à sa solution préférée.

(4)

Abstract

A decision maker using an optimization system may get a solution that he considers inappropriate. It is possible for him, if he uses an interactive reoptimization system, to add a constraint or a preference and to require a new solution. However, preferences for the various values composing the solution are usually lost over the iterations. This thesis proposes an approach for taking into account the user’s preferences. It uses mathemati-cal goal programming techniques. A methodology for implementing the approach is also proposed. Finally, a comparison is made between the proposed approach and another one using heuristics to solve the problem of interactive planning of contributions and withdrawals from a Registered Education Savings Plans. In both cases, the prototypes make it possible to adjust, in real time, and from the tip of the mouse, the solutions on interactive graphics. The prototype, moved by specific heuristics, does not allow the user to reach all admissible solutions. This is often caused by circular adjustments pro-blems where the user may reach a previous state after some iterations. The prototype using mathematical goal programming allows the user to navigate coherently through the solution space. In most contexts, this method should make it easier for the decision maker to access his preferred solution.

(5)

Table des matières

Page

Résumé iii

Abstract iv

Table des figures viii

Liste des tableaux xi

Avant-propos xii

Introduction 1

1 Notions préliminaires 3

1.1 Notions d’algèbre linéaire . . . 4

1.1.1 Espace, indépendance, base et dimensions . . . 4

1.1.2 Opérations élémentaires . . . 5

1.1.3 Convexité . . . 6

1.2 Forme standard d’un modèle de programmation linéaire . . . 6

1.3 Algorithme du simplexe . . . 8

1.3.1 Les opérations de pivotage . . . 10

1.3.2 Obtention d’une solution admissible initiale . . . 11

1.3.3 Utilisation du simplexe pour un problème non-convexe . . . 12

1.4 Principe de dualité . . . 12

1.5 Algorithme du simplexe dual . . . 14

1.6 Départ à chaud avec modification des constantes . . . 15

1.7 Parallélisation du simplexe . . . 17

1.8 Instabilité numérique . . . 17

1.9 Optimalité en résolution de problèmes multi-objectifs . . . 19

1.9.1 Axiomes de l’utilité . . . 19

1.9.2 L’équilibre de Pareto . . . 20

1.10 Programmation mathématique lexicographique avec cibles . . . 21

(6)

1.11 Algorithmes multi-objectifs . . . 22

1.11.1 Algorithme séquentiel . . . 22

1.11.2 Algorithme du simplexe lexicographique . . . 23

1.11.3 Atteinte d’une solution admissible en situation non-convexe . . . 24

1.12 Processus interactif de réoptimisation . . . 26

1.13 Systèmes à initiative partagée . . . 28

1.14 Interactions avec l’humain, psychologie, cognition et réaction du système 29 1.14.1 Convergence et critère d’arrêt . . . 30

1.14.2 Réduction des biais cognitifs . . . 31

1.14.3 Analyse à tâtons et illusion de contrôle . . . 31

1.14.4 Bidirectionnalité . . . 32

1.14.5 Temps de réponse . . . 33

1.14.6 Stabilité . . . 34

1.15 Principaux problèmes au sein des systèmes de réoptimisation courants . 34 1.15.1 Difficulté d’identification des préférences . . . 34

1.15.2 Maintiens des valeurs cibles . . . 35

2 Approche proposée pour la prise en compte des préférences de l’uti-lisateur à travers le processus de réoptimisation 37 2.1 Approche pour la prise en compte des préférences . . . 38

3 Validation de l’approche proposée : Dealing with User’s Preferences in Mixed-Initiative Systems for Linear Optimization 41 3.1 Résumés . . . 41

3.2 Introduction . . . 43

3.3 Preliminary Notions . . . 44

3.3.1 Iterative Reoptimization Process . . . 44

3.3.2 Characteristics that Facilitate the Reoptimization Process . . . 45

3.3.3 Optimization Using the Simplex Algorithm . . . 45

3.3.4 Numerical Instability . . . 46

3.4 Problematic . . . 46

3.5 Proposed Approach . . . 47

3.5.1 Comparison with Previous Approach . . . 48

3.5.2 Sequential Algorithm . . . 49

3.5.3 Lexicographic Simplex Algorithm . . . 50

3.6 Experiments . . . 50

3.6.1 Factorial Design Experiment . . . 51

3.6.2 Space-filling Design Experiment . . . 53

(7)

4 Méthodologie proposée pour la mise en œuvre de l’approche 56

4.1 Reformulation systématique d’un problème linéaire vers sa version avec

préférences . . . 57

4.2 Politique d’ordonnancement des préférences . . . 58

4.3 Exemples de politiques d’ordonnancement des préférences . . . 59

4.4 Persistance des valeurs et politique d’identification des valeurs cibles . . 64

4.5 Exemple de politique de persistance . . . 64

4.6 La méthodologie en bref . . . 69

5 Application : la planification d’un Régime enregistré d’épargne études par des systèmes interactifs de réoptimisation 70 5.1 Description du problème des REEE . . . 71

5.2 Description des paramètres et variables . . . 73

5.3 Conception d’un système de réoptimisation à l’aide de l’approche propo-sée (avec gestion des préférences) . . . 75

5.3.1 Les contraintes du modèle . . . 75

5.3.2 Les objectifs du modèle . . . 79

5.3.3 Non-convexité du problème . . . 82

5.3.4 Description de l’interface utilisateur . . . 83

5.3.5 Stratégie appliquée pour la gestion des préférences . . . 87

5.3.6 Intervention sur le taux de rendement . . . 94

5.3.7 Altérations du modèle . . . 96

5.4 Conception d’un système de réoptimisation à l’aide d’heuristiques spéci-fiques (sans gestion des préférences) . . . 117

5.4.1 Calcul de l’étendue pour laquelle une variation de valeur peut être transmise au même taux marginal . . . 117

5.4.2 Diagramme des interactions . . . 120

5.4.3 Relations mathématiques spécifiques à la résolution par heuristiques122 5.5 Comparaison des approches . . . 127

5.5.1 Effet des interventions de l’utilisateur . . . 127

5.5.2 Commentaires par rapport à l’approche utilisant des heuristiques spécifiques . . . 134

5.5.3 Commentaires par rapport à l’approche proposée (avec gestion des préférences) . . . 135

Conclusion 137

Annexe A Diagrammes d’interactions 140

(8)

Table des figures

1.1 Notions de convexité . . . 7

1.2 Modélisation d’un espace non-convexe par son enveloppe convexe . . . 25

1.3 Processus de réoptimisation . . . 27

3.1 Reoptimization process . . . 44

3.2 Experiment with 10 Variables . . . 52

3.3 Experiment with 100 Variables . . . 52

3.4 Space-filling Design Experiment . . . 53

4.1 État initial . . . 65

4.2 États après les interventions (avec persistance des valeurs) . . . 66

4.3 États après les interventions (sans persistance des valeurs) . . . 66

4.4 États après les interventions (avec persistance des valeurs) et avec l’ob-jectif mixte : min 4 P i=1 ηi+ ρi− xi· 1, 1i . . . 67

4.5 États après les interventions (sans persistance des valeurs) et avec l’ob-jectif mixte : min 4 P i=1 ηi+ ρi− xi· 1, 1i . . . 68

4.6 États après les interventions (sans persistance des valeurs) et avec l’ob-jectif : max 4 P i=1 xi· 1, 1i . . . 68

5.1 Interface, avec onglets fermés . . . 84

5.2 Interface, sous-menu du mode des cotisations . . . 84

5.3 Interface, avec onglets ouverts (1/2) . . . 85

5.4 Interface, avec onglets ouverts (2/2) . . . 86

5.5 Interface, affichage de la valeur correspondante (ici des cotisations à l’an-née 2020) au survol de la souris . . . 86

5.6 Interface, indicateur au survol de la souris . . . 86

5.7 Diagramme d’interactions — Changement du taux de rendement . . . . 95

5.8 État initial — 1 . . . 96

5.9 Résultat — altération 1 . . . 97

(9)

5.11 État initial — 2 . . . 98

5.12 Résultat — altération 2 . . . 98

5.13 Résultat — 2, sur le prototype non-altéré . . . 99

5.14 État initial — 3 . . . 100

5.15 Résultat — altération 3 . . . 100

5.16 Résultat — 3, sur le prototype non-altéré . . . 100

5.17 État initial — 4 . . . 101

5.18 Résultat — altération 4 . . . 102

5.19 Résultat — 4, sur le prototype non-altéré . . . 102

5.20 État initial — 5 . . . 103

5.21 Résultat — altération 5 . . . 103

5.22 Résultat — 5, sur le prototype non-altéré . . . 104

5.23 État initial — 6 . . . 105

5.24 Résultat — altération 6 . . . 105

5.25 Résultat — 6, sur le prototype non-altéré . . . 106

5.26 État initial — 7 . . . 107

5.27 Résultat — altération 7 . . . 107

5.28 Résultat — 7, sur le prototype non-altéré . . . 107

5.29 État initial — 8 . . . 108

5.31 Résultat — altération 8 . . . 109

5.32 Résultat — 8, sur le prototype non-altéré . . . 109

5.33 État initial — 9 . . . 110

5.34 Résultat — altération 9 . . . 111

5.35 Résultat — 9, sur le prototype non-altéré . . . 112

5.36 État initial — 10 . . . 112

5.37 Résultat — altération 10 . . . 113

5.38 Résultat — 10, sur le prototype non-altéré . . . 113

5.39 État initial — 11 . . . 114

5.40 Résultat — altération 11 . . . 114

5.41 Résultat — 11, sur le prototype non-altéré . . . 115

5.42 État initial (a) — 12 . . . 115

5.43 État initial (b) — 12 . . . 116

5.44 Résultat — altération 12 . . . 116

5.45 Résultat — 12, sur le prototype non-altéré . . . 116

5.46 Diagramme d’interactions Changement demandé des cotisations totales 122 A.1 Diagramme d’interactions Changement demandé sur une période de co-tisation . . . 141

A.2 Diagramme d’interactions Changement demandé sur une période de PAE 141 A.3 Diagramme d’interactions Changement demandé sur les PAE totaux . . 142

(10)

A.4 Diagramme d’interactions Changement demandé sur une période de re-traits parents . . . 142 A.5 Diagramme d’interactions Changement demandé sur les retraits totaux 143 A.6 Diagramme d’interactions Changement demandé sur les subventions totales143

(11)

Liste des tableaux

1.1 Le problème primal et son dual . . . 13

1.2 Les transformations des contraintes et des variables entre le primal et le dual . . . 13

1.3 Le problème primal standard et son dual . . . 14

2.1 Le problème multi-objectif après l’émission de n préférences . . . 39

3.1 Multi-Objective Problem After n Preferences . . . 47

3.2 Comparison Between Approaches for the User . . . 48

3.3 Factorial Design Experiment . . . 49

5.3 Effet des interventions sur le système de réoptimisation utilisant des heu-ristiques spécifiques, mode : cotisations totales (à vie) — 1/2 . . . 128

5.4 Effet des interventions sur le système de réoptimisation utilisant des heu-ristiques spécifiques, mode : cotisations totales (à vie) — 2/2 . . . 129

5.5 Effet des interventions sur le système de réoptimisation utilisant des heu-ristiques spécifiques, mode : cotisations moyennes . . . 129

5.6 Effet des interventions sur le système de réoptimisation utilisant l’ap-proche proposée pour la prise en compte des préférences, mode : cotisa-tions totales (à vie) — 1/4 . . . 130

5.7 Effet des interventions sur le système de réoptimisation utilisant l’ap-proche proposée pour la prise en compte des préférences, mode : cotisa-tions totales (à vie) — 2/4 . . . 131

5.8 Effet des interventions sur le système de réoptimisation utilisant l’ap-proche proposée pour la prise en compte des préférences, mode : cotisa-tions totales (à vie) — 3/4 . . . 132

5.9 Effet des interventions sur le système de réoptimisation utilisant l’ap-proche proposée pour la prise en compte des préférences, mode : cotisa-tions totales (à vie) — 4/4 . . . 133

5.10 Effet des interventions sur le système de réoptimisation utilisant l’ap-proche proposée pour la prise en compte des préférences, mode : cotisa-tions moyennes . . . 134

(12)

Avant-propos

Le chapitre 3 du mémoire contient un article, Dealing with User’s Preferences in

Mixed-Initiative Systems for Linear Optimization [26], publié dans les actes de

confé-rence de la 29eédition de l’International Conference on Tools with Artificial Intelligence

(ICTAI) 2017 qui s’est tenu dans la région de Boston du 6 au 8 novembre 2017. L’étudiant en est l’auteur principal et il a lui-même effectué les expérimentations décrites dans l’article. Il a rédigé tout le code informatique, il a veillé à son exécution et il a effectué l’analyse statistique des résultats. Il a aussi effectué la revue de littérature et rédigé l’article. Jonathan Gaudreault et de Claude-Guy Quimper ont revu, de façon itérative, les différentes versions de l’article et ont dirigé l’étudiant vers de nouvelles façons de structurer le texte et les idées.

Les auteurs veulent aussi remercier chaleureusement Georghia Michael qui a aussi revu et proposé de nombreux éléments pour le remaniement de la version anglaise.

L’article a été soumis le 15 juillet 2017 et a été accepté le 6 septembre 2017. Suite aux suggestions des réviseurs scientifiques, de légères modifications ont été apportées et la version finale a été transmise pour publication le 8 septembre 2017. À l’exception de la mise en page, l’article joint au chapitre 3 est identique à cette version.

(13)

Introduction

Lors de la conception d’un système d’optimisation, il est parfois difficile, voire impos-sible, de prévoir toutes les contraintes qui seront en jeu au moment de leur utilisation. Le contexte peut notamment évoluer entre l’étape de modélisation et le moment de l’utilisation, ou bien certains aspects humains propres à l’utilisateur final peuvent af-fecter la solution souhaitée. Parfois, le décideur peut découvrir la présence de certaines contraintes seulement lorsqu’il les voit violées par une solution qui lui est proposée [32]. Or, les systèmes d’optimisations traditionnels ne fournissent en général au décideur qu’une solution unique. Face à une solution insatisfaisante, ou carrément inapplicable, le décideur risque de délaisser le système [51].

Certains systèmes permettent au décideur de modifier une solution insatisfaisante et une nouvelle solution est alors proposée [51], ce qui permet de profiter de l’expertise du décideur. Il s’agit alors de systèmes hybrides d’aide à la décision pour lesquels une certaine coopération est possible entre l’humain et la machine. Ces systèmes permettent donc de tirer avantage de la puissance de calcul des ordinateurs ainsi que du jugement du décideur. Ce dernier peut alors effectuer une analyse à tâtons, par essais et erreurs [21, 51].

Ces systèmes interactifs sont utilisés notamment pour des problèmes de création d’horaires [36], ainsi qu’au sein de l’industrie du transport [3, 22], de même que pour la planification de chaînes de valeurs [25] et même pour la gestion de tâches du robot Mars Rover de la NASA [1, 10].

Il arrive toutefois que la nouvelle solution proposée soit très différente de la pré-cédente ce qui nécessite un effort d’analyse supplémentaire de la part du décideur. Il arrive également que la nouvelle solution soit différente de la précédente, mais qu’elle soit identique à une autre proposée antérieurement. Le décideur se trouve alors à tourner en rond. Plus généralement, l’enchaînement des solutions offertes demeure problématique,

(14)

les systèmes ayant de la difficulté d’une part à identifier les préférences du décideur, mais aussi à les maintenir tout au long du processus afin de lui offrir rapidement la solution qu’il recherche.

Ce mémoire propose une approche et montre qu’il est possible, au sein d’un système interactif de réoptimisation, de prendre en compte en temps réel les préférences de l’utilisateur. Dans la plupart des contextes où le problème peut être modélisé de façon linéaire, cette façon de faire permet au décideur d’accéder plus facilement à sa solution préférée.

Le texte débute par la présentation des concepts préliminaires (chapitre 1). La nou-velle approche pour la prise en compte des préférences est ensuite proposée (chapitre 2). Puis, des expérimentations sur celle-ci ont été effectuées afin d’évaluer les performances de deux variantes de l’approche. Ces résultats ont donné lieu à la publication d’un ar-ticle (chapitre 3). Puis, une méthodologie permettant d’utiliser l’approche en contexte réel est proposée (chapitre 4). Finalement, pour un même cas d’application, soit la pla-nification d’un Régime enregistré d’épargne études (REEE), deux systèmes interactifs ont été développés. Cela permet de comparer une approche plus traditionnelle, sans prise en compte des préférences, avec l’approche proposée (chapitre 5).

(15)

Chapitre 1

Notions préliminaires

Les systèmes interactifs d’optimisation sur lesquels des humains interviennent néces-sitent de prendre en compte des aspects mathématiques ainsi que des aspects humains. Ainsi, les notions préliminaires présentées dans ce chapitre touchent à ces deux aspects. De nombreuses méthodes d’optimisations reposent sur l’algèbre linéaire, dont quelques notions de bases sont transmises en section 1.1. Par ailleurs, un des algorithme les plus importants en optimisation utilise la programmation linéaire. La forme standard d’un modèle de programmation linéaire est donc présentée en section 1.2 avant de présenter cet algorithme, le simplexe, en section 1.3. Et, toujours en programmation linéaire, il est possible de bâtir un second modèle (le dual) associé au premier (le primal). Ceci repose sur le principe de dualité, présenté en section 1.4, qui est nécessaire à la com-préhension de l’algorithme du simplexe dual (section 1.5). Cet algorithme tolère que des contraintes soient initialement violées, ce qui permet que certaines contraintes du modèle soient modifiées au cours des interactions avec l’utilisateur. Le modèle peut alors être rapidement résolu de nouveau, ce qui est expliqué en détail à la section 1.6. Ces algorithmes peuvent être parallélisés (section 1.7). Toutefois, en programmation linéaire, certaines précautions doivent être prises. En effet, ce domaine est particulière-ment sensible aux problèmes d’instabilité numérique en lien avec l’encodage numérique des nombres réels (section 1.8), ce qui pourrait mener à l’obtention de fausses solutions. De plus, lorsque le modèle contient plusieurs objectifs, la notion d’optimalité doit être reconsidérée, ce qui est discuté en section 1.9. Lorsqu’une relation d’ordre strict existe entre les différents objectifs et pour des problèmes où des valeurs-cibles sont établies pour certaines variables, les principes associés à la programmation mathématique

(16)

lexi-cographique avec cibles peuvent être utilisés (section 1.10), et ces problèmes peuvent notamment être résolus par les algorithmes multi-objectifs décrits en section 1.11. Tous ces outils peuvent être mis à profit au sein d’un processus interactif de réoptimisation (section 1.12) ou même au sein d’un système à initiative partagée (section 1.13). Dans les deux cas, une série d’échanges peut avoir lieu entre une machine (le système d’op-timisation) et un humain (l’utilisateur), afin d’obtenir une solution satisfaisante à un problème. Une forme de coopération a donc lieu. Dans cette situation la nature des contributions respectives peut aussi s’ajuster en cours de processus. Cela mène à abor-der des aspects humains touchant notamment la nature des interactions, la psychologie, la cognition et la réaction du système (section 1.14). Finalement, ce chapitre se termine avec la description des deux problématiques en lien avec les processus interactifs de réoptimisation qui ont été annoncés en introduction (section 1.15).

1.1

Notions d’algèbre linéaire

1.1.1

Espace, indépendance, base et dimensions

Espaces vectoriels sur R

Un espace vectoriel E sur R est un ensemble vérifiant que E est fermé pour l’addition et pour la multiplication par un scalaire élément de R.

C’est-à-dire que [15] : · ∀ x, y ∈ E, x + y ∈ E · ∀ x ∈ E, ∀ λ ∈ R, λx ∈ E. Ou de façon plus compacte [65] :

· λx + µy ∈ E, ∀ x, y ∈ E, ∀ λ, µ ∈ R.

Indépendance linéaire

Soient les vecteurs x1, . . . , xn ∈ Rn et λi ∈ R ∀ i ∈ {1, . . . , n}.

Alors

n

P

j=1

λjxj = λ1x1+ λ2x2+ ... + λnxn est une combinaison linéaire.

(17)

suivante est vraie [15, 65] :

n

X

j=1

λjxj = 0 =⇒ λj = 0, ∀ j ∈ {1, ..., n}

Base et espace engendré

Le sous-espace engendré correspond à l’ensemble des combinaisons linéaires possibles à partir d’une famille de vecteurs tirée de E . Une famille est dite génératrice si le sous-espace qu’elle engendre correspond à l’ensemble E . De plus, si cette famille est libre, alors celle-ci correspond à une base de E [15].

Un vecteur de E peut alors être représenté de manière unique par une combinaison linéaire des vecteurs formant une base de E [15, 65].

C’est-à-dire que pour une base (e1, e2, ..., en) ∈ E

∀x ∈ E, ∃! a ∈ Rn x = n X j=1 ajej = a1e1+ a2e2+ ... + anen Dimension et rang

Dans un espace vectoriel fini, la dimension de E correspond au nombre maximal de vecteurs linéairement indépendants dans E [65]. Le rang d’une matrice correspond à la dimension de l’espace engendré par ces vecteurs [65].

1.1.2

Opérations élémentaires

Opérations élémentaires sur les lignes

Soient un système d’équations linéaires ainsi que les i -èmes et j -èmes lignes de ce système.

ai1+ ai2+ ... + ain = bi (1.1)

aj1+ aj2+ ... + ajn= bj (1.2)

Les opérations élémentaires suivantes produisent alors un nouveau système d’équations dont l’espace solution demeure identique [47].

(18)

· L’échange, c’est-à-dire la permutation de deux lignes, puisque l’ordre des équa-tions n’affecte pas la valeur de l’espace solution.

· La multiplication par un scalaire préserve aussi la valeur de l’espace solution. ai1+ ai2+ ... + ain = bi

≡ k · (ai1+ ai2+ ... + ain) = k · bi

≡ k · ai1+ k · ai2+ ... + k · ain = k · bi (1.3)

· Le remplacement d’une ligne par la somme de celle-ci avec le multiple d’une seconde ligne est aussi permis. Par exemple, l’équation (1.5) est formée de la somme de la ligne (1.2) avec la ligne (1.3). Et le système initial possède le même espace solution lorsque l’équation (1.5) se substitue à l’équation (1.2).

aj1+ aj2+ ... + ajn= bj (1.2)

≡ aj1+ aj2+ ... + ajn + k · ai1+ k · ai2+ ... + k · ain= bj + k · bi (1.4)

≡ (aj1+ k · ai1) + (aj2+ k · ai2) + ... + (ajn+ k · ain) = bj + k · bi (1.5)

1.1.3

Convexité

Par définition, un ensemble E est convexe si et seulement si :

∀ x, y ∈ E, ∀ λ ∈ [0, 1], (1 − λ) x + λ y ∈ E (1.6) C’est donc que pour toute paire de points d’un ensemble, le segment de droite reliant ces deux points fait aussi partie de l’ensemble. Par exemple, la figure (1.1a) représente un espace convexe, mais pas la figure (1.1b), car les points du segment cd ne font pas tous partie de l’ensemble.

L’enveloppe convexe d’un ensemble A, est le plus petit ensemble convexe qui contient A [14]. Ainsi, la figure (1.1c) montre l’enveloppe convexe (l’hexagone) d’un ensemble non-convexe (l’étoile).

1.2

Forme standard d’un modèle de programmation

linéaire

En 1963, Dantzig [16] explique qu’un programme linéaire cherche à décrire les inter-relations entre les composantes d’un système. Et que si ces inter-relations peuvent être

(19)

re-Figure 1.1 – Notions de convexité

(a) Espace convexe

a b (b) Espace non-convexe c d (c) Enveloppe convexe

présentées par un système d’équations ou d’inéquations linéaires, il s’agit alors d’un

modèle de programmation linéaire. Ce modèle sous forme standard s’exprime à l’aide

d’un objectif (1.7) ainsi que d’un ensemble de m contraintes (1.8). min n X j=1 cjxj (1.7) s.c.                      n P j=1 a1jxj = b1 n P j=1 a2jxj = b2 .. . = ... n P j=1 amjxj = bm (x, b ≥ 0) (1.8) Il s’agit alors d’un problème où les différents xj sont les variables, avec j ∈ {1, . . . , n},

les cj sont les coefficients associés aux variables de l’objectif, et les ai,j sont les

coeffi-cients associés chacun à la j-ième variable xj de la i-ième contrainte, avec i élément de

l’ensemble {1, . . . , m}.

Ce problème peut aussi s’écrire en notation matricielle : min cT

x (1.9)

s.c. Ax = b, (x, b ≥ 0) (1.10) Où c ∈ Rn est le vecteur des coefficients de la fonction objectif, A ∈ Rm×n est une

matrice de plein rang, x ∈ Rn est le vecteur des variables et b ∈ Rm est le vecteur des

constantes. Ainsi m correspond au nombre de contraintes du modèle et n au nombre de variables (m ≤ n).

(20)

Forme des contraintes

Une fois mises sous forme standard (1.8), les contraintes sont représentées à l’aide d’un symbole d’égalité. Toutefois, les contraintes originales du problème existent par-fois plutôt sous forme d’inégalités. Une transformation est alors nécessaire afin de les exprimer sous forme standard (1.8). Cette transformation passe par l’ajout de variables

logiques (telles que ρi et ηi dans les équations (1.11) et (1.12)).

Les équivalences suivantes permettent donc d’effectuer les transformations néces-saires à l’obtention de la forme standard.

X j aijxj ≤ bi ⇔ X j aijxj+ ρi = bi (ρi ≥ 0) (1.11) X j aijxj ≥ bi ⇔ X j aijxj− ηi = bi (ηi ≥ 0) (1.12)

Plus spécifiquement, la variable logique ρi est une variable d’écart et la variable

logique ηi est une variable de surplus. Bien que les variables logiques se distinguent des

variables structurelles du problème original, elles seront tout de même toutes incluses dans le compte des n variables du problème standard.

Polyèdres et polytopes

Un polyèdre est l’ensemble solution d’un nombre fini d’égalités et inégalités linéaires. Un polyèdre représente donc l’intersection d’un nombre fini de demi-espaces et d’hy-perplans [8]. Un polytope est un polyèdre borné [8, 18].

1.3

Algorithme du simplexe

L’algorithme du simplexe est au cœur de la plupart des systèmes d’optimisation qui traitent des problèmes linéaires. L’algorithme a été développé en 1947 par Dantzig en soutien opérationnel pour les forces armées américaines [16, 17].

Il s’agit d’un algorithme qui vise à résoudre les problèmes de programmation li-néaires, mono-objectifs, dont l’espace solution peut être représenté sous forme d’un polytope convexe. L’algorithme parcourt l’espace solution, en passant de sommet en sommet alors qu’il longe les arêtes du polytope. Une évaluation est effectuée à chaque sommet rencontré, afin d’identifier la meilleure direction à prendre parmi les différentes

(21)

arêtes atteignant ce sommet [18]. C’est ici que débute l’étape du pivot. Et, normalement, la direction choisie est celle qui mène à la plus forte amélioration de la fonction objectif. Dans un espace convexe muni d’une structure linéaire, l’algorithme du simplexe peut être utilisé et s’exécute généralement en temps polynomial [62].

Variables de bases et hors base

Lors du passage d’un sommet à l’autre, les opérations de pivotage mènent à effectuer des changements de base. À chaque étape, le problème comporte certaines variables qui font partie ou non de la base.

Formellement, l’ensemble des variables x peut être partitionné en deux sous en-sembles tels que x = xB∪ xN et où xB correspond à l’ensemble des variables de base et

xN correspond à l’ensemble des variables hors base.

De même, les colonnes de A peuvent être aussi regroupés en deux sous-ensembles tels que A = B ∪ N où B, correspond à l’ensemble des colonnes de la base et où N correspond à l’ensemble des colonnes hors base.

En démarrant avec l’ensemble des contraintes (1.10), ce découpageI des variables

en deux sous-ensembles permet de montrer que xB = B−1b.

Ax = b (1.10) BxB+ N xN = b (1.13)

B−1BxB+ B−1N xN = B−1b (1.14)

IxB= B−1b (1.15)

xB= B−1b (1.16)

Où l’équation (1.15) est obtenue sachant que xN = 0.

Ainsi, la valeur de l’objectif (1.9) est : z = cT x (1.17) ⇔ z = cT BB −1 b (1.18)

I. Ce découpage et l’explication qui s’en suit sont tirés principalement de Steuer [63], ainsi que de Papadimitriou [54].

(22)

Soit yj la j-ième colonne de la matrice A diagonalisée Y = [B−1N : I] et soit zj

tel que zj = cByj. Alors le vecteur de coûts réduits (parfois aussi appelé coûts relatifs)

associé à l’introduction dans la base d’une nouvelle variable (hors base) est : cj − zj = cTN − c T BB −1 N (1.19) = cj− m X i=1 ai,jcB(i) (1.20)

Un critère d’optimalité est alors atteint lorsque cj− zj ≥ 0 pour toute colonne j de

A, puisqu’il n’est plus possible de réduire les coûts.

Le tableau du simplexe

L’état du simplexe, à une itération donnée, est généralement représenté sous forme de tableau (1.21). Et la base choisie est exprimée en m variables.

x1 x2 · · · xn b1 a1,1 a1,2 · · · a1,n b2 a2,1 a2,2 · · · a2,n xB ... ... ... . .. ... bm am,1 am,2 · · · am,n z c1− z1 c2− z2 · · · cn− zn (1.21)

1.3.1

Les opérations de pivotage

Le pivotage représente l’opération de changement de base qui est utilisée pour passer d’un sommet à un autre du polytope. La variable sortante u ∈ B correspond à une ligne k du tableau (1.21), tandis que la variable entrante v ∈ N correspond à une colonne l de ce tableau. L’élément ak,lreprésente alors le pivot autour duquel l’opération

s’effectue.

Le choix de la variable entrante v exige d’identifier un j ∈ N tel que cj − zj < 0. En

généralII, il est convenu de choisir j tel que la réduction des coûts est la plus importante.

C’est-à-dire qu’il suffit de choisir la colonne pour laquelle la valeur cj− zj est la plus

petite valeur négative.

II. Sauf, lors de l’application de règles d’anticyclage, ce qui ne sera pas pris en considération dans le cadre de ce mémoire.

(23)

Le choix de la variable sortante u est effectué après avoir identifié la variable en-trante. Sachant que la colonne l devra entrer dans la base, un calcul est effectué afin d’identifier la ligne i qui permet d’atteindre le minimum θ tel qu’indiqué à l’équa-tion (1.22) θ = min i:ai,l6=0 bi ai,l ∀ i ∈ {1, . . . , m} (1.22) Pour toutes les lignes du tableau (1.21), sauf la ligne k, ainsi qu’à l’exclusion du calcul de la valeur z, les opérations de changement de base telles que définies en (1.23) transforment les éléments ei,j en e0i,j.

e0i,j = ei,j−

ek,j· ei,l

ak,l

∀ i 6= k (1.23) Quant à la ligne k, sur laquelle s’effectue le pivot, il suffit de la diviser par la valeur de l’élément du pivot ak,l. Il est donc nécessaire que cet élément soit non nul. Quant à

la valeur z, il suffit d’effectuer de nouveau le calcul (1.18) après avoir mis à jour le reste du tableau.

1.3.2

Obtention d’une solution admissible initiale

Afin de pouvoir procéder aux opérations de pivotage, l’algorithme du simplexe

pri-mal nécessite l’obtention préalable d’une solution initiale admissible. Une façon de

fournir cette solution initiale consiste à utiliser la méthode dite des deux phases. En phase I, une recherche est effectuée afin d’identifier cette solution initiale. Puis, la phase II consiste à exécuter l’algorithme du simplexe primal. Les variables logiques permettent d’établir une base initiale qui sert au démarrage des opérations de pivotage de la phase I. Étant uniques à chaque contrainte, les variables logiques peuvent être utilisées sans contrevenir à d’autres contraintes du problème. Ce qui fait d’elles des variables d’intérêt pour l’identification d’une base initiale au problème.

Dans le cas des inégalités de la forme P aixi ≤ bi, transformée enP aixi+ ρi = bi,

il est possible d’inclure directement la variable d’écart ρi dans la base. Dans le cas des

inégalités de la forme P aixi ≥ bi, transformée en P aixi− ηi = bi, puisque bi ≥ 0 et

que ηi ≥ 0, il n’est pas possible d’inclure directement la variable de surplus, ηi car de

(24)

la contrainte en introduisant une nouvelle variable logique νi dite artificielle. X j aixj ≥ k ⇔ X j aixj − ηi+ νi = k (νi ≥ 0) (1.24)

La base initiale peut alors être constituée strictement de chacune des variables ρi et

νi, puisque cette base permet de respecter toutes les égalités. Lors de l’exécution de la

phase I, les opérations successives de pivotages servent à sortir les variables artificielles de la base en minimisant leur valeur jusqu’à ce qu’elles deviennent nulles. Si elle existe, une base qui exclut ces variables pourra être fournie pour le démarrage de la phase II.

1.3.3

Utilisation du simplexe pour un problème non-convexe

L’algorithme du simplexe peut identifier un optimum sur un ensemble convexe. Or, il reste possible d’utiliser le simplexe si l’enveloppe convexe du problème est connue [18]. Cela permet de considérer son utilisation sur des problèmes dont l’espace solution est non-convexe. En effet, les points intérieurs n’étant pas pris en compte lors de la résolu-tion du problème, ceux-ci peuvent être exclus de la descriprésolu-tion du problème [18].

Alors l’enveloppe convexe B d’un ensemble non-convexe A est telle qu’elle corres-pond, par définition (section 1.1.3), au plus petit ensemble convexe qui puisse contenir A. De plus, l’ensemble des sommets de B sont aussi des maximums globaux de A. Et, lorsqu’il est muni d’une fonction objectif linéaire, l’algorithme du simplexe retourne toujours comme solution un des sommets de l’ensemble convexe qui lui est soumis. Alors le parcours des arrêtes de B mènera nécessairement à un maximum global de A tel que recherché.

1.4

Principe de dualité

Soit un problème d’optimisation linéaire nommé problème primal. Alors le dual est un problème associé au problème primal. Le dual permet d’obtenir une borne quant à la valeur de l’objectif du primal.

Le tableau 1.1 permet de comparer le problème primal avec le problème dual. Ces deux problèmes partagent les vecteurs b et c ainsi que la matrice A. En fait, le dual peut être obtenu en effectuant les transformations suivantes à partir du primal sous forme standard. D’abord la direction de l’objectif s’inverse. Ainsi, une minimisation

(25)

Tableau 1.1 – Le problème primal et son dual Primal Dual min cT x max bT y s.c. Ax ≥ b s.c. AT y ≤ c (x ≥ 0) (y ≥ 0)

dans le primal devient une maximisation dans le dual, et vice-versa. Le vecteur des constantes b du primal s’inscrit en transposé dans l’objectif du dual, et vice-versa. Puis la matrice A du primal est transposée dans le dual, et vice-versa. Finalement, les contraintes d’inégalités (≥) du primal deviennent une inégalité de la forme (≤) dans le dual, et vice-versa. En fait, l’application de ces transformations sur le dual mène à l’obtention du primal. C’est-à-dire que le dual du dual est le primal.

Dantzig [16] souligne que les variables du primal sont en relation directes avec les contraintes du dual et que les variables du dual sont en relation directes avec les contraintes du primal. Et il est ainsi possible d’exprimer le primal et son dual quelque soit le sens des inégalités du primal. Dans le cas où une inégalité (≥) est présente dans le primal, alors la variable correspondante du dual sera non-négative. Et si la relation est plutôt une égalité (=), alors la variable correspondante du dual sera de signe libre (≶). Le tableau 1.2 résume ces liens entre le primal et le dual.

Tableau 1.2 – Les transformations des contraintes et des variables entre le primal et le dual

Primal Dual

Sens de la relation Signe de la variable

≥ ⇔ yi ≥ 0 (1.25)

= ⇔ yi ≶ 0 (1.26)

Signe de la variable Sens de la relation

xj ≥ 0 ⇔ ≤ (1.27)

(26)

C’est-à-dire que le dual du problème primal standard (sous forme matricielle) est tel qu’indiqué dans le tableau 1.3

Tableau 1.3 – Le problème primal standard et son dual Primal Dual min cT x max bT y s.c. Ax = b s.c. AT y ≤ c (x ≥ 0) (y ≶ 0) Théorème de dualité

Si une solution réalisable z existe pour le primal et qu’une solution réalisable v existe pour le dual ; alors cT

z ≥ bT

v, et il existe nécessairement [16] une solution optimale pour les deux systèmes telle que min cTx = max bTy.

Ainsi, du moment qu’une solution réalisable du problème dual est connue, et s’il existe une solution réalisable au problème primal, alors la valeur de la solution connue du dual vient borner la valeur du problème primal. Puis, si la valeur optimale d’un des deux problèmes est connue alors celle-ci sera la même pour l’autre problème.

1.5

Algorithme du simplexe dual

Les problèmes primal et dual sont intimement liés ; si bien qu’il est possible de lire le problème dual dans le tableau du problème primal standard [54]. Il n’est donc pas nécessaire de passer par la transformation explicite du primal vers le dual pour résoudre ce nouveau problème. Un autre avantage de cette méthode est qu’elle ne nécessite pas l’utilisation de variables artificielles (section 1.3.2), la solution initiale primale n’ayant pas besoin d’être réalisable [54].

Toutefois, la méthode pour choisir le pivot doit être adaptée. Celle-ci doit débuter par le choix de la ligne. Et la ligne i dont la constante est possède la plus petite valeur négative. Puis, le choix de la colonne du pivot exige d’identifier la colonne j parmi les

(27)

colonnes hors-base N , et connaissant la ligne i, qui donne le ratio minimum (1.29). cj

−ai,j

(1.29) Une fois que l’élément pivot est identifié, les opérations de pivotage s’effectuent de la même façon que lors de l’exécution du primal. L’algorithme dual s’arrête lorsqu’aucune valeur négative n’existe parmi les constantes. La solution est alors optimale [63].

1.6

Départ à chaud avec modification des constantes

À travers le temps, à cause de l’évolution du contexte, il se peut qu’un modèle doive être mis à jour. Les contraintes originales ne s’appliquent peut-être plus de la même façon. Par exemple, le modèle devrait peut-être substituer la contrainte (1.30) par la contrainte (1.31). Mais en fait, à l’exclusion des constantes qui diffèrent, il s’agit des mêmes contraintes ; seule une modification des constantes est survenue.

n X i=1 aixi = b1 (1.30) n X i=1 aixi = b2 (1.31)

Ainsi, après une première résolution du problème, une modification des constantes du modèle peut survenir ; ce qui crée un nouveau problème à résoudre. Toutefois, le chan-gement d’une constante semble un bien petit chanchan-gement. Il est probable que le sommet du polytope qui comporte la solution cherchée soit près de la solution actuelle [63]. S’il était possible de redémarrer l’exécution à partir de la plus récente position, de modifier le tableau pour prendre en compte les changements de constantes et de ne faire que quelques pivots jusqu’au sommet visé, il est fort à parier que le nombre de pivots à exécuter sera moindre. Toutefois, la modification d’une constante mène à une certaine déformation du polytope. La plus récente solution peut ne plus être admissible. Et bien que la méthode des deux phases puisse vivre dans un état où la solution actuelle est sous-optimale, elle ne peut pas vivre avec une solution sur-optimale, où des contraintes sont violées. Advenant le cas, l’algorithme dual (section 1.5) pourra être utilisé pour effectuer ce départ à chaud.

(28)

Pour ce faire, il faudra d’abord suivre la série d’opérations élémentaires effectuée pour passer d’une base à l’autre à l’étape du pivotage. Ce qui est possible de faire en utilisant l’inverse de la base B, où B représente les colonnes de la base utilisée (section 1.3). Il suffit alors d’entretenir un second tableau m × m, où m est le nombre de contraintes. Ce tableau sera ici appelé matrice des opérations élémentaires et il est initialisé sous forme d’une matrice identité Im. Ensuite, chaque opération élémentaire

effectuée sur le tableau principal doit lui être transmise. Ceci servira à obtenir, après chaque opération de changement de base, la matrice inverse B−1 par la méthode de Gauss-Jordan [63].

C’est-à-dire qu’à l’exécution d’une opération de pivotage autour de l’élément ak,l,

une première série d’opérations doit être effectuée sur la ligne k afin de diviser celle-ci par la valeur de l’élément ak,l (conformément aux indications de la section 1.3.1). Puis,

sur la matrice des opérations élémentaires, il suffit de diviser aussi la k-ième ligne par la valeur originale (avant l’opération de division) de l’élément ak,l.

Et, pour toute ligne i 6= k, et pour chaque élément j de ces lignes, le calcul (1.23) est effectué sur le tableau principal (section 1.3.1).

e0i,j = ei,j−

ek,j· ei,l

ak,l

(1.23) Ces opérations élémentaires sont notées de façon similaire en effectuant les opéra-tions (1.32) sur la matrice des opéraopéra-tions élémentaires, où les valeurs ei,l et ak,l sont les

mêmes que celles utilisées dans les calculs effectués sur le tableau principal, tandis que les valeurs ˜ei,j et ˜ek,j sont tirées de la matrice des opérations élémentaires.

˜ e0i,j = ˜ei,j− ˜ ek,j· ei,l ak,l (1.32) Si de façon systématique la division de la ligne pivot k est effectuée préalablement aux autres opérations, ces opérations peuvent être simplifiées légèrement. L’élément ak,l

devient alors 1, et il n’est plus nécessaire d’effectuer la division par ak,l dans les

opéra-tions subséquentes (1.23) et (1.32). Les opéraopéra-tions (1.33) comme (1.34) peuvent alors être effectuées directement. Cette simplification réduit légèrement les risques de pro-blèmes d’instabilité numérique en réduisant le nombre d’opérations élémentaires.

(29)

˜

e0i,j = ˜ei,j− ˜ek,j· ei,l (1.34)

Le tableau des opérations élémentaires obtenu est alors la matrice B−1. Et, par l’équation (1.16), la connaissance de B−1 permet de calculer immédiatement (1.35) une nouvelle valeur ˜x lorsque survient un nouveau vecteur de constante ˜b.

˜

x = B−1˜b (1.35) Les contraintes du problème à résoudre deviennent alors (1.36).

A˜x = ˜b (1.36) Si les valeurs obtenues sont telles que ˜x ≥ 0, alors cette nouvelle solution est opti-male [63]. Et si ˜x < 0, alors cette solution est sur-optimale et viole des contraintes. Il faut alors exécuter l’algorithme dual [63].

1.7

Parallélisation du simplexe

L’algorithme du simplexe primal-dual, tel que décrit en section 1.5 peut facilement être parallélisé. Après avoir divisé la ligne i du pivot par le pivot ai,j, le reste des

opérations de pivotages peuvent être envoyées sur différents processeurs. Ainsi, avec p processeurs, pour une matrice de m lignes, il suffit de répartir les opérations (1.33) et (1.34) appliquées aux m − 1 lignes restantes sur les p processeurs.

Les gains de cette méthode se reproduisent bien à grande échelle pour les implémen-tations du simplexe qui utilisent des tableaux denses. Or, en pratique, les problèmes à résoudre ont généralement des données dispersées (avec des tableaux comportant un grand nombre de zéros) et certaines implémentations alternatives profitent bien de cette dispersion. Bien qu’il soit difficile de paralléliser ces implémentations alternatives, en pratique celles-ci demeurent souvent plus performantes [30, 31].

1.8

Instabilité numérique

Les ordinateurs ne peuvent pas représenter l’ensemble des nombres réels et ceux-ci doivent être arrondis ou tronqués. Leur représentation passe donc plutôt par un système

(30)

dit à virgule flottante [23, 55]. Un nombre x est encodé selon la fonction (1.37). Avec la mantisse m qui est un nombre décimal de la forme m = 0, d1d2· · · dtavec 0 ≤ di < β et

d1 6= 0. Puis, où l’exposant e est borné par deux entiers [L, U ]. En pratique, la base β

est de valeur 2.

f l(x) = ±m × βe (1.37) Or, une opération arithmétique fondamentale telle que x1+ x2, effectuée en virgule

flottante, devient plutôt f l(f l(x1) + f l(x2)). À cause des erreurs d’arrondis ou de

tron-catures, effectuées dans les opérations à virgule flottante, la valeur calculée peut différer de la valeur exacte. Et ce, même lorsque l’opération demandée n’exige pas de procéder à une approximation de valeurs continues [68]. C’est alors un problème d’instabilité

numérique.

Une attention particulière doit être portée à ce phénomène lors de l’utilisation de l’algorithme du simplexe, car c’est en algèbre linéaire que les effets des erreurs d’arrondis sont les plus importants [35]. Et, tant qu’aucune restriction n’existe sur la valeur de l’élément pivot utilisé lors des opérations de pivotage du simplexe, l’erreur créée par les opérations à virgule flottante ne peut pas être bornée [6].

Tolérances

Afin de réduire les problèmes associés à l’instabilité numérique à l’exécution du simplexe, Koberstein [43] propose l’utilisation de diverses tolérances. Par exemple, pour une valeur v, il est possible de poser à zéro toute valeur telle que |v| < 10−14, de ne pas considérer les éléments telles que |v| < 10−12 et de ne pas effectuer de pivots sur des valeurs telles que |v| < 10−5 ou telles que |v| < 10−7. Ces valeurs sont données à titre indicatif et pour une famille de problèmes particuliers, d’autres valeurs pourraient être plus appropriées.

Transformation des égalités

L’introduction de contraintes d’inégalités dans le système à résoudre s’effectue par l’ajout de variables logiques (section 1.2) afin d’obtenir des contraintes d’égalités. Or, l’introduction directe de contraintes d’égalités, bien que mathématiquement fondée, peut en pratique rendre le système insoluble. En effet, lors de l’exécution des

(31)

expéri-mentations effectuées en [26], il fût en pratique plus facile de convertir les contraintes de la forme

n

P

i=j

xi = k en deux inégalités. Cette somme est équivalente au système (1.38)

et, avec une faible valeur  > 0, est presque équivalente à (1.39).

n X i=j xi ≤ k ^ n X i=j xi ≥ k (1.38) n X i=j xi ≤ k +  ^ n X i=j xi ≥ k −  (1.39)

Ce sont alors les deux inégalités (1.39) qui seront intégrées au système après être elles-mêmes reconverties en deux contraintes d’égalités, avec variables d’écarts, comme toutes autres inégalités. Cette façon de procéder crée une certaine marge de manœuvre pour que les solutions avec de petites erreurs, dues à de l’instabilité numérique, demeurent admissibles.

1.9

Optimalité en résolution de problèmes

multi-objectifs

En contexte multi-objectif, la solution dite idéale est une solution qui permet d’at-teindre la valeur optimale pour chacun des objectifs [41, 53, 70, 71]. Or celle-ci est gé-néralement irréalisable. Il est alors nécessaire de faire certains compromis par rapport aux différents objectifs. Et ce qui permet de définir le meilleur compromis dépendra de la structure de préférences du décideur. En fait, chaque objectif à atteindre lui apporte une utilité qui peut être différente.

1.9.1

Axiomes de l’utilité

Les relations entre fonctions d’utilité sont couramment définies par les quatre axiomes de Neumann et Morgenstein [67]. Ces axiomes s’expriment à l’aide du symbole  qui indique une relation de préférence, ainsi u  v indique que u est préféré à v.

(32)

Complétude

Pour toute paire d’utilités u, v , une et une seule de ces trois relations tient :

u  v , u ≺ v , u = v (1.40)

Transitivité

Soient u, v et w des utilités.

u  v , v  w =⇒ u  w (1.41)

Combinaison (continuité)

Soient u, v et w des utilités.

u  w  v =⇒ ∃ α | αu + (1 − α)v  w (1.42)

Ordre

L’ordre des combinaisons ne doit pas modifier les relations d’utilités.

αu + (1 − α)v = (1 − α)v + αu (1.43)

1.9.2

L’équilibre de Pareto

Efficacité au sens de Pareto

Face à différentes fonctions d’utilité (par exemple des fonctions objectifs dans le cadre d’un problème d’optimisation multi-objectif), lorsque la valeur d’une de ces fonc-tions peut être accrue sans diminuer la valeur des autres, alors l’état initial représente une affectation inefficace au sens de Pareto. Et au contraire, s’il n’existe aucune fa-çon d’accroître la valeur de ces fonctions sans diminuer la valeur d’une autre, alors la situation est efficace au sens de Pareto.[66]

Le front de Pareto

Le front de Pareto représente l’ensemble des points efficaces au sens de Pareto. C’est-à-dire l’ensemble des points optimums au sens de Pareto.

(33)

1.10

Programmation mathématique lexicographique

avec cibles

Les principes de la programmation mathématique avec ciblesIII ont été proposés par Charnes et al. [12, 11] en 1955 et 1961. À travers ce type de méthodes, l’objectif n’est pas directement de minimiser ou de maximiser une fonction, mais plutôt d’atteindre une valeur cible. Jones et al. [41] identifient trois types de cibles, soient : atteindre au moins une certaine valeur, ne pas dépasser une certaine valeur ou bien être le plus près possible d’une certaine valeur.

Dans le cadre de ce mémoire, seul le troisième type est utilisé. Cette méthode se traduit alors par l’utilisation d’un objectif qui cherche à minimiser la distance avec la valeur cible. Pour ce faire, il suffira de minimiser des variables de déviation. Ainsi une

contrainte cible pour laquelle il est souhaité que x = k devient plutôt x + η − ρ = k, où

η et ρ sont les variables de déviations à minimiser. Plus généralement, l’équation (1.44) montre la contrainte associée à l’atteinte de la valeur cible pour une somme de variable. Cette équation étant une égalité, en pratique il sera préférable d’utiliser deux inégalités conformément à la section 1.8.

n

X

i=1

λixi + η − ρ = k (1.44)

La forme de programmation mathématique avec cibles la plus utilisée (recensement de 1995) est la variante lexicographique [64], aussi appelée préemptive [40, 41, 42, 49]. Où, face à un ensemble de contraintes cibles, un ensemble d’objectifs minimisant les variables de déviation est utilisé. En pratique, certaines de ces cibles peuvent être sur un même niveau avec certaines pondérations, alors que pour d’autres un ordre de priorité peut être utilisé. Et l’objectif général est alors de la forme (1.45).

Lex min " X i λ1,iηi+ λ2,iρi, . . . , X j λ1,jηj+ λ2,jρj  # (1.45) Ainsi, l’atteinte du premier objectif est préférée à l’atteinte du second, l’atteinte du second est préférée à l’atteinte du troisième et ainsi de suite... L’atteinte des cibles

III. L’expression programmation mathématique avec cibles est une traduction libre de goal program-ming. En français, l’expression programmation mathématique avec buts a aussi été utilisée, notamment par [33].

(34)

d’un niveau de priorité supérieur ne doit jamais être altérée par l’atteinte d’un objectif inférieur. C’est-à-dire qu’un objectif de type Lex min exige de respecter, dans l’ordre des vecteurs qui le compose, la règle des préférences vectorielles lexicographique.

1.10.1

Règle des préférences vectorielles lexicographiques

Un vecteur ~a ∈ Rm est strictement préféré (1.46), et faiblement préféré (1.47), à un

autre vecteur ~b ∈ Rm si [40] :

~a  ~b ⇐⇒ ai  bi i = min{1, ..., m | ak6= bk} (1.46)

~a  ~b ⇐⇒ ~a  ~b _ ~a = ~b (1.47) C’est-à-dire que la relation de préférence stricte (1.46) tient si, et seulement si, pour le premier élément des vecteurs ~a et ~b tel que ak 6= bk, ces éléments sont tels que ak bk.

Et la relation de préférence faible (1.47) tient si, et seulement si, la relation de préférence stricte tient, ou si les deux vecteurs a et b sont égaux.

1.11

Algorithmes multi-objectifs

Cette sous-section présente différents algorithmes, l’un d’eux est dit séquentiel puis un autre est dit lexicographique. Techniquement, l’algorithme séquentiel est aussi lexi-cographique puisque ce dernier permet de résoudre les problèmes multi-objectifs pour lesquels une relation d’ordre stricte existe entre les différents objectifs. Toutefois, pour respecter l’appellation utilisée par Isermann en 1982 quant à l’algorithme

lexicogra-phique [40], et pour distinguer les deux algorithmes au sein de ce texte, l’appellation algorithme séquentiel sera réservée à l’utilisation de la méthode décrite dans la

sec-tion 1.11.1. Tandis que l’appellasec-tion algorithme lexicographique sera réservée à l’utilisa-tion de la méthode décrite dans la secl’utilisa-tion 1.11.2.

1.11.1

Algorithme séquentiel

Un problème multi-objectif, pour lequel les différents objectifs possèdent une relation d’ordre, peut être résolu en suivant une approche séquentielle [29, 37, 39]. Si le problème à résoudre comporte n objectifs, alors il sera nécessaire de résoudre séquentiellement n problèmes mono-objectifs.

(35)

Une première résolution est effectuée sur le problème d’optimisation original. La valeur optimale de l’objectif prioritaire est notée, puis il suffit d’ajouter à ce problème une nouvelle contrainte : maintenir la valeur optimale obtenue à l’égard de cet objectif. Ce qui en fait un nouveau problème à résoudre. Toutefois, pour la résolution de ce nouveau problème, l’objectif suivant est considéré et une optimisation mono-objectif est effectuée en tenant compte de cette nouvelle contrainte. Cette méthode est appliquée de façon séquentielle sur l’ensemble des objectifs, et chacune de ces résolutions est effectuée sous contrainte de ne pas réduire une valeur précédemment obtenue par rapport à un objectif supérieur. Un ordre de priorité stricte est donc respecté entre les différents objectifs. Et cette méthode se poursuit jusqu’à ce que la valeur optimale du n-ième objectif soit atteinte.

Un avantage de cette approche est qu’il est possible de la mettre en application avec la plupart des solveurs commerciaux, et qu’elle peut même être utilisée sur des problèmes non-linéaires. Toutefois, le besoin de résoudre successivement n problèmes limite la possibilité d’obtenir des résultats en temps réel [26].

1.11.2

Algorithme du simplexe lexicographique

L’algorithme du simplexe lexicographique, qui rappelle aussi l’algorithme du simplexe

multiphase [37], a été proposé en 1982 par Isermann [40]. Il s’agit d’un algorithme destiné

à la résolution de problèmes mutli-objectifs pour lesquels une relation d’ordre strict existe entre les différents objectifs. Plutôt que d’exécuter n résolutions de l’algorithme du simplexe tel que discuté dans la section 1.11.1, il est possible d’exécuter une version modifiée du simplexe. Le but étant de tenir compte de l’ensemble des objectifs en une seule exécution.

L’algorithme du simplexe lexicographique se distingue de l’algorithme du simplexe original par la modification de la règle du pivot (section 1.3.1). Plutôt que d’identifier une unique direction qui offrirait la plus forte amélioration de l’objectif premier, une liste de chacune des directions qui augmentent d’autant cet objectif est constituée. Parmi les éléments de cette liste, n’est conservé que le sous-ensemble des directions qui offrent toutes la plus forte amélioration du second objectif. Le choix final de la direction à prendre n’est effectué qu’après avoir considéré, par éliminations successives, chacun des objectifs. Ou encore, dès lorsqu’il y a unicité du choix.

(36)

L’algorithme du simplexe lexicographique peut être utilisé en conjonction avec la mé-thode décrite en section 1.6 pour les départs à chaud avec modification des constantes. Si les valeurs obtenues sont telles que ˜x ≥ 0, alors cette nouvelle solution est optimale à l’égard du premier objectif. Une exécution de l’algorithme lexicographique primal, à partir de cet état, permet alors d’effectuer les derniers pivots nécessaires pour respecter l’ensemble des autres objectifs. Et si ˜x < 0, alors cette solution est sur-optimale et viole des contraintes. Il faut alors exécuter l’algorithme dual [63]. Puis une fois que la solution optimale est obtenue à l’égard du premier objectif, l’algorithme du simplexe lexicographique primal doit encore être exécuté, à partir de ce tableau, pour effectuer les derniers pivots en respect de l’ordre lexicographique des autres objectifs.

La parallélisation telle que présentée en section 1.7 peut aussi s’appliquer ici. Et il est aussi possible de répartir de façon similaire les opérations à effectuer sur l’ensemble des objectifs.

L’article [26] compare les performances de l’algorithme du simplexe séquentiel et de l’algorithme du simplexe lexicographique. La supériorité de l’algorithme lexicogra-phique y a été démontrée tant sur le plan des performances que sur le plan de la stabilité numérique. Sur un problème aléatoire de 200 contraintes, 199 variables et 50 préférences, l’algorithme lexicographique demande un temps de résolution d’environ 150 millisecondes, tandis qu’il en nécessite environ 13 000 pour l’algorithme séquentiel. De plus, l’augmentation du temps en fonction du nombre d’objectifs montre une struc-ture linéaire pour l’algorithme lexicographique tandis que cette augmentation s’effectue plutôt de façon exponentielle pour l’algorithme séquentiel.

1.11.3

Atteinte d’une solution admissible en situation

non-convexe

Bien que l’algorithme du simplexe puisse être utilisé dans le cadre de problèmes non-convexes, son utilisation dans le contexte de la programmation mathématique multi-objectif avec cibles est plus à risque. En effet, il devient alors possible d’obtenir une solution qui soit une combinaison convexe de deux autres solutions. Ce qui pourrait alors tomber en dehors de l’espace des solutions admissibles.

Pour éviter de se retrouver dans cette situation, si les caractéristiques du problème le permettent, il suffit d’exhiber une règle sous forme d’objectif qui soit systématiquement

(37)

intégré suffisamment haut dans la hiérarchie afin de pousser le solveur vers l’espace des solutions admissibles.

Par exemple, l’ensemble des valeurs solutions du problème (1.48) est un ensemble non-convexe. y =    x si x ≤ a c si x > a y ∈ [0, b] (1.48) Tandis que le modèle tel que (1.49) représente l’enveloppe convexe de (1.48).

s.c.            y ≤ x y ≤ c y ≥ c bx x, y ≥ 0 ) (1.49) Ainsi, toute combinaison convexe du problème (1.48) se retrouve nécessairement dans le modèle (1.49). La figure 1.2 montre en bleu l’espace solution du problème (1.48). Tandis que l’espace convexe, solution du modèle (1.49) est en rose.

Figure 1.2 – Modélisation d’un espace non-convexe par son enveloppe convexe c d e

x

y

a k b (k, y1) (k, y2) Contrainte Solution admissible Solution inadmissible Enveloppe convexe

En utilisant la programmation mathématique avec cible, il est possible de viser à ce que la variable x prenne la valeur k. Ce qui peut s’écrire min |x − k|. Bien que techni-quement, il suffit plutôt d’ajouter à l’ensemble des contraintes (1.49) l’équation (1.51), puis de chercher à atteindre l’objectif (1.50).

(38)

min η + ρ (1.50) x + η − ρ = k (1.51) Or, le solveur pourrait alors retourner le point (k, y1), une combinaison convexe des

points e et d, qui est une solution invalide du problème (1.48). Pour éviter ce pro-blème, il suffit de systématiquement viser, en second objectif, la maximisation de la variable y. Ainsi, plutôt que de chercher à atteindre l’objectif (1.50), l’objectif lexico-graphique (1.52) doit être utilisé. Ceci mènera plutôt le solveur à la solution (k, y2) qui

fait bien partie de l’ensemble des solutions admissibles du problème (1.48).

Lex min  η + ρ, −y  (1.52)

1.12

Processus interactif de réoptimisation

Les méthodes interactives de réoptimisation permettent d’impliquer davantage le décideur dans le processus décisionnel [33]. Ce faisant, les préférences du décideur sont progressivement élucidées [57, 60], plutôt que considérées a priori [64]. Les systèmes interactifs de réoptimisation peuvent servir pour résoudre des problèmes mono-objectifs de même que pour des problèmes multi-objectifs [51].

Certains auteurs définissent la réoptimisation interactive comme un processus ité-ratif en deux phases [33, 51, 63]. Lors de la première phase, l’utilisateur spécifie les changements à être effectués à la solution actuelle. Puis en seconde phase, une procé-dure de réoptimisation est appliquée afin d’effectuer les changements demandés et de réoptimiser le reste de la solution en conséquence. Des itérations, oscillant d’une phase à l’autre, sont ainsi effectuées. Bien que certains systèmes puissent posséder une règle qui mène à la complétion du processus par une intervention informatique, habituellement le processus a cours tant qu’une solution satisfaisante pour le décideur ne soit identifiée, ou encore jusqu’à ce qu’il se désintéresse de l’outil.

La figure 1.3 représente le processus de façon plus détaillée. L’étape 1 sert à créer la modélisation du problème. Puis, à l’étape 2, le solveur est utilisé afin d’effectuer une première optimisation. Ce qui produit une solution initiale (3). L’utilisateur analyse ensuite cette solution (4). Puis, il s’exprime par rapport à celle-ci en émettant des

(39)

préférences (5). À partir de cette préférence, la machine modifie le modèle et effectue de nouveau une optimisation (6) ; c’est en fait une réoptimisation. Ce qui génère une nouvelle solution et le processus se retrouve de nouveau à l’étape 3. Des cycles sont ainsi effectués de l’étape 3 à 6, normalement jusqu’à ce que le décideur obtienne une solution satisfaisante.

Figure 1.3 – Processus de réoptimisation

D’autres auteurs, comme Tamiz et al. [64], décrivent les processus de réoptimisa-tion en ne menréoptimisa-tionnant que les quatre étapes de la boucle (3 à 6). Mais puisque la modélisation initiale joue un rôle aussi fondamental dans l’offre des solutions, celle-ci déterminant l’espace solution, cette étape est icelle-ci considérée dans la description du processus.

Différents aspects caractérisant les processus interactifs de réoptimisation ont été soulevés dans la littérature. Certains auteurs amènent que la principale différence parmi les méthodes interactives repose sur les différentes méthodes utilisées pour obtenir les préférences du décideur [64]. Il y aurait ainsi des approches qui nécessitent une acquisi-tion explicite des taux de substituacquisi-tions entre les différents objectifsIV. Et d’autres qui demanderaient de comparer des solutions par paires afin d’obtenir de façon implicite les taux de substitution en vigueur à partir de ces préférences [57]. Puis, un autre groupe de méthodes utilise plutôt des points de référence. Celles-ci identifient des valeurs

dé-IV. Le taux de substitution entre deux objectif représente le ratio uv pour lequel l’utilisateur est indifférent entre une augmentation u de la valeur de l’objectif f et une diminution v de l’objectif g.

(40)

sirables, non pas pour les variables, mais bien pour les différents objectifs [33, 48, 57]. Cette approche exige, pour l’utilisateur, de déterminer des seuils de satisfaction (ou des intervalles) pour les différents objectifs.

D’autres auteurs regroupent plutôt les méthodes selon qu’elles comportent ou non un aspect d’apprentissage de la part du décideur [24]. En l’absence de cet aspect, le processus de recherche vise à découvrir une solution sous l’hypothèse que le décideur possède une structure de préférence fixe qui ne comporte aucune contradiction face aux différents axiomes d’utilités. Tandis que l’utilisation d’une procédure qui possède un aspect d’apprentissage équivaut à considérer que la structure de préférence du décideur puisse être mal définie ou mouvante, alors que le décideur en apprend sur la nature du problème et des solutions en cours de processus.

Hassaine [33] explique qu’il est aussi possible de différencier les méthodes interac-tives d’optimisation selon qu’elles réduisent l’espace solution à chaque itération ou non. Les premières garantissent une certaine convergence, mais ne permettent généralement pas de redirections vers des zones exclues à une itération précédente. Tandis que les secondes, ne restreignant pas l’espace solution, permettent au décideur d’explorer des zones complètement distinctes de l’espace solution. L’apprentissage du décideur s’en voit alors accru, mais il risque de ne pas y avoir de convergence strictement mathéma-tique. Pour les deux cas, il existe des méthodes pour lesquelles le parcours se limite au front de Pareto, ou bien qui s’étendent plus largement à l’espace solution. Dans le premier cas, des connaissances a priori concernant les préférences du décideur sont toutefois nécessaires.

1.13

Systèmes à initiative partagée

Parmi les systèmes interactifs les plus prometteurs [51] résident les systèmes à ini-tiative partagée. Il s’agit d’une approche qui utilise une stratégie d’interaction flexible où chaque agent (qu’il soit humain ou non) contribue à ce qu’il fait le mieux au mo-ment le plus approprié [34]. Ainsi, les agents peuvent négocier leur rôle et collaborer afin d’ajuster dynamiquement leurs contributions [2]. Et dans le contexte de systèmes interactifs d’optimisation, un système à initiative partagée signifie que l’utilisateur peut être impliqué à différents niveaux du processus d’optimisation et que sa contribution peut changer au cours du temps [51].

Figure

Figure 1.2 – Modélisation d’un espace non-convexe par son enveloppe convexe
Tableau 2.1 – Le problème multi-objectif après l’émission de n préférences
Figure 4.3 – États après les interventions (sans persistance des valeurs) (a) État après S = 0
Figure 4.4 – États après les interventions (avec persistance des valeurs) et avec l’objectif mixte : min
+7

Références

Documents relatifs

L fourniture du pétrole, de la benzine et du benzol aux grands consommateurs (industriels, etc.) ne peut s'effectuer que contre présentation d'une carte de légitimation délivrée

Or, en se référant à la formulation du revenu national par rapport à la demande ( , en économie fermée), cette hausse de la consommation se traduira par

Le Département fédéral de l'Economie publique a communiqué à la Chambre suisse de l'Horlogerie avoir reçu de la Légation de Suisse à Rome u n téléphone sui- vant lequel

taux d'intérêt dans la zone euro. 1 à

Refusant de faire peser le poids de cette nouvelle contrainte sur les Etampois tout en continuant à leur offrir les services et équipements attendus (9 M€ de dépenses prévues

Pour avoir un effet sur l’économie, la Fed devra ramener les taux d’intérêt réels (après l’inflation anticipée) plus près de leur moyenne de long terme (graphique 3)

f La valeur des ventes au détail a diminué de 3,4 % en décembre, soit un recul plus prononcé que le résultat provisoire de Statistique Canada.. L’essentiel de cette baisse

investisseurs sur les marchés obligataires semblent de plus en plus enclins à anticiper un retour de l’inflation, ce qui a engendré une hausse graduelle des taux sur les obligations