Как использовать индикаторное ограничение в Java с помощью API Cplex? - PullRequest
1 голос
/ 28 апреля 2020

Я строю модель, используя Java и Cplex, в моей модели мне нужно вставить ограничение индикатора. В модели есть узлы, которые обозначены i, j из набора узлов 'N'. Моя двоичная переменная решения - X [] [], а другая непрерывная переменная - Q []. Мне нужно добавить ограничение, например: model.add (Q [j]> = Q [i] - d [j], если X [i] [j] == 1). Здесь d [j] является константой для узла 'j'. Я ищу пример, чтобы сделать это, используя Java API и Cplex

1 Ответ

2 голосов
/ 28 апреля 2020

Вы можете добавить ограничение индикатора, используя ifThen . Например (эта строка кода не проверена, но вы должны понять):

cplex.add(cplex.ifThen(cplex.eq(X[i][j], 1.0), cplex.ge(Q[j], Q[i] - d[j])));

См. Примеры FixNet.java, FoodManufact.java и Diet.java, которые включаются при установке CPLEX для больше.

...