blognya komarudin bin sayuti

blognya komarudin bin sayuti header image 2

Optimasi kontinyu dengan Particle Swarm Optimization (PSO)

February 22nd, 2012 · 9 Comments

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 diketahui memiliki metode penyelesaian yang 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). Tiap-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 optimal. Selain itu, banyak modifikasi dan varians yang bisa dirancang untuk PSO ini.

Skema dari PSO dapat digambarkan pada gambar di bawah ini:

Salah satu contoh permasalahan optimasi nonlinear sederhana adalah permasalahan Rosenbrock. Permasalahan ini adalah mencari nilai dari dua variable sehingga dapat meminimumkan fungsi:

\(\)

$$f(x,y) = (1-x)^2 + 100(y-x^2)^2$$

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

Baca_Saya

 

Image diambil dari:

http://en.wikipedia.org/wiki/File:Rosenbrock_function.svg

 

Update 18 Oktober 2014:

Beberapa rekan-rekan ada yg menanyakan algoritma differential evolution (DE).

Berikut template yg menggunakan DE:

DE_optimasi_kontinyu

Print Friendly, PDF & Email

Tags: Metaheuristics · Optimization

9 responses so far ↓

  • 1 masdel // Feb 22, 2012 at 8:34 pm

    salam, ada source codenya pak?

  • 2 Komarudin // Feb 22, 2012 at 9:43 pm

    Wa’alaikumsalam. Ada om, buat masdel apa sih yg enggak. jawabannya: banyak. wekeke…

  • 3 Achmad Zakki Falani // Feb 23, 2012 at 11:05 pm

    boleh juga ne artikelnya gan…mantabs

  • 4 Penjual pepaya dan simulasi monte carlo // Feb 28, 2012 at 1:31 pm

    […] menghassilkan nilai minimum dari fungsi tujuannya. template ini adalah gabungan dari template PSO dari sini dan template library random number dari […]

  • 5 lemonnine // Mar 1, 2012 at 12:08 pm

    Artikel-nya sangat bermanfaat,
    soalnya masih sedikit yang membahas tentang PSO.

  • 6 abu abdirrohman // Apr 20, 2012 at 12:47 pm

    afwan bisa ga minta alamt fesbuknya, ana tertarik dg pembahasan masalh PSO. pengin belajar nih soalny baru bagi ane yg ga berkecimpung dibidang yg akhirny sy akan ingin pelajari

  • 7 Komarudin // Apr 20, 2012 at 3:29 pm

    afwan akhi, ana belum punya akun fesbuk. Silakan kita berdiskusi di sini atau melalui email yg saya sertakan di halaman ‘About’

  • 8 Erny // Aug 26, 2013 at 7:18 am

    Assalamu’alaykum,afwan mau tanya contoh simulasi excel dia atas bisa gak dipake untuk masalah optimasi penyusunan barang dlm peti kemas??
    algoritmanya sama pake algoritma PSO jg..
    Mhn bantuannya..

  • 9 andri // Nov 3, 2018 at 7:50 pm

    maaf pak, untul source code vbanya di passsword ya?