Vous êtes sur la page 1sur 28

Académie Internationale 2ème Année ; Cycle

Mohammed VI de l'Aviation Civile ingénierie informatique

TECHNIQUES D’OPTIMISATION
Problèmes non linéaires

Année universitaire 2022/2023


Le cadre général de voisinage
Le voisinage
Dans des problèmes complexes, il n’est pas possible de parcourir /tester l’ensemble des
solutions possibles pour trouver l’optimum

La stratégie de voisinage consiste à partir d’une solution de départ (quelconque), à la


modifier localement (au voisinage) et à évaluer la fonction objectif. La modification se
poursuit (itérations) jusqu’à ce qu’on ne peut plus améliorer le résultat.

Il s’agit d’un ensemble d’algorithmes visant à résoudre des problèmes d’optimisation difficile
pour lesquels on ne connaît pas de méthode classique plus efficace (ou très complexe) .
I- Les méthodes de descentes
La Descente de Gradient est un algorithme d’optimisation qui permet de trouver le
minimum de n’importe quelle fonction convexe en convergeant progressivement vers celui-
ci. (Il nécessite que la fonction soit dérivable)

L'algorithme est itératif et procède par améliorations successives. f(xk+1) ≤ f(xk)

Les algorithmes d'optimisation sont généralement écrits pour minimiser une fonction. Si l'on
désire maximiser une fonction, il suffira de minimiser son opposée.
I- Les méthodes de descentes
Risque : minima locaux

Fonction convexe vs non convexe


I- La méthode de descente
Elle fait partie des méthodes de machine Learning car au long du processus, la machine
apprend, jusqu’à ce qu’elle trouve le meilleur modèle optimisant l’objectif J(a,b).

Exemple d’application:

Trouver le minimum de la fonction : f(x, y) = x² + 3 y²

Initialisation: P0 = (2, 1)
I- La méthode de descente
Taux d’apprentissage
Il est nécessaire de bien choisir le PAS d’apprentissage (α)
Pas trop faible : Temps nécessaire pour la convergence
Pas trop élevé: Oscillations
Critère d’arrêt
- Fixer le nombre d’itérations K = 500 par exemple
- Fixer une borne à la différence (s’arrêter sil n’y a pas d’amélioration significative)

| f(xk+1) - f(xk) | ≤ ɛ

- Etc
Algorithme de descente de gradient – Etapes
- Définir la fonction objectif à optimiser
- Fixer le point initial x0
- Calculer le pas optimal
- Accepter la solution xk+1 = xk - α f’(xk)
Si
f(xk+1) ≤ f(xk)

Application sur Python: Voir par exemple :


https://www.oliviergibaru.org/courses/NO_Gradient.html
II - La Méthode du Recuit Simulé
Définition - Contexte
- C’est une méthode d’optimisation (Min, Max) avec ou sans contrainte
- C’est la première méthode Métaheuristique (Du grec heuriskein : trouver/découvrir
(heureka)) de voisinage proposée. Comme la méthode de gradient, elle commence par un
point de depart et s’en éloigne progressivement
- Son point fort est sa capacité d’échapper aux minimum locaux en acceptant des
solutions où la function objectif peut augmenter (s’il s’agit d’un min) ou diminier (s’il s’agit
d’un max)
Renoncer pour avancer

Accepter une solution même si f(xk+1) ≥ f(xk) pour un problème de minimisation (sous
certaines conditions)
Les métaheuristiques
Les métaheuristiques sont généralement des algorithmes itératifs, qui progressent vers
l’optimum global d'une fonction. Elles se comportent comme des algorithmes de recherche,
tentant d’apprendre les caractéristiques d’un problème tout au long du processus afin d’en
trouver une approximation de la meilleure solution.

Les Métaheuristiques se divisent en 2 catégories d’approches:

Les approches de trajectoire : Algorithmes qui évaluent la fonction objectif à chaque


itération en testant un point à la fois (recherche locale)

Les approches à population: Algorithmes qui évaluent plusieurs solutions simultanément


(Algorithmes génétiques, Les algorithmes de colonies de fourmis….)
Les métaheuristiques
ALGORITHME Récuit Simulé

Source:
Heuristics
optimization for
the resolution of
the m-PDPTW
static and
dynamic
Problème de voyageur de commerce
L’individu doit visiter une seule fois les différentes villes et revenir à son point de depart. On cherche
le chemin optimal minimisant la distance (le temps, le coût…..)

Lien Utiles Python

https://www.oliviergibaru.org/courses/NO_Metropolis.html

https://perso.liris.cnrs.fr/pierre-edouard.portier/teaching_2015_2016/ia/sima/sima.html
Travail pratique 2 A faire

- Implémenter l’une des deux méthodes sur Python en appelant ou en modifiant la


fonction existante
- Vérifier les résultats obtenus sur l’exemple du sac à dos ou celui du voyageur de
commerce

- Analyser un article scientifique utilisant l’une des deux méthodes. Quelle est la
contribution proposée dans cet article.
Méthode de Lagrange avec conditions KKT
Trouver l’optimum des problèmes suivants par la méthode de Lagrange
1)
Minimiser f(x, y) = 2y + x
Sous contrainte y² + xy -1 = 0

2)

Minimiser f(x, y) = x² + y² - 14x – 6y


Sous contraintes x + 2y – 3 ≤ 0
x+y–2≤0
III - Les algorithmes Génétiques
Les algorithmes Génétiques
Et si on s’inspirait de la nature pour faire évoluer les solutions ?
S’inspire du Néo-Darwinisme, synthèse de la théorie de la sélection naturelle de Darwin (et de
la théorie de l’hérédité de Mendel :
- Evolution : résultat d’une altération progressive des êtres vivants au cours des
générations
- Reproduction : basée sur le caractère génétique qui subit au cours des générations des
recombinaisons et des mutations
- Selection naturelle

AG = Procédé d’optimisation permettant de trouver le minimum/maximum d’une


fonction à partir d'un ensemble d'éléments choisis au hasard.
Domaines d’applications
•Bioinformatique
•Économie
•Sciences numériques
•Robotiques
•Industries
•Physique
•Chimie
•etc...
Les algorithmes Génétiques
Soit une population d’individus :
• 1 objet/entité = 1 individu
• 1 individu = Nbre de bits/chromosomes (les individus sont donc différents)

Il y a trois opérateurs d'évolution dans les algorithmes génétiques :


La sélection : Choix des individus les mieux adaptés.
Le croisement : Mélange par la reproduction des particularités des individus choisis.
La mutation : Altération aléatoire des particularités d'un individu.
Source: accromath.uqam.ca/2019/10/algorithmes-genetiques/
Exemple de voyageur de commerce
Tournée originale : (Montréal, Rimouski, Saguenay, Val d’Or, Québec, Sherbrooke)
Après mutation : (Montréal, Rimouski, Saguenay, Sherbrooke, Québec, Val d’Or)
Croisement:
2 positions choisis du premier parent
Les autres positions sont placées selon l’ordre induit par le deuxième parent.
Fonctionnement des algorithmes génétiques :
Création d'une population aléatoire.
C'est le point de départ de l’algorithme

Critère d’arret vérifié

Source: http://igm.univ-
mlv.fr/~dr/XPOSE2013/tleroux_gene
tic_algorithm/index.html
Exercice d’application
Maximiser la fonction f(x) = X² avec 0 ≤ x ≤ 40

Critère d’arret : X² > 600


Condition: Taille de population N = 4

Population de depart: 13 24 8 19

Vous aimerez peut-être aussi