Proses roulete-wheel adalah membangkitkan nilai acak R antara 0

advertisement
Judul
1. Pendahuluan



Deskripsikan system atau aplikasi yang anda presentasikan.
Jelaskan tujuan atau objektif sistem yang dipresentasikan.
Jelaskan keunggulan metode atau algoritma yang digunakan.
2. Pengenalan sistem
Berikan gambaran yang jelas tentang system, arsitektur system. Buat blok diagram yang
menjelaskan mekanisme kerja system.
2.1
Representasi Data masukan
Buat analisis data masukan yan dibutuhkan oleh system. Tipe data, struktur data, struktur
table dan parameter lain yang dibutuhkan
2.2
Mekanisme system
Jelaskan proses-proses yang terjadi atau yang dilakukan oleh system, mulai dari menerima
data masukan yang telah sesuai dengan kebutuhan system, tahap preprocessing (jk
dibutuhkan), blok diagram algoritma atau metode, sampai menghasilkan keluaran yang sesuai
dengan keinginan designer. Contoh : mengkonversi data gambar menjadi matriks 2 dimensi,
dll
2.3
Representasi Ouput sistem
Penjelasan bentuk, fungsi dan tujuan output
3. Analisis dan Implementasi Sistem
Menjelaskan penerapan metode atau algoritma yang digunakan dengan menggunakan data yang
ada atau digunakan sistem.
Contoh kasus.
Terdapat 5 buah kota yang akan dilalui oleh seorang pedangang keliling, misalnya Kota A,B,C,D,E.
Perjalanan dimulai dari kota A dan berakhir di kota A. Jarak antar kota diperlihatkan pada graf di
bawah ini:
Pemilihan nilai fitness yang terendah sebagai syarat karena nilai tersebut yang merepresentasikan
jarak terdekat yang dicari pada persoalan ini. Ada 4 kota yang akan menjadi gen dalam kromosom
yaitu kota-kota selain kota asal.
Inisialisasi
Misalkan kita menggunakan 6 buah populasi dalam satu generasi, yaitu
Evaluasi kromosom
Kita akan menghitung nilai fitness dari tiap kromosom yang telah dibangkitkan:
Seleksi kromosom
Oleh karena pada persoalan TSP yang diinginkan yaitu kromosom dengan fitness yang lebih kecil
akan mempunyai probabilitas untuk terpilih kembali lebih besar maka digunakan inverse.
Dari probabilitas di atas dapat terlihat bahwa kromosom ke-1 mempunyai fitness paling kecil
mempunyai probabilitas untuk terpilih pada generasi selanjutnya lebih besar dari kromosom
lainnya.
Untuk proses seleksi kita menggunakan rouletewheel, untuk itu kita terlebih dahulu menghitung
persentasi dari masing-masing kromosom.
Proses roulete-wheel adalah membangkitkan nilai acak R antara 0-1. Jika R[k]<Qk[k] maka
kromosom ke-k sebagai induk, selain itu pilih kromosom ke-k sebagai induk dengan syarat
Qk[k-1] < R[k] < Qk[k]. Kita putar roulete-wheel sebanyak jumlah kromosom yaitu 6 kali
(membangkitkan bilangan acak R).
Cross over ( Pindah Silang )
Pindah silang pada TSP dapat diimplementasikan dengan skema order crossover. Pada skema ini,
satu bagian kromosom dipertukarkan dengan tetap menjaga urutan kota yang bukan bagian dari
kromosom tersebut. Kromosom yang dijadikan induk dipilih secara acak dan jumlah kromosom
yang dicrossover dipengaruhi oleh parameter crossover probability (ρc).
Mutasi
Pada kasus TSP ini skema mutasi yang digunakan adalah swapping mutation. yaitu teknik saling
menukarkan antara satu gen dengan gen yang lain dalam satu individu. Algoritmanya adalah
sebagai berikut:
Bangkitan dua bilangan random (antara 0 sampai panjang kromosom) untuk setiap individu,
sebanyak jumlah individu dalam populasi. Tukarkan gen dengan lokasi kedua bilangan tersebut
dengan cara:
Proses algoritma genetik untuk 1 generasi telah selesai. Maka nilai fitness setelah 1 generasi
adalah:
Capture script yang berkaitan dengan metode atau algoritma yang dibahas per tahap. Mulai dari
awal sampai akhir.
CONTOH Implementasi : (untuk algoritma genetik)
o
Inisialisasi variabel yang berkaitan
private List<chromosome> GetInitialPopulation(int population)
{
List<chromosome> initPop = new List<chromosome>();
GeneticAlgo RandomGen = new GeneticAlgo();
for (int i = 0; i < population; i++)
{
List<int> genes = new List<int>(new int[] {0, 1, 2, 3,
4, 5, 6, 7});
Chromosome chromosome = new Chromosome();
chromosome.genes = new int[8];
for (int j = 0; j < 8; j++)
{
int geneIndex = (int)(RandomGen.GetRandomVal
(0,genes.Count-1)+0.5); //randomly
select a gene
chromosome.genes[j] = genes[geneIndex];
genes.RemoveAt(geneIndex);//remove selected
gene
}
initPop.Add(chromosome);
}
return initPop;
}
o
Skema pengkodean
{ Script pengkodean ; }
o
Menghitung Nilai fitness
{ Script nilai fitness; }
o
Seleksi (metode yang digunakan)
{ Script selection; }
o
Cross over
{ Script crossover; }
o
Mutasi
{ Script nilai fitness; }

Pada bagian contoh, script apa saja yang dimasukan disesuaikan dengan topik masingmasing
4. Kesimpulan dan saran
Bagian kesimpulan menjelaskan apakah sistem telah mencapai tujuannya
Bagian saran menjelaskan apa saja yang perlu diperbaiki agar tujuan sistem dapat tercapai lebih
baik.
5. Referensi
6. Lampiran



Screenshoot antar muka
Screenshoot proses
Screenshoot hasil
CATATAN :
UNTUK METODE LAIN DISESUAIKAN DENGAN PROSES MASING-MASING METODE. MULAILAH DENGAN
INISIALISASI HINGGA MENGHASILKAN OUTPUT.
Download