0% ont trouvé ce document utile (0 vote)
50 vues30 pages

Introduction à l'optimisation combinatoire

Ce document traite de l'optimisation combinatoire. Il introduit les notions d'optimisation continue et combinatoire et aborde les méthodes exactes et approchées pour résoudre les problèmes d'optimisation combinatoire ainsi que des exemples classiques de problèmes.

Transféré par

Yassmina Alami
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
50 vues30 pages

Introduction à l'optimisation combinatoire

Ce document traite de l'optimisation combinatoire. Il introduit les notions d'optimisation continue et combinatoire et aborde les méthodes exactes et approchées pour résoudre les problèmes d'optimisation combinatoire ainsi que des exemples classiques de problèmes.

Transféré par

Yassmina Alami
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 30

Optimisation combinatoire

• Introduction : Optimisation continue/combinatoire


• Notion de complexité
• Méthodes exactes
• Méthodes approchées (métaheuristiques, heuristiques)
• Problèmes classes de l’optimisation combinatoire
• Logiciel d’optimisation Cplex

SCM1
ENSATé 2021-2022
Pr DKHISSI Btissam
16/03/2022 Optimisation combinatoire 1
Optimisation combinatoire

INTRODUCTION

16/03/2022 Optimisation combinatoire 2


L’optimisation

L’optimisation est une discipline mathématique qui, a pleinement pris son essor au cours
du XXe siècle d’une part sous la stimulation du développement des sciences de l’industrie
et de la planification, l’économie, la gestion, etc..., et des sciences appliquées aux
technologies naissantes, comme l’automatique, le traitement du signal, etc..., et d’autre
part grâce au développement de l’informatique qui a rendu efficiente ses méthodes
algorithmiques.

discipline fondamentale dans les sciences de l’ingénieur, de l’économie et de la gestion.

L’optimisation, intervient pour appliquer l’outil mathématique pour la formalisation


mathématique et la résolution.

16/03/2022 Optimisation combinatoire 3


L’optimisation

Si D est discret (D ⊂ Zn, fini ou d´enombrable), on parle d’optimisation combinatoire. Les


outils proviennent essentiellement des mathématiques discrètes (théorie des graphes).

Si D est continu, et f est continue, on parle d’optimisation continue. Les outils proviennent
essentiellement de l’analyse (calcul différentiel, convexité) et de l’algèbre linéaire.

Optimisation mixte: variables discrètes et variables continues.

16/03/2022 Optimisation combinatoire 4


Qu'est-ce-que l'optimisation combinatoire ?

• Jusqu'au 19e siècle, on s'intéressait aux Problèmes d'existence. On répondait à la


question : existe-t-il un objet ayant certaines propriétés ?

• Ensuite, on a résolu des Problèmes de dénombrement (Analyse combinatoire).


On répondait à la question : combien y a-t-il d'objets ayant certaines propriétés ?

• Enfin avec l'informatique, on traite des Problèmes combinatoires. On cherche à


déterminer un objet ayant certaines propriétés, en définissant un algorithme
calculant un coût.

16/03/2022 Optimisation combinatoire 5


Optimisation: Terminologie

• L’ensemble D de solutions réalisables: c’est l’espace de recherche (domaine


réalisable).

• A chaque solution est associé un réel, sa qualité, calculable par une


fonction qualité / objectif / coût / ”fitness”

• On cherche la solution de meilleure qualité, appelée optimum global.

• Optimisation Multi-citères / multi-objectifs : on veut optimiser plusieurs


fonctions objectif en même temps.

16/03/2022 Optimisation combinatoire 6


Optimisation: définitions

• Optimum globale :

x  tel que x  Ω, f(x  )  f(x)

• Optimum local :
x  tel que  x  Ω  , f(x  )  f(x)

16/03/2022 Optimisation combinatoire 7


Exemples de problèmes combinatoires
• Problème du plus court chemin
• Problème du voyageur de commerce
• Problème de tournées de véhicules
• Problème d'affectation généralisées
• Problème de sac à dos
• Problème de bin-packing
• Problème de partition : Etant donné n nombres a1, a2, ......,an, est-il possible de
partitionner ces n nombres en deux sous-ensembles de même poids ?
Exemple : Pour l'ensemble {8, 6, 15, 37, 42 ,4},
la réponse est oui car 8 + 6 + 42 = 15 + 37+ 4 = 56.
• Problème de recouvrement
• Problème d’ordonnancement
• …

16/03/2022 Optimisation combinatoire 8


Optimisation: Complexité

Complexité d’algorithme:

• Complexité d’un algorithme : relation entre le temps de calcul (complexité


en temps) ou la mémoire occupée (complexité en espace) et la taille des
données traitées.

• On exprime la relation par une fonction : temps = fct(taille).

Taux de croissance de cette fonction au pire cas.

Notations:
• n : taille des données (taille de l’instance)
• T(n) : nombre d’opérations élémentaires

16/03/2022 Optimisation combinatoire 9


Optimisation: Complexité
Complexité d’algorithme: Notation de Landau ( f (n))

( f (n)) Décrit le comportement asymptotique quand n → ∞

T (n) = ( f (n)) si c n 0 tels que n  n0 , T (n)  c  f (n)

On dit que T est dominée asymptotiquement par f


16/03/2022 Optimisation combinatoire 10
Optimisation: Complexité
Classes de complexité:

• O(1) : temps constant (pas d’augmentation du temps d’exécution quand n croit)

• O(log n) : logarithmique (augmentation très faible du temps d’exécution quand n


croit La dichotomie)

• O(n) : linéaire (augmentation linéaire du temps d’exécution quand n croit


Le parcours séquentiel des structures linéaires)
• O(n × log n) : quasi-linéaire(augmentation un peu supérieure à O(n) tris par
échanges)
• O(n2) : quadratique, polynomial (quand le paramètre n double le temps est
multipliè par 22)
• O(2n) : exponentiel (problèmes très difficiles)

16/03/2022 Optimisation combinatoire 11


Simulation du temps de calcul

16/03/2022 Optimisation combinatoire 12


Optimisation: définitions
Principales Classes de complexité en OC:

Fonction T(n) selon le


taux d’accroissement

Fonction Polynômiale
Il existe un polynôme qui la borne n  IN , b  IN , c  IR tels que T(n)  c.n b
supérieurement

Fonction Exponentielle
Sa croissance suit une progression T(n)  c.e b.n
géométrique

16/03/2022 Optimisation combinatoire 13


Complexité d’un problème

La « complexité d’un problème » est une estimation du nombre d’instructions à exécuter pour
résoudre les instances de ce problème, cette estimation étant un ordre de grandeur par rapport à la
taille de l’instance. Il s’agit là d’une estimation dans le pire des cas dans le sens où la complexité
d’un problème est définie en considérant son instance la plus difficile.

16/03/2022 Optimisation combinatoire 14


Les problèmes Polynomiaux

La classe P contient l’ensemble des problèmes polynomiaux, i.e., pouvant être


résolus par un algorithme de complexité polynomiale. Cette classe caractérise
l’ensemble des problèmes que l’on peut résoudre «efficacement ».

16/03/2022 Optimisation combinatoire 15


Les problèmes Polynomiaux Non déterministes NP

la classe NP (Non deterministic Polynomial) contient l’ensemble des problèmes


polynomiaux non déterministes, i.e., pouvant être résolus par un algorithme de
complexité polynomiale pour une machine non déterministe (que l’on peut voir
comme une machine capable d’exécuter en parallèle un nombre fini d’alternatives).
Intuitivement, cela signifie que la résolution des problèmes de NP peut nécessiter
l’examen d’un grand nombre (éventuellement exponentiel) de cas, mais que l’examen
de chaque cas doit pouvoir être fait en temps polynomial.

On ne trouve pas d’algorithme polynomial pour les résoudre avec une machine
déterministe.

Remarque:
les calculs d'une machine de Turing déterministe forment une suite, ceux d'une
machine de Turing non déterministe forment un arbre, dans lequel chaque chemin
correspond à une suite de calculs possibles.

16/03/2022 Optimisation combinatoire 16


Les problèmes Polynomiaux Non déterministes

