진화 적 전략은 간단하게 만들어졌습니다!
Evopy를 사용하여 파이썬에서 플로트 벡터를 쉽게 최적화하십시오.
Evopy를 사용해야하는 것은 Python 3입니다! PYPI에서 Evopy를 가져 오려면이 명령을 실행하십시오.
pip install evopy
그런 다음 다음과 같이 EvoPy 가져올 수 있습니다.
from evopy import EvoPy 미적분학의 정확한 방법을 사용하지 않고 포물선의 최적을 찾고 싶다고 가정 해 봅시다! Evopy를 사용하면 다음 두 줄을 작성하는 것만 큼 쉽습니다.
evopy = EvoPy ( lambda x : pow ( x , 2 ), 1 )
best_coordinates = evopy . run () 여기의 주요 성분은 피트니스 기능 (람다)입니다. 이것은 또한 일반적인 함수 참조 일 수 있습니다. 플로트 또는 플로트 배열을 허용하고 단일 플로트를 출력하는지 확인하십시오. 다른 성분은 첫 번째 줄의 끝에있는 1 입니다. 이것은 피트니스 기능에서 기대하는 입력의 차원입니다. best_coordinates 에는 단일 요소가있는 배열이 포함되어 있으며, 이는 기본 세대에서 알고리즘이 찾을 수있는 최고의 x 값입니다.
이전 예제가 당신에게 너무 단순 해 보이면, 우리는 또한 Rastrigin 기능과 같이 더 복잡한 2 차원 기능의 최적을 볼 수 있습니다. 우리는 이것을 작동시키기 위해 이전 코드 스 니펫에서 많이 수정할 필요가 없습니다.
evopy = EvoPy (
lambda X : 5 + sum ([( x ** 2 - 5 * np . cos ( 2 * np . pi * x )) for x in X ]),
2 ,
generations = 1000 ,
population_size = 100
)
best_coordinates = evopy . run () 첫 번째 예제와 비교할 때, 우리는보다 복잡한 피트니스 함수를 교환하고, 차원을 2 로 설정하고, 기본값보다 더 높은 생성 및 개별 수를 설정하여 최적의 시간을 찾을 수있는 알고리즘이 더 많은 시간을 주었을 때.
Evopy의 기능에 대한 자세한 정보는 문서를 살펴보십시오!
이 저장소를 복제하고 복제 된 디렉토리 내에서 모든 종속성을 가져 오십시오.
pip install -r requirements.dev.txt
모든 테스트를 다음과 같이 실행합니다.
nosetests
코드 스타일을 확인하려면 실행하십시오.
pylint evopy
코드 적용 범위를 측정하려면 실행하십시오.
nosetests --with-coverage --cover-package=evopy --cover-html --cover-branches --cover-erase