1주일 넘게 안되던 거 겨우 해결했다.ㅠㅠ
지난번 주제 잘 안됐던것까지 합치면 한 1달은 넘었을지도ㅡㅡ
1. 대학교 이메일로 요청하면 유료 solver인 MOSEK solver를 받을 수 있다.
default solver인 SDPT3보다 훨씬 빠름!
2. 만약 MOSEK으로 구한답과 SDPT3 답이 다르다면, 그건 어딘가 잘못된것. 특히 너무작거나 큰숫자조심 ㅠㅠ
나같은 경우에는 scale이 10^(-13) 이여서 문제였다.
처음에는 자연로그 씌우면 -50 근처라서 문제 없을줄 알았는데, 일주일 내내 눈씻구 찾아봐도 다른곳이 틀린 게 없엇다ㅠ
이상한건 MOSEK이 더 뛰어난 solver라고 알고 있었는데 MOSEK은 자꾸 fail 뜨고 SDPT3는 solved 라고 떠서 더 당황;
친구한테 물어보다가 혹시나 해서 objective function에 10^10 곱해서 구해봤더니 된다.ㅠㅠ
두 solver에서 같은답이 나왔어ㅠㅠㅠㅠ
드디어 UL는 해결했고, DL도 문제였다..... 에휴.
3. Tensor라고 못푸는건 아니다.
홈페이지에도 된다고 적혀는 있지만,,,
나같은경우는 4차원 행렬을 만들어썼었는데 =_= 그것도 처음엔 의심을 샀다.
이거때메 안되나. ...
그래서 나중에는 모든 변수를 수작업으로 다 바꿔가며 확인을 했다.
게중엔 틀렸던 것도 있고...
근데 결과적으로는 tensor 사용해도됨.
그래도 한번쯤 확인작업은 할만한듯.
4. summation 할때 주의하기
CVX를 쓰게되면 sum 함수를 쓰기 곤란할 때가 가끔있다.
a = a+ b; 같이 계속 쌓아가며 더해줄때,
가장 간단하지만 a=0이 선언이 되었는지 잘 봐야함. iteration 마다.
CVX_begin 후의 expression 같은경우는 0이라고 선언해주지않아도 매번 0이라고 놓고 시작해서 괜찮음.
5. inequality constraint 너무 믿지말기
실제로는 equality constraint 나 inequality constraint나 둘다 같은 결과를 준다지만,,, CVX프로그램은 아닐때가있음.
이틀동안 안풀리던거 등호로 바꾸니 그냥 자동해결됨.........ㅠㅠ
6. 이러니저러니해도 CVX가 없었으면 난 이걸 못풀겠지...... ㄳ.....
'과거폴더 > -' 카테고리의 다른 글
12/23 (1) | 2015.12.23 |
---|---|
20151216 오늘의 생각 (2) | 2015.12.16 |