Académique Documents
Professionnel Documents
Culture Documents
2013 – 2014
RCP104
Optimisation en Informatique
1
20/10/2013
Turbo c++
http://turbo-c.soft32.com/
2
20/10/2013
3
20/10/2013
ex1.mod ex2.mod
#Exemple 1: #Exemple 2:
param a := 4; param a := 4;
param b := 5; param b := 5;
param c:=a*b;# a fois b param c:=sqrt(a*b);# racine carée de a*b
display c; display c;
4
20/10/2013
ex3.mod
#Exemple 3:
param a := sin(10);
param b := sin(82);
param c:=max(a,b);# maximum entre a et b
display c;
5
20/10/2013
ex4.mod
#Exemple 4
Vecteur (1/4)
Déclaration
N.B. A ajouter dans le fichier .mod
set I := {1..4};
param givens{I};
6
20/10/2013
Vecteur (2/4)
Utilisation
N.B. A ajouter dans le fichier .mod
param res:=givens[3];
display res;
Vecteur (3/4)
Exemple 5
Calculer le maximum de givens{I}
ex5.mod ex5.dat
#Exemple 5 #Exemple 5
7
20/10/2013
Vecteur (4/4)
Exemple 6 4
Calculer ∏
i =1
givens (i) * 2
ex6.mod ex6.dat
#Exemple 6 #Exemple 6
Matrice (1/3)
Déclaration
N.B. A ajouter dans le fichier .mod
set I := {1..4}; # nombre de lignes
set J := {1..3}; # nombre de colonnes
param givens{I, J};
param givens : 1 2 3 :=
1 12 13 14
2 16 77 88
3 44 55 66
4 13 67 98;
end;
8
20/10/2013
Matrice (2/3)
Utilisation
N.B. A ajouter dans le fichier .mod
param res:=givens[3,2];
display res;
Matrice (3/3)
Exemple 7 4 3
Calculer ∑∑
i =1 j =1
givens(i, j )
9
20/10/2013
Conditionnelle (1/2)
Syntaxe :
Param x:= If condition then ValeurA else ValeurB;
#Exemple 8 ex8.mod
param x:=1;
display y;
Conditionnelle (2/2)
Exemple 9
Ecrire l’algorithme qui retourne 1 si la vitesse moyenne
d’une voiture qui roule à 60, 100 ou 200 km/h est inférieure
à la vitesse maximale et 0 dans le cas inverse.
#Exemple 9 ex9.mod ex9.dat
#Exemple 9
set I:= {1..3};
param vitesses{I};
data;
param maxi:=max{i in I}vitesses[i];
param moy:=(sum{i in I}vitesses[i])/3;
param vitesses:= 1 60, 2 100, 3 200;
param res:= if moy<maxi then 1 else 0;
end;
display res;
10
20/10/2013
i =1
ex10.mod
#Exemple 10
11
20/10/2013
Prédicat (1/2)
Exemple 11
Ecrire l’algorithme qui retourne la somme de givens{i,j} lorsque
i=j
Prédicat (2/2)
Exemple 12
Ecrire l’algorithme qui retourne la somme de givens{i,j} lorsque
i=j et i différent de 2
#Exemple 12 ex12.mod #Exemple 12 ex12dat
data;
set I := {1..4}; param givens : 1 2 3:=
set J := {1..3}; 1 12 13 14
param givens{I, J}; 2 16 77 88
param res:=sum{i in I, j in J : i=j && 3 44 55 66
i!=2}givens[i,j]; 4 13 67 98;
display res; end;
12
20/10/2013
ex13.mod ex13.dat
#Exemple 13 #Exemple 13
13
20/10/2013
Boucle (1/2)
Syntaxe
For(i in I){ }
#Exemple 14 ex14.mod
Set I:={1..2};
for{i in I}
{
printf "*\n";
}
Boucle (2/2)
Exemple 15
Ecrire l’algorithme qui affiche le résultat suivant
14
20/10/2013
Optimisation (1/3)
Modèle
Ou Minimize
A
ex16.lp
Optimisation (2/3)
Résolution
15
20/10/2013
Optimisation (3/3)
Solution
ex16.sol
Références
Introduction au langage de modélisation GNU MathProg
(GLPK) - Romain Apparigliato - GDF-Suez, Direction de
la Recherche et de l'Innovation
16