| |
Xpress-MP |
I'm getting the error E-1013 Infeasible constraint in my model with
This is the code for my model=
model Carpool
!optional parameters section
!sample declarations section
!conjuntos
!Parametros
!Variables de decision
end-declarations
!inicializaciones
forall(i in E,j in E,k in V,l in T) do
forall(i in E,k in V,l in T)do
forall(i in E)do
!Restricciones
!Restriccion de viajes
!Restriccion de pasajeros
!Restriccion pico y placa
!Restriccion manejar ida y vuelta
!Restriccion de horarios de clase
forall(i in E)do
!Variables auxiliares
!Tiempo espera entrada
!Tiempo espera salida
!Establecer tipo de variables
!Funcion Objetivo
minimize(z)
!Escribir los resultados
end-model
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?
uses "mmxprs"; !gain access to the Xpress-Optimizer solver
parameters
inputFile="info.txt"
outputFile="resultados.txt"
end-parameters
declarations
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.
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
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
initializations from inputFile
R Ee Es C
end-initializations
create(P(j,i,l,k))
end-do
create(M(i,l,k))
end-do
create(Tee(i))
create(Tes(i))
end-do
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
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
forall(i in E, l in T, k in V)do
M(i,l,k)<=R(i)
end-do
forall(i in E)do
sum(l in T)M(i,l,0)=sum(l in T)M(i,l,1)
end-do
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
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
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
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
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
z:=sum(i in E)(Tee(i)+Tes(i))
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)