Anda di halaman 1dari 14

TUGAS KALKULUS 3

LAPORAN ALGORITMA GENETIKA

Disusun Oleh:
Kelas TI4304
Jodi Rizki Rahman (1201194339)
Ni Ketut Mega Diana Putri (1201190268)
Celline Isabel Elvira Angkuw (1201194353)

PROGRAM STUDI SISTEM INFORMASI


FAKULTAS REKAYASA INDUSTRI
UNIVERSITAS TELKOM
BANDUNG
2021
Kata Pengantar

Segala puji kami panjatkan atas kehadiran Tuhan Yang Maha Esa yang telah memberikan
rahmat, karunia serta hidayah-Nya, sehingga kami dapat menyusun Laporan Algoritma
Genetika pada mata kuliah Kalkulus 3 ini dengan pengetahuan yang kami miliki. Kami juga
sangat berterima kasih kepada semua dosen mata kuliah yang bersangkutan karena telah
membimbing kami dalam menyelesaikan laporan ini.
Kami harap laporan ini dapat berguna sebagai pendukung dalam meningkatkan pengetahuan
dan wawasan mahasiswa mengenai penerapan mata kuliah Kalkulus 3. Kami juga menyadari
bahwa dalam laporan ini terdapat kekurangan-kekurangan. Maka dari itu, kami berharap adanya
kritik dan saran untuk membuat laporan ini menjadi lebih baik.
Sebelumnya, kami meminta maaf apabila terdapat kesalahan dalam penulisan kata yang
disengaja maupun tudak disengaja. Semoga proposal ini dapat menjadi usulan yang baik dan
berguna untuk kami sendiri maupun orang-orang yang membacanya

Bandung, 21 Juni 2021

Penyusun
BAB I
PENDAHULUAN
Latar Belakang
Algoritma genetika adalah suatu proses optimasi yang dikembangkan berdasarkan prinsip
genetika dan proses seleksi alamiah (Haupt & Haupt 2004: 22). Berbeda dengan teknik pencarian
konvensional, algoritma genetika dimulai dari himpunan solusi yang pada umumnya dihasilkan
secara acak. Himpunan ini disebut populasi sedangkan setiap individu dalam populasi disebut
kromosom (merupakan representasi dari solusi) dan yang menempati kromosom disebut gen. Gen
biasanya merupakan simbol string (Gen, 1997: 1). Dalam algoritma genetika, suatu populasi dari
individu bereproduksi kembali berdasarkan nilai fitness (Spears, 1989: 4). Kemunculan algoritma
genetika diinspirasikan dari teori-teori dalam ilmu biologi, sehingga banyak terdapat istilah dalam
biologi yang digunakan dalam algoritma ini. Sesuai dengan namanya, proses-proses yang terjadi
dalam algoritma genetika sama dengan apa yang terjadi pada evolusi biologi yaitu seleksi, pindah
silang, dan mutasi.
Dalam laporan ini, kami diminta untuk mencari solusi optimal pada kasus Traveling
Salesman Problem (TSP). Optimasi merupakan suatu cara untuk menghasilkan suatu bentuk
struktur yang aman dalam segi perencanaan dan menghasilkan struktur yang ekonomis pula.
Sehingga melalui metode algoritma genetika ini dihasilkan output berupa rute terbaik dari kota-
kota yang akan dilalui.
Tujuan
Untuk mengetahui rute terdekat (optimal) sehingga dapat meminimalisasikan jarak dan
biaya dari kota ke kota.
BAB 2
PEMBAHASAN
Proses Algoritma Genetika
Pada proses ini akan digunakan bahasa program google collaborator. Banyak kota yang
digunakan yaitu 15 kota dengan koordinat (x,y) sebagai berikut:

i j

5 47

34 32

43 9

2 33

30 38

8 50

17 27

27 9

3 45

43 41

6 48

44 25

30 17

2 46

13 2
1. Install Standard Packages

