TINJAUAN PUSTAKA
Particle Swarm Optimization (PSO) diperkenalkan oleh Dr. Eberhart dan Dr. Kennedy
pada tahun 1995, merupakan algoritma optimasi yang meniru proses yang terjadi dalam
kehidupan populasi burung (flock of bird) dan ikan (school of fish) dalam bertahan
hidup. Sejak diperkenalkan pertama kali, algoritma PSO berkembang cukup pesat, baik
dari sisi aplikasi maupun dari sisi pengembangan metode yang digunakan pada
algoritma tersebut (Haupt, R.L. & Haupt, S.E. 2004). Oleh sebab hal tersebut, mereka
mengategorikan algoritma sebagai bagian dari kehidupan rekayasa/buatan Artificial
Life. Algoritma ini juga terhubung dengan komputasi evolusioner, algoritma genetik
dan pemrograman evolusionari (Jatmiko et al. 2010).
Dalam Particle Swarm Optimization (PSO), kawanan diasumsikan mempunyai
ukuran tertentu dengan setiap partikel posisi awalnya terletak disuatu lokasi yang acak
dalam ruang multidimensi. Setiap partikel diasumsikan memiliki dua karakteristik yaitu
posisi dan kecepatan. Setiap partikel bergerak dalam ruang atau space tertentu dan
mengingat posisi terbaik yang pernah dilalui atau ditemukan terhadap sumber makanan
atau nilai fungsi objektif. Setiap partikel menyampaikan informasi atau posisi
terbaiknya kepada partikel yang lain dan menyesuaikan posisi dan kecepatan masing
masing berdasarkan informasi yang diterima mengenai posisi yang bagus tersebut.
Particle Swarm Optimization (PSO) adalah salah satu dari teknik komputasi
evolusioner, yang mana populasi pada PSO didasarkan pada penelusuran algoritma dan
diawali dengan suatu populasi yang random yang disebut dengan particle. Berbeda
dengan teknik komputasi evolusioner lainnya, setiap particle di dalam PSO juga
berhubungan dengan suatu velocity. Partikel-partikel tersebut bergerak melalui
penelusuran ruang dengan velocity yang dinamis yang disesuaikan menurut perilaku
historisnya. Oleh karena itu, partikel-partikel mempunyai kecenderungan untuk
6
bergerak ke area penelusuran yang lebih baik setelah melewati proses penelusuran.
Particle Swarm Optimization (PSO) mempunyai kesamaan dengan genetic algorithm
yang mana dimulai dengan suatu populasi yang random dalam bentuk matriks. Namun
PSO tidak memiliki operator evolusi yaitu crossover dan mutasi seperti yang ada pada
genetic algorithm. Baris pada matriks disebut particle atau dalam genetic algorithm
sebagai kromosom yang terdiri dari nilai suatu variable. Setiap particle berpindah dari
posisinya semula ke posisi yang lebih baik dengan suatu velocity.
Pada algoritma PSO vektor velocity di update untuk masing-masing partikel
kemudian menjumlahkan vektor velocity tersebut ke posisi particle. Update velocity
dipengaruhi oleh kedua solusi yaitu global best yang berhubungan dengan biaya yang
paling rendah yang pernah diperoleh dari suatu particle dan solusi local best yang
berhubungan dengan biaya yang paling rendah pada populasi awal. Jika solusi local
best mempunyai suatu biaya yang kurang dari biaya solusi global yang ada, maka solusi
local best menggantikan solusi global best. Kesederhanaan algoritma dan
performansinya yang baik, menjadikan PSO telah menarik banyak perhatian di
kalangan para peneliti dan telah diaplikasikan dalam berbagai persoalan optimisasi.
PSO telah populer menjadi optimisasi global dengan sebagian besar permasalahan dapat
diselesaikan dengan baik di mana variabel-variabelnya adalah bilangan riil. Menurut
Wati (2011), beberapa istilah umum yang biasa digunakan dalam Particle Swarm
Optimization dapat didefinisikan sebagai berikut:
1. Swarm : populasi dari suatu algoritma.
2. Particle: anggota (individu) pada suatu swarm. Setiap particle
merepresentasikan suatu solusi yang potensial pada permasalahan yang
diselesaikan. Posisi dari suatu particle adalah ditentukan oleh representasi
solusi saat itu.
3. Pbest (Personal best): posisi Pbest suatu particle yang menunjukkan posisi
particle yang dipersiapkan untuk mendapatkan suatu solusi yang terbaik.
4. Gbest (Global best) : posisi terbaik particle pada swarm atau posisi terbaik
diantara Pbest yang ada.
7
Menurut Chen & Shih (2013) posisi dari tiap partikel dapat dianggap sebagai
calon solusi (candidate solution) bagi suatu masalah optimisasi. Tiap-tiap partikel
diberi suatu fungsi fitness merancang sesuai dengan menunjuk masalah yang yang
bersesuaian. Ketika masing-masing partikel bergerak ke suatu posisi baru didalam
ruang pencarian, itu akan mengingat sebagai personal best (Pbest). Sebagai tambahan
terhadap ingatan informasi sendiri, masing-masing partikel akan juga menukar
informasi dengan partikel yang lain dan mengingat global best (Gbest). Kemudian
masing-masing partikel akan meninjau kembali arah dan percepatannya sesuai dengan
Pbest dan Gbest untuk bergerak ke arah yang optimal dan menemukan solusi yang optimal.
Dengan keuntungan dari aplikasi yang mudah dan sederhana, lebih sedikit parameter
yang diperlukan, dan hasil yang baik, PSO telah diadopsi didalam banyak bidang,
seperti TSP, flowshop, VRP, task-resource assignment, penjadwalan khusus dan lain
lain. Sebab itu PSO telah pula diterapkan dalam membentuk penjadwalan yang optimal
untuk university cources. Seperti halnya dengan algoritma evolusioner yang lain,
algoritma PSO adalah sebuah populasi yang didasarkan penelusuran inisialisasi partikel
secara random dan adanya interaksi diantara partikel dalam populasi. Di dalam PSO
setiap partikel bergerak melalui ruang solusi dan mempunyai kemampuan untuk
mengingat posisi terbaik sebelumnya dan dapat bertahan dari generasi ke generasi.
Menurut Kennedy & Eberhart (1995) Algoritma PSO dikembangkan dengan
berdasarkan pada model berikut:
8
1. Ketika seekor burung mendekati target atau makanan (atau bisa minimum atau
maximum suatu fungsi tujuan) secara cepat mengirim informasi kepada
burung-burung yang lain dalam kawanan tertentu.
2. Burung yang lain akan mengikuti arah menuju ke makanan tetapi tidak secara
langsung.
3. Ada komponen yang tergantung pada pikiran setiap burung, yaitu memorinya
tentang apa yang sudah dilewati pada waktu sebelumnya.
Model Algoritma PSO ini akan disimulasikan dalam ruang dengan dimensi
tertentu dengan sejumlah iterasi sehingga di setiap iterasi, posisi partikel akan semakin
mengarah ke target yang dituju (minimasi atau maksimasi fungsi). Ini dilakukan hingga
maksimum iterasi dicapai atau bisa juga digunakan kriteria penghentian yang lain. Hal
ini disebabkan, PSO merupakan algoritma optimasi yang mudah dipahami, cukup
sederhana, dan memiliki unjuk kerja yang sudah terbukti handal. Algoritma PSO dapat
9
digunakan pada berbagai masalah optimasi baik kontinyu maupun diskrit, linier
maupun nonlinier. PSO memodelkan aktivitas pencarian solusi terbaik dalam suatu
ruang solusi sebagai aktivitas terbangnya kelompok partikel dalam suatu ruang solusi
tersebut. Dengan demikian, awal penelusuran pada algoritma PSO dilakukan dengan
populasi yang random (acak) yang disebut dengan partikel dan jika suatu partikel atau
seeokor burung menemukan jalan yang tepat atau pendek menuju sumber makanan,
maka sisa kelompok yang lain juga akan segera mengikuti jalan tersebut meskipun
lokasi mereka jauh di kelompok tersebut. Posisi partikel dalam ruang solusi tersebut
merupakan kandidat solusi yang berisi variabel-variabel optimasi. Setiap posisi tersebut
akan dikaitkan dengan sebuah nilai yang disebut nilai objektif atau nilai fitness yang
dihitung berdasarkan fungsi objektif dari masalah optimasi yang akan diselesaikan.
Menurut Chen & Shih (2013) untuk memulai algoritma PSO, kecepatan awal (velocity)
dan posisi awal (position) ditentukan secara random. Kemudian proses
pengembangannya sebagai berikut:
1. Asumsikan bahwa ukuran kelompok atau kawanan (jumlah partikel) adalah N.
Kecepatan dan posisi awal pada tiap partikel dalam N dimensi ditentukan
secara random (acak).
2. Hitung kecepatan dari semua partikel. Semua partikel bergerak menuju titik
optimal dengan suatu kecepatan. Awalnya semua kecepatan dari partikel
diasumsikan sama dengan nol, set iterasi i = 1.
3. Nilai fitness setiap partikel ditaksir menurut fungsi sasaran (objective function)
yang ditetapkan. Jika nilai fitness setiap partikel pada lokasi saat ini lebih baik
dari Pbest, maka Pbest diatur untuk posisi saat ini.
4. Nilai fitness partikel dibandingkan dengan Gbest. Jika Gbest yang terbaik
maka Gbest yang diupdate.
5. Persamaan (2.1) dan (2.2) ditunjukkan di bawah ini untuk memperbaharui
(update) kecepatan (velocity) dan posisi (position) setiap partikel.
𝑉𝑖𝑑𝑘+1 = 𝑤 × 𝑉𝑖𝑑𝑘 + 𝑐1 × 𝑟𝑎𝑛𝑑1 × (𝑃𝑖𝑑 − 𝑋𝑖𝑑 ) + 𝑐2 × 𝑟𝑎𝑛𝑑2 × (𝐺𝑖𝑑 − 𝑋𝑖𝑑 ) (2.1)
𝑘+1 𝑘 𝑘+1
𝑋𝑖𝑑 = 𝑋𝑖𝑑 + 𝑉𝑖𝑑 (2.2)
10
Dimana:
Vid = komponen kecepatan individu ke i pada d dimensi
Xid = posisi individu i pada d dimensi
𝜔 = parameter inertia weight
𝑐1 𝑐2 = konstanta akselerasi (learning rate), nilainya antara 0 sampai 1
rand1, rand2 = parameter random antara 0 sampai 1
𝑃𝑖d= Pbest (local best) individu i pada d dimensi
𝐺id= Gbest (global best) pada d dimensi
6. Cek apakah solusi yang sekarang sudah konvergen. Jika posisi semua partikel
menuju ke satu nilai yang sama, maka ini disebut konvergen. Jika belum
konvergen maka langkah 2 diulang dengan memperbarui iterasi i = i + 1,
dengan cara menghitung nilai baru dari Pbest,j dan Gbest. Proses iterasi ini
dilanjutkan sampai semua partikel menuju ke satu titik solusi yang sama.
Biasanya akan ditentukan dengan kriteria penghentian (stopping criteria),
misalnya jumlah selisih solusi sekarang dengan solusi sebelumnya sudah
sangat kecil.
7. Menurut Engelbrecht (2006) ada 2 aspek penting dalam memilih kondisi
berhenti yaitu:
a. Kondisi berhenti tidak menyebabkan PSO convergent premature (memusat
sebelum waktunya) dimana solusi tidak optimal yang didapat.
b. Kondisi berhenti harus melindungi dari kondisi oversampling pada
nilainya, jika kondisi berhenti memerlukan perhitungan yang terus
menerus maka kerumitan dari proses pencarian akan meningkat.
Menurut Hsieh et al. (2007) menentukan kombinasi parameter terbaik Algoritma PSO
dengan kondisi yang berbeda yaitu:
11
Start
Apakah jumlah
Tidak
maksimum pencarian
tercapai?
Ya
End
Algoritma ini ditemukan di Universitas Michigan, Amerika Serikat oleh John Holland
(1975) melalui sebuah penelitian dan dipopulerkan oleh salah satu muridnya, David
Goldberg (Haupt R.L. & Haupt S.E. 2004). Algoritma genetika adalah algoritma
pencarian heuristik yang didasarkan atas seleksi alamiah dan evolusi. Teori seleksi
alamiah dan evolusi pertama sekali diperkenalkan oleh Charles Darwin. Algoritma ini
didasari oleh konsep evaluasi biologi, dan dapat memberikan solusi alternatif atas suatu
masalah yang hendak diselesaikan. Algoritma genetika menawarkan suatu solusi
pemecahan masalah yang terbaik, dengan memanfaatkan metode seleksi, crossover, dan
mutasi. Solusi terbaik yang diinginkan dapat dicapai dengan terus mengulang proses
pencarian keturunan (Ferdian et al. 2013).
Proses pencarian solusi diawali dengan tahap pembangkitan populasi awal secara
acak. Populasi ini terdiri dari kromosom-kromosom dan setiap kromosom merupakan
gambaran solusi atas pemecahan masalah. Populasi yang telah dipilih tersebut akan
menghasilkan keturunan baru yang sifatnya diharapkan lebih baik dari populasi
sebelumnya. Populasi yang baik sifatnya akan memiliki peluang untuk terus
dikembangkan agar menghasilkan keturunan populasi yang lebih baik selanjutnya.
Pendekatan yang diambil oleh algoritma ini adalah dengan menggabungkan secara acak
berbagai pilihan solusi terbaik di dalam suatu kumpulan untuk mendapatkan generasi
solusi terbaik berikutnya yaitu pada suatu kondisi yang memaksimalkan kecocokannya
atau biasa disebut fitness. Generasi ini akan merepresentasikan perbaikan-perbaikan
pada populasi awalnya. Dengan melakukan proses ini secara berulang, algoritma ini
diharapkan dapat mensimulasikan proses evolusioner. Pada akhirnya, akan didapatkan
solusi-solusi yang paling tepat bagi permasalahan yang dihadapi. Dengan demikian
algoritma genetika dapat menggunakan metode seleksi, pindah silang dan mutasi dalam
membentuk populasi baru, dengan memaksimalkan fungsi fitness yang diharapkan akan
lebih baik dari populasi sebelumnya. Algoritma genetika adalah algoritma yang
berusaha menerapkan pemahaman mengenai evolusi alamiah pada pemecahan-masalah
(problem solving).
Untuk menggunakan algoritma genetika, solusi permasalahan direpresentasikan
sebagai kromosom. Tiga aspek yang penting untuk penggunaan algoritma genetika:
1. Definisi fitness function.
2. Definisi dan implementasi representasi genetika.
13
Jika ketiga aspek di atas telah didefinisikan, algoritma genetika akan bekerja
dengan baik. Algoritma genetika cukup baik untuk digunakan dalam penjadwalan mata
kuliah di sebuah perguruan tinggi dan merupakan salah satu jalan untuk memecahkan
masalah yang cukup besar dengan solusi yang cukup baik meskipun masalah tersebut
membutuhkan waktu eksekusi yang lama bila dilakukan secara manual (Jain et al.
2010). Algoritma genetika diilhami oleh ilmu genetika, karena itu istilah yang
digunakan dalam algoritma genetika banyak diadopsi dari ilmu tersebut. Menurut
Michalewicz (1996) apabila dibandingkan dengan prosedur pencarian dan optimasi
biasa, algoritma genetika berbeda dalam beberapa hal sebagai berikut:
1. Manipulasi dilakukan terhadap kode dari himpunan parameter (biasa disebut
chromosome), tidak secara langsung terhadap parameternya sendiri.
2. Proses pencarian dilakukan dari beberapa titik dalam satu populasi, tidak dari
satu titik saja.
3. Proses pencarian menggunakan informasi dari fungsi tujuan.
4. Pencariannya menggunakan unsur peluang (stochastic operators) yang
bersifat probabilistik, tidak menggunakan aturan deterministik.
Kelebihan Algoritma genetika sebagai metode optimasi adalah sebagai berikut:
1. Algoritma genetika merupakan algoritma yang berbasis populasi yang
memungkinkan digunakan pada optimasi masalah dengan ruang pencarian
(search space) yang sangat luas dan kompleks. Properti ini juga
memungkinkan Algoritma genetika untuk melompat keluar dari daerah lokal
optimum (Gen & Cheng, 1997).
2. Individu yang ada pada populasi bisa diletakkan pada beberapa sub-populasi
yang diproses pada sejumlah komputer secara paralel. Hal ini bisa mengurangi
waktu komputasi pada masalah yang sangat kompleks (Defersha & Chen,
2010). Penggunaan sub-populasi juga bisa dilakukan pada hanya satu
komputer untuk menjaga keragaman populasi dan meningkatkan kualitas hasil
pencarian.
3. Algoritma genetika menghasilkan himpunan solusi optimal yang sangat
berguna pada peyelesaian masalah dengan banyak obyektif (Mahmudy &
Rahman, 2011).
14
4. Seleksi
Seleksi dilakukan untuk memilih individu dari himpunan populasi dan
offspring yang dipertahankan hidup pada generasi berikutnya. Semakin besar
nilai fitness sebuah chromosome maka semakin besar peluangnya untuk
terpilih. Hal ini dilakukan agar terbentuk generasi berikutnya yang lebih baik
dari generasi sekarang. Metode seleksi yang sering digunakan adalah roulette
wheel, binary tournament, dan elitism.
Langkah-langkah membentuk roulette wheel berdasarkan probabilitas
kumulatif adalah:
- Misalkan fitness(Pk) adalah nilai fitness individu ke-k. Maka bisa dihitung
total fitness sebagai berikut:
𝑝𝑜𝑝 𝑠𝑖𝑧𝑒
dimana:
Pk : probabilitas terpilihnya individu k dalam populasi
pk : nilai fitted value dari individu k
pj : nilai fitted value dari individu ke- j, dimana j = 1, 2, ..., pop size
pop size : jumlah seluruh individu dalam populasi
Iterasi GA diulang terus sampai kondisi berhenti tercapai. Beberapa kriteria bisa dipakai
untuk hal ini sebagai berikut:
1. Iterasi berhenti sampai generasi n. Nilai n ditentukan sebelumnya berdasarkan
beberapa eksperimen pendahuluan. Semakin tinggi ukuran dan kompleksitas
masalah maka nilai n semakin besar. Nilai n ditentukan sedemikian rupa
sehingga konvergensi populasi tercapai dan akan sulit didapatkan solusi yang
lebih baik setelah n iterasi (Yogeswaran et al. 2009).
2. Iterasi berhenti setelah n generasi berurutan tidak dijumpai solusi yang lebih
baik (Mahmudy et al. 2012a). Kondisi ini menunjukkan bahwa GA sulit
mendapatkan solusi yang lebih baik dan penambahan iterasi hanya membuang
waktu.
3. Iterasi berhenti setelah t satuan waktu tercapai. Ini biasa digunakan jika
diinginkan untuk membandingkan performa dari beberapa algoritma
(Mahmudy, 2013). Dalam implementasi praktis, kombinasi kondisi (1) dan (2)
bisa dipakai (Mahmudy et al. 2013e).
Algoritma genetik dimulai dengan sekumpulan set status yang dipilih secara random
yang disebut populasi. Algoritma ini mengkombinasikan dua populasi induk. Setiap
status atau individual direpresentasikan sebagai sebuah string.
18
1. Fitness function
Setiap individual dievaluasi dengan fitness function. Sebuah fitness function
mengembalikan nilai tertinggi untuk individual yang terbaik. Individu akan
diurutkan berdasarkan nilai atau disebut dengan selection.
2. Crossover
Untuk setiap pasang induk, sebuah titik crossover akan dipilih secara random
dari posisi dalam string. Pada gambar titik crossover terletak pada indeks
ketiga dalam pasangan pertama dan setelah indeks kelima pada pasangan
kedua.
3. Mutation
Pada mutation atau mutasi, tiap lokasi menjadi sasaran mutasi acak, dengan
probabilitas independen yang kecil. Sebuah digit dimutasikan pada anak
pertama, ketiga, dan keempat. Algoritma genetika mengkombinasikan suatu
kecenderungan menaik dengan pengeksplorasian acak diantara urutan
pencarian paralel. Keuntungan utamanya, bila ada datang dari operasi
crossover. Namun, secara matematis dapat tunjukkan bahwa bila posisi dari
kode genetik di permutasikan di awal dengan urutan acak, crossover tidak
memberikan keunggulan. Secara intuisi, keuntungannya didapat dari
kemampuan crossover untuk menggabungkan blok-blok huruf berukuran
besar yang telah berevolusi secara independen untuk melakukan fungsi yang
bermanfaat sehingga dapat menaikkan tingkat pencarian.
4. Schema
Teori dari algoritma genetika menjelaskan cara kerjanya menggunakan ide dari
suatu schema, suatu substring di mana beberapa posisi tidak disebutkan. Dapat
ditunjukkan bahwa, bila fitness rata-rata dari schema berada di bawah mean
maka jumlah instansiasi dari schema di dalam populasi akan bertambah seiring
bertambaahnya waktu. Jelas sekali bahwa efek ini tidak akan signifikan bila
bit-bit yang bersebelahan sama sekali tidak berhubungan satu sama sekali,
karena akan ada beberapa blok kontinyu yang memberikan keuntungan yang
konsisten. Algoritma genetika paling efektif dipakai bila schema-schema
berkorespondensi menjadi komponen berati dari sebuah solusi. Sebagai
contoh, bila string adalah representasi dari sebuah antena, maka schema
merepresentasikan komponen-komponen dari antena, seperti reflector dan
19
deflector. Sebuah komponen yang baik cenderung akan berkerja baik pada
rancangan yang berbeda. Ini menunjukkan bahwa penggunaan algoritma
genetika yang benar memerlukan rekayasa yang baik pada representasinya.
1 1 1 1 0 0,33 0 1 1 1 0 1 1 1 1 0 1 1 1 1 1
0 1 1 1 0 1 1 1 1 0 0 1 1 1 0 0 0 1 1 0
0,25
1 1 1 0 1 0,33 0 1 1 1 0 1 1 1 1 0 1 1 1 1 0
0 1 0 0 0 0,08 1 1 1 0 1 0 1 1 0 1 1 1 1 0 1
a. b. c. d. e.
Inisialisasi Fungsi Seleksi Crossover Mutasi
Populasi Fitness
Terdapat beberapa definisi penting dalam Algoritma genetika yang perlu diperhatikan,
yaitu:
1. Genotype (Gen), sebuah nilai yang menyatakan satuan dasar yang membentuk
suatu arti tertentu dalam satu kesatuan gen yang dinamakan kromosom. Dalam
algoritma genetika, gen ini bisa berupa biner, float, interger maupun karakter,
elemen permutasi atau kombinasi.
2. Allele, merupakan nilai dari gen
3. Individu atau kromosom, gabungan gen-gen yang membentuk nilai tertentu
dan merupakan salah satu solusi yang mungkin dari permasalahan yang
diangkat.
4. Populasi, merupakan sekumpulan individu yang akan diproses bersama dalam
satu siklus proses evalusi.
5. Generasi, menyatakan satu siklus proses evolusi atau satu iterasi di dalam
algoritma genetika.
20
Menurut Suyanto (2005), terdapat beberapa komponen dalam algoritma genetika yaitu:
2.6.3 Seleksi
Seleksi digunakan untuk memilih individu-individu mana saja yang akan dipilih untuk
proses crossover dan mutasi. Seleksi digunakan untuk mendapatkan calon individu
yang baik. Semakin tinggi nilai fitness suatu individu semakin besar kemungkinannya
untuk terpilih. Terdapat beberapa metode seleksi yaitu:
1. Roulette Wheel
Calon induk yang akan dipilih berdasarkan nilai fitness yang dimilikinya,
semakin baik individu tersebut yang ditunjukkan dengan semakin besar nilai
fitnessnya akan mendapatkan kemungkinan yang lebih besar untuk terpilih
sebagai induk. Misalkan saja roulette wheel merupakan tempat untuk
menampung seluruh kromosom dari tiap populasi, maka besarnya tempat dari
roulette wheel tersebut menunjukkan seberapa besar nilai fitness yang dimiliki
22
oleh suatu kromosom, semakin besar nilai fitness tersebut, maka semakin besar
pula tempat yang tersedia. Ilustrasinya dapat digambarkan sebagai berikut:
2. Steady State
Metode ini tidak banyak digunakan dalam proses seleksi karena dilakukan
dengan mempertahankan individu yang terbaik. Pada setiap generasi, akan
dipilih beberapa kromosom dengan nilai fitnessnya yang terbaik sebagai induk,
sedangkan kromosom-kromosom yang memiliki nilai fitness terburuk akan
digantikan dengan offspring yang baru. Sehingga pada generasi selanjutnya
akan terdapat beberapa populasi yang bertahan.
3. Tournament
Dalam metode seleksi tournament sejumlah N individu dipilih secara acak dan
kemudian menentukan fitnessnya. Kebanyakan metode seleksi ini digunakan
pada binary, dimana hanya dua individu yang dipilih.
4. Ranking
Seleksi ini memperbaiki proses seleksi yang sebelumnya yaitu roulette wheel
karena pada seleksi tersebut kemungkinan salah satu kromosom mempunyai
nilai fitness yang mendominasi hingga 90% bisa terjadi, sehingga nilai fitness
yang lain akan mempunyai kemungkinan yang sangat kecil sekali untuk
terpilih. Sehingga dalam seleksi ranking, dilakukan perumpamaan sesuai
dengan nilai fitnessnya, nilai fitness terkecil diberi nilai 1, yang terkecil kedua
diberi nilai 2, dan begitu seterusnya sampai yang terbagus diberi nilai N
(jumlah kromosom dalam populasi). Nilai tersebut yang akan diambil sebagai
presentasi tepat yang tersedia.
23
2.6.4 Crossover
Salah satu komponen yang paling penting dalam algoritma genetika adalah pindah
silang atau crossover. Sebuah kromosom yang mengarah pada solusi yang baik dapat
diperoleh dari proses memindah-silangkan dua buah kromosom. Pindah silang juga
dapat berakibat buruk jika ukuran populasinya sangat kecil. Dalam suatu populasi yang
sangat kecil, suatu kromosom dengan gen-gen yang mengarah pada solusi terbaik akan
sangat cepat menyebar ke kromosom-kromosom lainnya. Untuk mengatasi masalah ini
digunakan suatu aturan bahwa pindah silang hanya bisa dilakukan dengan suatu
probabilitas tertentu, artinya pindah silang bisa dilakukan hanya jika suatu bilangan
random yang dibangkitkan kurang dari probabilitas yang ditentukan tersebut. Pada
umumnya probabilitas tersebut diset mendekati 1.
Ada beberapa cara yang bisa digunakan untuk melakukan crossover sesuai
dengan encodingnya yang dijelaskan sebagai berikut:
1. Crossover satu titik
Memilih satu titik tertentu, selanjutnya nilai biner sampai titik crossovernya
dari induk pertama digunakan dan sisanya dilanjutkan dengan nilai biner dari
induk kedua.
Contoh:
11001011 11001111 (child-1)
11011111 11011011 (child-2)
3. Uniform Crossover
Nilai biner yang digunakan dipilih secara random dari kedua induk.
Contoh:
24
2.6.5 Mutasi
Mutasi merupakan proses mengubah nilai dari satu atau beberapa gen dalam suatu
kromosom. Mutasi ini berperan untuk menggantikan gen yang hilang dari populasi
akibat seleksi yang memungkinkan munculnya kembali gen yang tidak muncul pada
inisialisasi populasi. Metode mutasi yang digunakan adalah mutasi dalam pengkodean
nilai. Proses mutasi dalam pengkodean nilai dapat dilakukan dengan berbagai cara
berdasarkan encodingnya terdapat beberapa macam, diantaranya adalah sebagai berikut
:
1. Binary Encoding
Melakukan inversi pada bit yang terpilih, 0 menjadi 1 dan sebaliknya, 1
menjadi 0.
Contoh : 11001001 10001001
2. Permutation Encoding
Memilih dua nilai dari gen dan menukarnya.
Contoh : (1 2 3 4 5 8 9 7) (1 8 3 4 5 6 2 9 7)
25
yang berguna tidak sempat untuk dimanfaatkan dan jika terlalu besar akan
menyebabkan offspring kehilangan sifat dari induknya dan tidak akan dapat
memanfaatkan lagi proses evolusi alamiah.
2.6.6 Elitisme
Karena seleksi dilakukan secara acak (random), maka tidak ada jaminan bahwa suatu
individu bernilai fitness tertinggi akan selalu terpilih. Kalaupun individu bernilai fitness
tertinggi terpilih, mungkin saja individu tersebut akan rusak (nilai fitnessnya menurun)
karena proses pindah silang. Untuk menjaga agar individu bernilai fitness tertinggi
tersebut tidak hilang selama evolusi, maka perlu dibuat satu atau beberapa salinannya.
Prosedur ini dikenal sebagai Elitisme.
Start
Input Data
Pengkodean Kromosom
Evaluasi Fitness
Fitness Ya
terbaik
No
Seleksi
Crossover
Mutasi
No
Cek Kondisi
Ya
Output Data
End
2.7 Penjadwalan
RABU
09.00 – 11.45 - MK7 MK11 -
13.00 – 15.45 - MK10 - -
16.00 – 17.50 - - MK28 MK29
KAMIS
09.00 – 11.45 MK12 MK13 - MK14
13.00 – 15.45 - - - MK16
16.00 – 17.50 - - MK30 MK31
JUMAT
09.00 – 11.45 - MK15 MK17 -
13.00 – 15.45 - - - MK18
16.00 – 17.50 MK32 MK33 - MK34
SABTU
09.00 – 11.45 - - MK22 MK23
13.00 – 15.45 MK19 MK20 MK21 -
16.00 – 17.50 - MK36 - -
Sedangkan batasan lunak (soft constraint) yang bersifat “prioritas” merupakan batasan
yang boleh dilanggar jika perlu, yaitu:
1. Prioritas dosen pengajar perkuliahan dan prioritas mahasiswa seharusnya
dipertimbangkan, prioritas ini dapat dinyatakan dengan bilangan numerik yang
merupakan tingkat ketidakpuasan mahasiswa atau dosen.
2. Perkuliahan dengan beban 4 JP/Sks dapat dilaksanakan dalam satu sesi atau
dalam dua sesi masing-masing 2 JP/Sks, tergantung prioritas dosen.
3. Dosen sebaiknya memiliki hari libur mengajar.
pelajaran, penjadwalan ujian, atau bisa juga penjadwalan karyawan, baik dalam suatu
perusahaan, rumah sakit, dan sebagainya.
Ada beberapa penelitian yang terkait dengan penelitian yang penulis buat, yaitu: