Analisis Perbandingan Algoritma Generate and Test Dengan Hill Climbing Pada Penyelesaian Traveling Salesman Problem Untuk Kunjungan Wisata di Kabupaten Tapanuli Tengah

A-1

LAMPIRAN A

LISTING PROGRAM

ALGORITMA GENERATE AND TEST
For i = 0 To titik.Length - 1
daftarInduk.Add(i)
Next
jalur = addJalur()
LblResult.Text = "Jumlah Kemungkinan : " & Fn & Environment.NewLine & "Jalur
Awal : "
For i = 0 To n - 1
LblResult.Text += (IIf(i = 0, "", "-") & Chr(titik(i) + 65))
Next
LblResult.Text += "-A" & Environment.NewLine
jalurPilih = String.Join("-", titik) & "-0"
Dim tempuhPilih As Double = hitung(jalurPilih, jarak)
LblResult.Text += "Jarak Tempuh : " & tempuhPilih & Environment.NewLine
LblResult.Refresh()

ProgressBar1.Maximum = Fn
ProgressBar1.Visible = True
Dim jalurProses As String
Dim tempuhProses As Double
Dim k As Byte
Dim counter As ULong = 0
Dim Run As Stopwatch = Stopwatch.StartNew()
For l = 1 To n - 1
k = n - 2
jalur = addJalur()
counter += 1
jalurProses = String.Join("-", jalur.ToArray) & "-0"
tempuhProses = hitung(jalurProses, jarak)
test(jalurPilih, jalurProses, tempuhPilih, tempuhProses)
For j = 1 To 3
If k = n - 2 Then
daftarInduk = backtrack(1)
k = daftarInduk.Count
jalur = addJalur()
counter += 1

ProgressBar1.Value = counter
jalurProses = String.Join("-", jalur.ToArray) & "-0"
tempuhProses = hitung(jalurProses, jarak)
test(jalurPilih, jalurProses, tempuhPilih, tempuhProses)
daftarInduk = backtrack(2)
k = jalur.Count
ElseIf k = n - 3 Then
k += 1
jalur = addJalur()
counter += 1
ProgressBar1.Value = counter
jalurProses = String.Join("-", jalur.ToArray) & "-0"
tempuhProses = hitung(jalurProses, jarak)
test(jalurPilih, jalurProses, tempuhPilih, tempuhProses)
daftarInduk = backtrack(1)
k = daftarInduk.Count

Universitas Sumatera Utara

A-2


jalur = addJalur()
counter += 1
ProgressBar1.Value = counter
jalurProses = String.Join("-", jalur.ToArray) & "-0"
tempuhProses = hitung(jalurProses, jarak)
test(jalurPilih, jalurProses, tempuhPilih, tempuhProses)
daftarInduk = backtrack(2)
k = jalur.Count
End If
If j = 3 Then
daftarInduk = backtrack(1)
Dim titikAwal As Integer = daftarInduk(daftarInduk.Count - 1)
jalur.Add(titikAwal)
daftarInduk.Remove(titikAwal)
If counter Mod 24 = 0 And counter < Fn Then
daftarInduk = backtrack(0)
l = 1
If counter Mod 120 = 0 And counter < Fn Then
daftarInduk = backtrack(0)

l = 1
If counter Mod 720 = 0 And counter < Fn Then
daftarInduk = backtrack(0)
l = 1
If counter Mod 5040 = 0 And counter < Fn Then
daftarInduk = backtrack(0)
l = 1
If counter Mod 40320 = 0 And counter < Fn Then
daftarInduk = backtrack(0)
l = 1
End If
End If
End If
ElseIf counter = Fn Then
Exit For
End If
End If
End If
Next
If counter = Fn Then

Exit For
End If
Next
Run.Stop()
LblResult.Text += "Jalur Terpilih : "
For i = 0 To n - 1
LblResult.Text += (IIf(i = 0, "", "-") & Chr(Split(jalurPilih, "-")(i) +
65))
Next
LblResult.Text += Environment.NewLine & "Jarak Tempuh : " & tempuhPilih
Dim runTime As Integer = CInt(Run.Elapsed.TotalMilliseconds)
LblResult.Text += Environment.NewLine & "Runtime : " & runTime & " ms"

ALGORITMA HILL CLIMBING
Dim Fn2 As ULong = 1
For i = 1 To (n - 1) - 2
Fn2 *= i
Next
nOp = Fn / (2 * Fn2)
ReDim Op(nOp - 1, 1)


Universitas Sumatera Utara

A-3

