Создание бинарных переменных с множественными индексами в gurobi - PullRequest
0 голосов
/ 01 февраля 2020

Я довольно новичок в Python и Гуроби. Я хочу добавить двоичную переменную для нескольких «измерений»:

A = [1,2,3,4]
B = [1,2,3,4]
C = [1,2,3,4,5]
D = [1,2,3]

Мне нужна двоичная переменная x с индексами A, B, C, D.

Я не уверен как использовать команду:

m.addVars()

1 Ответ

0 голосов
/ 02 февраля 2020

Вот как вы создаете переменные из заданного списка индексов:

import gurobipy as gp

A = [1,2,3,4]
model = gp.Model()
variables = model.addVars(A, name='A', vtype='B')

После вызова model.update() вы видите следующие имена / типы переменных:

{1: <gurobi.Var A[1]>,
 2: <gurobi.Var A[2]>,
 3: <gurobi.Var A[3]>,
 4: <gurobi.Var A[4]>}

Это также объяснено в документации . Вы просто повторяете этот процесс для других списков B, C и D.

EDIT

Другая альтернатива - объединить все индексы в одну переменную. Структура выглядит следующим образом:

A = [1,2,3,4]
B = [1,2]
C = [1,2,3]
model = gp.Model()
variables = model.addVars(A, B, C, vtype='B')

Вы бы получили доступ к этим переменным следующим образом:

variables[1,2,1]
...