我想知道,当我在Gurobi中定义多维变量时,如何提取解的所有值并根据变量的原始坐标将它们组织到Numpy数组中。
我使用 Python API 在 Gurobi 中定义了以下决策变量:
for i in range(N):
for t in range(M):
Station_Size[i,t] = m.addVar(ub=Q, name = 'Station_Size_%s_%s' %(i,t))
for j in range(N):
Admission[i,j,t] = m.addVar(ub = Arrival_Rate[t,i,j], obj=-1, name = 'Admission_Rate_%s_%s_%s' %(i,j,t))
Return[i,j,t] = m.addVar(name = 'Return_Rate_%s_%s_%s' %(i,j,t))
Run Code Online (Sandbox Code Playgroud)
我已经解决了问题,我有三本字典:
Station_Size, Admission and Return
Run Code Online (Sandbox Code Playgroud)
我知道解决方案可以通过以下方式访问:
Station_Size[i,t].X, Admission[i,j,t].X and Return[i,j,t].X
Run Code Online (Sandbox Code Playgroud)
我想创建三个 Numpy 数组:
Array_Station_Size[i,t] = Station_Size[i,t].X
Array_Admission[i,j,t] = Admission[i,j,t].X
Run Code Online (Sandbox Code Playgroud)
我绝对可以通过创建三个循环并逐个元素创建 Numpy 数组来做到这一点。如果循环不需要很长时间,这是可行的。但我只是想知道是否有更好的方法来做到这一点。如果我没有说清楚,请评论。