buatOp(n - 1)
Dim run As Stopwatch = Stopwatch.StartNew()
LblResult.Text = "Jumlah Operator : " & nOp & Environment.NewLine & "Jalur
Awal : "
For i = 0 To n - 1
LblResult.Text += (IIf(i = 0, "", "-") & Chr(titik(i) + 65))
Next
LblResult.Text += "-A" & Environment.NewLine
jalurPilih = String.Join("-", titik) & "-0"
Dim tempuhPilih As Double = hitung(jalurPilih, jarak)
LblResult.Text += "Jarak Tempuh : " & tempuhPilih & Environment.NewLine
Dim temu As Boolean = True
Dim kandidat As String = jalurPilih
Dim titikProses(n - 1) As Byte
For i = 0 To n - 1

titikProses(i) = Split(jalurPilih, "-")(i)
Next
While temu = True
Dim jalur(n - 1) As Byte
For i = 0 To n - 1
jalur(i) = titikProses(i)
Next
Dim tukar As Byte
Dim jalurProses(Op.Length / 2 - 1) As String
Dim tempuhProses(Op.Length / 2 - 1) As Double
For i = 0 To Op.Length / 2 - 1
tukar = jalur(Op(i, 0))
jalur(Op(i, 0)) = jalur(Op(i, 1))
jalur(Op(i, 1)) = tukar
jalurProses(i) = String.Join("-", jalur) & "-0"
tempuhProses(i) = hitung(jalurProses(i), jarak)
Next
For j = 0 To n - 1
jalur(j) = titikProses(j)
Next

For i = 0 To tempuhProses.Length - 1
If tempuhProses(i) < tempuhPilih Then
tempuhPilih = tempuhProses(i)
jalurPilih = jalurProses(i)
End If
Next
For i = 0 To n - 1
titikProses(i) = Split(jalurPilih, "-")(i)
Next
If jalurPilih = kandidat Then
temu = False
LblResult.Text += "Jalur Terpilih : "
For i = 0 To n
LblResult.Text += (IIf(i = 0, "", "-") & Chr(Split(jalurPilih, "")(i) + 65))
Next
LblResult.Text += Environment.NewLine
LblResult.Text += "Jarak Tempuh : " & tempuhPilih
Else
kandidat = jalurPilih
temu = True

End If
End While
run.Stop()
Dim runTime As Integer = CInt(run.Elapsed.TotalMilliseconds)
LblResult.Text += Environment.NewLine & "Runtime : " & runTime & " ms"

Universitas Sumatera Utara

Dokumen yang terkait

ANALISIS PERBANDINGAN ALGORITMA GENETIKA DAN ALGORITMA FUZZY EVOLUSI DALAM PENYELESAIAN TRAVELING SALESMAN PROBLEM.

1 9 12

Analisis Perbandingan Algoritma Generate and Test Dengan Hill Climbing Pada Penyelesaian Traveling Salesman Problem Untuk Kunjungan Wisata di Kabupaten Tapanuli Tengah

0 0 14

Analisis Perbandingan Algoritma Generate and Test Dengan Hill Climbing Pada Penyelesaian Traveling Salesman Problem Untuk Kunjungan Wisata di Kabupaten Tapanuli Tengah

0 0 2

Analisis Perbandingan Algoritma Generate and Test Dengan Hill Climbing Pada Penyelesaian Traveling Salesman Problem Untuk Kunjungan Wisata di Kabupaten Tapanuli Tengah

0 6 4

Analisis Perbandingan Algoritma Generate and Test Dengan Hill Climbing Pada Penyelesaian Traveling Salesman Problem Untuk Kunjungan Wisata di Kabupaten Tapanuli Tengah

0 0 15

Analisis Perbandingan Algoritma Generate and Test Dengan Hill Climbing Pada Penyelesaian Traveling Salesman Problem Untuk Kunjungan Wisata di Kabupaten Tapanuli Tengah Chapter III V

0 1 38

Analisis Perbandingan Algoritma Generate and Test Dengan Hill Climbing Pada Penyelesaian Traveling Salesman Problem Untuk Kunjungan Wisata di Kabupaten Tapanuli Tengah

0 6 2

INISIALISASI POPULASI PADA ALGORITMA GENETIKA MENGGUNAKAN SIMPLE HILL CLIMBING (SHC) UNTUK TRAVELING SALESMAN PROBLEM (TSP)

0 0 5

SISTEM PENENTUAN LINTASAN TERPENDEK TRAVELING SALESMAN PROBLEM DENGAN ALGORITMA SIMPLE HILL CLIMBING

0 0 5

HYBRID ALGORITMA IMPROVED ANT COLONY OPTIMIZATION (IACO) DENGAN HILL CLIMBING (HC) UNTUK MENYELESAIKAN TRAVELING SALESMAN PROBLEM (TSP)

0 1 18