Sebastian
unread,May 26, 2009, 1:39:55 PM5/26/09Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Xpress-MP, sfon...@gmail.com
I'm getting the error E-1013 Infeasible constraint in my model with
code on line 78: "sum(l in T)M(i,l,1)*l+sum(j in E,l in T)P(i,j,l,1)
*l>=Es(i)" How can I solve this?
This is the code for my model=
model Carpool
uses "mmxprs"; !gain access to the Xpress-Optimizer solver
!optional parameters section
parameters
inputFile="info.txt"
outputFile="resultados.txt"
end-parameters
!sample declarations section
declarations
!conjuntos
V:set of real !conjunto de viajes, indexado con k. 0 es ida 1 es
vuelta.
E:set of string !conjunto de estudiantes, indexado con i y j.
T:set of real !conjunto de horas, indexado con l. Debe ser entre 7 y
20.
!Parametros
R:array (E) of real !Parametro binario que es 1 si el vehiculo del
estudiante i no tiene pico y placa, es 0 d.l.c.
Ee:array (E) of real !Hora a la que debe entrar el estudiante i
Es:array (E) of real !Hora a la que debe salir el estudiante i
C:real !Capacidad maxima de los carros
!Variables de decision
P:array (E,E,T,V) of mpvar !Variable binaria que es 1 si el estudiante
j es pasajera del estudiante i que maneja a la hora l en el viaje k,
es 0 d.l.c.
M:array (E,T,V) of mpvar !Variable binaria que es 1 si el estudiante i
maneja a la hora l en el viaje k, es 0 d.l.c.
Tee:array (E) of mpvar !Tiempo de espera, en horas, del estudiante i
en el dia j al llegar a la universidad
Tes:array (E) of mpvar !Tiempo de espera, en horas, del estudiante i
en el dia j para salir de la universidad
end-declarations
!inicializaciones
initializations from inputFile
R Ee Es C
end-initializations
forall(i in E,j in E,k in V,l in T) do
create(P(j,i,l,k))
end-do
forall(i in E,k in V,l in T)do
create(M(i,l,k))
end-do
forall(i in E)do
create(Tee(i))
create(Tes(i))
end-do
!Restricciones
!Restriccion de viajes
forall(i in E,k in V)do
sum(l in T)M(i,l,k)+sum(j in E,l in T)P(i,j,l,k)=1
end-do
!Restriccion de pasajeros
forall(i in E,j in E,l in T,k in V)do
P(j,i,l,k)<=M(i,l,k)
end-do
!Restriccion pico y placa
forall(i in E, l in T, k in V)do
M(i,l,k)<=R(i)
end-do
!Restriccion manejar ida y vuelta
forall(i in E)do
sum(l in T)M(i,l,0)=sum(l in T)M(i,l,1)
end-do
!Restriccion de horarios de clase
forall(i in E)do
sum(l in T)M(i,l,0)*l+sum(j in E,l in T)P(i,j,l,0)*l<=Ee(i)
end-do
forall(i in E)do
sum(l in T)M(i,l,1)*l+sum(j in E,l in T)P(i,j,l,1)*l>=Es(i)
end-do
!Variables auxiliares
!Tiempo espera entrada
forall(i in E)do
Tee(i)=Ee(i)-sum(l in T)M(i,l,0)*l-sum(j in E,l in T)P(i,j,l,0)*l
end-do
!Tiempo espera salida
forall(i in E)do
Tes(i)=sum(l in T)M(i,l,1)*l+sum(j in E,l in T)P(i,j,l,1)*l-Es(i)
end-do
!Establecer tipo de variables
forall(i in E,j in E,k in V,l in T) P(j,i,l,k) is_binary
forall(i in E,k in V,l in T) M(i,l,k) is_binary
!Funcion Objetivo
z:=sum(i in E)(Tee(i)+Tes(i))
minimize(z)
!Escribir los resultados
fopen(outputFile,F_OUTPUT)
writeln("Carpooling")
writeln("Archivo de entrada: ",inputFile)
writeln("Archivo de salida: ",outputFile, "\n")
writeln("El tiempo de espera total es: ",getobjval, "\n")
writeln("Hacia la universidad", "\n")
forall(i in E,l in T)do
if getsol(M(i,l,0))=1 then
writeln("A las ",l," en el carro de ",i," salen :")
forall(j in E)do
if getsol(P(j,i,l,0))=1 then
writeln(j)
end-if
end-do
writeln(" ")
end-if
end-do
writeln("Desde la universidad", "\n")
forall(i in E,l in T)do
if getsol(M(i,l,1))=1 then
writeln("A las ",l," en el carro de ",i," salen :")
forall(j in E)do
if getsol(P(j,i,l,1))=1 then
writeln(j)
end-if
end-do
writeln(" ")
end-if
end-do
fclose(F_OUTPUT)
end-model