저는 fmin_cobyla 함수를 사용하여 Scipy Optimize를 사용 중입니다.FMIN_COBYLA에 대한 제약 함수 (scipy optimize)
- 모든 항목을 확인 모든 항목> = 0
사람이 있습니까 통찰력을 1
def w_constraint(w, v, x0, x1):
return np.sum(w) - 1
함수의 경계는 물론입니다.
하지만 이들은 구획에서 작동하지 않습니다.
저는 fmin_cobyla 함수를 사용하여 Scipy Optimize를 사용 중입니다.FMIN_COBYLA에 대한 제약 함수 (scipy optimize)
사람이 있습니까 통찰력을 1
def w_constraint(w, v, x0, x1):
return np.sum(w) - 1
함수의 경계는 물론입니다.
하지만 이들은 구획에서 작동하지 않습니다.
불평등 쌍으로 평등을 공식화하십시오. 의미 :
x >= y
x <= y
= -x >= -y
물론이 수치 문제를 (해결 자 많은 종류의 상처) 소개 할 수 있습니다,하지만 난 보았다
x == y
하면된다 이것은 COBYLA 인터페이스의 여러 구현에서 (equality-constraint support implem 그런 유혹). NLopt의 문서에서 주석 :
(기본이 COBYLA 코드는 불평등 제약을 지원하는 평등 제약은 자동으로이 알고리즘의 경우 원인이없는 것 같다 불평등 제약의 쌍으로 변환됩니다. 문제가됩니다.)
감사합니다. @ 사샤; 나는 scipy에 매우 익숙하다. 제약 조건 함수에서 반환해야하는 것을 작성하겠습니까? –
@GuilhermeNazarethdeSuza 문서를 확인하십시오. 그들은 그렇게 나쁘지 않습니다. 심지어 예제를 포함하여. (그리고 항상 기억 : "이 작동하지 않았다"는 유용한 오류 메시지가 아닙니다!) – sascha
"모든 항목의 합은 1입니다."는 동등 제약 조건입니다. ['fmin_cobyla'] (https://docs.scipy.org/doc/scipy/reference/generated/scipy.optimize.fmin_cobyla.html)는 동등 제약 조건을 처리하지 않습니다. –
감사합니다. @WarrenWeckesser, 그들이 0보다 큰지 확인하도록 도와 줄 수 있습니까? –