2014-03-06 6 views
0

IBM ILOG CPLEX에는 간단한 모델이 있습니다.CPLEX에서 무작위 솔루션 생성

dvar float x in 1..99; 
dvar float y in 1..99; 
dvar float z in 1..99; 
subject to 
{ 
    x + y - z == 41.3; 
} 

나는 x, yz 무작위 솔루션이 필요합니다. 그러나 나는 항상 41.3, 1, 1을 얻습니다.

잘못된 도구를 사용하고 있습니까? 또한 5 가지 무작위 솔루션이 필요합니다. 뿐만 아니라 하나. 이것을 어떻게 할 수 있습니까?

답변

0

실현 가능성 문제 (목적 함수 없음)의 경우 CPLEX는 가능한 해결책을 찾으면 종료됩니다. 모든 극단적 인 점들을 얻을 방법이 없습니다.

당신은 시도 할 수 무엇 :

  • 은 임의 원하는 경우, 무작위로 수행해야하는 다른 솔루션을 (찾을 수있는 목적 함수를 수정 객관적
  • 해결 기능 및 저장 솔루션
  • 설정 솔루션)

논리를 코딩하려면 API를 사용해야합니다. 이 아이디어는 여기에 더 자세히 설명되어 있습니다. http://orinanobworld.blogspot.de/2013/02/finding-multiple-extreme-rays.html

그러나 문제는 복잡합니다. I는 다음과 같이 간단하게 할 것 :

  • 세트 Z를 임의로
  • 계산 X + Y = Z + 41.3
  • 0과 1 사이의 난수 R을 선택
  • X = (X + Y) * y = (x + y) * (1-r)