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:
Dim data(2)() As Double data(0) = New Double() {3.2, 10, 50} data(1) = New Double() {3, 30, 80} data(2) = New Double() {2.5, 50, 150}
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
Const dimensi As Integer = 3
* Tentukan jumlah partikel yang digunakan dalam perhitungan
Diasumsikan dalam kasus ini, jumlah partikel yang digunakan adalah 10 partikel
Const jumlahPartikel As Integer = 10
* Tentukan jumlah iterasi yang digunakan oleh setiap partikel untuk melakukan proses
Diasumsikan dalam kasus ini, jumlah iterasi yang digunakan adalah 100 kali
Const jumlahIterasi As Integer = 100
* 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
Const totalPosisi As Integer = 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
Dim minKecepatan(dimensi - 1) As Double Dim maksKecepatan(dimensi - 1) As Double For i As Integer = 0 To dimensi - 1 minKecepatan(i) = -(data(i)(2) - data(i)(1)) / 10 maksKecepatan(i) = (data(i)(2) - data(i)(1)) / 10 Next
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
jumlahPosisi = 0 For j As Integer = 0 To posisi.Length - 1 posisi(j) = rnd.Next(data(j)(1), data(j)(2)) jumlahPosisi += posisi(j) Next j
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
Dim selisih As Integer = totalPosisi - jumlahPosisi Dim idx As Integer = rnd.Next(dimensi) Dim posisiBaru As Integer = posisi(idx) + selisih If posisiBaru < data(idx)(1) Then Continue Do If posisiBaru > data(idx)(2) Then Continue Do jumlahPosisi = jumlahPosisi - posisi(idx) + posisiBaru posisi(idx) = posisiBaru
1c. Inisialisasi nilai kecepatan semua partikel awal dengan nilai kecepatan acak
Dim kecepatanAcak(dimensi - 1) As Double For j As Integer = 0 To kecepatanAcak.Length - 1 Dim lo As Double = -1.0 * Math.Abs(data(j)(2) - data(j)(1)) / 10 Dim hi As Double = Math.Abs(data(j)(2) - data(j)(1)) / 10 kecepatanAcak(j) = (hi - lo) * rnd.NextDouble() + lo Next j
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
Dim fitness As Double = HitungFitness(posisi, data)
* 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)
Private Function HitungFitness(ByVal posisi() As Integer, ByVal data()() As Double) As Double Dim hasil As Double = 0.0 For i As Integer = 0 To posisi.Length - 1 hasil += data(i)(0) * posisi(i) * posisi(i) Next i Return hasil End Function
1e. Lakukan pengecekan nilai fitness,
Jika nilai fitness ini lebih baik dari nilai fitness umum, maka ambil posisi acak ini sebagai posisi terbaik umum
If swarm(i).fitness < fitnessTerbaik Then fitnessTerbaik = swarm(i).fitness swarm(i).posisi.CopyTo(posisiTerbaik, 0) indeksPosisiTerbaik = i End If
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
Const w As Double = 0.729 Const c1 As Double = 1.49445 Const c2 As Double = 1.49445
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
For j As Integer = 0 To partikelTerpilih.kecepatan.Length - 1 r1 = rnd.NextDouble() r2 = rnd.NextDouble() kecepatanBaru(j) = (w * partikelTerpilih.kecepatan(j)) + (c1 * r1 * (partikelTerpilih.posisiTerbaik(j) - partikelTerpilih.posisi(j))) + (c2 * r2 * (posisiTerbaik(j) - partikelTerpilih.posisi(j))) If kecepatanBaru(j) < minKecepatan(j) Then kecepatanBaru(j) = minKecepatan(j) ElseIf kecepatanBaru(j) > maksKecepatan(j) Then kecepatanBaru(j) = maksKecepatan(j) End If Next j kecepatanBaru.CopyTo(partikelTerpilih.kecepatan, 0)
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
For j As Integer = 0 To partikelTerpilih.posisi.Length - 1 posisiBaru(j) = partikelTerpilih.posisi(j) + kecepatanBaru(j) If posisiBaru(j) < data(j)(1) Then posisiBaru(j) = data(j)(1) ElseIf posisiBaru(j) > data(j)(2) Then posisiBaru(j) = data(j)(2) End If Next j
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
Dim jumlahPosisi As Integer = 0 For k As Integer = 0 To dimensi - 1 jumlahPosisi += posisiBaru(k) Next Do While jumlahPosisi <> totalPosisi Dim selisih As Integer = totalPosisi - jumlahPosisi Dim selisihPerDimensi(dimensi - 1) As Integer Dim idx As Integer = -1 Do While selisih <> 0 idx = rnd.Next(dimensi) If selisih > 0 Then If posisiBaru(idx) + selisihPerDimensi(idx) < data(idx)(2) Then selisihPerDimensi(idx) += 1 selisih -= 1 End If Else If posisiBaru(idx) + selisihPerDimensi(idx) > data(idx)(1) Then selisihPerDimensi(idx) -= 1 selisih += 1 End If End If Loop For k As Integer = 0 To dimensi - 1 Dim posBaru As Integer = posisiBaru(k) + selisihPerDimensi(k) If posBaru < data(k)(1) Then Continue Do If posBaru > data(k)(2) Then Continue Do Next For k As Integer = 0 To dimensi - 1 Dim posBaru As Integer = posisiBaru(k) + selisihPerDimensi(k) jumlahPosisi = jumlahPosisi - posisiBaru(k) + posBaru posisiBaru(k) = posBaru Next Loop posisiBaru.CopyTo(partikelTerpilih.posisi, 0)
3d. Hitung nilai fitness untuk posisi yang baru
posisiBaru.CopyTo(partikelTerpilih.posisi, 0) fitnessBaru = CariFitness(posisiBaru) partikelTerpilih.fitness = fitnessBaru
3e. Jika nilai fitness baru lebih baik dari nilai fitness sebelumnya, maka ambil posisi yang baru sebagai posisi terbaik partikel tersebut
If fitnessBaru > partikelTerpilih.fitnessTerbaik Then posisiBaru.CopyTo(partikelTerpilih.posisiTerbaik, 0) partikelTerpilih.fitnessTerbaik = fitnessBaru End If
3f. Jika nilai fitness baru ternyata lebih baik dari nilai fitness umum, maka ambil posisi yang baru sebagai posisi terbaik secara umum
If fitnessBaru > fitnessTerbaik Then posisiBaru.CopyTo(posisiTerbaik, 0) fitnessTerbaik = fitnessBaru Dim s As String = swarm(i).ToString() If s <> "" Then Console.Write("Partikel " & i & " : ") Console.WriteLine(s) End If End If
* 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:
Public Class Partikel Public posisi() As Integer Public fitness As Double Public kecepatan() As Double Public posisiTerbaik() As Integer Public fitnessTerbaik As Double Public lastString As String = "" Public Sub New(ByVal posisi() As Integer, ByVal fitness As Double, ByVal kecepatan() As Double, ByVal posisiTerbaik() As Integer, ByVal fitnessTerbaik As Double) Me.posisi = New Integer(posisi.Length - 1) {} posisi.CopyTo(Me.posisi, 0) Me.fitness = fitness Me.kecepatan = New Double(kecepatan.Length - 1) {} kecepatan.CopyTo(Me.kecepatan, 0) Me.posisiTerbaik = New Integer(posisiTerbaik.Length - 1) {} posisiTerbaik.CopyTo(Me.posisiTerbaik, 0) Me.fitnessTerbaik = fitnessTerbaik End Sub Public Overrides Function ToString() As String Dim s As String = "" s &= "posisi: " For i As Integer = 0 To Me.posisi.Length - 1 s &= Me.posisi(i).ToString("F0") & " " Next i s &= ", " s &= "Fitness = " & Me.fitness.ToString("F2") If s <> lastString Then lastString = s Return s Else Return "" End If End Function End Class
Hasil akhir adalah: (klik untuk perbesar gambar)
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.
bisa minta sumber rumus menentukan fitnesnya?
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.makasih infonya
Baik. Jika masih ada yang kurang jelas, silahkan ditanyakan lagi.
saya mau tanya kalau pso buat optimasi fuzzy keanggotaan itu gimana ya?
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.
misi gan ada contoh manual algoritma optimasi pso yg disertai studi kasusnya agar mudah di pahami
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.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?
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
Mau tanya bagaimana menentukan parameter fungsi kernel pada metode svr dengan optimasi pso ?
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.
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,
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).
apakah anda mengerti perhitungan PSO-SVR dalam jurnal tersebut ? Jika iya, apakah anda bisa menjelaskannya kpd sy ? mksh
link jurnal :
http://jutisi.maranatha.edu/index.php/jutisi/article/view/414
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.
fungsi SVR nya kl dalam code gmn yah ? atau bisakah anda mengajarkan perhitungan manual dengan fungsi SVR ?
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.
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?
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.
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?
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.
kalau buat program menggunakan java bisa?
Silahkan berkomunikasi kepada saya melalui jalur pribadi, karena pertanyaan anda tidak sesuai dengan topik pada pos ini.
permisi gan mau nanya kalo PSO dikombinasikan dengan fuzzy bisa gan? trus alur penyelesaiannya gimana gan. makasih sebelumnya gan
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.
makasih sebelumnya. boleh minta emailnya biar saya ceritakan lewat email aja pak. makasih
Informasi mengenai data diri saya dapat anda lihat pada halaman Hubungi Kami
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
Baik, komunikasi selanjutnya dilakukan melalui jalur pribadi saja agar tidak membingungkan.
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.
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.
Iya gan, itulah masalahnya,referensi sy minim. Mana again bisa kasih refernsi yg mirip dgn masalah sy. Terima kasih.
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.
Mau tanya bagaimana menentukan parameter fungsi kernel pada metode svc dengan optimasi pso ?
Untuk mengoptimasi parameter dari sebuah algoritma, maka anda dapat menggunakan input nilai parameter SVC sebagai data yang digunakan oleh algoritma PSO, dan kemudian mengganti cara perhitungan nilai fungsi dengan melakukan pelatihan algoritma SVC menggunakan nilai parameter yang ditentukan dari PSO. Output dari proses pelatihan SVC adalah nilai akurasi yang kemudian dapat digunakan sebagai nilai fitness PSO untuk dapat dibandingkan satu sama lain.
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?
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.
Jika saya ingin menerapkan optimisasi parameter svm dengan pso. Bagaimana cara menentukan batas atas dan batas bawah parameter svm (C dan y) ?? Terima kasih
Menurut sepemahaman saya, seharusnya batasan rentang untuk parameter tersebut dapat ditentukan sendiri sesuai kebutuhan.
bagaimana cara membuat pso dalam simulink matlab mas??
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.
bagaimana untuk membuat pengendali pid tuning pso dalam suatu plant?
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
jadi untuk tuning menggunakan pso apa yang harus cari terllebih dahulu pak?
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
Apakah bisa algoritma PSO diintegrasikan dengan teknik resampling (RUS,ROS,FSMOTE) untuk prediksi cacat software??
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.
Bagaimana rumus fitness untuk kasus penjadwalan?
Rumus fitness untuk kasus penjadwalan bisa ditentukan dengan beberapa cara, misalnya dengan menghitung jumlah data / sks / menit / slot dalam jadwal tersebut.
Apakah algoritma pso ini bisa digunakan untuk optimasi pemilihan barang? Maaf line di website tidak bisa saya scan, apakah nomor wa masih aktif?
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.
cara menentukan OBJECTIVE FUNCTION dan SWARM dalam PSO gimana yaa mas butuh banget pencerahan ?
thanks
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
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 ?
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.
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” ?
Ya, bisa.
sudah saya kirim ulang untuk analisa jurnal PSO nya, mohon segera dibaca untuk pembahasanya bisa dikolom komentar atau email
thanks min
Baik, komunikasi selanjutnya akan dilakukan melalui email agar tidak membingungkan.
Selamat pagi
Thanks min, untuk infonya dan diskusinya sangat terbantu berkat penjelasan di email, apabila ada teman saya yg kebingungan saya akan arahkan kesini ?
Baik, terima kasih atas rekomendasinya
Permisi, saya ingin bertanya. Apakah model jaringan back propagation bisa dikombinasikan dengan PSO sebagai pelatihannya?
Dan apakah tepat digunakan untuk memprediksi/meramal?
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
Terima kasih atas masukannya, namun apakah ada link alternatif untuk rujukan yang saudara sebut di atas? Karena isinya tidak tertampil
Baik, saya sudah memperbaiki tautan diatas. Sepertinya terjadi sebuah masalah yang tidak saya ketahui sampai sekarang.
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?
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.
Kalau untuk kecepatannya apakah ada nilai minimal dan maksimalnya?
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.
perancangan sistem buat deteksi titik panas kebakaran hutan dengan pso itu bagaimana?
Sepertinya masih cukup sulit untuk saya apabila hanya melihat dari gambaran umum saja. Silahkan anda ceritakan lebih detail.
Maaf, sepertinya referensi jurnal pada alamat http://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=00870279 untuk menentukan bobot inersia (w), bobot kognitif (c1) dan bobot sosial (c2) sudah tidak tersedia. Ada link lain untuk jurnal tersebut?
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.
Apakah ada tutprial tentang quantum particle swarm, dan apakah ada cara penggunaan menggunakan weka .
Kedua permintaan tersebut tidak tersedia pada website ini. Harap maklum
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
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.
bagaimana cara untuk menerapkan PSO sebagai feature selection dalam kasus sentimen analisis?
Saya belum dapat memberikan penjelasan apabila informasi yang tersedia saat ini hanyalah “sentimen analisis”. Silahkan coba dijabarkan secara detail mengenai sistem tersebut.
bagaimana jika pso di gabungkan dengan naive bayes ,,,apa saja kelebihannya
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.
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
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/
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 ?
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.
mas saya mau bertanya , apakah metode pso ini cocok untuk clustering dan apakah bisa dibuat program nya menggunakan pemograman web ? atau hanya cocok menggunakan pemograman matlab?
Algoritma dengan tujuan permasalahan optimasi pada umumnya dapat digunakan untuk penyelesaian kasus clustering, tetapi untuk mengetahui lebih lanjut silahkan anda jelaskan secara lebih spesifik mengenai sistem tersebut.
Maaf mas saya mau tanya, apakah PSO ini bisa menentukan atau mengoptimasi bobot pada metode Weighted Moving Average? dan juga dalam mengoptimasi bobot apakah PSO sendiri bisa mengeluarkan nilai Gbest sebanyak 5 nilai gbest? contoh misalkan dalam peramalan menggunakan Metode Weighted Moving Average menggunakan 5 data history yang mana setiap 5 data history tersebut di berikan masing masing bobot optimasi dari PSO tersebut itu kira kira bagaimana ya mas mohon penjelasannya.
Pada umumnya nilai terbaik atau Gbest hanya berupa satu nilai saja. Nilai terbaik tersebut (dalam kasus anda berarti nilai bobot) kemudian diterapkan pada sejumlah dataset (dalam kasus anda berarti 5 dataset) sehingga menghasilkan 5 buah nilai output yang berbeda.
mau bertanya, saya ingin menggunakan algoritma pso ini untuk optimisasi portofolio. tapi saya bingung yang bertindak sebagai partikel ini sahamnya atau apanya ya? selain itu nilai fitness nya menggunakan rumus sharpe ratio yang disitu ada nilai bobotnya juga. saya masih agak bingung nanti cara bekerja portofolio di pso ini gimana? bisakah dijelaskan
Saya masih belum memberikan penjelasan lebih lanjut karena masih belum memahami mengenai sistem “portofolio” yang ingin anda optimasi. Silahkan diceritakan terlebih dahulu bagaimanakah alur sistem tersebut dan beberapa contoh data yang digunakan.
Selamat malam, saya sedang mengembangkan model multi objective inventory dengan PSO. Untuk PSO kurang lebih saya sudah memahami melalui tutorial online class di youtube. Tapi masih belum bisa memahami bagaimana mengintegrasikan model yang sudah dibuat ke dalam PSO. Terimakasih. Salam
Mohon maaf deskripsi yang anda berikan masih terlalu minim sehingga saya belum dapat memahami sistem tersebut. Silahkan anda deskripsikan kembali secara lebih detail mengenai model tersebut.
Selamat malam , sekarang saya sedang melakukan penelitian tugas akhir optimasi fuzzy c means menggunakan particle swarm optimation , saya mencoba menghitung untuk bab 3 secara manual dan alurnya stuck di penentuan centroid pada iterasi kedua dan referensi juga minim , bagaiamana ya ? soalnya saya dilema mau ganti judul sudah cukup mau selesai , mungkin ada kontak untuk tanya tanya 🙂
Jika anda tertarik untuk menggunakan jasa kami maka silahkan menghubungi kami dengan nomor kontak yang tersedia pada halaman hubungi kami https://piptools.net/hubungi-kami/ . Terima kasih
Selamat siang kak , maaf mau tanya, saya melakukan optimasi kmeans menggunakan pso dan di hitung secara manual menggunakan excel, namun setelah perhitungan kecepatan dan update posisi pada iterasi 1 dan melanjutkan pada iterasi 2 ternyata datanya malah jadi satu cluster bukan terbagi menjadi beberapa cluster, apakah cara kerja pso memang seperti itu atau ada kesalahan dalam perhitungan? lalu untuk dataset yang dihitung dengan pso apakah harus data dengan banyak atribut (misal 13) atau bagaimana ya kak? mohon pencerahannya , terimakasih
Bolehkah saya mengetahui bagian kmeans manakah yang anda optimasi menggunakan PSO? Untuk model kasus seperti ini, anda dapat melakukan implementasi kmeans murni terlebih dahulu untuk memastikan perhitungan yang benar, dan kemudian menambahkan algoritma kedua sebagai optimasi untuk algoritma pertama. Jika penambahan algoritma kedua menyebabkan algoritma pertama tidak berjalan dengan benar maka tentunya kesalahan terdapat pada algoritma kedua.
Jumlah data maupun atribut seharusnya tidak menyebabkan perhitungan algoritma menjadi keliru. Jika terdapat kekeliruan maka anda dapat uji coba terlebih dahulu menggunakan data dengan atribut yang lebih sedikit untuk memastikan implementasi algoritma sudah berjalan dengan baik atau belum.
Untuk yg dioptimasi ialah pusat clusternya kak, lalu untuk update pusat cluster pada pso tersebut, pada iterasi 2 saya menggunakan rumus update kecepatan dan update posisi, tapi hasilnya malah menjadi 1 cluster kak padahal saya ngitungnya makek 3 cluster. Apakah rumus yg saya gunakan untuk mengupdate pusat cluster salah kak? Mohon pencerahannya
Tentu saja jika proses update posisi menyebabkan cluster menjadi hanya 1 saja maka terdapat kesalahan pada saat implementasi update posisi tersebut. Tetapi hal ini tidak mutlak karena juga bergantung dari faktor data yang anda gunakan; jika data tersebut cenderung untuk berkumpul pada suatu tempat tanpa adanya / minim variasi, maka proses optimasi tentunya akan menganggap data tersebut sebagai 1 cluster. Dengan demikian tidak ada yang salah dengan implementasi melainkan kesalahan terjadi pada data yang tersedia.
Permisi min, sekarangkan lagi menyusun untuk proposal dikampus, dengan melanjutkan literatur penelitian orang, apa yang harus pertama saya lakukan untuk melakukan PSO? Bisakah saya mengirim literatur saya ke email ini?
Jika anda tertarik untuk menggunakan jasa kami maka silahkan menghubungi kami dengan nomor kontak yang tersedia pada halaman hubungi kami https://piptools.net/hubungi-kami/ . Terima kasih
Dari sumber yang lain, metode PSO ini memiliki stopping criteria sebagai berikut:
1. Suatu iterasi akan berhenti jika sudah mencapai nilai maksimum.
2. Suatu iterasi akan berhenti jika telah menemukan solusi sesuai dengan kriteria yang ada.
3. Suatu iterasi akan berhenti jika tidak ada konvergen.
4. Suatu iterasi akan berhenti jika nilai radius populasi yang sudah dinormalisasikan mendekati nilai 0.
5. Suatu iterasi akan berhenti jika grafik fungsi obyektif mendekati nilai 0 bersamaan dengan bertambahnya iterasi.
boleh bantu jelaskan maksud dari masing – masing kriteria tersebut?
terima kasih.
Jadi yang perlu anda pahami pertama kali adalah implementasi algoritma tidak akan memiliki batasan yang sama persis untuk setiap kasus, karena setiap kasus akan memiliki kondisi spesifik yang berbeda-beda. Dengan demikian, pada kasus A mungkin hanya poin 1 saja yang diperlukan, pada kasus B mungkin hanya 2 dan 3 saja yang diperlukan, pada kasus C hanya 4 dan 5 saja yang diperlukan, dan seterusnya. Dengan demikian penjelasan untuk setiap nomor tidak akan ditujukan menggunakan contoh kasus yang sama.
1. Kondisi ini berlaku untuk kasus optimasi dengan tujuan mencari nilai tertinggi. Jika terdapat batasan sebuah nilai tertinggi yang dapat diperoleh dari sebuah solusi, maka iterasi akan dihentikan karena sistem tidak akan mungkin mendapatkan solusi yang lebih baik. Sebagai contoh jika dalam 10 iterasi ternyata pada iterasi ke 5 sistem sudah mendapatkan nilai tertinggi yaitu misalnya 100, maka perhitungan tidak perlu dilanjutkan untuk kelima iterasi berikutnya.
2. Kondisi ini berlaku untuk pencarian solusi kompleks dengan tingkat validitas cukup rendah. Sebagai contoh dalam kasus penjadwalan terkadang terdapat batasan bentrok yang cukup banyak sehingga menyulitkan sistem dalam mendapatkan solusi yang valid. Pada saat sistem sudah mendapatkan solusi valid maka perhitungan akan langsung dihentikan untuk mempersingkat waktu perhitungan, yang apabila tetap dilanjutkan maka akan butuh sekian lama lagi untuk mendapatkan solusi yang lain.
3. Kondisi ini biasanya adalah kondisi pembatas iterasi dalam perhitungan. Implementasinya cukup mudah yaitu dengan memberi batasan nilai iterasi yang diperbolehkan, sehingga perhitungan akan dihentikan, apapun hasilnya (solusi ditemukan atau tidak ditemukan), apabila sudah mencapai iterasi tertentu.
4. Kondisi ini menurut saya cukup spesifik, tetapi logika nya cukup sederhana. Jika populasi mendekati nol, maka nilai fungsi atau fitness yang dihitung juga akan mendekati nol karena sangat rendahnya nilai2 yang digunakan. Biasanya diimplementasikan terhadap kasus dengan tujuan mencari nilai terendah seperti nilai error, waktu produksi, biaya, dll.
5. Kondisi ini menurut saya akan terpenuhi jika tujuan yang ingin dicapai adalah sesuai dengan kondisi nomor 4. Jika tujuan implementasi kasus adalah mencari nilai terendah maka dalam setiap iterasi akan berkemungkinan untuk menghasilkan nilai yang lebih rendah dibandingkan sebelumnya, sehingga apabila ditampilkan dalam grafik maka garis yang terbentuk akan semakin turun sampai mendekati nilai terendah yang diperbolehkan dalam kasus tersebut.
Terima kasih atas jawabannya.
Menurut anda, jika algoritma PSO ini diimplementasikan pada kasus pengenalan wajah manusia, kriteria stopping mana yg umumnya dapat terjadi/terpenuhi?
Dalam model pengenalan wajah pada umumnya sistem akan membandingkan fitur wajah dan mencari citra dengan selisih paling rendah. Jika demikian tentunya nomor 1 dan 2 tidak berlaku. Untuk nomor 3 – 5 dapat berlaku tetapi masih bergantung dari model kasus secara spesifik. Bisa jadi hanya satu atau beberapa poin yang berlaku.
tuwan, adakah ebook nya tentang algoritma PSO ? klw ada linknya minta di share klw boleh. atau ebooknya dibeli klw boleh.
Mohon maaf untuk saat ini saya belum memiliki referensi buku cetak / digital yang membahas secara baik mengenai algoritma PSO. Harap maklum.
Halo kak jika ingin berkonsultasi dengan kakak hubungi kemana ya? Terimakasih
Silahkan menghubungi kami dengan nomor kontak yang tersedia pada halaman hubungi kami https://piptools.net/hubungi-kami/ . Terima kasih
Selamat Pagi min. Mohon bantuannya, saya masih kurang paham dalam penentuan nilai bobot inertia (w), bobot kognitif (c1), dan bobot sosial (c2). Apakah ada rumus/acuannya? Soalnya link acuan yang di lampirkan sudah rusak. Terimakasih.
Nilai parameter2 yang saya gunakan memang mengacu pada referensi jurnal yang saya dapatkan sebelumnya. Tentunya nilai ini nantinya dapat disesuaikan dengan referensi lain yang anda dapatkan, sehingga nilai2 parameter tersebut dapat dipertanggungjawabkan.
Mau nanya nih gimana cara pengerjaan posisi partikel pada iterasi pertama? Ini rumusnya
X 1/1= 1 + rand ( 6 – 1 ) – misal hasil random 0,2
X 1/1 = 1 + 0,2 = 1,2
Sebelum memasuki iterasi pertama, posisi atau koordinat dari semua partikel dibangkitkan secara acak. Inilah inti dari poin nomor 1. Hal yang sama juga berlaku untuk nilai kecepatan partikel.
Setelah memasuki tahap iterasi, ada 2 proses utama yang dilakukan, yaitu mengupdate kecepatan partikel dan melakukan perpindahan partikel berdasarkan kecepatan tersebut
kecepatan dihitung dengan rumus
v baru = (w * v skrg) + (c1 * r1 * (posisi terbaik – posisi skrg)) + (c2 * r2 * (posisi umum terbaik – posisi skrg))
kemudian perpindahan posisi dihitung dengan rumus yang cukup sederhana
p baru = p lama + v baru
Jika saya mengkaitkan rumus ini dengan pertanyaan yang anda sampaikan, sepertinya anda menggunakan rumus kedua (perpindahan posisi) tanpa melakukan perhitungan rumus pertama (kecepatan) terlebih dahulu. Tentunya kecepatan tidak dihasilkan dengan angka acak (seperti yang anda sampaikan bernilai 0.2) tetapi menggunakan rumus pertama. Parameter yang digunakan pada rumus tersebut cukup banyak, tetapi semua nilainya dapat ditelusuri dari hasil proses inisialisasi pada poin nomor 1.
Gimana cara mengerjakan rumus metode Algoritma PSO dengan rumus persamaan
X i/α= xmin + rand(xmax – xmin)
X i/α= xmin + rand(xmax – xmin)
Berikan penjelasan beserta contoh perhitungannya kak. Terimakasih🙏
Rumus yang anda berikan mirip dengan rumus yang digunakan untuk melakukan normalisasi data. Jika memang tujuan tersebut yang anda inginkan maka rumus ini sebenarnya bukan bagian inti dari rumus algoritma PSO, melainkan hanya rumus pelengkap saja untuk mengolah data input sebelum dapat digunakan oleh algoritma PSO. Proses normalisasi data yang paling umum dan mudah adalah menggunakan teknik minmax, dimana rumusnya adalah:
X normal = (X – Xmin) / (Xmaks – Xmin)
Sedangkan rumus yang anda sampaikan adalah:
X i/α= xmin + rand(xmax – xmin)
Jika anda tetap mengkaitkan rumus tersebut dengan algoritma PSO, maka saya hanya dapat menyampaikan bahwa rumus tersebut bukan termasuk bagian dari algoritma PSO, Proses perhitungan utama PSO adalah menggunakan kedua rumus yang sudah saya sampaikan pada komentar sebelumnya. Saya juga belum memahami apa yang anda letakkan pada bagian sebelah kiri dari persamaan tersebut (X i/α)