Penjelasan :
- Import numpy as np (numerical python) merupakan library python untuk scientific
computing
- Import pandas as pd merupakan library python untuk membersihkan data mentah ke dalam
- Sebuah bentuk yang cocok untuk analisis (tabel)
- Import random merupakan library python untuk melakukan pengacakan
- From array import * merupakan library python untuk mengimpor array
2. Mendefinisikan Kota (i,j)

Penjelasan :
Untuk syntax from google.colab import files, digunakan untuk input file excel yang berisi jarak
kota yang sudah di random. Syntax import io merupakan import data excel menjadi tabel di
dalam python. Lalu yang terakhir, syntax sheet.to_numpy() merupakan syntax yang mengubah
data tabel menjadi bentuk matriks.

3. Menghitung Jumlah Kota

Penjelasan :
Daftar kota yang berisi koordinat 15 kota, kita cek apakah kota nya sudah benar atau belum. Lalu,
tahap selanjutnya adalah membuat variabel jumlah kota yang menyatakan panjang dari daftar kota
untuk melihat ada berapa banyak kota yang ada di dalam daftar kota dengan syntax yang len(daftar
kota). Lalu, print(jumlahkota) untuk menampilkan hasil run syntax.

4. Menentukan Populasi Awal (8 Populasi)


Penjelasan :
Pada tahap ini, dilakukan inisialisasi populasi dengan dilakukan secara acak dengan memanfaatkan
fungsi random permutation untuk membangun solusi. fungsi init populasi untuk populasi awal.
Untuk fungsi bawahnya, inisialisasi variabel P akan menyimpan nilai dari populasinya yang hasil
ukurannya akan dibuat semacam matriks dengan ukurannya yaitu populasi dikali jumlah kota.
Barisnya akan sebanyak ukuran populasi dan kolomnya akan sebanyak jumlah kota

5. Menentukan jarak masing-masing Kota

Penjelasan :
Setelah melakukan inisialisasi, tahap berikutnya yaitu dengan menilai kualitas dari rute yang
dibentuk dengan menggunakan fungsi objektif dimana yang menjadi input adalah populasi dan
daftar kota. Ukuran populasi diambil dari jumlah baris sedangkan jumlah kota diambil dari jumlah
kolom. Kemudian, dilakukannya inisialisasi jarak yang bertujuan untuk menyimpan rute yang
dibentuk. Untuk mencari tahu banyaknya kota yaitu dengan menggunakan fungsi Len untuk daftar
kota. Selanjutnya, matriks jarak akan menjadi return value dari fungsi objektif.

6. Menentukan Induk yang akan dipilih


Penjelasan :
Dalam fungsi seleksi dengan input populasi dan fungsi objektif, jumlah induk yang digunakan
yaitu 4 induk. Untuk menginisialisasi variabel maka, Induk yang terpilih pada dasarnya
merupakan rute yang dilalui. Oleh karena itu, induk dapat dinyatakan dalam bentuk integer dan
induk dapat berupa matriks dengan ukuran jumlah induk dikali dengan jumlah kota sehingga 4
induk yang terpilih adalah
[[ 5 3 8 11 2 12 9 0 10 14 7 1 6 4 13]
[ 5 3 8 11 2 12 9 0 10 14 7 1 6 4 13]
[ 7 8 4 9 14 1 5 2 10 0 6 11 13 3 12]
[11 1 7 9 13 12 0 4 8 10 14 6 3 5 2]]

7. Melakukan persilangan (crossover)


