CMA-ES/pycma

Python implementation of CMA-ES

해결하는 문제

pycma는 공분산 행렬 적응 진화 전략(CMA-ES)의 파이썬 구현체로, 무작위적이고 도함수를 필요로 하지 않는 수치 최적화 알고리즘입니다. 비볼록, 악조건, 다모달, 거친, 또는 노이즈가 있는 최적화 문제를 연속 및 혼합 정수 탐색 공간 모두에서 해결하도록 설계되었습니다.

작동 방식

이 라이브러리는 목적 함수의 최적 해를 도함수 정보 없이 찾을 수 있는 도구를 제공합니다. 여러 복잡한 현실 세계의 제약 조건을 처리할 수 있습니다:

  • 경계 제약: bounds 옵션 또는 전용 BoundDomainTransform 래퍼를 통해 관리.
  • 선형 및 비선형 제약: fmin2 또는 fmin_con2 함수의 특정 인수를 통해 처리.
  • 노이즈: noise_handler를 통해 노이즈 환경에서의 안정성을 유지.
  • 혼합 정수 문제: integer_variables 인덱스 리스트를 통해 정수 변수를 지원.

대상 사용자

전통적인 기울기 기반 방법이 실패하거나 목적 함수가 '블랙박스'인 복잡한 수학 함수의 최적화가 필요한 연구자 및 엔지니어를 위한 것입니다.

주요 특징

  • 도함수 없음: 도함수를 필요로 하지 않아 거친 또는 노이즈 있는 환경에 적합합니다.
  • 혼합 정수 지원: 연속 변수와 정수 변수를 동시에 최적화할 수 있습니다.
  • 제약 조건 처리: 경계, 선형, 비선형 제약 조건에 내장된 지원 기능이 있습니다.
  • 유연한 인터페이스: 고수준의 fmin 인터페이스와 사용자 정의 제어에 적합한 저수준의 ask-and-tell 인터페이스를 모두 제공합니다.
  • 병렬 처리: OOOptimizer의 n_jobs 매개변수를 통해 병렬 실행을 지원합니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트