2011-04-11 4 views
1

Matlab의 fmincon을 사용하여 2 개의 벡터 사이의 l2 표준 인 목적 함수를 최적화했습니다. 최적화 될 벡터와 다른 어떤 constance 벡터 사이의 또 다른 12 표준 인 부등식 제약이있다. 그래서 기본적으로 매개 변수의 수는 제가 12 감에서 최소화하려고하는이 벡터의 크기입니다.Fmincon의 메모리가 부족합니다.

|| M * s - s || _2 s.t. M은 상수 행렬이고, t는 상수 벡터이고, ε은 상수이다.

그래서 지금 내 문제는 거대하다는 것입니다. 그것은 어디서나 400에서 20000 개의 변수를 가질 수 있습니다. 이제 fmincon은 내부적으로 행렬을 저장할 때 메모리가 부족합니다. 이 문제를 해결할 방법이 있습니까?

감사합니다.

답변

0

fmincon을 실행할 때 옵션 집합을 추가하는 것을 고려해야합니다.

OPTI = optimset('MaxIter',1000) 

또는 모든 optimization options 체크 아웃 : 그렇게, optimset 봐. 다음

get_val = fmincon(... , OPTI) 

그건 당신이 코드 정말 내 문제가 해결되지 않는

0

를 게시해야 작동하지 않을 경우

. 나는 사용자가 제공 한 "스파 스 (sparse)"헤센 행렬을 전달할 필요가 있음을 깨달았습니다. (초기에는 유한 차분에 의한 근사치 인 헤센에 대한 기본 설정을 사용했습니다.) 그리고 일단 그렇게하면 나는 내 기억이 부족하게되었습니다. 그러나 어쨌든 고마워!

관련 문제