Strategi evolusioner dibuat sederhana!
Gunakan Evopi untuk dengan mudah mengoptimalkan vektor pelampung di Python.
Yang Anda butuhkan untuk menggunakan Evopi adalah Python 3! Jalankan perintah ini untuk mengambil evopy dari pypi:
pip install evopy
Maka Anda dapat mengimpor EvoPy seperti ini:
from evopy import EvoPy Katakanlah kami ingin menemukan optimal parabola, tanpa menggunakan metode yang tepat dari kalkulus! Dengan Evopi, ini semudah menulis dua baris berikut:
evopy = EvoPy ( lambda x : pow ( x , 2 ), 1 )
best_coordinates = evopy . run () Bahan utama di sini adalah fungsi kebugaran (lambda). Ini juga bisa menjadi referensi fungsi normal, cukup pastikan bahwa ia menerima float atau array pelampung dan mengeluarkan satu pelampung. Bahan lainnya adalah 1 di akhir baris pertama: ini adalah dimensi input yang Anda harapkan dalam fungsi kebugaran Anda. best_coordinates akan berisi array dengan satu elemen, yang merupakan nilai x terbaik yang dapat ditemukan algoritma dalam jumlah generasi default.
Jika contoh sebelumnya tampak terlalu sederhana bagi Anda, kami juga dapat melihat fungsi yang lebih kompleks, dua dimensi, seperti fungsi Rastrigin. Kami tidak perlu memodifikasi banyak di cuplikan kode kami sebelumnya untuk membuat ini berfungsi:
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 () Dibandingkan dengan contoh pertama, kami telah menukar fungsi kebugaran untuk yang lebih kompleks, mengatur dimensi ke 2 , dan memberikan algoritma lebih banyak waktu untuk menemukan optimal dengan mengatur generasi yang lebih tinggi dan jumlah individu daripada default.
Untuk informasi yang lebih rinci tentang fungsi Evopi, lihat dokumen!
Kloning repositori ini dan ambil semua dependensi dari dalam direktori yang dikloning:
pip install -r requirements.dev.txt
Jalankan semua tes dengan:
nosetests
Untuk memeriksa gaya kode Anda, jalankan:
pylint evopy
Untuk mengukur cakupan kode Anda, jalankan:
nosetests --with-coverage --cover-package=evopy --cover-html --cover-branches --cover-erase