直接使用PATH解算器,我无法解决以下问题。原始问题来自https://prod.sandia.gov/techlib-noauth/access-control.cgi/2015/155584.pdf,似乎声称问题已解决。使用非线性形式可以解决。
这是否是pyomo或PATH中的版本控制问题,很难分辨。 我正在运行pyomo 5.5.x和来自http://pages.cs.wisc.edu/~ferris/path.html
的pathamplfrom pyomo.environ import *
from pyomo.mpec import *
model = ConcreteModel()
model.x1 = Var()
model.x2 = Var()
model.x3 = Var()
model.f1 = Complementarity(expr=complements(model.x1 >= 0,model.x1 + 2*model.x2 + 3*model.x3 >= 1))
model.f2 = Complementarity(expr=complements(model.x2 >= 0,model.x2 - model.x3 >= -1))
model.f3 = Complementarity(expr=complements(model.x3 >= 0,model.x1 + model.x2 >= -1))
from pyomo.opt import SolverFactory
opt = SolverFactory("pathampl")
results = opt.solve(model, load_solutions=True, tee=True)
#sends results to stdout
results.write()
相应的错误消息:
*** EXIT - infeasible.
Major Iterations. . . . 0
Minor Iterations. . . . 0
Restarts. . . . . . . . 0
Crash Iterations. . . . 0
Gradient Steps. . . . . 0
Function Evaluations. . 0
Gradient Evaluations. . 0
Basis Time. . . . . . . 0.000000
Total Time. . . . . . . 0.000000
Residual. . . . . . . . inf
WARNING: Loading a SolverResults object with a warning status into
model=unknown;
message from solver=Path 4.7.01\x3a Infeasible.; 0 iterations (0 for
crash); 0 pivots.; 0 function, 0 gradient evaluations.
# ==========================================================
# = Solver Results =
# ==========================================================
# ----------------------------------------------------------
# Problem Information
# ----------------------------------------------------------
Problem:
- Lower bound: -inf
Upper bound: inf
Number of objectives: 1
Number of constraints: 0
Number of variables: 6
Sense: unknown
# ----------------------------------------------------------
# Solver Information
# ----------------------------------------------------------
Solver:
- Status: warning
Message: Path 4.7.01\x3a Infeasible.; 0 iterations (0 for crash); 0 pivots.; 0 function, 0 gradient evaluations.
Termination condition: infeasible
Id: 201
Error rc: 0
Time: 0.37000012397766113
# ----------------------------------------------------------
# Solution Information
# ----------------------------------------------------------
Solution:
- number of solutions: 0
number of solutions displayed: 0
Displaying Solution
答案 0 :(得分:1)
在没有人写出更好答案的情况下,您可以尝试使用SolverFactory('mpec_nlp').solve(model)
来查看会发生什么。
如果您喜欢阅读*.nl
文件,也可以model.write('tmp.nl')
查看通过AMPL界面生成的内容。
答案 1 :(得分:0)
根据上述Bethany Nicholson的帖子,使用PATH 4.7.04将解决此问题。由于某些原因4.7.01返回错误。
Qi Chen的答复将解决问题,但不使用PATH。