Error when solving mixed complementarity model

落花浮王杯 提交于 2019-12-24 02:05:32

问题


Using the PATH solver directly, i fail to solve the problem presented below. The original problem was sourced from https://prod.sandia.gov/techlib-noauth/access-control.cgi/2015/155584.pdf , which seems to claim the problem was solved. Using a nonlinear formation it is possible to solve.

Whether this is a versioning issues in pyomo or PATH, it is difficult to tell. I am running pyomo 5.5.x and pathampl sourced from http://pages.cs.wisc.edu/~ferris/path.html

from 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()

Corresponding error message:

 *** 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

回答1:


In the absence of someone writing a better answer, you might try using SolverFactory('mpec_nlp').solve(model) to see what happens.

If you enjoy reading *.nl files, you can also model.write('tmp.nl') to see what is generated via the AMPL interface.




回答2:


As per Bethany Nicholson's post above, using PATH 4.7.04 will solve the problem. For some reason 4.7.01 returns an error.

Qi Chen's reply will solve the problem, but does not use PATH.



来源:https://stackoverflow.com/questions/51853047/error-when-solving-mixed-complementarity-model

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!