2012-07-04 4 views
1

MathProg에서 겉으로보기에는 간단한 모델로 고민하고 있습니다.MathProg (GLPK)에서 "도메인 외"오류가 발생했습니다.

set W; 
set V; 

param b {W, V} binary; 
param p; 

var w {j in W} <= 0, >= 1; 

minimize obj: 0; 

subject to within_radius_of {i in V}: 
    sum {j in W} b[i,j] * w[j] >= 1; 

subject to p_limit: 
    sum {j in W} w[j] <= p; 

end; 

내가 그것을 실행하면, 그것은 나에게 오류 feasibility.glp:11: b[v1,w1] out of domain을 제공 : 다음과 같은 모델입니다. 나는 무엇이 잘못되었는지 전혀 모른다. 나에게 이상한 점은, 관련 라인을 b[j,i]으로 변경하면 똑같은 오류가 계속 나타납니다 (예상했던대로 b[w1,v1]이 아님).

저는 신중하게 AMPL Diet Example을 검사했는데, 제 모델의 관련 부분에는 아무런 차이가 없지만 여전히 작동하지 않습니다. 뭐가 잘못 되었 니?

답변

0

매개 변수 b이 그래서는 값 0 또는 당신은 데이터 파일을 제공하지 않은 1 걸릴 수 있습니다 binary로 선언하지만, 오류 메시지가 b에 대한 데이터 도메인의 상태임을 알 수있다 (안 0 또는 1) 예 :

data; 
set W := w1; 
set V := v1; 
param b := w1 v1 0.5; 

AMPL이 경우의 상세한 오류 메시지를 제공 :

error processing param b['w1','v1']: 
    failed check: param b['w1','v1'] = 0.5 
     is not binary (0 or 1); 

이 경우에 중요하지 않은 인덱스의 순서 b의 데이터가 선택되어 있는지되는 이유 완성하다 모델이 실제로 인스턴스화되기 전에. 따라서 w1v1은 데이터 파일에서 교체 될 수 있습니다.

관련 문제