help-glpk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-glpk] nouvel utilisateur de GLPK


From: glpk xypron
Subject: Re: [Help-glpk] nouvel utilisateur de GLPK
Date: Fri, 01 Aug 2008 20:13:49 +0200

Hello Bilel,

the example below shows how you could setup the model. My idea is that You do 
not model production of resources SR1 and SR2 as two different variables. 
Instead there is only one variable for total production.

L'exemple au-dessous montre comment tu pourrais modeler ton problème. Mon idée 
est que tu n'utilise pas deux variables différentes pour la production des deux 
resources SR1, SR2 mais seulement une variable pour la production totale.

Best regards

Xypron


param nd_pen := 70;
#non delivery penalty;

param d := 15;
#demand

param cap1 := 10;
# capacity of resource SR1

param cost1 := 50;
# cost of resource SR1

param cap2 := 8;
# capacity of resource SR2

param cost2 := 60;
# cost of resource SR2

var p >= 0;
# production rate

var nd >= 0;
# non delivery

var ct >= 0;
# total cost

var cp >= 0;
# production cost

minimize total_cost :
  ct;

s.t. constr_total_cost : 
cp + nd_pen * nd - ct = 0;
# total cost = production cost + non delivery penalty

s.t. cp1 :
cost1 * p - cp <= 0;
# production cost for resource 1

s.t. cp2 :
cost2 * ( p - cap1 ) + cost1 * cap1 - cp <= 0;
# production cost for resource 2

s.t. p_max : 
cap1 + cap2 - p >= 0;
# maximum production

s.t. non_delivery :
p + nd - d >= 0;
# non delivery

solve;

printf "non delivery: %d\n", nd;
printf "production resource 1: %d\n" , 0.5 * ( p - abs( p - cap1 ) + cap1 );
printf "production resource 2: %d\n" , 0.5 * ( p + abs( p - cap1 ) - cap1 );

end;

-------- Original-Nachricht --------
> Datum: Fri, 1 Aug 2008 13:37:53 +0400
> Von: "Bilel Masmoudi" <address@hidden>
> An: address@hidden
> Betreff: [Help-glpk] nouvel utilisateur de GLPK

> Bonjour,
> Je suis un nouvel utilisateur de GLPK,
> Merci de m'aider à résoudre ce prblème
> Le problème: on veut exprimer une contrainte de priorité entre deux
> flux.
> soit deux débits de flux SR1 et SR2 qui sont parmi les ressources
> disponibles(variables du problème à optimiser)
> on ne veut pas utiliser le flux 2 tant qu'on peux respecter les autres
> contraintes en utilsant le premier.
> comment exprimer cette contrainte linéairement? 
> la solution qui consiste à mettre une pénalité sur le flux le moins
> prioritaire n'est pas pertinente car elle ne définit qu'une
> contrainte relative
> Merci
> 
> 
>  

-- 
Psssst! Schon vom neuen GMX MultiMessenger gehört?
Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger




reply via email to

[Prev in Thread] Current Thread [Next in Thread]