• la classe des problèmes NP-complets : un problème de NP est NP-complet s’il


est au moins aussi difficile à résoudre que n’importe quel autre problème de
NP.
Ainsi, les problèmes NP-complets sont des problèmes combinatoires dans le
sens où leur résolution implique l’examen d’un nombre exponentiel de cas.
Cette classe des problèmes NP-complets contient un très grand nombre de
problèmes (TSP).

Exemple:
Dans le cas du problème du voyageur de commerce, l’espace de recherche croit
en (n-1)!, où n est le nombre de villes à visiter, ce qui dépasse rapidement les
capacités de calcul de n’importe quel ordinateur.
Avec seulement 50 villes, il faudra évaluer 49! trajets.
C’est l’explosion combinatoire.

16/03/2022 Optimisation combinatoire 17


Exemple de calcul de la complexité Algorithmique

Début

K <-- 0

I <-- 1

( opérations1)

TantQue I <= N ( opérations2) Faire

R <-- R+T[I] ( opérations3)

I <-- I+1 ( opérations4)

FinTantQue

fin

Le temps d’exécution t(n) de cet algorithme en supposant que:

- N=n

- t1 est le temps d’éxécution des affectations ( opérations1)

- t2 est le temps d’éxécution de la comparaison ( opérations2)

- t3 est le temps d’éxécution de l’action ( opérations3)

- t4 est le temps d’éxécution de l’action ( opérations4)

- t1, t2, t3, t4 sont des constantes (c.à.d. ne dépendent pas de n)

s’écrit:
n
T(n) = t1 +  (t2 + t3 + t 4) + t2
i =1

16/03/2022 Optimisation combinatoire 18


Exemple de calcul de la complexité Algorithmique

Recherche séquentielle dans un tableau

fonction avec retour booléen rechercheElement(chaine[] tab, chaine x)


entier i;
début
i 0; (1 opération)
tantque (i < tab.longueur (1 opération)) faire
si (tab[i] = x) alors (1 opération)
retourne VRAI;
finsi n fois
sinon
i++; (1 opération)
fintantque
retourn FAUX;
Fin

Algorithme linéaire en О(n)

Le coût des déclarations et du retour est négligeable


16/03/2022 Optimisation combinatoire 19
Exemple de calcul de la complexité Algorithmique
tri-selection
début
pour i = 0 à n-2 faire
j=i; (1 opération)
pour k = i+1 à n-1 faire
si A[k] < A[j] alors (1 opération)
j=k; (1 opération) (n-i-1) fois Pour chaque i
finsi ; (1+2(n-i-1)+3) opérations
finpour;
Permuter (A[i] , A[j]) ; (3 opérations)
finpour;
fin
Nombre d’opérations : 4(n-1)+ 2 n −2 (n − i − 1) = 4(n − 1) + 2 n−1 i =4(n − 1) + n(n − 1) = n 2 + 3n − 4

i =0

i =1

Algorithme polynomial en О(n2)

16/03/2022 Optimisation combinatoire 20


Exemple de calcul de la complexité Algorithmique
Recherche Dichotomique:

int rechercheDicho(int x, int tab[], int lg)


{
Debut
int fin = lg-1;
int milieu = (debut+fin)/2;
while(debut<=fin)
if (x == tab[milieu])
return milieu;
else if (x < tab[milieu])
{
fin = milieu-1; /* cherche à gauche... */
milieu = (debut+fin)/2;
}
else{ debut = milieu+1; /* x > tab[milieu] */
milieu = (debut+fin)/2; /* ... `a droite */
}
return -1; /* si on n’a rien trouvé dans le while */
}
16/03/2022 Optimisation combinatoire 21
Méthode exactes
Méthodes approchées
• Métaheuristiques
• Heuristiques

16/03/2022 Optimisation combinatoire 22


Optimisation combinatoire

L’objectif de l’optimisation combinatoire est d’avoir un


comportement «acceptable » en pratique pour les problèmes de
recherche opérationnelle, c’est à dire, d’être capable de trouver
une solution de qualité suffisante en un temps raisonnable pour
les instances à résoudre.

16/03/2022 Optimisation combinatoire 23


