Gambar 1. Peta jalur antar kota yang harus dilewati oleh sales
B. RECURSIVE BEST-FIRST SEARCH (RBFS)
Recursive Best-First Search merupakan
algoritma pencarian terbimbing yang mirip dengan
algoritma standar Best First Search yang bersifat
linear. Desain algoritmanya juga mirip dengan
Depth-First Search walaupun dengan model yang
sangat berbeda.
Cara
kerja
RBFS
yaitu
tetap
memperhatikan jalur teratas, kalau misalkan pada
tree, maka tree paling atas. Apabila ada jalur yang
tidak sesuai, maka jalur teratas akan langsung
mengubahnya. Pada saat operasi, setiap operasi
yang akan dipilih adalah jalur yang terpendek, dan
setiap ada jalur baru, maka jalur teratas akan
diurutkan berdasarkan nilai cost yang terkecil.
Hal tersebut akan dilakukan hingga titik
akhir adalah jalur yang dituju dan cost yang
ditemukan pada jalur terakhir ini lebih kecil dari
jalur-jalur yang sudah dilewati sebelumnya.
Berikut ini adalah algoritma untuk RBFS.
Jkt
Bdg
Crb
Jkt
270
327
Bdg
270
120
373
Crb
327
120
210
305
373
210
109
60
305
109
97
60
97
Ygy
Smg
Srkt
Sby
Mlg
Ygy
Smg
Srkt
369
370
Sby
Mlg
369
370
0
94
94
C. PEMODELAN
Gambar 2. merupakan representasi bentuk
pohon dari peta jalur antar kota yang akan dicari
solusinya. Garis putus-putus menunjukkan bahwa
jalur yang bisa menjadi solusi adalah jalur yang
melewati seluruh kota dan tepat satu kali untuk
masing-masing kota. Sedangkan jarak antar kota
berdasarkan jalur yang ada pata peta dapat dilihat
pada tabel 1.
Open
Jalur
Min
Treshhold
Jkt (0)
Jkt-Bdg (270)
Jkt-Bdg (270)
Jkt-Crb (327)
Jkt-Crb (327)
Jkt-Bdg-Crb (390)
Jkt-Bdg-Crb (390)
Jkt-Crb-Bdg (447)
Jkt-Crb-Bdg (447)
Jkt-Crb-Ygy (537)
Jkt-Crb (327)
2
Jkt-Bdg (270)
Jkt-Bdg-Crb (390)
Jkt-Bdg-Ygy (643)
Jkt-Crb (327)
Jkt-Crb-Bdg (447)
Jkt-Crb-Ygy (537)
Jkt-Crb-Smg (632)
Jkt-Bdg-Crb (390)
Jkt-Bdg-Crb-Smg (695)
Jkt-Bdg-Crb-Ygy (600)
Jkt-Crb-Bdg (447)
Jkt-Crb-Bdg-Ygy (820)
Jkt-Crb-Ygy (537)
Jkt-Bdg-Crb-Ygy (600)
D. IMPLEMENTASI METODE
Model
komputasi
algoritma
untuk
menyelesaikan kasus TSP dengan RBFS yaitu
dibuat dengan bahasa pemrograman PHP1. Hal
yang pertama dilakukan adalah pemetaan kota dan
jarak antar kota. Peta dibuat dalam bentuk array
objek dimana untuk masing-masing kota berisi ID
kota, Nama kota, jalur yang mungkin dilalui
sekaligus jarak antara kota denga jalur tersebut.
Pada Gambar 3. menunjukkan kota Jakarta dan
kota Bandung. Kota jakarta memiliki id jkt dan
jalur yang mungkin dilalui adalah Jakarta-Bandung
(bdg) dengan jarak 270 km dan Jakarta-Cirebon
(crb) dengan jarak 327 km. Sedangkan kota
Bandung, jalur yang mungkin dilewati adalah
Bandung-Cirebon (crb) dengan jarak 120 km dan
Bandung-Yogyakarta (ygy) dengan jarak 373 km.
http://lab.elangsakti.com/tsp/
Rute
Cost
Jakarta-Bandung
270
Jakarta-Cirebon
327
Jakarta-Bandung-Cirebon
390
Jakarta-Cirebon-Bandung
447
52
Jakarta-Cirebon-Semarang-Yogyakarta-Bandung
1114
Jakarta-Cirebon-Yogyakarta
537
53
Jakarta-Cirebon-Yogyakarta-Surakarta
597
54
Jakarta-Bandung-Cirebon-Yogyakarta
600
55
Jakarta-Cirebon-Semarang
632
56
Jakarta-Bandung-Yogyakarta-Semarang-Surabaya
Jakarta-Bandung-Cirebon-Yogyakarta-SurakartaSemarang-Surabaya
Jakarta-Bandung-Cirebon-Yogyakarta-SurakartaMalang-Surabaya
Jakarta-Cirebon-Yogyakarta-Surakarta-SemarangSurabaya-Malang
1117
1122
1124
1153
Jakarta-Bandung-Yogyakarta
643
57
Jakarta-Bandung-Cirebon-Semarang-Surabaya-Malang
1154
10
Jakarta-Cirebon-Yogyakarta-Semarang
646
58
Jakarta-Bandung-Cirebon-Yogyakarta-Surakarta
660
59
12
Jakarta-Cirebon-Yogyakarta-Surakarta-Semarang
694
60
13
Jakarta-Bandung-Cirebon-Semarang
695
61
14
Jakarta-Bandung-Yogyakarta-Surakarta
703
15
Jakarta-Bandung-Cirebon-Yogyakarta-Semarang
709
16
Jakarta-Cirebon-Semarang-Surakarta
729
17
Jakarta-Cirebon-Semarang-Yogyakarta
741
18
Jakarta-Cirebon-Yogyakarta-Semarang-Surakarta
743
19
752
20
Jakarta-Bandung-Yogyakarta-Semarang
Jakarta-Bandung-Cirebon-Yogyakarta-SurakartaSemarang
21
Jakarta-Cirebon-Semarang-Surakarta-Yogyakarta
789
22
Jakarta-Bandung-Cirebon-Semarang-Surakarta
792
23
Jakarta-Bandung-Yogyakarta-Surakarta-Semarang
800
Jakarta-Bandung-Yogyakarta-Cirebon-Semarang
Jakarta-Cirebon-Semarang-Surakarta-YogyakartaBandung
Jakarta-Bandung-Cirebon-Semarang-SurakartaMalang
Jakarta-Bandung-Yogyakarta-Surakarta-SemarangSurabaya
Jakarta-Bandung-Yogyakarta-Surakarta-MalangSurabaya
Jakarta-Bandung-Cirebon-Yogyakarta-SemarangSurabaya-Malang
Jakarta-Cirebon-Semarang-Yogyakarta-SurakartaMalang
Jakarta-Bandung-Cirebon-Yogyakarta-SemarangSurakarta-Malang
Jakarta-Cirebon-Semarang-Surakarta-MalangSurabaya
Jakarta-Cirebon-Yogyakarta-Semarang-SurakartaMalang-Surabaya
Jakarta-Bandung-Yogyakarta-Semarang-SurabayaMalang
Jakarta-Bandung-Cirebon-Yogyakarta-SurakartaSemarang-Surabaya-Malang
Jakarta-Bandung-Yogyakarta-Semarang-SurakartaMalang
Jakarta-Bandung-Cirebon-Semarang-YogyakartaSurakarta-Malang
Jakarta-Cirebon-Bandung-Yogyakarta-SurakartaMalang
Jakarta-Bandung-Yogyakarta-Cirebon-SemarangSurakarta
Jakarta-Bandung-Cirebon-Semarang-SurakartaMalang-Surabaya
Jakarta-Bandung-Yogyakarta-Surakarta-SemarangSurabaya-Malang
Jakarta-Cirebon-Semarang-Yogyakarta-SurakartaMalang-Surabaya
Jakarta-Bandung-Cirebon-Yogyakarta-SemarangSurakarta-Malang-Surabaya
Jakarta-Cirebon-Bandung-Yogyakarta-SemarangSurabaya
Jakarta-Bandung-Yogyakarta-Semarang-SurakartaMalang-Surabaya
Jakarta-Bandung-Cirebon-Semarang-YogyakartaSurakarta-Malang-Surabaya
Jakarta-Cirebon-Bandung-Yogyakarta-SurakartaSemarang-Surabaya
Jakarta-Cirebon-Bandung-Yogyakarta-SurakartaMalang-Surabaya
Jakarta-Cirebon-Bandung-Yogyakarta-SemarangSurabaya-Malang
Jakarta-Cirebon-Bandung-Yogyakarta-SemarangSurakarta-Malang
Jakarta-Cirebon-Yogyakarta-Surakarta-MalangSurabaya-Semarang
Jakarta-Cirebon-Bandung-Yogyakarta-SurakartaSemarang-Surabaya-Malang
Jakarta-Cirebon-Semarang-Surabaya-MalangSurakarta
Jakarta-Cirebon-Yogyakarta-Semarang-SurabayaMalang-Surakarta
Jakarta-Bandung-Cirebon-Yogyakarta-SurakartaMalang-Surabaya-Semarang
Jakarta-Cirebon-Bandung-Yogyakarta-SemarangSurakarta-Malang-Surabaya
Jakarta-Cirebon-Semarang-Surabaya-MalangSurakarta-Yogyakarta
Jakarta-Bandung-Yogyakarta-Cirebon-SemarangSurabaya
Jakarta-Bandung-Cirebon-Semarang-SurabayaMalang-Surakarta
Jakarta-Bandung-Yogyakarta-Surakarta-MalangSurabaya-Semarang
Jakarta-Bandung-Cirebon-Yogyakarta-SemarangSurabaya-Malang-Surakarta
Jakarta-Bandung-Yogyakarta-Semarang-SurabayaMalang-Surakarta
Jakarta-Bandung-Cirebon-Semarang-SurabayaMalang-Surakarta-Yogyakarta
1158
11
757
24
Jakarta-Cirebon-Semarang-Yogyakarta-Surakarta
801
25
804
26
Jakarta-Bandung-Cirebon-Semarang-Yogyakarta
Jakarta-Bandung-Cirebon-Yogyakarta-SemarangSurakarta
27
Jakarta-Cirebon-Bandung-Yogyakarta
820
28
Jakarta-Bandung-Yogyakarta-Semarang-Surakarta
Jakarta-Bandung-Cirebon-Semarang-SurakartaYogyakarta
849
853
31
Jakarta-Bandung-Yogyakarta-Cirebon
Jakarta-Bandung-Cirebon-Semarang-YogyakartaSurakarta
32
Jakarta-Cirebon-Bandung-Yogyakarta-Surakarta
880
29
30
806
852
864
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
33
Jakarta-Cirebon-Yogyakarta-Bandung
910
80
34
Jakarta-Cirebon-Bandung-Yogyakarta-Semarang
929
81
35
967
82
36
Jakarta-Cirebon-Yogyakarta-Surakarta-Malang
Jakarta-Cirebon-Bandung-Yogyakarta-SurakartaSemarang
977
83
37
Jakarta-Cirebon-Semarang-Surabaya
997
84
38
Jakarta-Cirebon-Yogyakarta-Semarang-Surabaya
Jakarta-Cirebon-Bandung-Yogyakarta-SemarangSurakarta
Jakarta-Bandung-Cirebon-Yogyakarta-SurakartaMalang
1011
85
1026
86
1030
87
Jakarta-Bandung-Yogyakarta-Semarang-Cirebon
Jakarta-Cirebon-Yogyakarta-Surakarta-SemarangSurabaya
1057
88
1059
89
Jakarta-Bandung-Cirebon-Semarang-Surabaya
Jakarta-Cirebon-Yogyakarta-Surakarta-MalangSurabaya
1060
90
1061
91
1073
92
46
Jakarta-Bandung-Yogyakarta-Surakarta-Malang
Jakarta-Bandung-Cirebon-Yogyakarta-SemarangSurabaya
1074
93
47
Jakarta-Cirebon-Semarang-Surabaya-Malang
1091
94
48
Jakarta-Cirebon-Semarang-Surakarta-Malang
Jakarta-Cirebon-Yogyakarta-Semarang-SurabayaMalang
Jakarta-Bandung-Yogyakarta-Surakarta-SemarangCirebon
Jakarta-Cirebon-Yogyakarta-Semarang-SurakartaMalang
1099
95
1105
96
1105
97
39
40
41
42
43
44
45
49
50
51
1113
1162
1162
1165
1167
1168
1171
1176
1193
1207
1211
1216
1219
1234
1250
1255
1256
1259
1265
1270
1294
1313
1328
1342
1344
1388
1396
1426
1436
1461
1475
1489
1490
1521
1523
1524
1532
1538
1581
1584
98
99
100
101
102
103
104
105
106
107
Jakarta-Bandung-Yogyakarta-Cirebon-SemarangSurabaya-Malang
Jakarta-Bandung-Yogyakarta-Cirebon-SemarangSurakarta-Malang
Jakarta-Cirebon-Bandung-Yogyakarta-SurakartaMalang-Surabaya-Semarang
Jakarta-Bandung-Yogyakarta-Cirebon-SemarangSurakarta-Malang-Surabaya
Jakarta-Cirebon-Bandung-Yogyakarta-SemarangSurabaya-Malang-Surakarta
Jakarta-Bandung-Yogyakarta-Surakarta-MalangSurabaya-Semarang-Cirebon
Jakarta-Cirebon-Semarang-Surabaya-MalangSurakarta-Yogyakarta-Bandung
Jakarta-Bandung-Yogyakarta-Cirebon-SemarangSurabaya-Malang-Surakarta
Jakarta-Bandung-Yogyakarta-Surakarta-MalangSurabaya-Semarang-Cirebon-Jakarta
Jakarta-Cirebon-Semarang-Surabaya-MalangSurakarta-Yogyakarta-Bandung-Jakarta
1617
1625
1709
1719
1758
1837
1894
1987
2164
2164
E. KESIMPULAN
Penggunaan RBFS dalam mencari rute
terpendek terbaik untuk kasus ini dengan kota
asala Jakarta adalah jalur :
F. REFERENSI
Pearl, J. Heuristics: Intelligent Search Strategies
for Computer Problem Solving. Addison-Wesley,
1984. p. 48.
Russell, S. J., Norvig, P, Artificial Intelligence: A
Modern Approach, 2003.