2012-12-25 4 views
0

경험적 인간 데이터와 6 파라미터인지 모델의 시뮬레이션 데이터 사이의 손실 함수를 최소화하려고합니다. 모델이 매우 시끄 럽습니다. 모델은 PYTHON으로 프로그래밍됩니다.심플 렉스와 유전 알고리즘으로 잡음이 심한 6 파라미터 함수 최소화 - 파이썬 언어

표준 방법은 단방향 검색을 사용하는 것입니다. 그러나 심플 렉스는 초기 추측에 크게 의존하며 로컬 최소값을 캡처하는 위험이 높습니다. 그래서 나는 두 가지 질문을 가지고 있습니다 :

1) 유전자 알고리즘을 먼저 전역 최소 위치의 대략적인 위치를 검색하는 데 사용할 수 없는지 궁금합니다. 그리고 그 결과를 단방향 검색의 시작점으로 사용하십시오. 좋은 생각이라면 누군가 파이썬으로 적절한 유전자 알고리즘을 잘 구현하는지 알고 있는가?

2) 심플 렉스 검색에 어떤 반사, 확장 및 수축 상수를 사용해야합니까?

도움을 주시면 감사하겠습니다.

건배, 매트

답변

3

함수가 매우 잡음이 때문에는, 몇 가지 크기가 있고 진화 알고리즘을 시도 할 열려있다, 나는 실제로 공분산 행렬 적응 진화 전략하여 심플 렉스 최적화 과정을 대체 할 추천 할 것입니다.

알고리즘은 블랙 박스 최적화 커뮤니티에 의해 50 차원 아래의 복잡한 문제에 대해 가장 효율적인 것으로 인식됩니다. 그것의 저자에 의해 세부 사항에서 기술된다 : here.

저자는 알고리즘 구현을 Python here으로 제공합니다. 진화 알고리즘 프레임 워크 DEAP은 Python에서 CMA-ES를 구현하고 사용법이 다른 다양한 예제를 제공합니다 (면책 조항, 나는 DEAP의 주요 개발자 중 하나입니다).