在某些情况下,尤其是在处理非常大的模型,我们可以观察到显著增加内存消耗当检索属性在Python中优化后的解决方案。内存增加可以远远大于相应的属性数组的大小。
这种效果甚至可以更可见如果模型不但是在本地解决远程服务器(Gurobi即时云计算服务器),消耗更少的内存时在客户端机器上。
这个内存增加的原因是,一些Python对象用于处理模型必须首先创建存储查询属性。之前那些Python对象可能不会存在,例如,如果模型从文件读取和解决没有任何进一步的修改:
进口gurobipy全科医生
模型= gp.read (“model.mps”)
model.optimize ()
# Python对象创建之前解决方案可以检索值
值= model.getAttr (“X”model.getVars ())
第三方优化库经常工作:他们在他们自己的数据结构创建模型,编写一个文件在一个标准化的建模格式,再读它在与solver-specific api。手机万博登录
如果一个人只对解决方案信息感兴趣,有解决方案,以避免延迟创建Python对象,在下面讨论。
编写解决方案文件
而不是在Python对象存储解决方案,解决方案可以值直接写一个文件:
model.write (“solution.sol”)
以JSON格式检索解决方案信息
此外,解决方案信息查询JSON格式:
json_string = model.getJSONSolution ()
生成的文本字符串需要解析,例如,与Python包json。这种方法的好处是,字符串包含更多的信息不仅仅是解决方案价值,看到JSON格式的描述。
评论
0评论
请登录留下你的评论。