Implementasi Ant Colony pada pencarian jalur terdekat di semua kecamatan di Bangkalan. Menggunakan bahasa Python 3
Instal terlebih dahulu library 'texttable'
pip install texttable
Lalu library 'xlrd'
pip install xlrd
Tempatkan file semut.py di dalam folder project kamu.
Pertama, impor dulu file semut.py ke dalam file kamu dengan menggunakan
from semut import Semut
Setelah itu, inisialisasi sebuah variabel dan isikan fungsi Semut()
Semutku = Semut()
Fungsi Semut() memiliki parameter-parameter berikut namun bernilai default:
- rho = 0.5
- tho = 0.01
- alpha = 1
- beta = 1
- Q = 1
- cetak = True
Jika kamu ingin mengganti salah satunya
Semutku = Semut(tho = 0.02)
Jika mengganti lebih dari satu
Semutku = Semut(alpha = 3, beta = 3, rho = 0.6)
Maksud dari parameter cetak adalah apabila bernilai True maka seluruh nilai setiap iterasi akan dicetak. Akan sebaliknya jika bernilai False.
Jika kamu ingin menggunakan dari file excel, maka gunakan format yang telah disediakan. File 'Data Jarak.xlsx'. Cara menggunakannya adalah
nama_file = "Data Jarak.xlsx"
data = Semutku.data_dari_excel(nama_file)
Default index yang digunakan adalah index ke 0, namun bisa juga mengeset index sheet spesifik
nama_file = "Data Jarak.xlsx"
sheet_index = 2
data = Semutku.data_dari_excel(nama_file, sheet_index)
Data dari koordinat harus sesuai dengan format berikut
koordinatKota = {"A" : [10, 0],
"B" : [9, 9],
"C" : [0, 0],
"D" : [5, 5],
"E" : [2, 3]}
Kemudian panggil fungsi untuk mem-parse data koordinat tersebut ke dalam format yang diterima program ini.
data = Semutku.data_koordinat(koordinatKota)
Fungsi utama ini memiliki parameter :
- jumlah_iterasi
- banyak_semut
- data
Cara memanggilnya yaitu
jumlah_iterasi = 100
banyak_semut = 10
ant_colony = Semutku.antcolony(jumlah_iterasi, banyak_semut, data)
Memiliki nilai kembalian
- Jalur Terbaik -> ant_colony["jalur"]
- Jarak Terpendek -> ant_colony["jarak"]
- Jumlah Iterasi yang dilakukan -> ant_colony["iterasi"]
from semut import Semut
koordinatKota = {"A" : [10, 0],
"B" : [9, 9],
"C" : [0, 0],
"D" : [5, 5],
"E" : [2, 3]}
Semutku = Semut()
data = Semutku.data_koordinat(koordinatKota)
ant_colony = Semutku.antcolony(100, 10, data)
from semut import Semut
Semutku = Semut()
data = Semutku.data_dari_excel("Data Jarak.xlsx")
ant_colony = Semutku.antcolony(100, 10, data)
Hasil Running apabila dicetak dengan
print("\n-------------------- JALUR TERBAIK --------------------")
print(ant_colony["jalur"])
print("-------------------- JARAK --------------------")
print(ant_colony["jarak"])
print("-------------------- JUMLAH ITERASI --------------------")
print(ant_colony["iterasi"])
maka dihasilkan
-------------------- JALUR TERBAIK --------------------
Kamal-Socah-Bangkalan-Burneh-Tragah-Kwanyar-Labang-Tanah Merah-Galis-Blega-Modung-Konang-Kokop-Tanjung Bumi-Sepuluh-Klampis-Arosbaya-Geger
-------------------- JARAK --------------------
194.0
-------------------- JUMLAH ITERASI --------------------
46