Penjelasan :
Setelah 4 induk terbentuk, maka tahapan selanjutnya adalah dengan memanipulasi keempat
induk menggunakan fungsi Crossover. Yang menjadi input dalam fungsi crossover adalah
induk yang akan dioperasikan kemudian, menginisialisasi keempat induk dan anak. Untuk
tahap lanjutan yaitu dengan penggunaan satu titik yang ditujukan untuk membagi induk
menjadi 4 segmen dengan menggunakan bilangan random r1. Dikarenakan menggunakan
permutasi maka, tidak diperbolehkan terdapat kota yang sama, sehingga dilakukannya
pengecekan kota dengan memberikan batasan-batasan. Sehingga, crossover yang dihasilkan
yaitu :
[[ 5 3 8 11 2 1 7 9 13 12 0 4 10 14 6]
[ 5 3 8 11 2 7 8 4 9 14 1 5 10 0 6]
[ 7 8 4 9 14 5 3 8 11 2 12 9 0 10 7]
[11 1 7 9 13 5 3 8 11 2 12 9 0 10 14]].
8. Melakukan Mutasi

Penjelasan :
Pada proses mutasi dengan menggunakan fungsi mutasi swap, yang menjadi input pada proses ini
adalah induk, induk tersebut akan diinisialisasi pada variabel anak. Tahapan berikutnya dengan
memilih dua kota yang akan disilangkan menggunakan bilangan random yaitu r1 dan r2 yang
merupakan bilangan integer. Berdasarkan proses sebelumnya, variabel anak akan menjadi
keluaran karena merupakan hasil mutasi sehingga diperoleh mutasi
AnakCX : [[ 5 3 8 11 2 1 7 9 13 12 0 4 10 14 6]
[ 5 3 8 11 2 7 8 4 9 14 1 5 10 0 6]
[ 7 8 4 9 14 5 3 8 11 2 12 9 0 10 7]
[11 1 7 9 13 5 3 8 11 2 12 9 0 10 14]]
AnakM : [[ 5 1 8 11 2 3 7 9 13 12 0 4 10 14 6]
[ 5 7 8 11 2 3 8 4 9 14 1 5 10 0 6]
[ 7 8 4 9 14 5 3 8 11 2 12 9 0 10 7]
[11 1 7 9 13 5 3 8 11 2 12 9 0 10 14]]

9. Elitism

Penjelasan : Melakukan replacement dengan fungsi elitism. Input yang digunakan berupa populasi
awal, individu baru, fitness populasi awal dan fitness anak. Pada tahap ini individu yang memiliki
kualitas jelek akan digantikan oleh anaknya. Pernyataan yang digunakan adalah “jika nilai fitness
lebih kecil daripada anaknya, maka rute individu itu akan di replace oleh rute anaknya. Sehingga
outputnya berupa populasi yang baru akan menjadi return value. Fungsi anak kemudian dinilai
kualitasnya fitness nya untuk memastikan rute tersebut sudah menjadi pilihan solusi terbaik yaitu
dengan memanggil fungsi objektif nya.
10. Menentukan Solusi Terbaik (jarak terdekat) secara Keseluruhan
Penjelasan : Dalam menentukan solusi dari jarak terdekat, diketahui nilai fitness (jarak) populasi
awal masing-masing dari 15 kota dan jarak terdekatnya yaitu 303.03. Kemudian, parameter yang
digunakan yaitu populasi sebanyak 8 rute. Setelah dilakukan pencarian solusi optimal melalui
proses persilangan, mutasi dan eliminasi diperoleh 5 rute dengan jarak terdekat yaitu 297.06.

(Rute akhir : 2-11-6-1-10-3-0-8-13-5-9-12-14-7-4)

11. Membuat Plot Rute dan Jaraknya

Penjelasan : Plot dibuat untuk memvisualisasikan rute optimal dari kota satu ke kota lainnya.
Pada tahap ini digunakan syntax yaitu dengan mendefinisikan seluruh komponen yang telah
diinisialisasikan seperti Populasi, generasi, elite size, jarak, dan generasinya.
BAB 3
PENUTUP

Kesimpulan
Penerapan Algoritma Genetika ini menghasilkan output berupa rute terbaik dari 15 kota yang akan dilalui
dengan rute optimal 2-11-6-1-10-3-0-8-13-5-9-12-14-7-4 yang memiliki jarak terdekat yaitu 297,06.

Anda mungkin juga menyukai