2013-03-07 6 views
0

Apache Commons Math 라이브러리에 제공된 Simplex 메소드를 사용하여 다음과 같은 선형 프로그래밍 문제를 해결하려고합니다. 나는 작동하지 않으며 API 문서가 제한적이라는 것을 알게됩니다. 벡터 s0부터 출발 Apache Commons 수학 상한 및 하한이있는 SimplexSolver?

문제

, s의 용액 결정 : f가 벡터 인

| min f' * s 
| s 
| 
| s.t. s_l <= s <= s_u 

, s_ls_u 각각 s의 하부 및 상부 경계이다 .

이 문제는 Matlab에서 linprog(f, [], [], [], [], s_l, s_u, s0, options) 명령을 사용하여 쉽게 해결할 수 있으며 Java에서 동일하게 수행하고 싶습니다. Apache Commons Math를 사용하는 것이 좋습니다.

SimplexSolver는

나는 여기에 아파치 코 몬즈 수학 SimplexSolver 유사한 설명을 사용하는 것을 시도했다 : http://google-opensource.blogspot.se/2009/06/introducing-apache-commons-math.html

을하지만 내 경계 s_ls_u를 정의하는 심 수 없습니다 내가 제공해야 이 방법을 사용하여 LinearConstraint (나는 가지고 있지 않다).

그렇게 할 수 있으십니까?

답변

0

바로 가기가 있는지 확실하지 않지만 실제적으로 상한 및 하한은 단지 2 개의 선형 제약입니다.

첫 번째 변수가 하한 (제약 조건 1)의 첫 번째 요소보다 크고 상한의 첫 번째 요소 (제약 조건 2)보다 작은 지 확인하십시오.

그런 다음 두 번째 변수가 ....인지 확인하십시오.

글쓰기가 힘들지 만 제대로하기가 어렵지 않습니다.