我想知道当我在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))
我解决了问题,我有三本字典:
Station_Size, Admission and Return
我知道解决方案可以访问:
Station_Size[i,t].X, Admission[i,j,t].X and Return[i,j,t].X
我想创建三个Numpy数组:
Array_Station_Size[i,t] = Station_Size[i,t].X
Array_Admission[i,j,t] = Admission[i,j,t].X
我绝对可以通过创建三个循环并按元素创建Numpy Array元素来实现。如果循环不花费很多时间,它是可行的。但我只是想知道是否有更好的方法来做到这一点。如果我没有说清楚,请发表评论。
答案 0 :(得分:1)
我想出了这个问题。
执行以下操作:
Array_Station_Size = np.array()
Array_Station_Size[i,] = [Station_Size[i,t].X for t in rang(T)]
答案 1 :(得分:1)
假设模型名称为MongoClientURI connectionString = new MongoClientURI("mongodb://localhost:27017");
MongoClient mongoClient = new MongoClient(connectionString);
CodecRegistry pojoCodecRegistry = org.bson.codecs.configuration.CodecRegistries.fromRegistries(MongoClientSettings.getDefaultCodecRegistry(), org.bson.codecs.configuration.CodecRegistries.fromProviders(PojoCodecProvider.builder().automatic(true).build()));
MongoDatabase database = mongoClient.getDatabase("testdb").withCodecRegistry(pojoCodecRegistry);
,请执行以下操作:
.button{
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* Internet Explorer - Edge */
user-select: none; /* Chrome and Opera */
}
现在是gurobipy.tupledict。 在这里查看gurobi doc http://www.gurobi.com/documentation/8.1/quickstart_windows/py_results.html