Algoritma PSO (Particle Swarm Optimization) 84


Algoritma PSO (Particle Swarm Optimization) adalah salah satu algoritma optimasi yang dapat digunakan untuk pengambilan keputusan. Tetapi bisa juga digunakan untuk pencarian jalur. Contoh yang dibahas kali ini adalah mengenai pencarian posisi dengan pengembalian nilai fungsi minimal. .
Particle Swarm Optimization adalah teknik optimasi dengan cara menghitung secara terus menerus calon solusi dengan menggunakan suatu acuan kualitas. Algoritma ini mengoptimasi permasalahan dengan cara menggerakan partikel / calon solusi di dalam ruang permasalahan menggunakan fungsi tertentu untuk posisi dan kecepatan dari partikel. Pergerakan partikel dipengaruhi oleh solusi terbaik partikel tersebut, dan solusi terbaik secara umum yang didapatkan dari partikel lain. Sekumpulan partikel ini dinamakan swarm, dan pada akhirnya swarm ini akan bergerak menuju kepada solusi terbaik.
Salah satu pengembangan algoritma ini adalah algoritma MSO (Multi Swarm Optimization), dimana digunakan lebih dari 1 swarm untuk menyelesaikan permasalahan.



Diasumsikan ada sebaran titik 3 dimensi, yaitu dimensi x, y, z
Masing-masing dimensi memiliki sebuah konstanta dan batas rentang titik yang dapat digunakan
Contoh data pada masing-masing dimensi adalah sebagai berikut

Dimensi konstanta batas minimal batas maksimal
x 3.2 10 50
y 3 30 80
z 2.5 50 150

Contoh data awal adalah sebagai berikut:

Nilai fungsi yang diketahui adalah dengan rumus f(x, y, z) = (kx * x^2) + (ky * y^2) + (kz * z^2)
Tentukan posisi dimana fungsi tersebut mengembalikan nilai minimal
Dengan batasan nilai bahwa x + y + z harus bernilai 210



Sebelum masuk kedalam langkah-langkah pembahasan algoritma, ada beberapa konstanta atau parameter yang harus diketahui, yaitu:
* Tentukan dimensi permasalahan
Diasumsikan dalam kasus ini, dimensi bernilai 3 karena ada 3 dimensi yang akan dicari solusinya

* Tentukan jumlah partikel yang digunakan dalam perhitungan
Diasumsikan dalam kasus ini, jumlah partikel yang digunakan adalah 10 partikel

* Tentukan jumlah iterasi yang digunakan oleh setiap partikel untuk melakukan proses
Diasumsikan dalam kasus ini, jumlah iterasi yang digunakan adalah 100 kali

* Tentukan total posisi yang harus dicapai
Semua solusi yang ditemukan oleh masing-masing individu harus berjumlah sebanyak variabel ini
Diasumsikan dalam kasus ini, total nilai yang harus dicapai adalah 210

* Tentukan batas kecepatan untuk perpindahan posisi partikel dalam setiap proses
Diasumsikan dalam kasus ini nilai minimal dan nilai maksimal adalah 10% dari masing-masing batas nilai pada tiap-tiap dimensi
Sebagai contoh kasus, apabila nilai minimal dan maksimal dari sebuah dimensi adalah 10 dan 50,
Maka nilai minimalnya adalah -(50-10)/10 = -4, dan nilai maksimalnya adalah (50-10)/10 = 4


Langkah-langkah penggunaan algoritma ini adalah

1. Lakukan Inisialisasi data pada masing-masing partikel

1a. Inisialisasi semua posisi partikel awal dengan posisi acak
Setiap dimensi memiliki batas minimal dan maksimal sendiri-sendiri, sesuai pada isian parameter data

1b. Perlu diingat bahwa jumlah posisi diatas belum tentu sesuai dengan parameter totalPosisi
Oleh karena itu, lakukan penyesuaian posisi agar jumlah posisi selalu bernilai sama dengan parameter totalPosisi

1c. Inisialisasi nilai kecepatan semua partikel awal dengan nilai kecepatan acak

