Universitas Kristen Maranatha
ABSTRAK
Dalam beberapa tahun terakhir ini, peranan algoritma genetika terutama untuk
masalah optimisasi, berkembang dengan pesat. Masalah optimisasi ini beraneka
ragam tergantung dari bidangnya. Dalam tugas akhir ini, masalah optimisasi yang
dipilih adalah masalah dalam bidang transportasi, di mana akan dicari optimasi dalam
pencarian jalur terpendek untuk sebuah jalur perjalanan dari posisi awal secara acak
menyinggahi setiap kota tepat satu kali, dan kembali ke posisi awal pada suatu lokasi
kota.
Algoritma Genetika adalah salah satu bidang terapan dari kecerdasan buatan
yang merupakan salah satu teknik komputasi yang sangat sesuai untuk permasalahan
dengan ruang solusi yang sangat besar. Kelebihan utama algoritma genetika adalah
sifat adaptivitasnya. Begitu masalah dapat dikodekan ke dalam kromosom dan dapat
dibangun fungsi fitness yang tepat, maka dengan mudah dapat dibangun algoritma
genetika untuk menyelesaikan masalah tersebut.
Sistem algoritma genetika yang telah didisain, menggunakan representasi
kromosom dalam bentuk bit string. Adapun komponen-komponen algoritma genetika
yang digunakan adalah seleksi, rekombinasi, mutasi, dan penggantian kromosom.
Dari hasil simulasi, dapat disimpulkan bahwa secara keseluruhan, algoritma genetika
yang telah didisain dapat berjalan dengan baik dan dapat menyelesaikan
permasalahan. Untuk 6 buah kota didapatkan jalur terpendek sebesar 43,1154 unit
(dengan parameter : popsize=40; pc=0,5; pm=0,01; kb=0,01; maxgen=10) sedangkan
untuk 15 buah kota didapatkan jalur terpendek sebesar 53,9829 unit (dengan
Universitas Kristen Maranatha
ABSTRACT
In the last few years, the role of genetic algorithm, especially in optimization
problems, grows rapidly. There are various optimization problems depending on the
field. In this final project, the chosen optimization problem is the in transportation
field. The problem is to find the shortest track for one tour from the first random
position stops in every city once and then returns to the first position.
Genetic Algorithm is one of the artificial intelligence method. It is a
computation technique which is appropriate to solve problems with numerous variety
of solution. The strong advantage of genetic algorithm is the adaption characteristic.
When a problem can be coded into chromosome and build the appropriate fitness
function, can be built the genetic algorithm will easily be constructed to solve that
problem.
The Genetic Algorithm system that was designed for this final project uses
bit string chromosome representation. While the genetic algorithm components that
are used consist of selection, crossover, mutation, and chromosome replacement.
From the simulation, it can be concluded that the genetic algorithm system design is
working well and able to solve the optimization problems. For a system with six
cities the algorithm has shown the shortest track which is 43.1154 units (the
parameters are : popsize=40; pc=0.5; pm=0.01; kb=0.01; maxgen=10), and for a
system with fifteen cities the algorithm has shown the shortest track is 53.9829 units
Universitas Kristen Maranatha
DAFTAR ISI
LEMBAR PENGESAHAN
SURAT PERNYATAAN
ABSTRAK i
ABSTRACT ii
KATA PENGANTAR iii
DAFTAR ISI v
DAFTAR TABEL ix
DAFTAR GAMBAR x
BAB I PENDAHULUAN 1
I.1 Latar Belakang 1
I.2 Identifikasi Masalah 1
I.3 Tujuan 1
I.4 Pembatasan Masalah 2
I.5 Sistematika Penulisan 2
BAB II DASAR TEORI 4
II.1 Kecerdasan Buatan 4
II.1.1 Acting Humanly : Pendekatan Uji Turing 5
II.1.2 Thinking Humanly : Pendekatan Model Kognitif 5 II.1.3 Thinking Rationally : The Laws of Thought Approach 6 II.1.4 Acting Rationally : The Rational Agent Approach 6
II.2 Sejarah AI 7
II.2.1 Prehistoric Times (sebelum 1956) 7
II.2.2 Dawn Age (1956-1965) 8
II.2.3 Dark Age (1965-1970) 10
II.2.4 Renaissance (1970-1975) 10
Universitas Kristen Maranatha
II.2.6 Age of Entrepreneurs (mulai 1980) 12
II.3 Perbedaan Komputasi AI Dengan Proses Komputasi Konvensional 13
II.4 Area Aplikasi AI 13
II.5 Algoritma Genetika 14
II.5.1 Pendahuluan 14
II.5.2 Struktur Umum Algoritma Genetika 15
II.5.3 Komponen-Komponen Utama Algoritma Genetika 16
II.5.3.1 Teknik Penyandian 16
II.5.3.2 Prosedur Inisialisasi 16
II.5.3.3 Fungsi Evaluasi 16
II.5.3.4 Penentuan parameter 17
II.5.3.5 Seleksi 17
II.5.4 Rank-based Fitness 18
II.5.5 Seleksi Roda Rolet (Roulette Wheel Selection) 19
II.5.6 Stochastic Universal Sampling 19
II.5.7 Seleksi Lokal (Local Selection) 20
II.5.8 Seleksi Dengan Pemotongan (Truncation Selection) 21
II.5.9 Seleksi dengan Turnamen (Tournament Selection) 21
II.5.10 Rekombinasi 21
II.5.10.1 Rekombinasi Diskrit 21
II.5.10.2 Rekombinasi Menengah 22
II.5.10.3 Rekombinasi Garis 22
II.5.11 Penyilangan Satu Titik (Single-point Crossover) 22
II.5.12 Penyilangan Banyak Titik (Multipoint Crossover) 23
II.5.13 Penyilangan Seragam (Uniform Crossover) 23
II.5.14 Penyilangan Dengan Permutasi (Permutation Crossover) 23 II.5.15 Mutasi 24
II.5.15.1 Mutasi Bilangan Real 25
Universitas Kristen Maranatha
II.5.15.3 Mutasi Dalam Pengkodean Pohon 25
II.5.15.4 Mutasi Dalam Pengkodean Permutasi 26
II.5.16 Algoritma Genetika Sederhana 26
II.6 Teori Graf 27
II.6.1 Jenis-Jenis Graf 27
II.6.2 Lintasan dan Sirkuit Hamilton 28
II.7 Travelling Salesman Problem (TSP) 29
BAB III PERANCANGAN PERANGKAT LUNAK 32
III.1 Kriteria Perancangan 32
III.1.1 Fungsi Panjang Jalur GA 34
III.1.2 Jarak Antar Kota 34
III.1.3 Inisialisasi 35
III.1.4 Bangkitkan Populasi Awal 36
III.1.5 Iterasi 38
III.1.6 Seleksi 38
III.1.7 Crossover 41
III.1.8 Mutasi 48
III.1.9 Mengganti Kromosom Secara Acak Dengan Kromosom Terbaik 53
III.2 Hasil Akhir Setiap Generasi 56
BAB IV HASIL PENGAMATAN 57
IV.1 Simulasi 6 Buah Kota Dengan Algoritma Genetika 57
IV.2 Simulasi 15 Buah Kota Dengan Algoritma Genetika 78
IV.3 Grafik Hasil Percobaan 83
IV.3.1 Grafik Hasil Percobaan Untuk 6 Buah Kota 83
IV.3.2 Grafik Hasil Percobaan Untuk 15 Buah Kota 85
BAB V KESIMPULAN DAN SARAN 88
V.1 Kesimpulan 88
V.2 Saran 88
Universitas Kristen Maranatha
LAMPIRAN A A-1
LAMPIRAN B B-1
LAMPIRAN C C-1
LAMPIRAN D D-1
LAMPIRAN E E-1
LAMPIRAN F F-1
LAMPIRAN G G-1
LAMPIRAN H H-1
Universitas Kristen Maranatha
DAFTAR TABEL
Tabel II.1. Perbandingan AI dan Pemrograman Konvensional 13
Tabel III.1. Bilangan Acak Crossover Untuk 6 Buah Kota 43 Tabel III.2. Kromosom Induk Untuk 6 Buah Kota 45
Tabel III.3. Bilangan Acak Mutasi Untuk 6 Buah Kota 50
Tabel III.4. Bilangan Acak Pelestarian Untuk 6 buah Kota 54
Tabel IV.1. Koordinat Kota dan Nama Kota 57
Tabel IV.2. Jarak Antar Kota 57
Tabel IV.3. Populasi Awal 59
Tabel IV.4. ProbabilitasFitness 61
Tabel IV.5. Bilangan Acak Seleksi 63
Tabel IV.6. Hasil Seleksi 64
Tabel IV.7. Bilangan Acak Crossover 66
Tabel IV.8. Kromosom Induk 68
Tabel IV.9. Kromosom Anak 69
Tabel IV.10. Bilangan Acak Mutasi 70
Tabel IV.11. Kromosom Kena Mutasi 71
Tabel IV.12. Bilangan Acak Penggantian Kromosom 72
Tabel IV.13. Hasil Populasi Akhir Generasi ke 1 74
Tabel IV.14. Rekap Hasil 76
Tabel IV.15. Koordinat dan Nama Kota 78
Tabel IV.16. Jarak Antar Kota 79
Tabel IV.17. Populasi Awal 80
Tabel IV.18. Hasil Seleksi 81
Tabel IV.19. Kromosom Induk 81
Tabel IV.20. Hasil Populasi Akhir Generasi ke 1 81
Universitas Kristen Maranatha
DAFTAR GAMBAR
Gambar II.1 AI 14
Gambar III.1 Diagram Alir Algoritma Genetika yang Digunakan 33
Gambar III.2 Diagram Alir Jarak Antar Kota 35
Gambar III.3 Diagram Alir Populasi Awal 37
Gambar III.4 Diagram Alir Proses Seleksi 40
Gambar III.5 Diagram Alir Proses Crossover 49
Gambar III.6 Diagram Alir Proses Mutasi 52
Gambar IV.1 Tampilan Grafis Generasi ke 10 Dalam Matlab 74
Gambar IV.2. Tampilan Grafis Generasi ke 100 Dalam Matlab 82
Gambar IV.3 Grafik Dengan Maxgen Bernilai 1 83
Gambar IV.4 Grafik Dengan Maxgen Bernilai 5 84
Gambar IV.5 Grafik Dengan Maxgen Bernilai 10 84
Gambar IV.6 Grafik Dengan Maxgen Bernilai 20 85
Gambar IV.7 Grafik Dengan Maxgen Bernilai 10 85
Gambar IV.8 Grafik Dengan Maxgen Bernilai 50 86
SURAT PERNYATAAN
Yang bertandatangan di bawah ini : Nama : Andi
NRP : 0322045
menyatakan dengan sesungguhnya bahwa Tugas Akhir ini adalah hasil karya sendiri dan bukan duplikasi hasil karya orang lain.
Apabila kelak terbukti pernyataan ini tidak benar, maka saya bersedia menerima sanksi.
Demikian pernyataan saya.
Bandung, Januari 2007 Yang menyatakan,
LAMPIRAN A
Kode Program Untuk 6 Buah Kota :
function PjgJalurGA = PjgJalurGA(Indeks); global N D
PjgJalurGA = 0; for i=1:(N-1),
PjgJalurGA = PjgJalurGA + D(Indeks(i), Indeks(i+1)); end;
PjgJalurGA = PjgJalurGA + D(Indeks(N), Indeks(1));
% Program Penyelesaian TSP dengan Algoritma Genetika
clear; global N D
% koordinat kota
X = [... 1 10 3 10 7 5 16 6 16 3 21 5]; N = size(X,1);
% Jarak antar kota
for i=1:N, for j=1:N,
D(i,j)=sqrt((X(i,1)-X(j,1))^2+(X(i,2)-X(j,2))^2); end;
end;
% Inisialisasi
popsize = 40; pc = 0.5; pm = 0.01; MaxGen = 10; kb = 0.01;
% Bangkitkan populasi awal
pop(i,1) = i; pop(i,2:N+1) = x;
PjgJalur (i) = PjgJalurGA(x); pop(i,N+2) = 1/PjgJalur(i); end;
disp(x); generasi = 0;
besar = zeros(MaxGen,1); kecil = zeros(MaxGen,1); rata2 = zeros(MaxGen,1); Best = 0;
IBest = 0;
% Mulai iterasi
while generasi < MaxGen generasi = generasi + 1; gen(generasi) = generasi; F = sum(pop(:,N+2)); for i=1:popsize, p(i)=pop(i,N+2)/F; q(i)=sum(p(1:i)); end;
[Urut, indek] = sort(pop(:,N+2));
% Proses seleksi
r=rand(popsize,1); disp(r);
for i=1:(popsize), temu=0;
j=0;
while (j<(popsize-1)) & (temu==0), j=j+1;
if r(i)<=q(1),
selek(i,:)=pop(1,:); temu=1;
else
if (r(i)>q(j)) & (r(i)<=q(j+1)), selek(i,:)=pop(j+1,:); temu=1;
end; end; end; end;
selek(i,1)=i; end;
poplama=pop; pop = selek;
% Proses crossover
r=rand(popsize,1); disp(r);
k=0;
for i=1:(popsize), if r(i)<pc, k=k+1;
parent (k,:)=pop(i,:); idx_parent(k)=i; end;
end;
if mod(k,2)~=0, k=k-1; end; for i=1:2:(k-1),
posisiacak = randperm(N-1); posisiacak = sort(posisiacak(1:3)); pos = posisiacak(2:3);
parent(i,:);
tmp11 = parent(i,2:pos(1)+1);
tmp12 = parent(i,pos(1)+2:pos(2)+1); tmp13 = parent(i,pos(2)+2:N+1); tmp21 = parent(i+1,2:pos(1)+1);
tmp22 = parent(i+1,pos(1)+2:pos(2)+1); tmp23 = parent(i+1,pos(2)+2:N+1); Pjg1 = [tmp23 tmp21 tmp22]; Pjg2 = [tmp13 tmp11 tmp12]; h1 = [];
for t1=1:length(Pjg1), ada = 0;
for t2=1:length(tmp12), if Pjg1(t1)==tmp12(t2), ada=1;
break; end; end; if ada==0,
h1 = [h1 Pjg1(t1)]; end;
for t1=1:length(Pjg2), ada=0;
for t2=1:length(tmp22), if Pjg2(t1)==tmp22(t2), ada=1;
break; end; end; if ada==0,
h2 = [h2 Pjg2(t1)]; end;
end;
anak(1,pos(1)+1:pos(2)) = tmp12; anak(1,pos(2)+1:N) = h1(1:N-pos(2)); anak(1,1:pos(1)) = h1(N-pos(2)+1:end); anak(2,pos(1)+1:pos(2)) = tmp22; anak(2,pos(2)+1:N) = h2(1:N-pos(2)); anak(2,1:pos(1)) = h2(N-pos(2)+1:end); pop(parent(i,1),2:N+1)=anak(1,:); pop(parent(i+1,1),2:N+1)=anak(2,:); end;
% Proses mutasi
r=rand(popsize,1); disp(r);
k=0;
for i=1:(popsize), if r(i)<pm, k=k+1; mutan(k)=i; end;
end; j=1; for i=1:k, ada = 0; while ~ada if j==mutan(i), ada = 1;
posisiacak = randperm(N);
posisiacak = sort(posisiacak(1:3)); pos = posisiacak(2:3);
tmp = pop(j,pos(1)+1); else
end; end; end;
%Mengganti kromosom secara acak dengan kromosom terbaik
r=rand(popsize,1); disp(r);
k=0;
for i=1:(popsize), if r(i)<kb, k=k+1; replace(k)=i; end;
end; j=1; for i=1:k, ada = 0; while ~ada, if j==replace(i), ada = 1;
pop(j,:) = poplama(indek(popsize-i+1),:); else
j=j+1; end; end; end;
% Hasil akhir setiap generasi
for i=1:popsize, x=pop(i,2:N+1); pop(i,1) = i; pop(i,2:N+1) = x;
PjgJalur(i) = PjgJalurGA(x); pop(i,N+2)=1/PjgJalur(i); end;
[Terbesar, Id] = max(pop(:,N+2)); besar(generasi) = Terbesar
xbesar(generasi,:) = pop(Id,2:N+1); kecil(generasi) = min(pop(:,N+2)); rata2(generasi) = mean(pop(:,N+2)); if Terbesar > Best,
Jalur = fix(pop(Id,2:N+1));
PjgJalurTerpendek = 1/pop(Id,N+2); end;
subplot(211)
plot(gen,besar(1:generasi),'r-',gen,kecil(1:generasi),... 'b-',gen,rata2(1:generasi),'m-','linewidth',2);
xlabel('Generasi ke-'); ylabel('Fitness');
title('Hasil Pemrosesan Algoritma Genetika'); grid;
legend('Terbesar','Terkecil','Rata-rata',4); Jalur1=fix(pop(Id,2:N+1));
PjgJalur1=1/pop(Id,N+2); axis on
subplot(212);
plot(X(Jalur1,1),X(Jalur1,2),'r-','linewidth',2); hold on;
plot(X(Jalur1([N 1]),1),X(Jalur1([N 1]),2),... 'r-','linewidth',2);
plot(X(:,1),X(:,2),'bs','linewidth',3);
text(X(:,1)+1*ones(N,1),X(:,2)-1*ones(N,1),... int2str([1:N]'),'fontsize',10);
title(['Generasi ke: ' int2str(generasi) ... ', Jalur: ' int2str(Jalur1) ...
' -> Panjang jalur = ' num2str(PjgJalur1)]); axis off; axis equal;
pause(0.05); hold off;
disp(size(xbesar)); disp(size(besar)); disp(size(kecil)); disp(size(rata2));
rekap = [besar,kecil,rata2] JalurTerpendek = Jalur
LAMPIRAN B
Kode Program Untuk 15 Buah Kota :
function PjgJalurGA = PjgJalurGA(Indeks); global N D
PjgJalurGA = 0; for i=1:(N-1),
PjgJalurGA = PjgJalurGA + D(Indeks(i), Indeks(i+1)); end;
PjgJalurGA = PjgJalurGA + D(Indeks(N), Indeks(1));
% Program Penyelesaian TSP dengan Algoritma Genetika
clear; global N D
% koordinat kota
X = [... 1 10 3 10 3 8 4 9 5 7 7 5 8 6 10 8 12 4 13 6 16 6 16 3 21 5 21 2 25 1]; N = size(X,1);
% Jarak antar kota
for i=1:N, for j=1:N,
D(i,j)=sqrt((X(i,1)-X(j,1))^2+(X(i,2)-X(j,2))^2); end;
% Inisialisasi
popsize = 570; pc = 0.5; pm = 0.01; MaxGen = 100; kb = 0.01;
% Bangkitkan populasi awal
for i=1:popsize, x=randperm(N); pop(i,1) = i; pop(i,2:N+1) = x;
PjgJalur (i) = PjgJalurGA(x); pop(i,N+2) = 1/PjgJalur(i); end;
disp(x); generasi = 0;
besar = zeros(MaxGen,1); kecil = zeros(MaxGen,1); rata2 = zeros(MaxGen,1); Best = 0;
IBest = 0;
% Mulai iterasi
while generasi < MaxGen generasi = generasi + 1; gen(generasi) = generasi; F = sum(pop(:,N+2)); for i=1:popsize, p(i)=pop(i,N+2)/F; q(i)=sum(p(1:i)); end;
[Urut, indek] = sort(pop(:,N+2));
% Proses seleksi
r=rand(popsize,1); disp(r);
for i=1:(popsize), temu=0;
j=0;
while (j<(popsize-1)) & (temu==0), j=j+1;
if r(i)<=q(1),
temu=1; else
if (r(i)>q(j)) & (r(i)<=q(j+1)), selek(i,:)=pop(j+1,:); temu=1;
end; end; end; end;
for i=1:popsize, selek(i,1)=i; end;
poplama=pop; pop = selek;
% Proses crossover
r=rand(popsize,1); disp(r);
k=0;
for i=1:(popsize), if r(i)<pc, k=k+1;
parent (k,:)=pop(i,:); idx_parent(k)=i; end;
end;
if mod(k,2)~=0, k=k-1; end; for i=1:2:(k-1),
posisiacak = randperm(N-1); posisiacak = sort(posisiacak(1:3)); pos = posisiacak(2:3);
parent(i,:);
tmp11 = parent(i,2:pos(1)+1);
tmp12 = parent(i,pos(1)+2:pos(2)+1); tmp13 = parent(i,pos(2)+2:N+1); tmp21 = parent(i+1,2:pos(1)+1);
tmp22 = parent(i+1,pos(1)+2:pos(2)+1); tmp23 = parent(i+1,pos(2)+2:N+1); Pjg1 = [tmp23 tmp21 tmp22]; Pjg2 = [tmp13 tmp11 tmp12]; h1 = [];
for t1=1:length(Pjg1), ada = 0;
if Pjg1(t1)==tmp12(t2), ada=1;
break; end; end; if ada==0,
h1 = [h1 Pjg1(t1)]; end;
end; h2 = [];
for t1=1:length(Pjg2), ada=0;
for t2=1:length(tmp22), if Pjg2(t1)==tmp22(t2), ada=1;
break; end; end; if ada==0,
h2 = [h2 Pjg2(t1)]; end;
end;
anak(1,pos(1)+1:pos(2)) = tmp12; anak(1,pos(2)+1:N) = h1(1:N-pos(2)); anak(1,1:pos(1)) = h1(N-pos(2)+1:end); anak(2,pos(1)+1:pos(2)) = tmp22; anak(2,pos(2)+1:N) = h2(1:N-pos(2)); anak(2,1:pos(1)) = h2(N-pos(2)+1:end); pop(parent(i,1),2:N+1)=anak(1,:); pop(parent(i+1,1),2:N+1)=anak(2,:); end;
% Proses mutasi
r=rand(popsize,1); disp(r);
k=0;
for i=1:(popsize), if r(i)<pm, k=k+1; mutan(k)=i; end;
ada = 0; while ~ada if j==mutan(i), ada = 1;
posisiacak = randperm(N);
posisiacak = sort(posisiacak(1:3)); pos = posisiacak(2:3);
tmp = pop(j,pos(1)+1); else
j=j+1; end; end; end;
%Mengganti kromosom secara acak dengan kromosom terbaik
r=rand(popsize,1); disp(r);
k=0;
for i=1:(popsize), if r(i)<kb, k=k+1; replace(k)=i; end;
end; j=1; for i=1:k, ada = 0; while ~ada, if j==replace(i), ada = 1;
pop(j,:) = poplama(indek(popsize-i+1),:); else
j=j+1; end; end; end;
% Hasil akhir setiap generasi
for i=1:popsize, x=pop(i,2:N+1); pop(i,1) = i; pop(i,2:N+1) = x;
end;
[Terbesar, Id] = max(pop(:,N+2)); besar(generasi) = Terbesar
xbesar(generasi,:) = pop(Id,2:N+1); kecil(generasi) = min(pop(:,N+2)); rata2(generasi) = mean(pop(:,N+2)); if Terbesar > Best,
Best = Terbesar; IBest = generasi;
Jalur = fix(pop(Id,2:N+1));
PjgJalurTerpendek = 1/pop(Id,N+2); end;
subplot(211)
plot(gen,besar(1:generasi),' r-',gen,kecil(1:generasi),... ' b-' ,gen,rata2(1:generasi),' m-' ,' linewidth' ,2); xlabel(' Generasi ke-' );
ylabel(' Fitness' );
title(' Hasil Pemrosesan Algoritma Genetika' ); grid;
legend(' Terbesar' ,' Terkecil' ,' Rata-rata' ,4); Jalur1=fix(pop(Id,2:N+1));
PjgJalur1=1/pop(Id,N+2); axis on
subplot(212);
plot(X(Jalur1,1),X(Jalur1,2),' r-' ,' linewidth' ,2); hold on;
plot(X(Jalur1([N 1]),1),X(Jalur1([N 1]),2),... ' r-' ,' linewidth' ,2);
plot(X(:,1),X(:,2),' bs' ,' linewidth' ,3); text(X(:,1)+1*ones(N,1),X(:,2)-1*ones(N,1),... int2str([1:N]' ),' fontsize' ,10);
title([' Generasi ke: ' int2str(generasi) ... ' , Jalur: ' int2str(Jalur1) ...
' -> Panjang jalur = ' num2str(PjgJalur1)]); axis off; axis equal;
pause(0.05); hold off;
disp(size(xbesar)); disp(size(besar)); disp(size(kecil)); disp(size(rata2));
rekap = [besar,kecil,rata2] JalurTerpendek = Jalur
LAMPIRAN C
Hasil Simulasi Untuk 15 Buah Kota
Tabel IV.17. Populasi Awal
Populasi Kromosom Fitness
LAMPIRAN D
Hasil Simulasi Untuk 15 Buah Kota
Tabel IV.18. Hasil Seleksi
No Kromosom Fitness
LAMPIRAN E
Hasil Simulasi Untuk 15 Buah Kota
Tabel IV.19. Kromosom Induk (Parent)
No Kromosom Fitness
LAMPIRAN F
Hasil Simulasi Untuk 15 Buah Kota
Tabel IV.20. Hasil Populasi Akhir Generasi ke 1
No Kromosom Fitness
LAMPIRAN G
Hasil Simulasi Untuk 15 Buah Kota
Tabel IV.21. Rekap Hasil
No Kromosom Terbesar Terkecil Rata-rata
LAMPIRAN H
Hasil Percobaan Untuk 6 dan 15 Buah Kota
Keterangan :
• Percobaan masing-masing dilakukan sebanyak 3 kali.
• Untuk 6 buah kota : popsize (30, 40, 50); maxgen (1, 5, 10, 20).
• Untuk 15 buah kota : popsize (30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330, 360, 390, 420, 450, 480, 510, 540, 570, 600); maxgen (10, 50, 100).
Percobaan untuk 6 buah kota
Dengan parameter : pc = 0,5 pm = 0,01 kb = 0,01
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 30 1 44,4956
2 30 1 44,1146 3 30 1 44,4956
44,3686
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 30 5 43,631
2 30 5 44,1146 3 30 5 44,2956
44,0137
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 30 10 44,1146
2 30 10 43,631 3 30 10 43,631
43,7922
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 30 20 43,1154
2 30 20 43,631 3 30 20 43,1154
43,2872
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 40 1 43,631
2 40 1 43,631 3 40 1 44,2956
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 40 5 44,4956
2 40 5 43,1154 3 40 5 43,631
43,7473
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 40 10 43,1154
2 40 10 43,1154 3 40 10 43,1154
43,1154
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 40 20 43,1154
2 40 20 43,1154 3 40 20 43,1154
43,1154
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 50 1 43,631
2 50 1 43,1154 3 50 1 43,1154
43,2872
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 50 5 43,1154
2 50 5 43,1154 3 50 5 43,631
43,2872
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 50 10 43,1154
2 50 10 43,1154 3 50 10 43,1154
43,1154
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 50 20 43,1154
2 50 20 43,1154 3 50 20 43,1154
43,1154
Percobaan untuk 15 buah kota
Dengan parameter :
pc = 0,5
pm = 0,01
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 30 10 98,7951
2 30 10 97,9382 3 30 10 106,0245
100,9192
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 30 50 81,9590
2 30 50 63,5479 3 30 50 69,4839
71,6636
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 30 100 72,5703
2 30 100 74,4504 3 30 100 68,0821
71,7009
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 60 10 70,8431
2 60 10 92,6960 3 60 10 78,4474
80,6621
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 60 50 63,4201
2 60 50 60,3627 3 60 50 70,8782
64,887
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 60 100 56,3006
2 60 100 59,6651 3 60 100 59,8775
58,6144
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 90 10 79,0564
2 90 10 71,6876 3 90 10 71,8970
74,2136
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 90 50 58,5007
2 90 50 60,4813 3 90 50 68,0821
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 90 100 54,9436
2 90 100 56,7719 3 90 100 54,9412
55,5522
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 120 10 78,8640
2 120 10 92,8981 3 120 10 84,0576
85,2732
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 120 50 62,4086
2 120 50 63,2800 3 120 50 56,4904
60,7263
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 120 100 56,1137
2 120 100 55,1707 3 120 100 57,6955
56,3266
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 150 10 70,8431
2 150 10 64,6354 3 150 10 78,5562
71,3449
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 150 50 56,9676
2 150 50 61,2579 3 150 50 58,5237
58,9164
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 150 100 55,1707
2 150 100 53,9829 3 150 100 56,0438
55,0658
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 180 10 79,3226
2 180 10 74,1207 3 180 10 71,5389
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 180 50 58,9162
2 180 50 55,6904 3 180 50 58,5237
57,7101
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 180 100 53,9829
2 180 100 54,9001 3 180 100 57,0343
55,3057
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 210 10 60,7238
2 210 10 66,1374 3 210 10 72,0072
66,2894
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 210 50 58,2685
2 210 50 60,1854 3 210 50 56,7624
58,4054
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 210 100 55,5746
2 210 100 54,9001 3 210 100 54,9001
55,1249
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 240 10 74,9151
2 240 10 74,7239 3 240 10 74,4504
74,6964
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 240 50 58,2033
2 240 50 56,3638 3 240 50 57,3202
57,2957
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 240 100 55,1707
2 240 100 56,3006 3 240 100 53,9829
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 270 10 75,1823
2 270 10 78,8857 3 270 10 82,7151
78,9277
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 270 50 60,2090
2 270 50 61,6340 3 270 50 57,0334
59,6254
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 270 100 53,9829
2 270 100 55,3264 3 270 100 54,9001
54,7364
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 300 10 76,0436
2 300 10 65,9428 3 300 10 73,9672
71,9845
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 300 50 57,7260
2 300 50 56,0438 3 300 50 56,9747
56,9148
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 300 100 55,5746
2 300 100 53,9829 3 300 100 55,3774
54,9783
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 330 10 72,9353
2 330 10 76,9071 3 330 10 66,5715
72,1379
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 330 50 58,9399
2 330 50 60,6152 3 330 50 58,2628
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 330 100 56,8653
2 330 100 53,9829 3 330 100 56,2970
55,7150
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 360 10 64,0119
2 360 10 68,7279 3 360 10 67,6677
66,8025
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 360 50 59,6150
2 360 50 57,3893 3 360 50 56,6782
57,8941
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 360 100 54,9001
2 360 100 56,0438 3 360 100 55,3774
55,4404
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 390 10 70,3664
2 390 10 63,5865 3 390 10 74,4780
69,4769
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 390 50 57,8848
2 390 50 58,3304 3 390 50 56,6782
57,6311
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 390 100 54,9001
2 390 100 55,1707 3 390 100 55,5141
55,1949
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 420 10 70,2838
2 420 10 62,4369 3 420 10 70,2104
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 420 50 55,5141
2 420 50 57,0158 3 420 50 56,2946
56,2748
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 420 100 53,9829
2 420 100 55,5746 3 420 100 56,1137
55,2237
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 450 10 57,9970
2 450 10 68,4981 3 450 10 71,3932
65,9627
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 450 50 55,5746
2 450 50 59,6174 3 450 50 55,5746
56,9222
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 450 100 54,9001
2 450 100 53,9829 3 450 100 55,5746
54,8192
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 480 10 65,7342
2 480 10 70,2760 3 480 10 74,4272
70,1458
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 480 50 56,9747
2 480 50 56,6248 3 480 50 53,8929
55,8308
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 480 100 55,3774
2 480 100 53,9829 3 480 100 56,6782
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 510 10 80,4487
2 510 10 66,1102 3 510 10 67,9686
71,5091
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 510 50 55,5746
2 510 50 55,5746 3 510 50 54,9001
55,3497
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 510 100 55,5746
2 510 100 55,1707 3 510 100 53,9829
54,9094
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 540 10 66,9131
2 540 10 70,9731 3 540 10 68,4282
68,7714
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 540 50 54,9001
2 540 50 57,2821 3 540 50 54,9412
55,7078
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 540 100 56,0575
2 540 100 53,9829 3 540 100 56,3006
55,447
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 570 10 71,6876
2 570 10 63,5479 3 570 10 70,8431
68,6928
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 570 50 55,2751
2 570 50 57,6955 3 570 50 55,3264
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 570 100 53,9829
2 570 100 53,9829 3 570 100 53,9829
53,9829
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 600 10 72,0113
2 600 10 68,5534 3 600 10 67,2284
69,2643
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 600 50 55,3774
2 600 50 56,1947 3 600 50 58,2221
56,5980
Percobaan Popsize Maxgen Jalur Terpendek Rata-Rata Jalur Terpendek 1 600 100 53,9829
2 600 100 53,9829 3 600 100 53,9829
LAMPIRAN I
Validasi Untuk 6 Buah Kota
1 Universitas Kristen Maranatha
BAB I
PENDAHULUAN
I.1 Latar Belakang Masalah
Ilmu pengetahuan dan teknologi pada akhir-akhir ini berkembang dengan
begitu pesatnya. Seiring dengan itu muncul berbagai masalah yang baru, antara lain
adalah masalah optimasi. Optimasi adalah metode untuk mendapatkan solusi
optimum antara lain, dengan pencarian nilai-nilai variabel pada metode yang
digunakan. Masalah optimisasi ini beraneka ragam tergantung dari bidangnya,
misalnya dalam industri antara lain, pengaturan jam kerja karyawan, jumlah
persediaan bahan baku, jalur distribusi yang optimal, dan sebagainya.
Dalam tugas akhir ini, metode optimasi yang dipilih adalah algoritma
genetika. Algoritma genetika adalah salah satu algoritma yang berfungsi untuk
menyelesaikan masalah optimisasi, aplikasi yang ingin diuji adalah optimisasi untuk
pencarian jalur terpendek untuk sebuah jalur perjalanan dari posisi awal secara acak
menyinggahi setiap kota tepat satu kali, dan kembali ke posisi awal pada suatu lokasi
kota.
I.2 Identifikasi Masalah
1. Apakah algoritma genetika dapat digunakan untuk mencari jalur terpendek?
2. Bagaimana pengaruh jumlah kota terhadap parameter algoritma genetika yang
digunakan?
I.3 Tujuan
Mempelajari Algoritma Genetika sebagai salah satu solusi dalam
Bab I : Pendahuluan 2
Universitas Kristen Maranatha jalur terpendek.
I.4 Pembatasan Masalah
1. Masalah optimisasi yang dibahas adalah menentukan jalur terpendek,
diselesaikan menggunakan metode artificial intelligence dengan teknik pencarian secara heuristik yaitu algoritma genetika dengan menggunakan
bahasa pemrograman Matlab versi 6.5.1.
2. Jumlah kota yang disimulasikan berjumlah 6 dan 15 kota dengan koordinat
kota yang telah ditentukan.
3. Berangkat dari sebuah kota asal secara acak dan menyinggahi setiap kota
tepat satu kali dan kembali lagi ke kota asal keberangkatan, tanpa adanya
ancaman, tantangan, hambatan, dan gangguan (ATHG).
4. Nilai parameter crossover (pc), mutasi (pm), dan penggantian kromosom (kb) dibuat konstan (dengan : pc=0,5; pm=0,01; kb=0,01). Alasan parameter
tersebut dibuat konstan karena dalam perancangan perangkat lunak, nilai
fitness dari kromosom terbaik dipantau pada setiap generasi. Hal ini berdasarkan rekomendasi dari buku teks[4] yang digunakan sebagai bahan referensi.
I.5 Sistematika Penulisan
Laporan tugas akhir ini disusun dengan urutan sebagai berikut :
• Bab I. Pendahuluan
Bab ini berisi latar belakang, identifikasi masalah, tujuan, pembatasan
masalah, serta sistematika penyusunan laporan tugas akhir.
• Bab II. Dasar Teori
Bab ini berisi teori-teori yang menunjang pembuatan laporan tugas akhir.
Bab I : Pendahuluan 3
Universitas Kristen Maranatha algoritma genetika, teori graf, dan Travelling Salesman Problem (TSP). • Bab III. Perancangan Perangkat Lunak
Dalam bab III akan dibahas mengenai diagram alir, kode program, dan cara
kerja untuk menyelesaikan pencarian jalur terpendek menggunakan metode
algoritma genetika.
• Bab IV. Hasil Pengamatan
Bab IV membahas mengenai hasil pengamatan yang dilakukan menggunakan
metode algoritma genetika.
• Bab V. Kesimpulan dan Saran
Sebagai penutup dari laporan tugas akhir ini, disajikan beberapa kesimpulan
Universitas Kristen Maranatha 88
BAB V
KESIMPULAN DAN SARAN
V.1 Kesimpulan
Dari hasil percobaan dapat ditarik beberapa kesimpulan, antara lain :
1. Secara keseluruhan, algoritma genetika yang telah didesain dapat berjalan
dengan baik dan dapat menyelesaikan permasalahan.
2. Hasil akhir simulasi menggunakan metode algoritma genetika :
• Untuk simulasi 6 buah kota didapatkan panjang jalur terpendek =
43,1154 unit (dengan parameter : popsize=40; pc=0,5; pm=0,01;
kb=0,01; maxgen=10).
• Untuk simulasi 15 buah kota didapatkan panjang jalur terpendek =
53,9829 unit (dengan parameter : popsize=570; pc=0,5; pm=0,01;
kb=0,01; maxgen=100).
3. Semakin banyak jumlah kota, maka semakin besar nilai parameter ukuran
populasi (popsize) dan maksimum generasi (maxgen) untuk menghasilkan
solusi optimum.
V.2 Saran
Adapun saran yang dapat diberikan adalah :
1. Pada tugas akhir nilai parameter pc, pm, dan kb dibuat konstan sehingga nilai
optimum dari pc, pm, dan kb perlu dianalisa kembali sehingga jalur terpendek
dapat dicapai lebih optimum.
2. Nilai popsize dan maxgen dibuat lebih bervariasi, dengan range yang tidak
Universitas Kristen Maranatha 89
DAFTAR PUSTAKA
1. Desiani, Anita, dan Arhami, Muhammad, “Konsep Kecerdasan Buatan.”,
ANDI OFFSET, Yogyakarta, 2006.
2. Gen, Mitsuo, and Cheng, Runwei, “Genetic Algorithms And Engineering
Design. Edited by Hamid R Parsaei, United State Of America, John Wiley
and Sons, 1997.
3. Johnsonbaugh, Richard, “Matematika Diskrit.”, PT Prenhallindo, Jakarta,
2002.
4. Kusumadewi, Sri dan Purnomo, Hari, “Penyelesaian Masalah Optimasi
dengan Teknik-teknik Heuristik.”, GRAHA ILMU, Yogyakarta, 2005.
5. Munir, Rinaldi, “Matematika Diskrit.”, Penerbit INFORMATIKA, Bandung,
2003.
6. Suyanto, “Algoritma Genetika dalam MATLAB.”, ANDI OFFSET,
Yogyakarta, 2005.