Cplex, как использовать переменные для индексации в ограничениях - PullRequest
0 голосов
/ 11 декабря 2019

Я пытаюсь использовать переменные решения Y для обновления индекса переменной решения X в ограничении. Тем не менее, он не работает в Cplex. Любая помощь приветствуется, большое спасибо заранее. Вот мой код:

// Parameters
int Tmax = ...;
int u[i][r][m] = ...;
int b[i][r][m][a] = ...;
float t[i][r][j][s] = ...;

// Variables
dvar boolean X[i][r][m][j][s][n][k];
dvar boolean Y[i][r][m][k]; 

// Objective Function
dexpr float TotalDuration =  sum(ci in i, cr in r, cm in m, cj in j, cs in s, cn in n, ck in k) t[ci][cr][cj][cs]*X[ci][cr][cm][cj][cs][cn][ck] + sum(ci in i, cr in r, cm in m, ck in k) u[ci][cr][cm]*Y[ci][cr][cm][ck];
minimize TotalDuration;

subject to {
    forall(ci in i, cr in r, cm in m, cj in j, cs in s, cn in n, ck in k)
    TimeConservative:
    X[ci][cr][cm][cj][cs][cn][ck] == X[ci][cr][cm][cj][cs][cm+u[ci][cr][cm]*Y[ci][cr][cm][ck] + t[ci][cr][cj][cs]][ck];
}
...