Как добавить дополнительную двоичную переменную с CPLEX и Python? - PullRequest
0 голосов
/ 21 ноября 2019

У меня проблема целочисленного программирования с переменной решения X_i_j_k_t, равной 1, если задание i было назначено работнику j на день k и смену t. Я максимизирую выгоду от назначения заказов своим работникам. У меня есть дополнительная двоичная переменная Y_i_k_t, которая равна 1, если задание было выполнено, и заданному дню и смене (задания могут потребовать более одного работника). Как я могу добавить эту переменную в CPLEX? Чтобы сформировать, например, sum(i, k, t)(Y_i_k_t) <= 1 (заказ не может быть выполнен более одного раза).

Заранее спасибо

1 Ответ

1 голос
/ 21 ноября 2019

Вы не сказали, используете ли вы CPLEX Python API или docplex. Но в любом случае вы можете вызывать функции, которые создают переменные несколько раз.

Поэтому в CPLEX Python API снова вызовите Cplex.variables.add(), чтобы добавить другой набор переменных.

В docplex просто вызовитеModel.binary_var_dict() (или любой другой метод, который вы использовали для создания X) снова для переменных Y.

...