SciML/BlackBoxOptim.jl
Black-box optimization for Julia
해결하는 문제
BlackBoxOptim.jl은 함수의 도함수(기울기)를 알지 못해도 함수의 전역 최소값 또는 최대값을 찾는 방법을 제공합니다. 이는 함수가 너무 복잡하거나 미분이 불가능하거나 알려지지 않은 "블랙박스" 문제에서 전통적인 기울기 기반 최적화가 불가능할 때 필수적입니다.
작동 방식
이 패키지는 최적해를 찾기 위해 탐색 공간을 탐색하는 다양한 (메타)휴리스틱 및 확률적 알고리즘을 구현합니다. 단일 목적 최적화(최적의 값을 하나 찾기)와 다중 목적 최적화(파레토 경계라고 알려진 최적의 트레이드오프 집합을 찾기)를 모두 지원합니다.
포함된 주요 알고리즘 패밀리는 다음과 같습니다:
- 차분 진화(DE): 고차원에 잘 스케일링되는 강력한 최적화 방법.
- 자연 진화 전략(NES): 확률적 탐색 방법.
- 직접 탐색: 좌표 탐색 및 확률적 강하를 포함.
- BorgMOEA: 다중 목적 문제에 특화된 알고리즘.
대상 사용자
복잡한 함수를 최적화해야 하며, 함수가 미분이 불가능하거나 전통적인 결정론적 알고리즘이 실패하는 경우에 Julia를 사용하는 연구자 및 개발자에게 적합합니다.
주요 특징
- 기울기 필요 없음: 평가 가능한 임의의 함수에서 작동합니다.
- 다중 목적 지원: BorgMOEA 알고리즘을 사용하여 여러 경쟁적인 목표를 동시에 최적화할 수 있습니다.
- 병렬 평가 지원: 계산 비용이 큰 함수의 최적화를 가속화하기 위해 멀티스레드 및 병렬 실행을 지원합니다.
- 유연한 구성: 사용자가 탐색 범위, 초기 후보 점, 시간 또는 평가 예산을 지정할 수 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트