2015-01-20 5 views
0

비교적 큰 모델의 최적화 모델을 만들고 있습니다. 이 모델에서는 15 개의 타임 스텝을 사용 하겠지만, 지금은 테스트 할 때 4를 사용하고 있습니다. 그러나 11 단계의 시간 간격으로 원하는 모델보다 22,000 행의 변수가 여전히 인쇄됩니다. 0.AMPL + Neos 서버를 사용하여 0이 아닌 결과 만 인쇄하십시오.

누구나 이것을 지나갈 방법이 있습니까? 나는. 이 경우 NEOS 서버를 사용하는 방법은 높은 0보다

제가 테스트 한 것은 변수 이름과 해당 값을 인쇄 : 모두 omit_zero_rows 0을 사용

solve; 
option omit_zero_rows 0; (also tried 1;) 
display _varname, _var; 

; 또는 omit_zero_rows 1; 여전히 모든 결과를 인쇄, 그리고 그 높은

0보다 나는 또한 시도했다 :

solve; 
if _var > 0 then { 
     display _varname, _var; 
} 

를하지만 나에게 구문 오류를했다. NEOS 서버에 사용하는 .run 파일에서 두 가지 (또는 실제로 세 가지) 변형이 테스트되었습니다.

답변

1

나는이 문제가 더 많은 사람들이 우연히 마주 치게 될 것이라고 생각하므로이 문제에 대한 해결책을 게시하고 있습니다. 기본적으로 NEOS 서버를 사용하여 0이 아닌 값만 인쇄하려면 명령 파일 (.run 파일)을 다음과 같이 작성하십시오.

solve; 
display {j in 1.._nvars: _var[j] > 0} (_varname[j], _var[j]);