• Tidak ada hasil yang ditemukan

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

N/A
N/A
Protected

Academic year: 2017

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

Copied!
3
0
0

Teks penuh

(1)

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

(2)

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)

(3)

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"

Referensi

Dokumen terkait

Hal ini menunjukkan pupuk dalam bentuk curah memiliki ketersediaan hara yang lebih tinggi dari pada pupuk dalam bentuk granul sehingga pertumbuhan tinggi tanaman lebih

Dengan posisi tersebut, maka akan sulit bagi PR untuk melakukan peran- peran yang sejalan dengan kaidah Exellence PR – sebagai dasar dari peran manajerial PR yakni

Faktor ekstrinsik merupakan faktor risiko yang dapat meningkatkan pemaparan (exposure) dari penjamu terhadap kuman penyebab yang terdiri atas 3 unsur yaitu

singkong dan jagung, hanya 1 kali dalam 1 minggu. Partisipan biasanya membeli ubi di pasar untuk dikonsumsi. Kemudian jenis sayuran yang dikonsumsi partisipan

B).Cemas, penderita penyakit yang memiliki resiko terhadap kecemasan adalah mereka yang takut dan khawatir akan penyakitnya, diisolasi dari keluarga dan kerabat, dan

Pakistan dan India dikenal sebagai penghasil tekstil dunia. Tekstil memerlukan bahan utama yang berasal dari kapuk. Kapuk paling baik dan ditanam dalam jumlah banyak ada di

Batang semu yang berada di dalam tanah akan berubah bentuk dan fungsinya menjadi umbi lapis (bulbus), antara lapis kelopak bulbus terdapat mata tunas yang dapat membentuk tanaman

Pengelolaan keuangan daerah pada dasarnya dimaksudkan untuk menghasilkan gambaran tentang kapasitas atau kemampuan keuangan daerah dalam mendanai penyelenggaraan