1d. Hitung nilai fitness dari posisi acak tersebut
Karena tujuan permasalahan adalah mencari nilai minimal, maka semakin rendah nilai fungsi akan semakin baik
Penjelasan lebih detail tentang fungsi ini dapat dilihat pada penjelasan skrip dibawah ini

* Gunakan fungsi ini untuk menghitung nilai fitness pada masing-masing partikel
Rumus yang digunakan adalah sesuai dengan rumus yang sudah ditentukan, yaitu
f(x, y, z) = (kx * x^2) + (ky * y^2) + (kz * z^2)

1e. Lakukan pengecekan nilai fitness,
Jika nilai fitness ini lebih baik dari nilai fitness umum, maka ambil posisi acak ini sebagai posisi terbaik umum

2. Tentukan bobot inertia (w), bobot kognitif (c1), dan bobot sosial (c2)
Nilai acuan untuk masing-masing variabel dapat dilihat di http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=00870279
Diasumsikan dalam kasus ini, nilai bobot tersebut akan mengikuti nilai acuan yang sudah ada

3. Lakukan proses pencarian posisi terbaik sebanyak jumlah perulangan (poin 3a – 3f)

3a. Lakukan perulangan untuk setiap partikel
Cari kecepatan perpindahan posisi yang baru dengan rumus:
v baru = (w * v skrg) + (c1 * r1 * (posisi terbaik – posisi skrg)) + (c2 * r2 * (posisi umum terbaik – posisi skrg))
Jika kecepatan yang baru ternyata diluar batas minKecepatan dan maksKecepatan pada masing-masing dimensi, maka kembalikan nilainya agar masuk dalam batas kecepatan

3b. Lakukan update posisi yang baru dengan cara posisi lama + kecepatan baru
Jika posisi yang baru ternyata diluar batas variabel minX dan maksX (0 – 5), maka kembalikan posisinya agar masuk dalam batas

3c. Sama seperti perhitungan sebelumnya, jumlah posisi yang baru belum tentu sesuai dengan parameter totalPosisi
Oleh karena itu, lakukan penyesuaian posisi agar jumlah posisi selalu bernilai sama dengan parameter totalPosisi

3d. Hitung nilai fitness untuk posisi yang baru

3e. Jika nilai fitness baru lebih baik dari nilai fitness sebelumnya, maka ambil posisi yang baru sebagai posisi terbaik partikel tersebut

3f. Jika nilai fitness baru ternyata lebih baik dari nilai fitness umum, maka ambil posisi yang baru sebagai posisi terbaik secara umum

* Agar dapat menjalankan skrip diatas, maka diperlukan sebuah Class Partikel untuk menampung semua data partikel beserta posisi, kecepatan dan nilai fitnessnya. Deklarasi Class Partikel adalah sebagai berikut:


Hasil akhir adalah: (klik untuk perbesar gambar)

cmd25b


Contoh modul / source code dalam bahasa VB (Visual Basic) dapat didownload disini:



Jika membutuhkan jasa kami dalam pembuatan program, keterangan selanjutnya dapat dilihat di Fasilitas dan Harga
Jika ada yang kurang paham dengan langkah-langkah algoritma diatas, silahkan berikan komentar Anda.
Selamat mencoba.


Tinggalkan sebuah komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

