Я хочу добавить ограничения в мою модель Cplex, которая гарантирует, что куча массивов попарно отличается. То есть как минимум одна запись должна отличаться от двух.
(Чтобы уточнить: IloNumVarArray h представляет матрицу nxm, и ограничения должны гарантировать, что нет двух одинаковых строк)
В моем коде ниже есть две ошибки (по крайней мере), которые я не могу кажется, чтобы решить: - Во-первых, «нет подходящей функции преобразования из IloNumVar в IloNum»,
- Во-вторых, нельзя использовать оператор! = Для сравнения IloNumArrays.
IloNumVarArray h(env, n*m);
IloNumArray temp1(env, m);
IloNumArray temp2(env, m);
for (int i = 0; i < n - 1; i++) {
temp1.clear();
temp2.clear();
for (int k = 0; k < n - i; k++)
for (int j = 0; j < m; j++) {
temp1[j] = h[j + i * m];
temp2[j] = h[j + (i + k) * m];
}
model.add(temp1 != temp2);
}
Так как я могу изменить temp1 и temp2 такие, что можно скопировать из h и сравнить два?
(или сделать это совсем по-другому)
Я новичок в Cplex и буду признателен за любую помощь / предложения