∗
:
8 4
2
4 8
v
1
v
3
v
2
v
f
Gambar 39 Graf
∗
yang diperoleh dari Langkah 1 algoritme preprocess.
Langkah 2. Verteks v
1,
v
2,
v
3,
v
f
merupakan endpoint dari suatu sisi berarah. Dengan
algoritme Dijkstra didapat bobot terpendek antarverteks pada graf
∗
detail penghitungan dapat dilihat di Lampiran 4. Path terpendek
antara verteks dan
2
, yaitu �
3
= −
1
−
2
dengan bobot
2
= 6 sehingga bobot sisi
,
2
diganti dengan bobot
2
= 6 dan path tependek antara verteks
3
dan
2
, yaitu �
4
=
3
−
1
−
2
dengan bobot
32
= 6 sehingga bobot sisi
3
,
2
diganti dengan bobot
32
= 6. Graf
′
yang memenuhi syarat 1 dan 2 tersebut adalah:
′
∶
6 4
2 4
6 v
1
v
3
v
2
v
f
Gambar 40 Graf
′
yang memenuhi syarat 1 dan 2.
Frederickson et al. 1978 mengajukan dua metode
heuristik untuk
menyelesaikan penentuan rute terpendek pada graf campuran
= , ∪ yang memenuhi syarat 1 dan
2. Kedua metode heuristik tersebut, yaitu Largearcs dan Smallarcs.
3.2 Algoritme Largearcs
Misalkan diberikan
graf campuran
= , ∪ , dengan = himpunan sisi
berarah yang harus dilewati minimal satu kali dan bobot setiap sisi
, atau sisi berarah , adalah
. Langkah-langkah algoritme Largearcs adalah sebagai berikut:
Langkah 1. Subgraf =
, yang dibentuk dari graf dengan menghilangkan
E. Himpunan verteks-awal dari sisi berarah di dinotasikan dengan
1
dan himpunan verteks-akhir dari sisi berarah di
dinyatakan dengan
2
. Langkah 2. Dibentuk
graf bipartite
=
1
∪
2
,
′
dengan
′
= {{v
i
,v
j
}| v
i
∈ V
1
, v
j
∈ V
2
dan {v
i
,v
j
A}. Langkah 3. Minimum bipartite matching
ditentukan dari graf . Selanjutnya graf
= , ∪
dibentuk dengan himpunan sisi berarah dari
dan himpunan matching berbobot minimum yang
diarahkan dari
2
ke
1
.
Langkah 4. Komponen-komponen pada
ditentukan dan dinotasikan dengan
1
, … , . Jika
= 1, maka
∪ dijadikan sebagai hasil output dan proses
selesai. Jika tidak, maka dibentuk graf lengkap yang tidak berarah
= ,
dengan himpunan verteks =
1
, … ,
dan bobot atau nilai tiap sisi yang menghubungkan
dan ialah
= min
∈ , ∈
� , 1 dengan
� , merupakan panjang path terpendek dari verteks pada komponen
dengan verteks j pada komponen .
Langkah 5. Misalkan himpunan sisi
tidak berarah pada yang terletak pada
path terpendek yang berpadanan dengan sisi- sisi minimum spanning tree pada
. Graf =
, ∪ ∪
dibentuk dengan menentukan minimum spanning tree pada
. Langkah 6. Graf
= ,
∪ ∪
dibentuk dengan
∗
ialah himpunan sisi
berarah yang
diperoleh dengan
menambahkan dua
sisi yang
arahnya berlawanan untuk sisi dari spanning tree
terpendek. Langkah 7. Ditentukan sirkuit Euler
pada dan dijadikan sebagai solusi dari
SCP. Eiselt et al. 1995b
Pada Gambar 41 diberikan skema tahapan penyelesaian
SCP dengan
algoritme Largearcs.
`
Gambar 41 Skema penyelesaian SCP dengan algoritme Largearcs. Graf campuran berbobot
= , ∪
Ditentukan bobot sisi graf Dibentuk graf bipartite
= ,
′
Dibentuk subgraf =
,
Diperoleh minimum bipartite matching
Dikonstruksi graf = ,
∪
Dibuat graf Algoritme Dijkstra
Metode Hungaria Algoritme van Aardenne-
Ehrenfest - de Bruijn
Algoritme Dijkstra Algoritme Prim
Dibentuk graf =
, ∪ ∪
Ditentukan Minimum Spanning Tree MST di
Pengubahan sisi tidak berarah menjadi sisi berarah
Diperoleh sirkuit Euler
Dibentuk graf baru =
, ∪ ∪
∗
Ditentukan jarak antarkomponen
3.3 Algoritme Smallarcs