84 pemikiran di “Algoritma PSO (Particle Swarm Optimization)

    • pip Penulis

      Rumus menentukan fitness nya bebas tergantung kebutuhan, sehingga tidak ada sumber tertentu untuk menentukan rumus yang sedang dipakai.

      Pada contoh ini saya menggunakan rumus f(x, y, z) = (kx * x^2) + (ky * y^2) + (kz * z^2), rumus ini juga buatan saya sendiri, bukan rumus yang sudah ada penelitiannya. Sehingga dapat anda ganti menyesuaikan dengan contoh kasus yang sedang anda miliki.

    • pip Penulis

      Menurut saya, Algoritma PSO (Particle Swarm Optimization) ini sudah cukup sulit, dan Algoritma FIS (Fuzzy Inference System) juga cukup sulit, sehingga sebaiknya digunakan secara terpisah untuk meminimalkan tingkat kesulitan yang ada.

      Tetapi kedua algoritma tersebut tetap bisa digabung. PSO digunakan untuk mencari bobot pada masing-masing kriteria. Nilai bobot terbaik kemudian diterapkan pada masing-masing data awal untuk menjadi input data dalam menggunakan Fuzzy. Setelah semua data dinormalisasi menggunakan bobot, maka fungsi keanggotaan dapat diterapkan dengan menggunakan rentang data normalisasi tersebut.

      Algoritma FIS (Fuzzy Inference System) yang sudah saya bahas pada website ini ada 3 macam, yaitu tipe Mamdani, tipe Sugeno, dan tipe Tsukamoto. Saya menyarankan agar menggunakan tipe Tsukamoto saja karena tipe ini yang paling mudah penerapannya dibandingkan tipe lainnya.

    • pip Penulis

      Contoh kasus yang diterapkan pada pos ini terinspirasi dari contoh kasus efisiensi pembangkit tenaga listrik. Ada 3 pembangkit tenaga listrik, dan masing-masing memiliki koefisien beban, batas minimal dan batas maksimal beban yang diperbolehkan. Tujuan utama adalah bagaimana cara agar ketiga pembangkit listrik ini dapat memenuhi kuota permintaan listrik dengan tepat (tidak kurang dan tidak lebih dari kuota), dan tidak melebihi batas beban dari masing-masing pembangkit listrik, tetapi dengan biaya yang paling murah. Rumus untuk menentukan biaya pada pos ini dihitung dengan f(x, y, z) = (kx * x^2) + (ky * y^2) + (kz * z^2), karena rumus yang sebenarnya tidak semudah itu, jadi rumus tersebut digunakan untuk mempermudah perhitungan saja.

      • Darma Arif

        maaf mau tanya , untuk optimasi pembangkit dengan 3 unit pembangkitan , apakah fungsi yang di masukkan ke fun = @(x)(x-[4,2]).^2 adalah fungsi gabungan dari ketiga fungsi unit?

        • pip Penulis

          Jika maksud anda adalah 3 variabel maka contoh jawabannya adalah sesuai fungsi yang saya jelaskan diatas
          f(x, y, z) = (kx * x^2) + (ky * y^2) + (kz * z^2)

          Jika bukan ini maksud anda, maka silahkan anda jelaskan terlebih dahulu maksud dari

          optimasi pembangkit dengan 3 unit pembangkitan

    • pip Penulis

      Mengenai Algoritma SVR sudah saya bahas pada algoritma tersendiri, dan dapat anda lihat pada disini. Dalam pembahasan tersebut, fungsi kernel yang digunakan adalah fungsi kernel Spline, tetapi dapat anda ubah menyesuaikan kasus yang anda hadapi. Dan saya rasa fungsi kernel ditentukan diluar dari konteks algoritma optimasi yang digunakan, sehingga tidak berhubungan secara langsung dengan algoritma PSO.

      • Feri Dwi Saputro

        fungsi kernel yang ingin sy pakai untuk penelitian adalah gaussian RBF, PSO dikatakan untuk optimasi dalam pemilihan parameter (C,epsilon) dalam model svr pada beberapa jurnal…..tp sy msh bingung gmn cr nerapinnya,

        • pip Penulis

          Jika demikian, maka langkah selanjutnya adalah tinggal mengganti fungsi kernel yang sudah ada dengan fungsi kernel Gaussian yang anda inginkan.

          Tapi setahu saya, sesuai pembahasan pada halaman ini), parameter c, r1, dan r2 nilainya sudah fix mengikuti acuan, dan epsilon adalah nilai minimal untuk terminasi perulangan, sehingga kedua paramter tersebut bukan merupakan tujuan utama dari optimasi. Optimasi dilakukan pada data-data tertentu yang dapat dihitung menggunakan fungsi tertentu (dalam kasus anda berarti fungsi kernel gaussian).

        • pip Penulis

          Dalam jurnal yang terdapat pada link tersebut, dijelaskan bahwa PSO digunakan untuk mencari nilai C, Epsilon, dan Lambda terbaik, dan ketiga parameter ini kemudian digunakan sebagai input parameter dalam melakukan prediksi data menggunakan SVR dengan fungsi kernel Gaussian.

          Langkah pertama adalah melakukan PSO sesuai dengan pembahasan pada halaman ini dengan menggunakan 3 nilai input (C, Epsilon, dan Lambda), dan perhitungan tersebut akan menghasilkan 3 macam nilai (mirip seperti pembahasan ini yang juga menghasilkan 3 macam nilai). Kemudian 3 nilai ini akan dijadikan sebagai parameter (C, Epsilon, dan Lambda) untuk melakukan pelatihan data dengan menggunakan SVR, dan pembahasan algoritma tersebut dapat anda lihat disini. Hasil pelatihan SVR kemudian digunakan untuk memprediksi data baru.

        • Feri Dwi Saputro

          fungsi SVR nya kl dalam code gmn yah ? atau bisakah anda mengajarkan perhitungan manual dengan fungsi SVR ?

        • pip Penulis

          Jika melihat kasus anda sebelumnya, maka anda sepertinya memerlukan implementasi fungsi kernel Gaussian. Pada pembahasan Algoritma SVR, anda dapat mengganti fungsi kernel Spline yang terdapat pada skrip tersebut dengan fungsi kernel Gaussian, yaitu:
          fungsiKernel = @(x,y) exp(-lambda*norm(x.feature-y.feature,2)^2);
          dengan nilai lambda adalah menggunakan hasil perhitungan pada algoritma PSO.

          Selanjutnya adalah melakukan langkah-langkah yang sudah saya jelaskan pada komentar sebelumnya.

          Untuk menjawab pertanyaan anda, fungsi SVR sudah ada pada contoh skrip pada pembahasan Algoritma SVR tersebut, Silahkan unduh contoh skrip yang tersedia untuk melakukan uji coba.

  • Tika

    Bagaimana membuat gui matlab dengan algoritma Particle Swarm Optimization? dalam hal ini apakah gui tersebut bisa berjalan kalau program matlab untuk algoritma PSO nya paralel?

    • pip Penulis

      Sebagai jawaban singkat: tentu saja proses algoritma pada program bisa dilakukan secara paralel.

      Yang ingin saya tanyakan, mengapa anda membutuhkan program yang prosesnya dilakukan secara paralel? Proses paralel membutuhkan teknik perhitungan yang lebih rumit dan ada kemungkinan terjadi kesalahan pada saat proses perhitungan dilakukan secara paralel. Teknik ini sangat tidak saya anjurkan agar tidak mempersulit pengerjaan atas kasus yang anda hadapi.

      • Tika

        saya membuatnya paralel karena input untuk m.filenya berupa argument yang berebntuk fungsi seperti x(1)+x(2)+4x(3)<=15 yang membentuk fungsi objektif dan kendalanya seperti yg saya lihat pada contoh sbb https://www.researchgate.net/publication/297245624_Particle_Swarm_Optimization_Algorithm_and_its_Codes_in_MATLAB tapi begitu dibuat GUI nya dengan matlab timbul error karena input arguments nya tidak bisa diproses. Apakah ada solusinya? kira kira bagaimana baiknya?

        • pip Penulis

          Saya sudah melihat dokumen pada tautan yang dimaksud, dan setelah melihat figure 2 dan potongan skrip, maka menurut saya tidak ada proses yang dilakukan secara paralel. Sepertinya pemahaman anda tentang “paralel” berbeda dengan pemahaman saya. Jika anda melihat pada potongan skrip, maka poin 4.2 “main program file” tidak membutuhkan argumen fungsi, karena semua parameter sudah dideklarasikan dalam file tersebut. Anda hanya perlu menyesuaikan isi variabel UB dan LB sebagai batasan dari masing-masing dimensi yang diperlukan sesuai dengan kasus yang anda hadapi.

    • pip Penulis

      Tentu saja kedua algoritma tersebut bisa digunakan, tetapi saya harus mempelajari dulu sistem yang anda miliki. Silahkan coba diceritakan lebih detail untuk memudahkan saya menganalisa.

        • Jaime

          udah saya kirim via email pak. saya saat ini sedang melakukan penelitian optimasi untuk meningkatkan keandalan pada penyulang menggunakan metode kombinasi fuzzy dengan PSO. dan masih binggung soal alur analisisnya pak bisa tolong bantu? makasih sebelumnya

  • Awaluddin Dongoran

    Maaf gan, saya mau tanya tentang optimasi PSO terhadap LVQ (Learning vector Quatization). kira-kira fungsi tujuannya apa ya.?
    Klo menurut saya bobot awal LVQ yang akan dioptimalisasi sehingga pada saat dilatih dan diuji akurasi nya tinggi dalam pengenalan pola klasifikasi. Tetapi saya bingung bikin fungsi objektifnya.
    Mohon pencerahannya. TerimaKasih.

    • pip Penulis

      Jika anda ingin menggabungkan algoritma ini dengan algoritma lain, tentunya anda sudah memiliki referensi jurnal sebagai panduan. Dalam jurnal tersebut seharusnya sudah dibahas mengenai semua kondisi yang digunakan dalam penggabungan algoritma tersebut, termasuk salah satunya adalah mengenai fungsi obyektif. Selanjutnya anda hanya perlu mengimplementasikan fungsi obyektif sesuai panduan jurnal tersebut.

      • awaluddin dongoran

        Iya gan, itulah masalahnya,referensi sy minim. Mana again bisa kasih refernsi yg mirip dgn masalah sy. Terima kasih.

        • pip Penulis

          Mohon maaf, pembahasan skrip yang saya lakukan pada halaman ini adalah berdasarkan pemahaman saya dalam mempelajari algoritma berdasarkan referensi skrip, sehingga saya tidak memiliki referensi jurnal sebagai panduan. Jika anda tidak memiliki referensi jurnal yang bagus, dan memang sebenarnya tidak ditemukan, maka sebaiknya anda tidak meneruskan topik tersebut karena keterbatasan referensi jurnal.

  • Tiara P

    Maaf, apakah bisa ditunjukan cara perhitungan manual nya dengan fungsi fitness f(x, y, z) = (kx * x^2) + (ky * y^2) + (kz * z^2) tsb?

    • pip Penulis

      Jika partikel 1 berada pada posisi x=1, y=2, z=3, maka nilai fitnessnya adalah (3.2 * 1 ^ 2) + (3 * 2 ^ 2) + (2.5 * 3 ^ 2) = 37.7
      Jika partikel 2 berada pada posisi x=3, y=2, z=1, maka nilai fitnessnya adalah (3.2 * 3 ^ 2) + (3 * 2 ^ 2) + (2.5 * 1 ^ 2) = 43.3
      Demikian seterusnya anda hanya tinggal mengganti nilai x, y, z sesuai posisi partikel tersebut.

  • Boby

    Jika saya ingin menerapkan optimisasi parameter svm dengan pso. Bagaimana cara menentukan batas atas dan batas bawah parameter svm (C dan y) ?? Terima kasih

    • pip Penulis

      Bahasa pemrograman yang saya gunakan disini adalah Visual Basic .NET. Saya paham dengan bahasa Matlab tetapi saat ini tidak menggunakan Simulink. Mungkin anda dapat mencari bantuan pada situs resmi Mathworks.

        • pip Penulis

          Sangat sulit untuk mengetahui cara penyelesaian kasus tersebut karena hanya tersedia sebatas judul saja. Tetapi pada intinya, jika alur sistem pengendali tersebut dan fungsi obyektifnya cukup jelas, maka seharusnya penyelesaian terhadap kasus tersebut dapat dilakukan

        • pip Penulis

          Tentu saja anda harus mengetahui variabel-variabel yang digunakan dan kemudian cara untuk melakukan perhitungan fitness atau fungsi obyektif. Selain itu anda juga harus mengetahui batasan-batasan nilai agar solusi yang dihasilkan selalu valid. Jumlah batasan sangat bergantung dari masing-masing kasus. Ada kasus yang tidak memerlukan batasan, tetapi ada kasus yang memiliki banyak sekali batasan

    • pip Penulis

      Jika dilihat secara general, seharusnya semua algoritma optimasi dapat diimplementasikan untuk berbagai macam kasus. Tetapi apabila dilihat secara spesifik dan belum ada keterangan perhitungan yang cukup detail, maka sepertinya akan sulit dalam langkah pengimplementasian algoritma.

    • pip Penulis

      Rumus fitness untuk kasus penjadwalan bisa ditentukan dengan beberapa cara, misalnya dengan menghitung jumlah data / sks / menit / slot dalam jadwal tersebut.

  • galih

    Apakah algoritma pso ini bisa digunakan untuk optimasi pemilihan barang? Maaf line di website tidak bisa saya scan, apakah nomor wa masih aktif?

    • pip Penulis

      Selama topiknya masih berkaitan dengan “optimasi”, maka seharusnya kasus tersebut dapat diselesaikan dengan kasus ini.

      Semua cara komunikasi masih aktif. Jika anda kesulitan berkomunikasi melalui jalur yang sebelumnya, maka silahkan gunakan jalur yang belakangan anda sebutkan.

    • pip Penulis

      Tidak ada nilai tetap yang dapat digunakan untuk menentukan fungsi obyektif karena fungsi tersebut sangat bergantung dengan kasus yang anda miliki.
      Saya gunakan contoh sederhana:
      Apabila anda memeiliki tujuan untuk mencari jarak terendah antara 2 buah titik, maka fungsi obyektifnya adalah
      f(x) = |x1 - x2|
      Dengan demikian, apabila kedua buah titik x1 dan x2 berada pada posisi yang sama, maka nilai f(x) nya adalah |x1 – x2| = 0, dan anda sudah menemukan jawaban bahwa titik x1 dan x2 adalah 2 buah titik dengan jarak terendah

      • Wahyu dianto

        Dalam arti tidak ada nilai tetap untuk objective functionnya adalah kita yang menentukan fungsi tersebut, semisal contoh saya melakukan optimasi untuk sebuah pengontrol dari konverter ?
        Dan untuk batas teratasnya objective function jg berbeda dengan contoh diatas ?

        • pip Penulis

          Ya betul. Fungsi obyektif adalah tergantung dari kasus tersebut. Jika anda memiliki panduan referensi dalam bentuk jurnal, maka biasanya sudah dijelaskan fungsi obyektif yang digunakan oleh kasus pada jurnal tersebut. Selanjutnya anda hanya perlu melakukan implementasi fungsi tersebut pada kasus anda.

      • Wahyu dianto

        Saya punya dua jurnal referensi tetapi sudah dalam bentuk file offline apakah bisa mas nya menjelaskan yang menjadi parameter tuningnya di jurnal tersebut ?
        Untuk jurnal offline nya, bisa saya kirim di email yang tertera di menu “hubungi kami” ?

  • Fikri

    Permisi, saya ingin bertanya. Apakah model jaringan back propagation bisa dikombinasikan dengan PSO sebagai pelatihannya?
    Dan apakah tepat digunakan untuk memprediksi/meramal?

    • pip Penulis

      Backpropagation sebenarnya sudah memiliki teknik perhitungan sendiri sehingga tidak dapat digabungkan dengan algoritma lain. Jika anda ingin menggunakan PSO sebagai teknik perhitungan, maka anda hanya dapat mengambil struktur jaringan sarafnya saja, sehingga menghasilkan alur seperti ini

        • pip Penulis

          Baik, saya sudah memperbaiki tautan diatas. Sepertinya terjadi sebuah masalah yang tidak saya ketahui sampai sekarang.

  • Jon

    Kalau pada kasus penjadwalan, posisi itu adalah slot waktu matakuliahnya, terus kalau posisi baru di luar batas slot yang ada, apakah posisi baru = posisi lama atau bagaimana?

    • pip Penulis

      Setelah mendapatkan posisi baru, maka lakukan pengecekan agar posisi tersebut masih berada dalam posisi yang valid. Jika posisinya tidak valid, nilai posisi yang baru bisa tetap menggunakan posisi yang lama atau dibangkitkan kembali secara acak.

        • pip Penulis

          Untuk kecepatan seharusnya tidak terdapat batasannya, tetapi bisa dimodifikasi seperti itu apabila diperlukan. Batas minimal dan maksimal hanya terdapat pada saat pengecekan posisi agar tidak melebihi ruang yang valid.

    • pip Penulis

      Sepertinya saya tidak menemukan sumber aktif yang lain. Pada saat saya mempelajari algoritma ini, sumber diatas adalah sumber yang sah dan dapat dipertanggungjawabkan isinya. Tetapi mohon maaf apabila sumbernya sudah tidak aktif.

  • Tika

    Apakah PSO cukup efektif untuk TSP (Travelling Salesman Problem)? Adakah algoritma yang lebih baik dari PSO untuk TSP? Saya butuh rekomendasi algoritma yang paling akurat dan optimal. Terima kasih

    • pip Penulis

      PSO tentunya dapat digunakan untuk menyelesaikan kasus TSP. Secara teori, semua modifikasi dari PSO yang pernah saya baca akan selalu menjelaskan bahwa algoritma modifikasi tersebut lebih baik dari algoritma pendahulunya (PSO). Akan tetapi saya tidak dapat memastikan hal tersebut sampai saya melakukan implementasi sendiri, sehingga saya tidak dapat memberikan jawaban pasti algoritma manakah yang lebih baik dari algoritma yang lain.

        • pip Penulis

          Saya belum dapat memberikan penjelasan apabila informasi yang tersedia saat ini hanyalah “sentimen analisis”. Silahkan coba dijabarkan secara detail mengenai sistem tersebut.

    • pip Penulis

      Penggabungan sebuah algoritma dengan algoritma lainnya biasanya memerlukan analisa apakah hal tersebut dapat dilakukan setelah melihat contoh kasus yang tersedia. Saya gunakan contoh dengan asumsi terdapat 3 buah algoritma A, B dan C, dan 2 buah kasus D dan E. Penggabungan A+B mungkin tidak cocok digunakan dalam menyelesaikan kasus D tetapi cocok pada kasus E, sedangkan penggabungan A+C mungkin tidak cocok digunakan dalam menyelesaikan kasus E tetapi cocok pada kasus D. Tanpa mengetahui secara detail topik tersebut maka saya tidak dapat memberikan jawaban pasti.

  • Ananda

    maaf mau bertanya sebelumnya, saya sedang menyusun tugas akhir economic dispatch pembangkit. apakah ada alur yg lebih muda untuk memahami metode PSO ini? karna saya menggunakan metode ini juga. mohon bantuannya. terima kasih

    • pip Penulis

      Untuk dapat memberikan saran maka saya harus mengetahui secara detail kasus yang anda miliki. Silahkan anda jelaskan terlebih dahulu secara detail.

      Diskusi juga dapat dilakukan secara langsung dengan menghubungi kami secara langsung melalui nomor kontak yang tersedia pada halaman hubungi kami https://piptools.net/hubungi-kami/

  • Mohammad faris wahyudi

    Mau tanya, apakah bisa mengoptimasi 3 daya dari sumber generator 1+2+3, fitnessnya berdasarkan nilai heat rate yg terkecil.
    Cth 3 Generator tsb memiliki data daya min 30 MW dan maksimal 105 MW dan Masing2 memiliki data flow gas masing2 …nanti pola optimasi PSO nya seperti apa ?

    • pip Penulis

      Berdasarkan deskripsi singkat yang anda berikan, maka seharusnya algoritma ini dapat digunakan untuk menyelesaikan kasus tersebut. Pada intinya partikel akan dibangkitkan dalam ruang pencarian 30 – 105 MW tersebut (poin 1) dan kemudian akan berpindah posisi (poin 3b) yang dihitung dengan menghitung kecepatan partikel berdasarkan rumus pada poin 3a. Proses ini akan diulang sebanyak jumlah iterasi sambil dihitung nilai fitnessnya (nilai heat rate) dan disimpan nilai terendah nya yang merupakan solusi terbaik.