正在处理我的第一个pyomo lp,当我去加载数据时遇到了麻烦。该模型看起来不错,但随后解决该问题时,返回的是我的所有变量都是陈旧的,不会给我任何值。我有一些想法,但想获得更多想法,看看是否有人可以指出我做错了什么。下面是模型
from pyomo.environ import *
import pandas as pd
import numpy as np
from pyomo.core import *
opt = AbstractModel()
opt.PC = Set()
opt.DC = Set()
opt.costs =Param(opt.PC,opt.DC, within = NonNegativeReals)
opt.demands=Param(opt.DC, within = NonNegativeIntegers)
opt.supply= Param(opt.PC, within = NonNegativeIntegers)
opt.cases = Var(opt.PC,opt.DC,domain = NonNegativeIntegers)
def constraint1(opt,DC):
return sum(
opt.cases[i,DC]
for i in opt.PC
) == opt.demands[DC]
opt.constraintdemand = Constraint(opt.DC,rule = constraint1)
def constraint2(opt,PC):
return sum(
opt.cases[PC,j]
for j in opt.DC
) <= opt.supply[PC]
opt.constraintsupply = Constraint(opt.PC,rule = constraint2)
def ObjectiveFunction(opt):
return sum(
opt.costs[i,j] * opt.cases[i,j]
for i in opt.PC
for j in opt.DC
)
opt.Obj=Objective(rule=ObjectiveFunction)
data = DataPortal()
data.load(filename='lp.dat', set = opt.PC)
data.load(filename ='lp.dat', set = opt.DC)
data.load(filename='lp.dat', param = opt.costs)
data.load(filename='lp.dat', param = opt.demands)
data.load(filename='lp.dat', param = opt.supply)
instance = opt.create_instance(data)
instance.pprint()
以下是变量声明:
1 Var Declarations
cases : Size=288, Index=cases_index
Key : Lower : Value : Upper : Fixed : Stale : Domain
(1, 1) : 0 : None : None : False : True : NonNegativeIntegers
(1, 2) : 0 : None : None : False : True : NonNegativeIntegers
(1, 3) : 0 : None : None : False : True : NonNegativeIntegers
(1, 4) : 0 : None : None : False : True : NonNegativeIntegers
(1, 5) : 0 : None : None : False : True : NonNegativeIntegers
(1, 6) : 0 : None : None : False : True : NonNegativeIntegers
(1, 7) : 0 : None : None : False : True : NonNegativeIntegers
(1, 8) : 0 : None : None : False : True : NonNegativeIntegers
(1, 9) : 0 : None : None : False : True : NonNegativeIntegers
(1, 10) : 0 : None : None : False : True : NonNegativeIntegers
(1, 11) : 0 : None : None : False : True : NonNegativeIntegers
(1, 12) : 0 : None : None : False : True : NonNegativeIntegers
(1, 13) : 0 : None : None : False : True : NonNegativeIntegers
(1, 14) : 0 : None : None : False : True : NonNegativeIntegers
(1, 15) : 0 : None : None : False : True : NonNegativeIntegers
(1, 16) : 0 : None : None : False : True : NonNegativeIntegers
(1, 17) : 0 : None : None : False : True : NonNegativeIntegers
(1, 18) : 0 : None : None : False : True : NonNegativeIntegers
(1, 19) : 0 : None : None : False : True : NonNegativeIntegers
(1, 20) : 0 : None : None : False : True : NonNegativeIntegers
(1, 21) : 0 : None : None : False : True : NonNegativeIntegers
(1, 22) : 0 : None : None : False : True : NonNegativeIntegers
(1, 23) : 0 : None : None : False : True : NonNegativeIntegers
(1, 24) : 0 : None : None : False : True : NonNegativeIntegers
(1, 25) : 0 : None : None : False : True : NonNegativeIntegers
(1, 26) : 0 : None : None : False : True : NonNegativeIntegers
(1, 27) : 0 : None : None : False : True : NonNegativeIntegers
(1, 28) : 0 : None : None : False : True : NonNegativeIntegers
(1, 29) : 0 : None : None : False : True : NonNegativeIntegers
(1, 30) : 0 : None : None : False : True : NonNegativeIntegers
(1, 31) : 0 : None : None : False : True : NonNegativeIntegers
(1, 32) : 0 : None : None : False : True : NonNegativeIntegers
(1, 33) : 0 : None : None : False : True : NonNegativeIntegers
(1, 34) : 0 : None : None : False : True : NonNegativeIntegers
(1, 35) : 0 : None : None : False : True : NonNegativeIntegers
(1, 36) : 0 : None : None : False : True : NonNegativeIntegers
(1, 37) : 0 : None : None : False : True : NonNegativeIntegers
(1, 38) : 0 : None : None : False : True : NonNegativeIntegers
(1, 39) : 0 : None : None : False : True : NonNegativeIntegers
(1, 40) : 0 : None : None : False : True : NonNegativeIntegers
(1, 41) : 0 : None : None : False : True : NonNegativeIntegers
(1, 42) : 0 : None : None : False : True : NonNegativeIntegers
(1, 43) : 0 : None : None : False : True : NonNegativeIntegers
(1, 44) : 0 : None : None : False : True : NonNegativeIntegers
(1, 45) : 0 : None : None : False : True : NonNegativeIntegers
(1, 46) : 0 : None : None : False : True : NonNegativeIntegers
(1, 47) : 0 : None : None : False : True : NonNegativeIntegers
(1, 48) : 0 : None : None : False : True : NonNegativeIntegers
(1, 49) : 0 : None : None : False : True : NonNegativeIntegers
(1, 50) : 0 : None : None : False : True : NonNegativeIntegers
(1, 51) : 0 : None : None : False : True : NonNegativeIntegers
(1, 52) : 0 : None : None : False : True : NonNegativeIntegers
(1, 53) : 0 : None : None : False : True : NonNegativeIntegers
(1, 54) : 0 : None : None : False : True : NonNegativeIntegers
(1, 55) : 0 : None : None : False : True : NonNegativeIntegers
(1, 56) : 0 : None : None : False : True : NonNegativeIntegers
(1, 57) : 0 : None : None : False : True : NonNegativeIntegers
(1, 58) : 0 : None : None : False : True : NonNegativeIntegers
(1, 59) : 0 : None : None : False : True : NonNegativeIntegers
(1, 60) : 0 : None : None : False : True : NonNegativeIntegers
(1, 61) : 0 : None : None : False : True : NonNegativeIntegers
(1, 62) : 0 : None : None : False : True : NonNegativeIntegers
(1, 63) : 0 : None : None : False : True : NonNegativeIntegers
(1, 64) : 0 : None : None : False : True : NonNegativeIntegers
(1, 65) : 0 : None : None : False : True : NonNegativeIntegers
(1, 66) : 0 : None : None : False : True : NonNegativeIntegers
(1, 67) : 0 : None : None : False : True : NonNegativeIntegers
(1, 68) : 0 : None : None : False : True : NonNegativeIntegers
(1, 69) : 0 : None : None : False : True : NonNegativeIntegers
(1, 70) : 0 : None : None : False : True : NonNegativeIntegers
(1, 71) : 0 : None : None : False : True : NonNegativeIntegers
(1, 72) : 0 : None : None : False : True : NonNegativeIntegers
(1, 73) : 0 : None : None : False : True : NonNegativeIntegers
(1, 74) : 0 : None : None : False : True : NonNegativeIntegers
(1, 75) : 0 : None : None : False : True : NonNegativeIntegers
(1, 76) : 0 : None : None : False : True : NonNegativeIntegers
(1, 77) : 0 : None : None : False : True : NonNegativeIntegers
(1, 78) : 0 : None : None : False : True : NonNegativeIntegers
(1, 79) : 0 : None : None : False : True : NonNegativeIntegers
(1, 80) : 0 : None : None : False : True : NonNegativeIntegers
(1, 81) : 0 : None : None : False : True : NonNegativeIntegers
(1, 82) : 0 : None : None : False : True : NonNegativeIntegers
(1, 83) : 0 : None : None : False : True : NonNegativeIntegers
(1, 84) : 0 : None : None : False : True : NonNegativeIntegers
(1, 85) : 0 : None : None : False : True : NonNegativeIntegers
(1, 86) : 0 : None : None : False : True : NonNegativeIntegers
(1, 87) : 0 : None : None : False : True : NonNegativeIntegers
(1, 88) : 0 : None : None : False : True : NonNegativeIntegers
(1, 89) : 0 : None : None : False : True : NonNegativeIntegers
(1, 90) : 0 : None : None : False : True : NonNegativeIntegers
(1, 91) : 0 : None : None : False : True : NonNegativeIntegers
(1, 92) : 0 : None : None : False : True : NonNegativeIntegers
(1, 93) : 0 : None : None : False : True : NonNegativeIntegers
(1, 94) : 0 : None : None : False : True : NonNegativeIntegers
(1, 95) : 0 : None : None : False : True : NonNegativeIntegers
(1, 96) : 0 : None : None : False : True : NonNegativeIntegers
(1, 97) : 0 : None : None : False : True : NonNegativeIntegers
(1, 98) : 0 : None : None : False : True : NonNegativeIntegers
(1, 99) : 0 : None : None : False : True : NonNegativeIntegers
(1, 100) : 0 : None : None : False : True : NonNegativeIntegers
(1, 101) : 0 : None : None : False : True : NonNegativeIntegers
(1, 102) : 0 : None : None : False : True : NonNegativeIntegers
(1, 103) : 0 : None : None : False : True : NonNegativeIntegers
(1, 104) : 0 : None : None : False : True : NonNegativeIntegers
(1, 105) : 0 : None : None : False : True : NonNegativeIntegers
(1, 106) : 0 : None : None : False : True : NonNegativeIntegers
(1, 107) : 0 : None : None : False : True : NonNegativeIntegers
(1, 108) : 0 : None : None : False : True : NonNegativeIntegers
(1, 109) : 0 : None : None : False : True : NonNegativeIntegers
(1, 110) : 0 : None : None : False : True : NonNegativeIntegers
(1, 111) : 0 : None : None : False : True : NonNegativeIntegers
(1, 112) : 0 : None : None : False : True : NonNegativeIntegers
(1, 113) : 0 : None : None : False : True : NonNegativeIntegers
(1, 114) : 0 : None : None : False : True : NonNegativeIntegers
(1, 115) : 0 : None : None : False : True : NonNegativeIntegers
(1, 116) : 0 : None : None : False : True : NonNegativeIntegers
(1, 117) : 0 : None : None : False : True : NonNegativeIntegers
(1, 118) : 0 : None : None : False : True : NonNegativeIntegers
(1, 119) : 0 : None : None : False : True : NonNegativeIntegers
(1, 120) : 0 : None : None : False : True : NonNegativeIntegers
(1, 121) : 0 : None : None : False : True : NonNegativeIntegers
(1, 122) : 0 : None : None : False : True : NonNegativeIntegers
(1, 123) : 0 : None : None : False : True : NonNegativeIntegers
(1, 124) : 0 : None : None : False : True : NonNegativeIntegers
(1, 125) : 0 : None : None : False : True : NonNegativeIntegers
(1, 126) : 0 : None : None : False : True : NonNegativeIntegers
(1, 127) : 0 : None : None : False : True : NonNegativeIntegers
(1, 128) : 0 : None : None : False : True : NonNegativeIntegers
(1, 129) : 0 : None : None : False : True : NonNegativeIntegers
(1, 130) : 0 : None : None : False : True : NonNegativeIntegers
(1, 131) : 0 : None : None : False : True : NonNegativeIntegers
(1, 132) : 0 : None : None : False : True : NonNegativeIntegers
(1, 133) : 0 : None : None : False : True : NonNegativeIntegers
(1, 134) : 0 : None : None : False : True : NonNegativeIntegers
(1, 135) : 0 : None : None : False : True : NonNegativeIntegers
(1, 136) : 0 : None : None : False : True : NonNegativeIntegers
(1, 137) : 0 : None : None : False : True : NonNegativeIntegers
(1, 138) : 0 : None : None : False : True : NonNegativeIntegers
(1, 139) : 0 : None : None : False : True : NonNegativeIntegers
(1, 140) : 0 : None : None : False : True : NonNegativeIntegers
(1, 141) : 0 : None : None : False : True : NonNegativeIntegers
(1, 142) : 0 : None : None : False : True : NonNegativeIntegers
(1, 143) : 0 : None : None : False : True : NonNegativeIntegers
(1, 144) : 0 : None : None : False : True : NonNegativeIntegers
(2, 1) : 0 : None : None : False : True : NonNegativeIntegers
(2, 2) : 0 : None : None : False : True : NonNegativeIntegers
(2, 3) : 0 : None : None : False : True : NonNegativeIntegers
(2, 4) : 0 : None : None : False : True : NonNegativeIntegers
(2, 5) : 0 : None : None : False : True : NonNegativeIntegers
(2, 6) : 0 : None : None : False : True : NonNegativeIntegers
(2, 7) : 0 : None : None : False : True : NonNegativeIntegers
(2, 8) : 0 : None : None : False : True : NonNegativeIntegers
(2, 9) : 0 : None : None : False : True : NonNegativeIntegers
(2, 10) : 0 : None : None : False : True : NonNegativeIntegers
(2, 11) : 0 : None : None : False : True : NonNegativeIntegers
(2, 12) : 0 : None : None : False : True : NonNegativeIntegers
(2, 13) : 0 : None : None : False : True : NonNegativeIntegers
(2, 14) : 0 : None : None : False : True : NonNegativeIntegers
(2, 15) : 0 : None : None : False : True : NonNegativeIntegers
(2, 16) : 0 : None : None : False : True : NonNegativeIntegers
(2, 17) : 0 : None : None : False : True : NonNegativeIntegers
(2, 18) : 0 : None : None : False : True : NonNegativeIntegers
(2, 19) : 0 : None : None : False : True : NonNegativeIntegers
(2, 20) : 0 : None : None : False : True : NonNegativeIntegers
(2, 21) : 0 : None : None : False : True : NonNegativeIntegers
(2, 22) : 0 : None : None : False : True : NonNegativeIntegers
(2, 23) : 0 : None : None : False : True : NonNegativeIntegers
(2, 24) : 0 : None : None : False : True : NonNegativeIntegers
(2, 25) : 0 : None : None : False : True : NonNegativeIntegers
(2, 26) : 0 : None : None : False : True : NonNegativeIntegers
(2, 27) : 0 : None : None : False : True : NonNegativeIntegers
(2, 28) : 0 : None : None : False : True : NonNegativeIntegers
(2, 29) : 0 : None : None : False : True : NonNegativeIntegers
(2, 30) : 0 : None : None : False : True : NonNegativeIntegers
(2, 31) : 0 : None : None : False : True : NonNegativeIntegers
(2, 32) : 0 : None : None : False : True : NonNegativeIntegers
(2, 33) : 0 : None : None : False : True : NonNegativeIntegers
(2, 34) : 0 : None : None : False : True : NonNegativeIntegers
(2, 35) : 0 : None : None : False : True : NonNegativeIntegers
(2, 36) : 0 : None : None : False : True : NonNegativeIntegers
(2, 37) : 0 : None : None : False : True : NonNegativeIntegers
(2, 38) : 0 : None : None : False : True : NonNegativeIntegers
(2, 39) : 0 : None : None : False : True : NonNegativeIntegers
(2, 40) : 0 : None : None : False : True : NonNegativeIntegers
(2, 41) : 0 : None : None : False : True : NonNegativeIntegers
(2, 42) : 0 : None : None : False : True : NonNegativeIntegers
(2, 43) : 0 : None : None : False : True : NonNegativeIntegers
(2, 44) : 0 : None : None : False : True : NonNegativeIntegers
(2, 45) : 0 : None : None : False : True : NonNegativeIntegers
(2, 46) : 0 : None : None : False : True : NonNegativeIntegers
(2, 47) : 0 : None : None : False : True : NonNegativeIntegers
(2, 48) : 0 : None : None : False : True : NonNegativeIntegers
(2, 49) : 0 : None : None : False : True : NonNegativeIntegers
(2, 50) : 0 : None : None : False : True : NonNegativeIntegers
(2, 51) : 0 : None : None : False : True : NonNegativeIntegers
(2, 52) : 0 : None : None : False : True : NonNegativeIntegers
(2, 53) : 0 : None : None : False : True : NonNegativeIntegers
(2, 54) : 0 : None : None : False : True : NonNegativeIntegers
(2, 55) : 0 : None : None : False : True : NonNegativeIntegers
(2, 56) : 0 : None : None : False : True : NonNegativeIntegers
(2, 57) : 0 : None : None : False : True : NonNegativeIntegers
(2, 58) : 0 : None : None : False : True : NonNegativeIntegers
(2, 59) : 0 : None : None : False : True : NonNegativeIntegers
(2, 60) : 0 : None : None : False : True : NonNegativeIntegers
(2, 61) : 0 : None : None : False : True : NonNegativeIntegers
(2, 62) : 0 : None : None : False : True : NonNegativeIntegers
(2, 63) : 0 : None : None : False : True : NonNegativeIntegers
(2, 64) : 0 : None : None : False : True : NonNegativeIntegers
(2, 65) : 0 : None : None : False : True : NonNegativeIntegers
(2, 66) : 0 : None : None : False : True : NonNegativeIntegers
(2, 67) : 0 : None : None : False : True : NonNegativeIntegers
(2, 68) : 0 : None : None : False : True : NonNegativeIntegers
(2, 69) : 0 : None : None : False : True : NonNegativeIntegers
(2, 70) : 0 : None : None : False : True : NonNegativeIntegers
(2, 71) : 0 : None : None : False : True : NonNegativeIntegers
(2, 72) : 0 : None : None : False : True : NonNegativeIntegers
(2, 73) : 0 : None : None : False : True : NonNegativeIntegers
(2, 74) : 0 : None : None : False : True : NonNegativeIntegers
(2, 75) : 0 : None : None : False : True : NonNegativeIntegers
(2, 76) : 0 : None : None : False : True : NonNegativeIntegers
(2, 77) : 0 : None : None : False : True : NonNegativeIntegers
(2, 78) : 0 : None : None : False : True : NonNegativeIntegers
(2, 79) : 0 : None : None : False : True : NonNegativeIntegers
(2, 80) : 0 : None : None : False : True : NonNegativeIntegers
(2, 81) : 0 : None : None : False : True : NonNegativeIntegers
(2, 82) : 0 : None : None : False : True : NonNegativeIntegers
(2, 83) : 0 : None : None : False : True : NonNegativeIntegers
(2, 84) : 0 : None : None : False : True : NonNegativeIntegers
(2, 85) : 0 : None : None : False : True : NonNegativeIntegers
(2, 86) : 0 : None : None : False : True : NonNegativeIntegers
(2, 87) : 0 : None : None : False : True : NonNegativeIntegers
(2, 88) : 0 : None : None : False : True : NonNegativeIntegers
(2, 89) : 0 : None : None : False : True : NonNegativeIntegers
(2, 90) : 0 : None : None : False : True : NonNegativeIntegers
(2, 91) : 0 : None : None : False : True : NonNegativeIntegers
(2, 92) : 0 : None : None : False : True : NonNegativeIntegers
(2, 93) : 0 : None : None : False : True : NonNegativeIntegers
(2, 94) : 0 : None : None : False : True : NonNegativeIntegers
(2, 95) : 0 : None : None : False : True : NonNegativeIntegers
(2, 96) : 0 : None : None : False : True : NonNegativeIntegers
(2, 97) : 0 : None : None : False : True : NonNegativeIntegers
(2, 98) : 0 : None : None : False : True : NonNegativeIntegers
(2, 99) : 0 : None : None : False : True : NonNegativeIntegers
(2, 100) : 0 : None : None : False : True : NonNegativeIntegers
(2, 101) : 0 : None : None : False : True : NonNegativeIntegers
(2, 102) : 0 : None : None : False : True : NonNegativeIntegers
(2, 103) : 0 : None : None : False : True : NonNegativeIntegers
(2, 104) : 0 : None : None : False : True : NonNegativeIntegers
(2, 105) : 0 : None : None : False : True : NonNegativeIntegers
(2, 106) : 0 : None : None : False : True : NonNegativeIntegers
(2, 107) : 0 : None : None : False : True : NonNegativeIntegers
(2, 108) : 0 : None : None : False : True : NonNegativeIntegers
(2, 109) : 0 : None : None : False : True : NonNegativeIntegers
(2, 110) : 0 : None : None : False : True : NonNegativeIntegers
(2, 111) : 0 : None : None : False : True : NonNegativeIntegers
(2, 112) : 0 : None : None : False : True : NonNegativeIntegers
(2, 113) : 0 : None : None : False : True : NonNegativeIntegers
(2, 114) : 0 : None : None : False : True : NonNegativeIntegers
(2, 115) : 0 : None : None : False : True : NonNegativeIntegers
(2, 116) : 0 : None : None : False : True : NonNegativeIntegers
(2, 117) : 0 : None : None : False : True : NonNegativeIntegers
(2, 118) : 0 : None : None : False : True : NonNegativeIntegers
(2, 119) : 0 : None : None : False : True : NonNegativeIntegers
(2, 120) : 0 : None : None : False : True : NonNegativeIntegers
(2, 121) : 0 : None : None : False : True : NonNegativeIntegers
(2, 122) : 0 : None : None : False : True : NonNegativeIntegers
(2, 123) : 0 : None : None : False : True : NonNegativeIntegers
(2, 124) : 0 : None : None : False : True : NonNegativeIntegers
(2, 125) : 0 : None : None : False : True : NonNegativeIntegers
(2, 126) : 0 : None : None : False : True : NonNegativeIntegers
(2, 127) : 0 : None : None : False : True : NonNegativeIntegers
(2, 128) : 0 : None : None : False : True : NonNegativeIntegers
(2, 129) : 0 : None : None : False : True : NonNegativeIntegers
(2, 130) : 0 : None : None : False : True : NonNegativeIntegers
(2, 131) : 0 : None : None : False : True : NonNegativeIntegers
(2, 132) : 0 : None : None : False : True : NonNegativeIntegers
(2, 133) : 0 : None : None : False : True : NonNegativeIntegers
(2, 134) : 0 : None : None : False : True : NonNegativeIntegers
(2, 135) : 0 : None : None : False : True : NonNegativeIntegers
(2, 136) : 0 : None : None : False : True : NonNegativeIntegers
(2, 137) : 0 : None : None : False : True : NonNegativeIntegers
(2, 138) : 0 : None : None : False : True : NonNegativeIntegers
(2, 139) : 0 : None : None : False : True : NonNegativeIntegers
(2, 140) : 0 : None : None : False : True : NonNegativeIntegers
(2, 141) : 0 : None : None : False : True : NonNegativeIntegers
(2, 142) : 0 : None : None : False : True : NonNegativeIntegers
(2, 143) : 0 : None : None : False : True : NonNegativeIntegers
(2, 144) : 0 : None : None : False : True : NonNegativeIntegers
答案 0 :(得分:0)
问题是您正在组合两种解决不兼容的Pyomo模型的方法。如果您从抽象模型开始,则可以通过以下方法解决它:
DataPortal
创建一个具体的模型实例,然后通过使用SolverFactory
调用求解器来求解该模型pyomo
命令并传入定义抽象模型的Python脚本和带有数据的.dat
文件以实例化模型