簡體   English   中英

通過 pyomo 為 Baron 求解器設置優先級分支

[英]Setting priority branching through pyomo for Baron solver

我在 Python 中將 Pyomo 與 MINLP 求解器“BARON”一起使用。 我已經實現了讓它運行並通過 pyomo 將選項(例如 maxTime)傳遞給求解器。

在 baron 手冊中,他們解釋了在 pyomo 中設置分支選項的選項:“分支優先級(可選):可以使用關鍵字 BRANCHING PRIORITIES 提供分支優先級。這些參數的默認值設置為 1。變量違規乘以選擇分支變量之前用戶提供的優先級。示例分支優先級部分如下: BRANCHING_PRIORITIES{ x3: 10; x5: 0; }"

我如何通過 pyomo 實現它,因為我無法通過solver.option[x1]=1設置它?

Pyomo 在線文檔 5.1.1 指的是后綴和與 AMPL 的接口,用於設置一般分支的優先級。 我還不了解后綴,如果能幫助我在代碼中包含哪些行以設置某個變量的優先級,我將不勝感激。

提前致謝。

這可能來得有點晚,但希望可以幫助其他面臨同樣問題的人。 我從 Pyomo 源代碼中的測試文件中找到了這個。 我用直接 BARON shell 測試了它並且它有效。

import pyomo.environ as pe

m = pe.ConcreteModel()

m.y = pe.Var()
m.x = pe.Var()

m.priority = pe.Suffix(direction=pe.Suffix.EXPORT)
m.priority[m.y] = 2
m.priority[m.x] = 1

...

暫無
暫無

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

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