2015-01-22 2 views
0

정수 프로그래밍 문제를 해결하기 위해 matlab GA toolbox를 사용했습니다. 문제는 몇 가지 이진 변수를 가지고 있습니다. 이진 변수에 x*(1-x) = 0과 같은 비선형 제약 조건을 사용했지만 matlab은 이러한 변수에 대한 실제 값을 출력합니다.MATLAB GA toolbox에 정수 및 이진 변수를 사용하는 방법은 무엇입니까?

또 다른 문제는 최종 해결책이 실현 가능하지 않다는 것입니다.

options = gaoptimset(options,'CreationFcn', @gacreationlinearfeasible); 

하지만 MATLAB 여전히 발생없이 가능한 솔루션 : 나는이 코드 줄을 사용했다.

친구가 동등성 대신에 부등호 제약 조건을 사용하도록 제안했지만 실패했습니다.

다음 두 가지 문제가 있습니다. 1) 이진 변수에 대한 MATLAB 말하기, 2) 실현 가능한 솔루션 생성.

내 문제는 어떻게 MATLAB GA를 사용할 수 있습니까?

+1

확실히 정수 프로그래밍 솔버를 사용하여 이진 변수를 사용할 수 있습니다. '[0,1]'과 정수 사이에 있도록 유효 범위를 제한하기 만하면됩니다. 이렇게하면 제약 조건을 효과적으로 바이너리로 적용 할 수 있습니다. – rayryeng

+0

다른 도구가 아닌 GA 도구 상자를 사용하고 싶습니다. – JalalJaberi

+0

왜 이것이 제약 조건입니까? 이유를 설명해 주시겠습니까? – rayryeng

답변

0

나는 그것이 최선의 해결책이라고 확신하지는 않지만 피트니스 기능의 패널티 계수에 대한 대체 제한 조건으로 문제를 해결했습니다.

결국, 같은 문제가있는 사람은 MATLAB 대신 GAlib (C++ 유전 라이브러리)를 시도 할 수 있습니다.

관련 문제