2012-09-24 5 views
0

내 솔버 목표 함수에서 내 결정 변수 시간 2.5의 한도를 초과하려고 시도하지만 foobar 변수가 두 배가 아니기 때문에 Math.Ceiling() 함수를 적용 할 수 없습니다. "용어"변수. 솔버에서 작동하는 동일한 코드를 표현할 수있는 또 다른 방법이 있습니까? S :솔버 기초 목표에서 천장 기능을 사용 하시겠습니까?

Decision foo = new Decision(Domain.IntegerNonnegative, "bar"); 
model.AddDecision(foo); 

model.AddGoal("foobar", GoalKind.Maximize, Math.Ceiling(2.5 * foobar)); 
+0

AddGoal에서'foobar'를 사용하고 있지만'Decision' 변수'foo'를 정의했습니다. –

답변

0

Model 클래스 Term 객체보다는 double에 연산을 수행하는 고정 방법의 다수를 포함한다. Math 클래스에서 사용할 수있는 작업의 전부는 아니지만 대부분을 찾을 수 있습니다.

특히 목표 기능을 Model.Ceiling으로 변경할 수 있어야합니다.

+0

Model.Ceiling 함수를 사용하면 오류가 발생합니다. '모델 유형 및 지시문에서 주어진 모델을 사용할 수있는 해결사를 찾을 수 없습니다. ' 그 점에 대한 의견이 있으십니까? – humanstory

+0

확실히 말할 수는 없지만'foo'를 정수 도메인 결정으로 설정했습니다. 'foo'를 대신 부동 소수점 결정으로 설정하면 어떻게됩니까? –