Pernahkah Anda menemui hambatan dalam eksperimen komputasi Anda? Apakah Anda lelah memilih parameter yang sesuai untuk teknik yang dipilih? Jika ya, Opytimizer adalah solusinya! Paket ini menyediakan implementasi optimasi meta-heuristik yang mudah dilakukan. Dari agen hingga ruang pencarian, dari fungsi internal hingga komunikasi eksternal, kami akan mendorong semua penelitian terkait pengoptimalan barang.
Gunakan Opytimizer jika Anda memerlukan perpustakaan atau ingin:
Baca dokumen di opytimizer.readthedocs.io.
Pengoptimal kompatibel dengan: Python 3.6+ .
Jika Anda menggunakan Opytimizer untuk memenuhi kebutuhan Anda, harap sebutkan kami:
@misc { rosa2019opytimizer ,
title = { Opytimizer: A Nature-Inspired Python Optimizer } ,
author = { Gustavo H. de Rosa, Douglas Rodrigues and João P. Papa } ,
year = { 2019 } ,
eprint = { 1912.13002 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.NE }
}
Pertama. Kami punya contoh. Ya, mereka dikomentari. Cukup telusuri examples/
, pilih subpaket Anda, dan ikuti contohnya. Kami memiliki contoh tingkat tinggi untuk sebagian besar tugas yang dapat kami pikirkan dan integrasi luar biasa (Learnergy, NALP, OPFython, PyTorch, Scikit-Learn, Tensorflow).
Alternatifnya, jika Anda ingin mempelajari lebih lanjut, silakan luangkan waktu sebentar:
Pengoptimal didasarkan pada struktur berikut, dan Anda harus memperhatikan pohonnya:
- opytimizer
- core
- agent
- block
- cell
- function
- node
- optimizer
- space
- functions
- constrained
- multi_objective
- math
- distribution
- general
- hyper
- random
- optimizers
- boolean
- evolutionary
- misc
- population
- science
- social
- swarm
- spaces
- boolean
- graph
- grid
- hyper_complex
- pareto
- search
- tree
- utils
- callback
- constant
- exception
- history
- logging
- visualization
- convergence
- surface
Inti adalah intinya. Pada dasarnya, ini adalah induk dari segalanya. Anda harus menemukan kelas induk yang mendefinisikan dasar struktur kita. Mereka harus menyediakan variabel dan metode yang akan membantu membangun modul lainnya.
Daripada menggunakan fungsi mentah dan langsung, mengapa tidak mencoba modul ini? Tulis fungsi abstrak tingkat tinggi atau bahkan ide berbasis fungsi baru untuk memecahkan masalah Anda. Perhatikan bahwa untuk saat ini, kami hanya akan mendukung strategi fungsi multi-tujuan.
Hanya karena kita menghitung sesuatu bukan berarti kita tidak membutuhkan matematika. Matematika adalah paket matematika yang berisi implementasi matematika tingkat rendah. Dari nomor acak hingga pembuatan distribusi, Anda dapat menemukan kebutuhan Anda di modul ini.
Inilah sebabnya kami disebut Pengoptimal. Ini adalah inti dari heuristik, di mana Anda dapat menemukan sejumlah besar meta-heuristik, teknik pengoptimalan, apa pun yang bisa disebut pengoptimal. Silakan lihat pengoptimal yang tersedia.
Ruang dapat dilihat sebagai tempat agen memperbarui posisi mereka dan mengevaluasi fungsi kebugaran. Namun, pendekatan terbaru mungkin mempertimbangkan jenis ruang yang berbeda. Memikirkan hal tersebut, kami dengan senang hati mendukung penerapan ruang yang beragam.
Ini adalah paket utilitas. Hal-hal umum yang dibagikan di seluruh aplikasi harus diterapkan di sini. Lebih baik menerapkan sekali dan menggunakan sesuai keinginan daripada menerapkan kembali hal yang sama berulang kali.
Setiap orang membutuhkan gambar dan plot untuk membantu memvisualisasikan apa yang terjadi, bukan? Paket ini akan menyediakan setiap metode terkait visual untuk Anda. Periksa konvergensi variabel tertentu, konvergensi fungsi kebugaran Anda, plot permukaan fungsi benchmark, dan banyak lagi!
Kami percaya bahwa segala sesuatunya harus mudah. Tidak rumit atau menakutkan, Opytimizer akan menjadi paket praktis yang Anda perlukan, mulai dari instalasi pertama hingga kebutuhan implementasi tugas sehari-hari. Jika Anda dapat menjalankan yang berikut ini di lingkungan Python yang paling Anda sukai (mentah, conda, virtualenv, apa pun):
pip install opytimizer
Alternatifnya, jika Anda lebih suka menginstal versi terbaru, klon repositori ini dan gunakan:
pip install -e .
Perlu diperhatikan bahwa terkadang, diperlukan implementasi tambahan. Jika diperlukan, dari sini, Andalah yang akan mengetahui semua detailnya.
Tidak diperlukan perintah tambahan khusus.
Tidak diperlukan perintah tambahan khusus.
Tidak diperlukan perintah tambahan khusus.
Lihatlah contoh kerja cepat dari Opytimizer. Perhatikan bahwa kami tidak memberikan banyak argumen tambahan atau informasi tambahan ke prosedur. Untuk contoh yang lebih kompleks, silakan periksa folder examples/
kami.
import numpy as np
from opytimizer import Opytimizer
from opytimizer . core import Function
from opytimizer . optimizers . swarm import PSO
from opytimizer . spaces import SearchSpace
def sphere ( x ):
return np . sum ( x ** 2 )
n_agents = 20
n_variables = 2
lower_bound = [ - 10 , - 10 ]
upper_bound = [ 10 , 10 ]
space = SearchSpace ( n_agents , n_variables , lower_bound , upper_bound )
optimizer = PSO ()
function = Function ( sphere )
opt = Opytimizer ( space , optimizer , function )
opt . start ( n_iterations = 1000 )
Kami tahu bahwa kami telah melakukan yang terbaik, namun tidak dapat dihindari untuk mengakui bahwa kami melakukan kesalahan. Jika Anda perlu melaporkan bug, laporkan masalah, bicaralah dengan kami, silakan lakukan! Kami akan tersedia dalam kondisi terbaik kami di repositori ini.