2017-02-01 2 views
0

의 원인이되는 제약 조건을 인쇄, 나는 다음 오류가 있습니다Pyomo : 나는 pyomo에 ipopt 사용하고있는 오류

가 어떻게 pyomo에 오류를 발생시키는 제약 조건 이름을 인쇄 할 수 있습니다

Error evaluating constraint 15: can't compute -1.65898/0. 
halt_on_ampl_error=yes 
?

AMPL 명령처럼 뭔가 : 나는 특히 당신이 원하는 제한 조건을 식별하기 위해 매핑을 수행하는 방법을 모르는 print _sconname[15];

감사합니다, M.

답변

0

하지만 다른 옵션이 모델을 통해 이동하는 것입니다 제로에서 멀어지지 않는 변수로 나뉘는 제약을 재구성하십시오. 또한 모든 변수에 대해 좋은 초기화를 제공하거나 적어도 0 이외의 값으로 초기화해야합니다.

1

솔루션 프로세스 중에 표현식을 평가할 때 (즉, Pyomo 오류가 아님) ASL에 의해 오류가 발생합니다.

오류를보다 이해하기 쉽게 만드는 방법은 Pyomo에게 "상징적 인"레이블을 솔버에게 넘겨 줄 것을 요청하는 것입니다. 이는 효율성상의 이유로 기본적으로 비활성화되어 있습니다. 사람이 읽을 수있는 레이블을 생성하는 것은 단순히 제약 조건과 변수에 번호를 매기는 것보다 비용이 높으며 사용자는 솔버로 전송되는 원시 모델과 거의 상호 작용하지 않습니다. 당신이, 당신이 solve() 호출에서 symbolic_solver_labels=True를 설정하는 스크립트하려는 경우

pyomo solve --solver ipopt --stream-solver --symbolic-solver-labels #... 
  • : 당신이 pyomo 명령을 사용하는 경우

    • 는, 당신은 --symbolic-solver-labels 옵션을 전달할 수 있습니다

      SolverFactory('ipopt').solve(model, tee=True, symbolic_solver_labels=True) 
      
  • 관련 문제