Используя gurobipy , я могу написать свою первичную проблему с помощью model.write () . Я также знаю, что могу рассчитать двойные с помощью m.getattr ("pi", m.getconsts ()) . Теперь мне любопытно, если вместо того, чтобы записывать двойную модель вручную в коде, если можно легко генерировать двойной LP и записать ее в файл, как мы записываем первичную проблему в файл .lp . Вот какой -то игрушечный код, с которым я пытаюсь сделать это, не стесняйтесь проверять его на досуге: < /p>
import gurobipy as gp
import os
from gurobipy import GRB
def write_to_file(model, filestring):
directory = os.getcwd()
filename = directory+filestring
model.write(filename)
nodes = ['s', 'a', 'b', 'c', 'd', 'e','t']
orig = 's'
dest = 't'
arcs, capacity = gp.multidict({
('s', 'a') : 1,
('a', 'b') : 3,
('b', 'a') : 2,
('c', 'e') : 4,
('s', 'b') : 4,
('a', 'd') : 4,
('b', 'd') : 3,
('d', 't') : 9,
('s', 'c') : 6,
('b', 'e') : 1,
('e', 't') : 4
})
m = gp.Model("Rec4")
# add our variables
flow = m.addVars(arcs, name = "flow")
# cannot go over capacity
m.addConstrs(
(flow.sum(i,j) 0:
print('%s -> %s: %g' % (i, j, solution[i, j]))
write_to_file(m, "//test.lp")
########################################################################
# Dual problem
duals = m.getAttr("Pi", m.getConstrs())
print(duals)
Подробнее здесь: https://stackoverflow.com/questions/665 ... em-to-file
Python Gurobi - напишите двойную проблему для подачи ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение