Sebagai orang yang hidup di lingkungan fakultas teknik, saya sering membaca atau mendengar rekan-rekan saya menghadapi permasalahan optimasi nonlinear kontinyu. Seperti namanya, permasalahan ini memiliki tiga karakteristik, yakni optimasi, nonlinear dan kontinyu. Kata 'optimasi' mengisyaratkan bahwa kita diminta untuk mencari nilai dari variabel-variabel tertentu sehingga suatu fungsi tujuan dapat mencapai nilai minimumnya. Kata 'nonlinear' memberi faidah bahwasanya di sana bisa terdapat hubungan atau batasan antara variabel-variabel yang bersifat nonlinear. Selain itu, fungsi tujuan juga bisa bersifat nonlinear. Sedangkan kata 'kontinyu' menjelaskan bahwa variabel-variabel tersebut adalah bagian dari angka-angka real.
Beberapa contoh persoalan yang memenuhi kriteria di atas diantaranya:
- design optimization, yakni mencari spesifikasi desain, ukuran maupun bahan yang dapat memenuhi fungsi tertentu sekaligus meminimumkan biaya. Contoh konkritnya adalah, desain struktur bangunan, rangka mobil, dll.
- Model predictive control, yakni mencari parameter-parameter yang optimal dalam mengoperasikan suatu mesin, peralatan atau sistem. Misalnya adalah optimasi parameter-parameter turbin pembangkit listrik.
- data fitting, yakni mencari model matematis terbaik yang dapat menggambarkan data observasi
- optimasi portofolio, yakni mencari alokasi investasi yang optimal untuk beberapa aset dalam rangka memaksimumkan keuntungan dan meminimumkan resiko.
Terkadang permasalahan jenis ini bisa sangat sulit diselesaikan, dikarenakan beberapa hal berikut:
- Tidak semua persoalan nonlinear memiliki solusi eksak
- Ruang solusi (solution space) dapat bersifat diskontinyu pada daerah tertentu sehingga menyulitkan algoritma pencarian melakukan iterasi pencarian solusi
- Permasalahan bersifat real-time yang terkadang menyisakan sedikit waktu komputasi untuk menyelesaikannya
Untuk menyelesaikan permasalahan-permasalahan ini, kami menerapkan particle swarm optimization (PSO) dalam Ms Excel. Template berikut ini ditujukan terutama untuk menyelesaikan permasalahan optimasi yang bersifat kontinyu, nonlinear dan unconstrained. Template ini juga bisa mengakomodasi constrained problems apabila pengguna memasukkan constraints penalty ke dalam fungsi tujuannya.
PSO adalah suatu algoritma metaheuristik yang melakukan pencarian solusi meniru perilaku swarm (kumpulan kawanan makhluk hidup, contohnya burung). Tia-tiap makhluk hidup (selanjutnya disebut particle) akan disebar di ruang solusi secara acak yang uniform. Kemudian setiap particle akan berusaha berpindah posisi untuk mencari posisi lain yang dapat menghasilkan fungsi tujuan yang lebih baik. Setiap pergerakan particle akan dipandu oleh dua hal, posisi terbaik yang pernah ditempati particle tsb dan posisi terbaik yang pernah ditemui oleh seluruh particle. Sehingga, particle-particle tersebut akan bekerja sama dalam mencari solusi optimail. Selain itu, banyak modifikasi dan varians yang bisa dirancang untuk PSO ini.
Salah satu contoh permasalahan optimasi nonlinear sederhana adalah permasalahan Rosenbrock. Permasalahan ini adalah mencari nilai dari dua variable sehingga dapat meminimumkan fungsi:
Fungsi tujuan di atas akan memiliki tipologi solusi sebagai berikut:
Persoalan Rosenbrock dan contoh lainnya kami terapkan dalam file excel berikut:
PSO_optimasi_kontinyu_01_Eggcrate
PSO_optimasi_kontinyu_02_Rosenbrock
PSO_optimasi_kontinyu_03_DeJong
PSO_optimasi_kontinyu_04_Alpine
PSO_optimasi_kontinyu_05_tripod
Diambil dari:
http://staff.blog.ui.ac.id/komarudin74/2012/02/22/optimasi-kontinyu-dengan-particle-swarm-optimization-pso/
0 komentar:
Speak up your mind
Tell us what you're thinking... !