Bonjour à tous,

je cherche depuis maintenant un bon moment comment utiliser GLPK sous eclipse, mais je n'y arrive pas.

Je sais comment faire un modele glpk qui marche et je sais commment le lancer.
Je sais aussi comment importer la bibliothèque glpk sous eclipse.
Je sais aussi comment résoudre un un modéke simple depuis eclipse en utilisant la bibliothèque glpk.

Mais ce que je ne sais pas et c'est vraiment embêtant, c'est comment utiliser la bibliothéque pour résoudre un problème plus complexe, avec des paramétres et tout et tout...

voilà ce qui marche avec glpk,

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
param N, integer, >=0; 						/*Nb d'objet*/
set O:=1..N; 								/*ensemble des objets*/
 
set B:=1..N; 								/*ensemble des boites*/
 
param capacite, integer, >=0;				/*capacite des boites*/
param objets{o in O}; 						/*tableau des taille des  objets*/
 
var remplissage{o in O,b in B}, binary ; 	/*tableau d'affectation  */
var boites{e in B}, integer, >=0;			/*tableau indiquant si une boite est utilisée*/
 
/*fonction objectif*/
minimize nombreDeBoiteNecessaire : sum{i in B}(boites[i]); 
 
/*contraintes sur la variable remplissage*/
s.t.boitePasTropRemplie {b in B} : (sum{o in O} (objets[o]*remplissage[o,b])) <= capacite;
s.t.unObjetDansUneSeuleBoite_1 {o in O} : (sum{b in B} remplissage[o,b]) <= 1;
s.t.unObjetDansUneSeuleBoite_2 {o in O} : (sum{b in B} remplissage[o,b]) >= 1;
s.t.tousLesObjetDansUneBoite_1 : (sum{o in O}sum{b in B} remplissage[o,b]) <= N;
s.t.tousLesObjetDansUneBoite_2 : (sum{o in O}sum{b in B} remplissage[o,b]) >= N;
 
/*contraintes sur la variable boites*/
s.t. renseignerBoites {b in B} : boites[b] <=(sum{o in O}remplissage[o,b]);
s.t. renseignerBoites_2{b in B}: boites[b]*4000 >= (sum{o in O}remplissage[o,b]);
s.t. renseignerBoites_3{b in B}: boites[b] <=1;
 
data;
param N:=4;
param objets:= [1]9 [2]9 [3]1 [4]3;
param capacite:= 11;
end;
voilà ce que je fais sous éclipse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
GlpkSolver solverMIP = new GlpkSolver();
		GlpkSolver.readModel("C:/Users/Tanguy/workspace/PROJET/modele.txt", "data.txt", "resultat.txt");
		solverMIP.setProbName("Bin-paking");
		System.out.println("Resolution en nombres entiers ....");
		solverMIP.simplex();
		solverMIP.integer();
		solverMIP.mipObjVal();
voilà le résultat console

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Resolution en nombres entiers ....
Reading model section from C:/Users/Tanguy/workspace/PROJET/modele.txt...
26 lines were read
Reading data section from data.txt...
data.txt:3: warning: unexpected end of file; missing end statement inserted
3 lines were read
Generating nombreDeBoiteNecessaire...
Generating boitePasTropRemplie...
Generating unObjetDansUneSeuleBoite_1...
Generating unObjetDansUneSeuleBoite_2...
Generating tousLesObjetDansUneBoite_1...
Generating tousLesObjetDansUneBoite_2...
Generating renseignerBoites...
Generating renseignerBoites_2...
Generating renseignerBoites_3...
Model has been successfully generated
spx_simplex: problem has no rows/columns
lpx_integer: problem is not of MIP class
lpx_mip_obj_val: not a MIP problem
je commence à désespérer, car sur le net je ne trouve aucun code qui permette de gérer les paramètres....
Bref, toute aide sera la bienvenue....


Un grand merci !!!