hmm petit pb de tableaux en ampl.. help please

hmm petit pb de tableaux en ampl.. help please - Divers - Programmation

Marsh Posté le 28-05-2003 à 23:21:11    

'soir tt le monde
voila j'ai besoin de faire un tableau en AMPL (qui depend que d'une seule variable)
 
donc je fais ca dans le .dat :
en ayant deja declare Prod1..7
param profit :=  
Prod1 10 Prod2 6 Prod3 8 Prod4 4 Prod5 11 Prod6 9 Prod7 3;
 
 
et dans le .mod j'ai :
param profit {product} >= 0;
 
et ampl me dit que j'ai une erreur de syntaxe... (dans le .dat) mais je vois pas ou
si qq'un pouvait me renseigner
merci bien

Reply

Marsh Posté le 28-05-2003 à 23:21:11   

Reply

Marsh Posté le 29-05-2003 à 00:23:24    

Bon, je suis pas la bête en Ampl, d'ailleurs je sais même pas si bcp de gens l'utilisent...
 
Moi je dirai que le .dat est correct. Par contre, le .mod devrait, selon moi être plutôt du style :
 
param offre {i in Orig} ;
 
Si tu veux, j'ai des exemples qui tournent nickel

Reply

Marsh Posté le 29-05-2003 à 00:26:19    

Mais donne moi ton code complet c'est plus simple

Reply

Marsh Posté le 29-05-2003 à 12:11:24    

alors pour le .dat on a :  
 

Code :
  1. data;
  2. set product := Prod1 Prod2 Prod3 Prod4 Prod5 Prod6 Prod7 ;
  3. set cost := 0.5:
  4. ### Prix de vente d'un produit ###
  5. param profit := 
  6. Prod1 10 Prod2 6 Prod3 8 Prod4 4 Prod5 11 Prod6 9 Prod7 3;


 
et pour le .mod  
 

Code :
  1. set product;
  2. param profit {product} >= 0;


 
sinon je sais que pa bcp de monde utilise ampl, mais bon comme je dois faire mon optimisation la dessus, j'ai pas trop le choix...
je veux bien qq exemples (si ce ne sont pas ceux qui sont dans le rep models d'ampl ;) )


Message édité par swich le 29-05-2003 à 12:12:21
Reply

Marsh Posté le 29-05-2003 à 17:52:52    

personne ?

Reply

Marsh Posté le 29-05-2003 à 18:10:04    

Ok
 
un exemple : crevette.dat
 

Code :
  1. set Orig := Thailande Chine Equateur ;
  2. set Dest := USA Japon EuropeOuest EuropeEst ;
  3. param offre := 
  4. Thailande        1000
  5. Chine           900
  6. Equateur        2500 ;
  7. param demande := 
  8. USA                800
  9. Japon                1000 
  10. EuropeOuest        1300
  11. EuropeEst        700 ;
  12. param cout:
  13.                 USA        Japon        EuropeOuest        EuropeEst :=
  14. Thailande        200        300           250                   190 
  15. Chine                220           210           265                   240 
  16. Equateur        230        285        260                185 ;
  17. #param M := 10000 ;
  18. #param SourceMax := 3 ;
  19. #param DestMax := 4 ;
  20. #param EnvoiMinimal := 1 ;


 
et crevette.mod
 
 

Code :
  1. set Orig ;
  2. set Dest ;
  3. param offre {i in Orig} ;
  4. param demande {j in Dest} ;
  5. param cout {i in Orig, j in Dest} ;
  6. #param M ;
  7. #param SourceMax ;
  8. #param DestMax ;
  9. #param EnvoiMinimal ;
  10. var X {i in Orig,j in Dest} >= 0 ;
  11. minimize cout_total:
  12.         sum{i in Orig,j in Dest} cout[i,j] * X[i,j] ;
  13. subject to Offre {i in Orig}:
  14.         sum {j in Dest} X[i,j] <= offre[i] ;
  15. subject to Demande {j in Dest}:
  16.         sum {i in Orig} X[i,j] >= demande[j] ;


Reply

Marsh Posté le 29-05-2003 à 18:30:35    

keske c'est que ce truc [:psychokwak]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 29-05-2003 à 18:31:26    

Citation :


set cost := 0.5:  


 
ça devrait pas finir par un ; ?

Reply

Marsh Posté le 29-05-2003 à 18:33:03    

the real moins moins a écrit :

keske c'est que ce truc [:psychokwak]


 
ampl est un programme de RO. C'est en interface DOS, mais c'est assez puissant tout de même !
 
Plus d'infos ici : http://www.ampl.com/

Reply

Marsh Posté le 29-05-2003 à 18:34:28    

RO ?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 29-05-2003 à 18:34:28   

Reply

Marsh Posté le 29-05-2003 à 18:46:11    

Recherche Opérationnelle.  
 
En gros cela regroupe les méthodes pour résoudre des problèmes d'optimisation plus ou moins complexes. Le but étant toujours de maximiser le profit ou minimiser l'utilisation de ressources tout en atteignant les objectifs voulus.
 
par exemple :  
 
Problèmes d'horaires
Investissements
Choix de médias
Routage
Voyageur de commerce....
 
Un problème assez simple qui va te faire comprendre l'utilité de la RO :
 
 

Citation :


On veut minimiser les frais de production et stockage d'un produit pour les trois mois qui suivent:
 
 Janvier 2003 Février 2003 Mars 2003
Capacité de production 100 120 110
Demande estimée 80 100 140
Coût unitaire de production 8 CHF 9 CHF 10 CHF
 
Le coût de stockage est de 2 CHF par unité et par mois. Le stock initial au début de Janvier 2003 = 10. Le stock final de Mars 2003 doit être nul (il va sans dire que pour chaque mois: stock final = stock initial + production - demande).
 
 


 
 

Reply

Marsh Posté le 29-05-2003 à 19:08:33    

euh ouais, on fait ça avec excel non? [:huit]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 29-05-2003 à 19:16:52    

Oui on a commencé avec le solveur Excel. Mais celui-ci montre vite ses limites en fait... Mais tu peux déjà t'amuser un petit peu.  
 
Mais djisktr avec Excel tu oublie...
 
donc ensuite tu as AMPL ou STORM
 

Reply

Marsh Posté le 29-05-2003 à 19:33:03    

Storm est introuvable sur le net (il date de 1992 pas étonnant...)
 
Ceux qui sont intéressés, donnez-moi votre mail en privé merci.
 

Reply

Marsh Posté le 30-05-2003 à 14:27:42    

JagStang a écrit :

Citation :


set cost := 0.5:  


 
ça devrait pas finir par un ; ?


oe bien vu :) hehe ce matin on a chercher pdt 10 min avec le prof lol avant de voir ca
 
putain de petites erreurs toutes connes :'(
 

Reply

Marsh Posté le 01-06-2003 à 20:02:11    

Heureux d'avoir pu t'aider

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed