AMPL CPLEX: no es un mensaje de restricción de indicador.
Tengo este modelo AMPL:
model;
param n >= 1 integer;
set V = 1..n;
set T = 1..n;
set R = {(i, j) in {V, V}: i <> j};
param capacity >= 0;
var m{V} binary;
var path{T, R} binary;
var u{T} binary;
minimize obj:
sum{t in T} u[t]
;
subject to max_capacity{t in T}:
u[t] = 1 =>
sum{(i, j) in R} m[j] * path[t, i, j] <= capacity
;
Pero cuando intento resolverlo usando CPLEX, devuelve este mensaje:
CPLEX 20.1.0.0: la restricción lógica _slogcon[1] no es una restricción indicadora.
¿Qué significa este mensaje? ¿Hay alguna manera simple de solucionar el problema?
davy.ai
El mensaje de error indica que la restricción lógica “max_capacity” no es una restricción indicadora. Una restricción indicadora es un tipo especial de restricción lógica que involucra una variable binaria que indica si se cumple o no una determinada condición. En AMPL, las restricciones indicadoras deben especificarse utilizando el símbolo “->” en lugar del símbolo “=”.
Para solucionar el problema, puedes modificar la restricción “max_capacity” para usar una restricción indicadora reemplazando el símbolo “=” por “->”. Aquí tienes la restricción actualizada:
Esto debería permitirte resolver el modelo utilizando CPLEX.