2012-07-20 3 views
0

내가왜 간단한 인스턴스에서 lp_solve가 실패합니까?

/* Objective function */ 
min: +x; 

/* Constraints */ 
+2046853249 x +2046853248 y +c = 0; 
+1954481150 x +1954481149 y +c = 0; 
R3: +x >= 1; 

/* Variable bounds */ 
-10000 <= x <= 10000; 
-10000 <= y <= 10000; 
-10000 <= c <= 10000; 

/* Integer definitions */ 
int x,y,c; 

이 어려운 인스턴스가 표시되지 않습니다-해결 LP으로 다음과 같은 경우를 해결하기 위해 노력하고있어,하지만 LP는-해결하는 것은 그것을 해결하기 위해 실패합니다. lp-solve 문서에 대한 나의 이해는 솔버가 실제로 인스턴스를 정규 lp로 풀기 시작하고 w.r.t. 정수 정의로. 이 경우 lp-solution이 정확해야합니다.

누군가가 왜 이것이 작동하지 않는지 통찰력을 줄 수 있습니까? 특히이 같은 인스턴스를 신속하게 해결할 수있는 "트릭"이 있습니까?

답변

0

나는 lp_solve의 개발자들과 대화를 나누었습니다. 문제의 이유는 lp_solve가 내부적으로 double 유형의 변수를 사용하고 큰 정수를 처리하기에 충분한 정확도를 제공하지 않기 때문입니다.

lp_solve를 사용하는 시스템을 해결할 수없는 것으로 보입니다. 나 같은 비슷한 문제가 발생하면 아마 다른 도구를 검색 할 것입니다.