--what is happning when this message appears?ampl: model C:\Users\Heyrton\Desktop\tcc\TCCv4.modC:\Users\Heyrton\Desktop\tcc\TCCv4.mod, line 2 (offset 20):j is already definedcontext: param >>> j <<< integer >= 0; # número de jornadas, incluindo as dos dias úteis, sábado e domingo.im tryiing others ways to declared all these parameters but is not working.help me please# PARÂMETROSparam j integer >= 0; # número de jornadas, incluindo as dos dias úteis, sábado e domingo.param c integer >= 0; # número de motoristasparam d integer >= 0; # número de dias no horizonte planejadoparam dom integer >= 0; # número de domingos dentro do horizonte de planejamentoparam dp integer >= 0; # número de jornadas do tipo dupla pegadaparam noturno integer > 0; # número de jornadas do tipo noturno*/# CONJUNTOS DE ÍNDICESset Jor := {1..j}; # jornadasset C := {1..c}; # motoristasset D := {1..d}; # dias do horizonte planejadoset D0 := {2..d}; # dias para uso em jornadas ociosas (Jornadas0)set Dom := {1..dom}; # domingosset Dp := {1..dp}; # dupla-pegadaset Not := {1..noturno}; # jornadas noturnas# Conjunto de jornadas do dia j, sendo j um dia útil, sábado ou domingoparam Kj {D}; # total de jornadas no dia j# Conjunto de jornadas que não podem ser realizadas no dia j# por qualquer tripulação que executou a jornada k no dia (j-1)param Kj0 {D, Jor, D, Jor} binary;# PARÂMETROS PARA A OTIMIZAÇÃO DE CUSTOSparam Tsi {Jor}; # Horário de início da jornada i em minutosparam Tei {Jor}; # Horário de término da jornada i em minutosparam Ci {Jor}; # Custo de cada jornada i dado por ((tej - tsi) - 400).# VARIÁVEISvar Xijk {C, D, Jor} binary; # 1 se motorista i, no dia j, realiza jornada kvar Yi {C} binary; # 1 se motorista i nao trabalha nenhum diavar Xij0 {C, D} binary; # 1 se tripulaçao i não trabalha no dia j### PRIMEIRO MODELO# FUNÇÃO-OBJETIVOmaximize Ociosidade:sum {c in C}Yi[c];#RESTRIÇÕESs.t. Ocioso {c in C, d in D}: #Xij0 = 1 e adiciona o valor a Yi (add value 1 to Xij0 into value Yi)Yi[c] >= Xij0[c,d];s.t. Jornadas0 {c in C, d in D0, k1 in Kj[d-1]}: #Jornadas que tem restrição de serem executadas por uma suposta anteriorXijk[c,d-1,k1] + sum{k2 in Kj[d]} Kj0[d-1,k1,d,k2] <= 1; #check Jorneys restrictions only exec for the pilots.t. 6diassemfolga {c in C, d in D}: #garante o 6/1sum {f in 0..6} Xij0[c,d+f] >= 1; #garantee the jorney 6/1 (6 days in and 1 day out for the pilot)solve;data;param j := 10;param c := 10;param d := 10;param dom := 1;param dp := 1;param noturno := 1;param Kj :=1 12 13 14 15 16 17 18 19 110 1;param Kj0 :=1 1 2 1 02 1 3 1 13 1 4 1 04 1 5 1 05 1 6 1 06 1 7 1 07 1 8 1 08 1 9 1 09 1 10 1 0;
You received this message because you are subscribed to the Google Groups "AMPL Modeling Language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ampl+uns...@googlegroups.com.
To post to this group, send email to am...@googlegroups.com.
Visit this group at https://groups.google.com/group/ampl.
For more options, visit https://groups.google.com/d/optout.
param Ci {Jor}; # Custo de cada jornada i dado por ((tej - tsi) - 400).
# VARIÁVEIS
var Xijk {C, D, Jor} binary; # 1 se motorista i, no dia j, realiza jornada k
var Yi {C} binary; # 1 se motorista i nao trabalha nenhum dia
var Xij0 {C, D} binary; # 1 se tripulaçao i não trabalha no dia j
### PRIMEIRO MODELO
# FUNÇÃO-OBJETIVO
maximize Ociosidade:
Could you help me?
On Wed, Apr 25, 2018 at 4:22 AM UTC, Ampl Modeling Language <am...@googlegroups.com> wrote:
I wrote in this way and it works! Thank you, Tiwari!
s.t. 6diassemfolga {cc in C, dc in d..d-6}: #garante o 6/1
sum {f in 0..5} Xij0[cc,dc+f] >= 1;
Em terça-feira, 24 de abril de 2018 21:50:13 UTC-3, Eduardo Bessa escreveu:
On Wed, Apr 25, 2018 at 12:50 AM UTC, Ampl Modeling Language <am...@googlegroups.com> wrote:
Thank you for the answer!
Do you know any way to check the loop without "f" ? The "f" is necessary to know if the pilot worked 6 days to stay out for once in the week.
Em quarta-feira, 28 de março de 2018 17:30:11 UTC-3, AMPL Google Group escreveu:
what is happning when this message appears?
ampl: model C:\Users\Heyrton\Desktop\tcc\TCCv4.modC:\Users\Heyrton\Desktop\tcc\TCCv4.mod, line 2 (offset 20):j is already defined
context: param >>> j <<< integer >= 0; # número de jornadas, incluindo as dos dias úteis, sábado e domingo.
im tryiing others ways to declared all these parameters but is not working.help me please# PARÂMETROS
param j integer >= 0; # número de jornadas, incluindo as dos dias úteis, sábado e domingo.param c integer >= 0; # número de motoristasparam d integer >= 0; # número de dias no horizonte planejadoparam dom integer >= 0; # número de domingos dentro do horizonte de planejamentoparam dp integer >= 0; # número de jornadas do tipo dupla pegadaparam noturno integer > 0; # número de jornadas do tipo noturno*/# CONJUNTOS DE ÍNDICESset Jor := {1..j}; # jornadasset C := {1..c}; # motoristasset D := {1..d}; # dias do horizonte planejadoset D0 := {2..d}; # dias para uso em jornadas ociosas (Jornadas0)set Dom := {1..dom}; # domingosset Dp := {1..dp}; # dupla-pegadaset Not := {1..noturno}; # jornadas noturnas# Conjunto de jornadas do dia j, sendo j um dia útil, sábado ou domingoparam Kj {D}; # total de jornadas no dia j# Conjunto de jornadas que não podem ser realizadas no dia j# por qualquer tripulação que executou a jornada k no dia (j-1)param Kj0 {D, Jor, D, Jor} binary;# PARÂMETROS PARA A OTIMIZAÇÃO DE CUSTOSparam Tsi {Jor}; # Horário de início da jornada i em minutosparam Tei {Jor}; # Horário de término da jornada i em minutos
param Ci {Jor}; # Custo de cada jornada i dado por ((tej - tsi) – 400).
# VARIÁVEISvar Xijk {C, D, Jor} binary; # 1 se motorista i, no dia j, realiza jornada kvar Yi {C} binary; # 1 se motorista i nao trabalha nenhum diavar Xij0 {C, D} binary; # 1 se tripulaçao i não trabalha no dia j### PRIMEIRO MODELO# FUNÇÃO-OBJETIVOmaximize Ociosidade:
sum {c in C}Yi[c];#RESTRIÇÕESs.t. Ocioso {c in C, d in D}: #Xij0 = 1 e adiciona o valor a Yi (add value 1 to Xij0 into value Yi)Yi[c] >= Xij0[c,d];s.t. Jornadas0 {c in C, d in D0, k1 in Kj[d-1]}: #Jornadas que tem restrição de serem executadas por uma suposta anteriorXijk[c,d-1,k1] + sum{k2 in Kj[d]} Kj0[d-1,k1,d,k2] <= 1; #check Jorneys restrictions only exec for the pilot
s.t. 6diassemfolga {c in C, d in D}: #garante o 6/1sum {f in 0..6} Xij0[c,d+f] >= 1; #garantee the jorney 6/1 (6 days in and 1 day out for the pilot)solve;
Hi Paras,
I run the model but this message appears. What this means? And the solution is not okay either. It is like the restriction (s.t. 8Apenas01JornadaDia {c1 in C, d1 in D}:
Xij0[c1,d1] + sum {j1 in Kj[d1]} Xijk[c1,d1,j1] <= 1;) is not working.. Thank you
presolve, constraint 7DuplaPegada[1,1]:
all variables eliminated, but upper bound = -1 < 0
presolve, constraint 6Noturna[1,1]:
all variables eliminated, but upper bound = -1 < 0
presolve, constraint 5FolgaDomDp[1,1,1]:
all variables eliminated, but lower bound = 1 > 0
presolve, constraint 7DuplaPegada[2,1]:
all variables eliminated, but lower bound = 1 > 0
presolve, constraint 6Noturna[2,1]:
all variables eliminated, but lower bound = 1 > 0
21 presolve messages suppressed.
Em quinta-feira, 10 de maio de 2018 15:04:09 UTC-3, AMPL Google Group escreveu:
On Wed, May 23, 2018 at 12:16 AM UTC, Ampl Modeling Language <am...@googlegroups.com> wrote:
Hi, Paras.
I am trying to run the model, but this message appears:
presolve, constraint 7DuplaPegada[1,1]:
all variables eliminated, but upper bound = -1 < 0
presolve, constraint 6Noturna[1,1]:
all variables eliminated, but upper bound = -1 < 0
presolve, constraint 5FolgaDomDp[1,1,1]:
all variables eliminated, but lower bound = 1 > 0
presolve, constraint 7DuplaPegada[2,1]:
all variables eliminated, but lower bound = 1 > 0
presolve, constraint 6Noturna[2,1]:
all variables eliminated, but lower bound = 1 > 0
21 presolve messages suppressed.
What this means?
model:
#TCC.mod
# PARÂMETROS
param j >= 0 integer; # número de jornadas, incluindo as dos dias úteis,
sábado e domingo.
param c >= 0 integer; # número de motoristas
param d >= 0 integer; # número de dias no horizonte planejado
param dom >= 0 integer; # número de domingos dentro do horizonte de
planejamento
param dp >= 0 integer; # número de jornadas do tipo dupla pegada
param notu >= 0 integer; # número de jornadas do tipo noturno
# CONJUNTOS DE ÍNDICES
set Jor := {1..j}; # jornadas
set C := {1..c}; # motoristas
set D := {1..d}; # dias do horizonte planejado
set D0 := {2..d}; # dias para uso em jornadas ociosas (Jornadas0)
set Dom := {1..dom}; # domingos
set Dp := {1..dp}; # dupla-pegada
set Not := {1..notu}; # jornadas noturnas
# Conjunto de jornadas do dia j, sendo j um dia útil, sábado ou domingo
set Kj {D}; # total de jornadas no dia j
# Conjunto de jornadas que não podem ser realizadas no dia j
# por qualquer tripulação que executou a jornada k no dia (j-1)
# binary, 1 se jornada do dia j não pode ser realizada
param Kj0 {D, Jor, D, Jor} binary;
# PARÂMETROS PARA A OTIMIZAÇÃO DE CUSTOS
param Tsi {Jor}; # Horário de início da jornada i em minutos
param Tei {Jor}; # Horário de término da jornada i em minutos
param Ci {Jor}; # Custo de cada jornada i dado por ((tej - tsi) – 400).
# VARIÁVEIS
var Xijk {C, D, Jor} binary; # 1 se motorista i, no dia j, realiza jornada k
var Yi {C} binary; # 1 se motorista i nao trabalha nenhum dia
var Xij0 {C, D} binary; # 1 se tripulaçao i não trabalha no dia j
########### PRIMEIRO MODELO ##############
# FUNÇÃO-OBJETIVO
maximize Ociosidade:
sum {c1 in C} Yi[c1];
# RESTRIÇÕES
s.t. 1Ocioso {c1 in C, d1 in D}:
Yi[c1] = Xij0[c1,d1];
s.t. 2Jornadas0 {c1 in C, d1 in D0, k in Kj[d1-1]}:
Xijk[c1,d1-1,k] + sum{k2 in Kj[d1]} Kj0 [d1-1,k,d1,k2] <= 1;
s.t. 3Folga {c1 in C, d1 in 1..d-6}:
sum {d2 in 0..6} Xij0 [c1,d1+d2] >= 1;
s.t. 4FolgaDomingo {c1 in C}:
sum {dom1 in Dom} Xij0 [c1,dom1] >= 1;
# Verificar normas, geralmente 01folga no domingo por mês
s.t. 5FolgaDomDp {c1 in C, dom1 in Dom, d1 in D}:
Xij0 [c1,dom1] >= sum {dp1 in Dp} Xijk[c1,d1,dp1];
s.t. 6Noturna {c1 in C, d1 in 1..d-3}:
sum {notu1 in Not} Xijk[c1,d1,notu1] = sum {notu1 in Not}
Xijk[c1,d1+1,notu1];
s.t. 7DuplaPegada {c1 in C, d1 in 1..d-3}:
sum {dp1 in Dp} Xijk[c1,d1,dp1] = sum {dp1 in Dp} Xijk[c1,d1+1,dp1];
s.t. 8Apenas01JornadaDia {c1 in C, d1 in D}:
Xij0[c1,d1] + sum {j1 in Kj[d1]} Xijk[c1,d1,j1] <= 1;
s.t. 9TodasJornadasRealizadas {d1 in D, j1 in Kj[d1]}:
sum {c1 in C} Xijk[c1,d1,j1] = 1;
s.t. 10TodasJornadasDomingo {d1 in D, dp1 in Dp}:
sum {c1 in C} Xijk[c1,d1,dp1] = 1;
s.t. 11TodasJornadasNoturnas {d1 in D, notu1 in Not}:
sum {c1 in C} Xijk[c1,d1,notu1] = 1;
data;
param j := 5;
param c := 5;
param d := 5;
param dom := 1;
param dp := 1;
param notu := 1;
set Kj[1] := 1;
set Kj[2] := 1 2;
set Kj[3] := 3 4;
set Kj[4] := 4;
set Kj[5] := 5;
param Kj0 :=
1 1 2 1 1
1 1 2 2 1
2 1 3 1 1
2 1 3 3 1
2 1 3 4 1
2 2 3 3 1
2 2 3 1 1
2 2 3 4 1
3 1 4 1 1
3 3 4 4 1
3 4 4 4 1
4 1 5 1 1
4 4 5 5 1;
solve;
Em quinta-feira, 22 de março de 2018 20:02:42 UTC-3, Eduardo Bessa escreveu:
On Thu, May 10, 2018 at 6:03 PM UTC, AMPL Google Group <am...@googlegroups.com> wrote:
Do you still have questions? It's not clear if you have figured out the solution and still have problems. If you have problem, please explain in detail.
--
Dr. Paras Tiwari
am...@googlegroups.com
Em quarta-feira, 23 de maio de 2018 01:05:52 UTC-3, AMPL Google Group escreveu:
On Wed, May 23, 2018 at 4:05 AM UTC, AMPL Google Group <am...@googlegroups.com> wrote:
As a start on checking the model, I suggest picking one of the error messages, say,
presolve, constraint 7DuplaPegada[1,1]:
all variables eliminated, but upper bound = -1 < 0
and expanding the constraint mentioned in the message:
ampl: expand 7DuplaPegada[1,1];
subject to 7DuplaPegada[1,1]:
Xijk[1,1,1] - Xijk[1,2,1] = 0;
Next I would check the bounds on the one variable in this constraint:
ampl: display Xijk[1,1,1].ub;
Xijk[1,1,1].ub = 1
ampl: display Xijk[1,2,1];
Xijk[1,2,1] = 0
Here I see that AMPL's presolve phase has determined that this variable must equal one. Thus the constraint becomes -1 = 0, which cannot possibly be satisfied. Now you will have to make a further examination of your model to figure out why this contradiction is occurring.
--
Dr. Paras Tiwari
am...@googlegroups.com