Méthodes de résolution des problèmes d’optimisation combinatoire

• Les méthodes exactes qui garantissent la complétude de la résolution : c'est le cas par exemple
de SEP (séparation & évaluation progressive). Le temps de calcul nécessaire d'une telle méthode
augmente en général exponentiellement avec la taille du problème à résoudre.

• Les méthodes approchées ont l’objectif de trouver une solution de bonne qualité en un temps de
calcul raisonnable sans garantir l'optimalité de la solution obtenue. Les méthodes approchées
sont fondées principalement sur diverses heuristiques, souvent spécifiques à un type de
problème ou métaheuristiques générales.

16/03/2022 Optimisation combinatoire 24


Méthodes d’optimisation
combinatoire

Algorithmes Méthodes
exactes approchées

Programmation Séparation et Recherche Algorithmes


linéaire évaluation locale gloutons

Recherche Recuit
Tabou simulé
Programmation Métaheuristiques
Relaxation
dynamique
Colonie de Algorithme
fourmis génétique

16/03/2022 Optimisation combinatoire 25


Optimisation combinatoire
Algorithme glouton
Un algorithme glouton est un algorithme qui suit le principe de faire,
étape par étape, un choix optimum local, dans l'espoir d'obtenir un
résultat optimum global. Dans les cas ou l'algorithme ne fournit pas
systématiquement la solution optimale, il est appelé une heuristique
gloutonne.

16/03/2022 Optimisation combinatoire 26


Optimisation combinatoire
Heuristique:

En optimisation combinatoire, théorie des graphes et théorie de la complexité,


une heuristique est un algorithme qui fournit rapidement (en temps polynomial)
une solution réalisable, mais pas nécessairement optimale, pour un problème
d'optimisation difficile.
Une heuristique, ou méthode approximative, est donc le contraire d'un
algorithme exact qui trouve une solution optimale pour un problème donné.
L'usage d'une heuristique est pertinente pour calculer une solution approchée
d'un problème et ainsi accélérer le processus de résolution exacte.

16/03/2022 Optimisation combinatoire 27


Optimisation combinatoire

Métaheuristiques:
• Les métaheuristiques forment une famille d'algorithmes d'optimisation
visant à résoudre des problèmes d'optimisation difficile (souvent issus des
domaines de la recherche opérationnelle, de l'ingénierie ou de
l'intelligence artificielle) pour lesquels on ne connait pas de méthode
classique plus efficace.
Ces méthodes utilisent un haut niveau d'abstraction, leur permettant
d‘être adaptées a une large gamme de problèmes différents.

• Les métaheuristiques sont généralement des algorithmes stochastiques


itératifs, qui progressent vers un optimum global.

16/03/2022 Optimisation combinatoire 28


Optimisation combinatoire

Définitions:
• Un voisinage d'une solution est un sous-ensemble de solutions qu'il est
possible d'atteindre par une série de transformations données.

• L'intensification (exploitation) se fonde sur l'idée d'apprentissage de


propriétés favorables: les propriétés communes souvent rencontrées dans les
meilleures solutions visitées sont mémorisées au cours de la recherche, puis
favorisées pendant la période d'intensification. Une autre manière d'appliquer
l'intensification consiste à mémoriser une liste de solutions de bonne qualité et à
retourner vers une de ces solutions. Il s’agit alors d’intensifier l’effort de
recherche vers les zones les plus « prometteuses » de l’espace des solutions.

• La diversification (exploration) cherche à diriger la recherche vers des zones


inexplorées. Sa mise en œuvre consiste souvent à modifier temporairement la
fonction de coût pour favoriser des mouvements n'ayant pas été effectués ou à
pénaliser les mouvements ayant été souvent répétés. Il s’agit alors de diversifier
l’effort de recherche de façon à être capable de découvrir de nouvelles zones
contenant (potentiellement) de meilleures solutions.

16/03/2022 Optimisation combinatoire 29


Optimisation combinatoire

Méthodes hybrides:
Méthode composée de plusieurs méthodes se répartissant les tâches de recherche.

16/03/2022 Optimisation combinatoire 30

Vous aimerez peut-être aussi