簡體   English   中英

通過 docplex 打印雙 model

[英]Print the dual model via docplex

我開發了一個線性程序,並通過 docplex 在 Python 中實現了它。 我想知道如何使用 docplex 打印雙 model? 我看過其他編程語言的類似帖子,但我找不到 docplex 的相關討論。

如何使用 java 從 Cplex 導出雙 model?

我將通過外部調用從 python 使用 cplex 命令行。

如果我使用動物園示例

import os

from docplex.mp.model import Model

mdl = Model(name='buses')
nbbus40 = mdl.continuous_var(name='nbBus40')
nbbus30 = mdl.continuous_var(name='nbBus30')
mdl.add_constraint(nbbus40*40 + nbbus30*30 >= 300, 'kids')
mdl.minimize(nbbus40*500 + nbbus30*400)

mdl.solve(log_output=True,)

mdl.export("buses.lp")



for v in mdl.iter_continuous_vars():
    print(v," = ",v.solution_value)

os.system("cplex -c \"read buses.lp\" \"write buses.dua\"")

然后在 bus.dua 我得到

NAME          buses.lp.dual
ROWS
 N  rhs     
 G  nbBus40 
 G  nbBus30 
COLUMNS
    kids      rhs                          -300
    kids      nbBus40                       -40
    kids      nbBus30                       -30
RHS
    obj       nbBus40                      -500
    obj       nbBus30                      -400
ENDATA

注意:如果我寫的是.mps,那么我會得到

NAME          buses.lp
ROWS
 N  obj     
 G  kids    
COLUMNS
    nbBus40   obj                           500
    nbBus40   kids                           40
    nbBus30   obj                           400
    nbBus30   kids                           30
RHS
    rhs       kids                          300
ENDATA

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM