주메뉴 바로가기 본문 바로가기 하단 바로가기

고객지원

기술문의

CPLEX에서 branch & bound 관련...

  • 김동근
  • 2002.10.21
  • 조회수 1,907
CPLEX 7.0를 사용하고 있는 사용자입니다.

변수가 0 or 1 만 가지는 binary 변수여서, branch & bound를 binary option을 주고 실행시키는데..

그 결과값을 출력해보면..
-9.67108e-016 같이, 0에 가깝지만, 0은 아닌 수가 나옵니다.

branch & bound가 각 변수에 대해 0과 1 두가지를 내려서 그 중에 하나를 선택하는 방식일텐데.. 어떻게 이런 값이 나오는지..

제가 무슨 실수를 해서 그런건지.. 궁금하네요..

그럼.. 답변 부탁드립니다..

댓글 1

  • 소경철2002-10-21


    말씀하신 대로, MIP 문제이기 때문에, 변수의 값이 정확하게 0과 1로 결정되어야 합니다.

    하지만, 내부적으로 계산이 진행되면서 아주 작은 오차가 발생할 수도 있거든요...

    따라서, 이 문제와 같이 변수의 결정된 값을 비교하여 어떤 일을 수행하는 경우, 허용오차값(보통 1.0e-6 정도)을 이용하여 비교를 하시는게 더 안정적입니다.

    즉, if (X == 0) { ... } 이 아니라, if (X < 1.0e-6) { ... } 으로 하시는게 더 안정적이라는 거죠..^^


    도움이 되셨기를 바랍니다.
    아이콘삭제

댓글 입력