[Top][All Lists]
[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