Professional Documents
Culture Documents
15 fvrier 2013
15 fvrier 2013
1 / 20
Plan
1 2 3 4 5
Introduction Optimiseur intractif CPLEX Callable Library API Java OPL Studio
15 fvrier 2013
2 / 20
Plan
1 2 3 4 5
Introduction Optimiseur intractif CPLEX Callable Library API Java OPL Studio
15 fvrier 2013
2 / 20
Plan
1 2 3 4 5
Introduction Optimiseur intractif CPLEX Callable Library API Java OPL Studio
15 fvrier 2013
2 / 20
Plan
1 2 3 4 5
Introduction Optimiseur intractif CPLEX Callable Library API Java OPL Studio
15 fvrier 2013
2 / 20
Plan
1 2 3 4 5
Introduction Optimiseur intractif CPLEX Callable Library API Java OPL Studio
15 fvrier 2013
2 / 20
Introduction
Historique et Applications
Cre par Robert E. Bixby en utilisant le langage C en 1987, Rachet par ILOG en 1997, 95 % des papiers qui mentionnent un solveur citent CPLEX, Solveur Standard dans les applications de la chane logistique, Utilis par plusieurs compagnies arinnes (Delta, Continental,...), 2004 INFORMS Impact Award.
15 fvrier 2013
3 / 20
Introduction
Problmes couverts
Programmation linaire, Programmation linaire mixte, Programmation quadratique, Programmation mixte quadratique , Programmation contraintes quadratiques, Programmation mixte contraintes quadratiques, Programmes avec des millions de contraines et de variables (version intgrale).
15 fvrier 2013
4 / 20
Introduction
Algorithmes
Programmation Linaire : Simplex Primal Simplex Dual Simplex pour les problmes de ot Point intrieur (barrier) Programmation Quadratique : Simplex Primal Simplex Dual Point intrieur (barrier) Programmation Contraintes Quadratiques : Point intrieur (barrier)
Prsent par OUDANI Mustapha Encadr par: Ahmed EL HILALI Alaoui 15 fvrier 2013 5 / 20
Introduction
Composantes de CPLEX
On peut utiliser CPLEX sous direntes manires : Mode intractif, Cplex Callable Library (bibliothque en langage C) : utilise les matrices pour reprsenter un problme, Ilog Concert Technology : utilise les objects et les mthodes pour reprsenter un problme avec les langages de programmation C++, Java, C#..., Avec un langage de modlisation comme OPL, MPL, AMPL...
15 fvrier 2013
6 / 20
Optimiseur intractif
15 fvrier 2013
7 / 20
Optimiseur intractif
CPLEX accepte les commandes en dirents formats : on peut taper le nom complet ou sa forme rduite, en majiscule ou en miniscule. Pour obtenir de l'aide CPLEX> help ou CPLEX> h Pour obtenir de l'aide propos d'une commande spcique on a la syntaxe gnrale : help nom_commande ,exemple : CPLEX> help add CPLEX> help problem
15 fvrier 2013
8 / 20
Optimiseur intractif
Enter un problme
Souvent, on fait entrer les petits problmes d'une faon intractive, pour entrer des problmes de grande taille, on fait la lecture du problme partir d'un chier. exemple : Maximiser x1 + 2x2 + 3x3 S.C : x1 + x2 + x3 20 x1 3x2 + x3 30 0 x1 40 0 x2 0 x3
Prsent par OUDANI Mustapha Encadr par: Ahmed EL HILALI Alaoui 15 fvrier 2013 9 / 20
Optimiseur intractif
Entrer un problme
Pour entrer un nouveau problme CPLEX> enter On choisit un nom pour notre problme exemple : programme1 On fait entrer le problme dans l'ordre suivant :
1 2 3
Pour entrer la fonction objectif maximize (ou max) x1 + 2x2 + 3x3 // ou minimize (min) On peut nommer nos variables en : voiture, machine, conteneur On peut utiliser tous les caractres alphanumriques
15 fvrier 2013
10 / 20
Optimiseur intractif
Entrer un problme
Pour entrer les contraintes on utilise, subject to ou st st x1 + x2 + x3 <= 20 x1 3x2 + x3 <= 30 On peut nommer les contraintes : st temps : x1 + x2 + x3 <= 20 cot : x1 3x2 + x3 <= 30 On peut entrer des contraintes longues en utilisant <return>, CPLEX interprte les lignes multiples comme une seule contrainte : st x1 + x2 + < return > x3 <= 20 < return > cot : x1 3x2 + x3 <= 30
15 fvrier 2013
11 / 20
Optimiseur intractif
Entrer un problme
Pour entrer les bornes, on utilise bounds : bounds x1 <= 40 Si aucune borne n'est pas entre, CPLEX donne la valeur 0 pour la borne infrieure et + pour la borne suprieure, donc pour notre problme on va pas entrer les autres contraintes sur les bornes. Pour une variable qui prend des valeurs quelconques,
bounds x3 free
Pour les variables entires, on entre generals,exemple : Pour les variables binaires, on entre binaries,exemple :
Optimiseur intractif
Si le problme est d'une grande taille, son achage sur cran est moins pratique. On peut utiliser l'option stats pour acher
15 fvrier 2013
13 / 20
Optimiseur intractif
colonne de la variable On peut acher tous les noms des variables en tapant - ou * aprs le mot variables Pour acher les contraintes diplay problem nom_contrainte La fonction objectif est considre comme la contrainte numro 0, elle peut tre ache galement par son nom par dfaut obj Pour acher les bornes :
display problem bounds 1 display problem bounds display problem bounds *
Prsent par OUDANI Mustapha
15 fvrier 2013
14 / 20
Optimiseur intractif
15 fvrier 2013
15 / 20
Optimiseur intractif
Optimiseur intractif
Le problme ou sa solution peuvent tre enregitrs en utilisant la commande write Lorsque vous taper la commande write un message vous demande d'entrer un nom du problme crire Aprs slectionner un format du chier parm une liste de choix, choisissez le format LP On peut entrer le nom et le type du chier de problme directement CPLEX> write exemple lp ou CPLEX> write exemple.lp
15 fvrier 2013
17 / 20
Optimiseur intractif
La syntaxe gnrale pour la commande write est : CPLEX> write nom_chier format_chier ou CPLEX> write nom_chier.extension
15 fvrier 2013
18 / 20
Optimiseur intractif
Optimiseur intractif
L'utilisateur peut changer les paramtres de CPLEX en modiant leurs valeurs initiales, pour voir les paramtres congurables : CPLEX> set Une liste de ces paramtres s'ache, on peut congurer l'un d'eux en tapant son nom La syntaxe gnrale pour la commande set est : CPLEX> set nom_paramtre nouvelle_valeur Il est possible de recongurer tous les paramtres leurs valeurs initiales par : CPLEX> set defaults
15 fvrier 2013
20 / 20