51
IMPLEMENTASI ALGORITMA PENCARIAN K JALUR SEDERHANA TERPENDEK DALAM GRAF (Kata kunci: Algoritma deviasi, algoritma Dijkstra, jalur sederhana, jalur terpendek) PRESENTASI TUGAS AKHIR – KI091391 Penyusun Tugas Akhir : Anggakara Hendra Nandana (NRP: 5108.100.075) Dosen Pembimbing : Yudhi Purwananto, S.Kom., M.Kom. Rully Soelaiman, S.Kom., M.Kom. 10 Juli 2013 Tugas Akhir - KI091391 1

IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

  • Upload
    dongoc

  • View
    255

  • Download
    1

Embed Size (px)

Citation preview

Page 1: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

IMPLEMENTASI ALGORITMA PENCARIAN K JALUR SEDERHANA TERPENDEK

DALAM GRAF

(Kata kunci: Algoritma deviasi, algoritma Dijkstra, jalur sederhana, jalur terpendek)

PRESENTASI TUGAS AKHIR – KI091391

Penyusun Tugas Akhir : Anggakara Hendra Nandana

(NRP: 5108.100.075)

Dosen Pembimbing : Yudhi Purwananto, S.Kom., M.Kom.

Rully Soelaiman, S.Kom., M.Kom.

10 Juli 2013 Tugas Akhir - KI091391 1

Page 2: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 2

KERANGKA PRESENTASI

Ilustrasi Permasalahan

Latar Belakang

Batasan Masalah

Tujuan

Pendahuluan

Rangkaian Proses

Uji Coba

Kesimpulan

Page 3: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

ILUSTRASI PERMASALAHAN

3 10 Juli 2013 Tugas Akhir - KI091391

Problem dari situs Sphere Online Judge (SPOJ) berjudul “Kth Shortest Path” (http://www.spoj.com/problems/MKTHPATH/)

Page 4: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

DESKRIPSI SOAL SPOJ “Kth Shortest Path”

4 10 Juli 2013 Tugas Akhir - KI091391

1. Seseorang bernama Isaac merasa bosan karena setiap hari melalui jalur yang sama untuk melakukan perjalanan dari rumah menuju kantor.

2. Jalur yang diambil Isaac selalu merupakan jalur terpendek, yaitu jalur dengan biaya terkecil, dan selalu merupakan jalur sederhana.

3. Biaya pada sebuah jalur merupakan total waktu yang dibutuhkan untuk melewati jalan-jalan yang menghubungkan dua buah tempat yang menyusun jalur tersebut.

4. Waktu yang dibutuhkan untuk melewati sebuah jalan bisa bernilai sama atau berbeda dengan jalan-jalan yang lain.

5. Pada hari-hari berikutnya, Isaac ingin melewati jalur terpendek yang belum pernah dilewatinya.

6. Dengan kata lain, pada hari ke-k, Isaac ingin melewati jalur terpendek ke-k.

7. Permasalahan Isaac dapat dimodelkan menjadi graf dengan masing-masing verteks merepresentasikan tempat dan masing-masing edge merepresentasikan jalan.

Page 5: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

BATASAN SOAL SPOJ “Kth Shortest Path”

5 10 Juli 2013 Tugas Akhir - KI091391

1. Jumlah verteks maksimum 50 buah, jumlah edge maksimum 2450 buah, dan banyak jalur yang dicari (k) maksimum 200 buah.

2. Jalur yang dicari harus merupakan jalur sederhana, yaitu jalur yang tidak memiliki pengulangan verteks penyusun.

3. Jika terdapat dua kandidat jalur terpendek dengan bobot yang sama, maka jalur yang dipilih adalah jalur yang lebih dahulu memiliki verteks penyusun dengan nomor yang lebih kecil. (Contoh: Jika memiliki bobot yang sama, maka jalur 1-2-3-4 muncul lebih dahulu daripada jalur 1-3-4.)

Page 6: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

FORMAT DATA MASUKAN

6 10 Juli 2013 Tugas Akhir - KI091391

• Data masukan merupakan sebuah berkas teks yang hanya berisi bilangan bulat

• Masing-masing bilangan bulat merepresentasikan detail graf dengan format seperti pada Gambar 1 n m k a b

x1 y1 z1 x2 y2 z2 … xm ym zm

jumlah verteks jumlah edge jumlah jalur yang dicari

verteks sumber jalur verteks tujuan jalur

detail edge-edge

Gambar 1

Page 7: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

FORMAT DATA MASUKAN

7 10 Juli 2013 Tugas Akhir - KI091391

n m k a b x1 y1 z1 x2 y2 z2 … xm ym zm

verteks sumber verteks tujuan bobot edge

• Data masukan merupakan sebuah berkas teks yang hanya berisi bilangan bulat

• Masing-masing bilangan bulat merepresentasikan detail graf dengan format seperti pada Gambar 1

Gambar 1

Page 8: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

CONTOH DATA MASUKAN

8 10 Juli 2013 Tugas Akhir - KI091391

4 6 2 1 4 2 3 1 1 3 2 1 2 1 1 4 3 2 4 2 3 4 1

1 2

4 3

1 2

1

3

2

1

1

4

Data Masukan Gambar Graf

Page 9: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

FORMAT DATA KELUARAN

9 10 Juli 2013 Tugas Akhir - KI091391

• Data keluaran merupakan sebuah berkas teks yang hanya berisi bilangan bulat.

• Masing-masing bilangan bulat merepresentasikan verteks-verteks penyusun jalur yang ditemukan

• Urutan penulisan verteks-verteks penyusun jalur dimulai dari verteks sumber hingga verteks tujuan.

• Pada tiap dua buah verteks dipisahkan sebuah tanda hubung (-). a-v2-…-vl-1-b

verteks sumber jalur verteks tujuan jalur

Page 10: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

CONTOH DATA KELUARAN

10 10 Juli 2013 Tugas Akhir - KI091391

1-2-4

4 6 2 1 4 2 3 1 1 3 2 1 2 1 1 4 3 2 4 2 3 4 1

Data Masukan

2

3

1

2

1

3

2

1

1

4

Gambar Graf Data Keluaran

Page 11: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 11

ALGORITMA NAIF (1)

2

3

1

2

1

3

2

1

1

4

• Daftar kemungkinan jalur dari vertex 1 ke vertex 4: 1 : 1-2-3-4, bobot = 3 2 : 1-2-4, bobot = 3 3 : 1-3-4, bobot = 3 4 : 1-4, bobot = 3

• Pada k jalur terpendek pertama, masing-masing verteks dapat menjadi verteks penyusun jalur sebanyak maksimal k kali.

• Vertex sumber dan verteks tujuan jalur selalu muncul pada setiap k jalur terpendek.

• Pencarian jalur dapat dilakukan dengan mencari seluruh kemungkinan jalur yang menuju verteks tujuan, hingga ditemukan jalur yang berasal dari verteks sumber sebanyak k kali.

Page 12: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 12

ALGORITMA NAIF (2)

2

3

1

2

1

3

2

1

1

4

Daftar urutan jalur yang menuju ke verteks 4 : 1: 4 (bobot = 0) 2: 3-4 (bobot = 1) 3: 2-3-4 (bobot = 2) 4: 2-4 (bobot = 2) 5: 1-2-3-4 (bobot = 3) 6: 1-2-4 (bobot = 3) 7: 1-3-4 (bobot = 3)

Page 13: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 13

HASIL ALGORITMA NAIF

Kesimpulan: Algoritma naif kurang efisien untuk menyelesaikan permasalahan pencarian k jalur sederhana terpendek.

Hasil pengujian implementasi algoritma naif pada soal “Kth Shortest Path”

Page 14: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

LATAR BELAKANG

14 10 Juli 2013 Tugas Akhir - KI091391

1. Problem berjudul “Kth Shortest Path” pada situs SPOJ merupakan contoh permasalahan yang dapat ditemukan dalam kehidupan sehari-hari, sehingga dibutuhkan sebuah algoritma untuk menyelesaikan permasalahan tersebut.

2. Algoritma naif kurang efisien dalam hal kecepatan dan memori yang dibutuhkan, sehingga dibutuhkan algoritma lain yang lebih cepat dan lebih hemat memori

Page 15: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

BATASAN MASALAH

15 10 Juli 2013 Tugas Akhir - KI091391

1. Pustaka yang digunakan untuk membantu pengimplementasian algoritma merupakan C++ Standard Template Library (STL). Pustaka-pustaka tersebut antara lain: cstdio, iostream, algorithm, cstring, vector, queue, dan ctime.

2. Kebutuhan memori hasil implementasi mengacu pada hasil keluaran dari server situs SPOJ untuk problem “Kth Shortest Path”.

Page 16: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

TUJUAN MASALAH

16 10 Juli 2013 Tugas Akhir - KI091391

1. Untuk melakukan studi dan mengimplementasi algoritma pencarian k jalur sederhana terpendek dalam graf yang lebih optimal dibandingkan dengan algoritma naif dengan bantuan pustaka dari C++ Standard Template Library.

2. Untuk menguji kebenaran hasil implementasi algoritma pencarian k jalur sederhana terpendek dalam graf.

3. Untuk menguji dan membandingkan kecepatan algoritma naif dengan algoritma baru yang dijelaskan pada tugas akhir ini.

Page 17: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 17

KERANGKA PRESENTASI

Pendahuluan

Rangkaian Proses

Uji Coba

Kesimpulan

Pencarian kandidat jalur terpendek pertama

Pengambilan jalur terpendek dari himpunan kandidat

jalur X

Penghapusan subjalur dan edge-edge dari graf

Pembentukan pohon jalur terpendek Tt

Pencarian kandidat-kandidat jalur terpendek berikutnya

Pengecekan jumlah jalur dan isi himpunan kandidat

jalur

1

2

3

4

5

6

Page 18: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 18

RANGKAIAN PROSES: LANGKAH 1

Pencarian kandidat jalur terpendek pertama

Pengambilan jalur terpendek dari himpunan kandidat

jalur X

Penghapusan subjalur dan edge-edge dari graf

Pembentukan pohon jalur terpendek Tt

Pencarian kandidat-kandidat jalur terpendek berikutnya

Pengecekan jumlah jalur dan isi himpunan kandidat

jalur

1 • Jalur terpendek pertama digunakan sebagai acuan

untuk menentukan kandidat-kandidat jalur terpendek berikutnya.

• Jalur terpendek pertama dicari menggunakan algoritma Dijkstra

2

3

1

2

1

3

2

1

1

4 Gambar 2

Page 19: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 19

RANGKAIAN PROSES: LANGKAH 1

Pencarian kandidat jalur terpendek pertama

Pengambilan jalur terpendek dari himpunan kandidat

jalur X

Penghapusan subjalur dan edge-edge dari graf

Pembentukan pohon jalur terpendek Tt

Pencarian kandidat-kandidat jalur terpendek berikutnya

Pengecekan jumlah jalur dan isi himpunan kandidat

jalur

1 • Jalur terpendek dari verteks 1 menuju verteks 4 pada

Gambar 2 adalah jalur 1-2-3-4

• Jalur terpendek yang didapat kemudian ditambahkan ke himpunan kandidat jalur X

• Inisialisasi verteks sumber sebagai verteks deviasi jalur

Gambar 2

2

3

1

2

1

3

2

1

1

4

Page 20: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 20

ALGORITMA DEVIASI

• Jalur-jalur terpendek yang didapat dari sebuah graf dapat membentuk pohon jalur terpendek seperti pada Gambar 3

• Sebuah jalur pk selalu memiliki rangkaian vertex yang sama dengan jalur p1, …, pk-1 dari verteks sumber sampai verteks tertentu.

• Verteks tersebut merupakan letak jalur pk menyimpang dari himpunan jalur {p1, …, pk-1} dan disebut verteks deviasi. Verteks deviasi pada jalur p dinotasikan sebagai d(p)

Gambar 3

2

1

4

3 3 5

5 5

p1

p2 p3

• d(p1) = 1 • d(p2) = 1 • d(p3) = 2

Page 21: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 21

RANGKAIAN PROSES: LANGKAH 2

Pencarian kandidat jalur terpendek pertama

Pengambilan jalur terpendek dari himpunan kandidat

jalur X

Penghapusan subjalur dan edge-edge dari graf

Pembentukan pohon jalur terpendek Tt

Pencarian kandidat-kandidat jalur terpendek berikutnya

Pengecekan jumlah jalur dan isi himpunan kandidat

jalur

2

• Himpunan kandidat jalur X berisi kandidat-kandidat jalur terpendek

• Jalur yang diambil adalah jalur dengan bobot minimum dari semua anggota X, dan dinotasikan sebagai jalur p.

• Panjang jalur p dinotasikan sebagai l, dan urutan verteks penyusunnya dinotasikan sebagai v1, v2, …, vl.

• Banyaknya jalur yang telah diambil dari X menunjukkan banyaknya jalur yang telah ditemukan

2 1 1 1

4

Contoh jalur terpendek dari X

(bobot = 3)

v1 v2 vl /v4

3

v3

1

Page 22: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 22

RANGKAIAN PROSES: LANGKAH 2

Pencarian kandidat jalur terpendek pertama

Pengambilan jalur terpendek dari himpunan kandidat

jalur X

Penghapusan subjalur dan edge-edge dari graf

Pembentukan pohon jalur terpendek Tt

Pencarian kandidat-kandidat jalur terpendek berikutnya

Pengecekan jumlah jalur dan isi himpunan kandidat

jalur

2

• Agar proses pemilihan jalur terpendek dapat lebih efisien, maka diperlukan struktur data yang tepat.

• Pada program, implementasi himpunan kandidat jalur menggunakan struktur data priority_queue yang mengaplikasikan struktur heap biner.

2 1 1 1

4

Contoh jalur terpendek dari X

(bobot = 3)

v1 v2 vl /v4

3

v3

1

Page 23: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 23

RANGKAIAN PROSES: LANGKAH 3

Pencarian kandidat jalur terpendek pertama

Pengambilan jalur terpendek dari himpunan kandidat

jalur X

Penghapusan subjalur dan edge-edge dari graf

Pembentukan pohon jalur terpendek Tt

Pencarian kandidat-kandidat jalur terpendek berikutnya

Pengecekan jumlah jalur dan isi himpunan kandidat

jalur

3

• Bertujuan agar jalur yang sudah ditemukan tidak dapat menjadi kandidat jalur terpendek berikutnya.

• Subjalur yang dihapus dimulai dari verteks sumber hingga verteks ke-(l -1) pada jalur p dan dinotasikan dengan subp(s, vl -1 )

• Hapus semua edge yang berasal dari verteks deviasi jalur-jalur yang ditemukan sebelum jalur p.

jalur p

2

3

1

2

1

3

2

1

1

4

1 2 3 4

Page 24: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 24

RANGKAIAN PROSES: LANGKAH 4

Pencarian kandidat jalur terpendek pertama

Pengambilan jalur terpendek dari himpunan kandidat

jalur X

Penghapusan subjalur dan edge-edge dari graf

Pembentukan pohon jalur terpendek Tt

Pencarian kandidat-kandidat jalur terpendek berikutnya

Pengecekan jumlah jalur dan isi himpunan kandidat

jalur

4

• Pohon jalur terpendek Tt adalah struktur pohon dari graf yang berakar pada verteks t, yaitu verteks tujuan jalur.

• Jarak antara sebuah verteks dengan verteks akar pada

pohon merupakan jarak minimum kedua verteks pada graf.

2

3

1

2

1

3

2

1

1

4

Page 25: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 25

RANGKAIAN PROSES: LANGKAH 4

Pencarian kandidat jalur terpendek pertama

Pengambilan jalur terpendek dari himpunan kandidat

jalur X

Penghapusan subjalur dan edge-edge dari graf

Pembentukan pohon jalur terpendek Tt

Pencarian kandidat-kandidat jalur terpendek berikutnya

Pengecekan jumlah jalur dan isi himpunan kandidat

jalur

4

• Pada proses algoritma, pohon jalur terpendek dibentuk dari graf setelah dilakukan penghapusan verteks dan edge pada graf

4

Page 26: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 26

RANGKAIAN PROSES: LANGKAH 5

Pencarian kandidat jalur terpendek pertama

Pengambilan jalur terpendek dari himpunan kandidat

jalur X

Penghapusan subjalur dan edge-edge dari graf

Pembentukan pohon jalur terpendek Tt

Pencarian kandidat-kandidat jalur terpendek berikutnya

Pengecekan jumlah jalur dan isi himpunan kandidat

jalur

5

Pengembalian verteks vi ke dalam graf

Penghitungan jarak antara vi dengan t

Penambahan kandidat jalur ke dalam X

Pengembalian edge (vi, vi+1) pada graf

5.1

Perbaikan struktur pohon Tt

5.2

5.3

5.4

5.5

diulang untuk setiap vi ∈ {vl -1, …, d(p) }

Page 27: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 27

RANGKAIAN PROSES: LANGKAH 5.1

Pencarian kandidat-kandidat jalur terpendek berikutnya 5

Pengembalian verteks vi ke dalam graf

Penghitungan jarak antara vi dengan t

Penambahan kandidat jalur ke dalam X

Pengembalian edge (vi, vi+1) pada graf

5.1

Perbaikan struktur pohon Tt

3 1

4

2

2

1 2 3 4

vi

1

2

1

3

1

Page 28: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 28

RANGKAIAN PROSES: LANGKAH 5.2

Pencarian kandidat-kandidat jalur terpendek berikutnya 5

Pengembalian verteks vi ke dalam graf

Penghitungan jarak antara vi dengan t

Penambahan kandidat jalur ke dalam X

Pengembalian edge (vi, vi+1) pada graf

5.2

Perbaikan struktur pohon Tt

Dilakukan penghitungan kembali jarak antara vi dengan t, yaitu dengan memperbaiki struktur pohon Tt

3 1

4

2

2

1 2 3 4

vi

Page 29: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 29

RANGKAIAN PROSES: LANGKAH 5.3

Pencarian kandidat-kandidat jalur terpendek berikutnya 5

Pengembalian verteks vi ke dalam graf

Penghitungan jarak antara vi dengan t

Penambahan kandidat jalur ke dalam X

Pengembalian edge (vi, vi+1) pada graf

5.3

Perbaikan struktur pohon Tt

• Jika jalur dari verteks vi ke verteks t dapat ditetapkan, maka dilakukan penambahan kandidat jalur baru.

• Kandidat jalur merupakan gabungan dari subp(s, vi) dengan jalur dari vi menuju t pada struktur pohon Tt.

• Kandidat jalur terpendek yang dapat terbentuk adalah jalur 1-2-4

3 1

4

2 2

1 2 3 4

vi

subp(s, vi)

Page 30: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 30

RANGKAIAN PROSES: LANGKAH 5.4

Pencarian kandidat-kandidat jalur terpendek berikutnya 5

Pengembalian verteks vi ke dalam graf

Penghitungan jarak antara vi dengan t

Penambahan kandidat jalur ke dalam X

Pengembalian edge (vi, vi+1) pada graf

5.4

Perbaikan struktur pohon Tt

1 2 3 4

vi vi+1

3 1

4

2

2 1

2

1

3

1

Page 31: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 31

RANGKAIAN PROSES: LANGKAH 5.5

Pencarian kandidat-kandidat jalur terpendek berikutnya 5

Pengembalian verteks vi ke dalam graf

Penghitungan jarak antara vi dengan t

Penambahan kandidat jalur ke dalam X

Pengembalian edge (vi, vi+1) pada graf

5.5 Perbaikan struktur pohon Tt

3 1

4

2

2 1

1 2 3 4

vi

3 1

4

2

2

Tt sebelum diperbaiki

Tt setelah diperbaiki

Page 32: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 32

RANGKAIAN PROSES: LANGKAH 6

Pencarian kandidat jalur terpendek pertama

Pengambilan jalur terpendek dari himpunan kandidat

jalur X

Penghapusan subjalur dan edge-edge dari graf

Pembentukan pohon jalur terpendek Tt

Pencarian kandidat-kandidat jalur terpendek berikutnya

Pengecekan jumlah jalur dan isi himpunan kandidat

jalur 6

• Rangkaian proses algoritma berhenti jika salah satu dari dua kondisi berikut tercapai:

1. jumlah jalur yang diambil dari X sudah sama dengan k

2. Himpunan jalur X merupakan himpunan kosong

Page 33: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 33

KERANGKA PRESENTASI

Uji Kebenaran

Uji Kecepatan

Uji Perbandingan Algoritma

Pendahuluan

Rangkaian Proses

Uji Coba

Kesimpulan

Page 34: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 34

UJI KEBENARAN

5 8 4 1 5 1 2 1 1 4 3 1 3 1 2 4 2 3 4 2 2 5 3 4 5 1 3 5 2

1-3-4-5

Data Masukan Data Keluaran Program

2

1 4

3

3

2

1

2

2

1

3

1

5

1

2 3

4 4 5 5

5 5

1 1

2 3 2 2

1 1 p1

p2

p3

p4 k = 4

Page 35: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 35

UJI KECEPATAN (1)

• Waktu minimal = 2,73 detik • Waktu maksimal = 2,83 detik • Rata-rata waktu yang dibutuhkan adalah 2,76 detik dengan standar deviasi sebesar 0,3

Page 36: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 36

UJI KECEPATAN (2)

k Judul Graf

Waktu (detik)

100

A 0.024 B 0.035 C 0.588 D 94.856

500

A 0.115 B 0.161 C 3.030 D 448.342

1000

A 0.227 B 0.328 C 6.165 D 888.671

5000

A 1.114 B 1.562 C 32.113 D 4486.230

Judul Graf Jumlah Verteks Jumlah Edge

Graf A 51 1.183 Graf B 50 2.450 Graf C 730 5.762 Graf D 6.551 47.322

Kompleksitas algoritma: Ο (kn (m + n log (n))

Page 37: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 37

UJI PERBANDINGAN ALGORITMA

k Judul Graf

Algoritma TA

Algoritma Naif

100 A 0.016 0.296 B 0.035 0.561

500 A 0.093 1.294 B 0.161 3.104

1000 A 0.187 2.62 B 0.328 6.24

5000 A 0.974 14.461 B 1.562 30.576

Judul Graf Jumlah Verteks Jumlah Edge

Graf A 51 1.183 Graf B 50 2.450 Graf C 730 5.762 Graf D 6.551 47.322

Page 38: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 38

KERANGKA PRESENTASI

Kesimpulan

Saran

Pendahuluan

Rangkaian Proses

Uji Coba

Penutup

Page 39: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 39

Kesimpulan

1. Hasil implementasi algoritma pencarian jalur sederhana terpendek yang dijelaskan pada tugas akhir ini dapat menghasilkan keluaran yang benar.

2. Kompleksitas waktu eksekusi program adalah Ο (kn (m + n log (n)) pada n buah edge, m buah verteks, dan k jalur yang dicari pada graf.

3. Algoritma pada tugas akhir ini lebih efisien daripada algoritma naif yang telah ditemukan sebelumnya.

Page 40: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 40

Saran

Pengembangan dengan melakukan studi mengenai struktur heap Fibonacci beserta implementasinya pada program untuk mempercepat pemrosesan kandidat jalur.

Page 41: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 41

Page 42: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 42

KERANGKA PRESENTASI

Struktur Pohon Jalur Terpendek

Struktur Percabangan Jalur

Struktur Pohon Tt

Pendahuluan

Metode

Uji Coba

Kesimpulan

Rangkaian Proses

Page 43: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 43

POHON JALUR TERPENDEK

Struktur Pohon Jalur Terpendek

Struktur Percabangan Jalur

Struktur Pohon Tt

Rangkaian Proses

2

1 3

4

0

2

0

2

0

0

3

1

5

Daftar tiga jalur terpendek dari verteks 1 ke verteks 5: P1: 1-2-5 P2: 1-4-3-5 P3: 1-2-3-5

Page 44: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 44

POHON JALUR TERPENDEK

Struktur Percabangan Jalur

Struktur Pohon Tt

Rangkaian Proses

2

1 3

4

0

2

0

2

0

0

3

1

5

1

4 2

5 3 3

5 5

P1: 1-2-5 P2: 1-4-3-5 P3: 1-2-3-5

P1

P3 P2

Struktur Pohon Jalur Terpendek

Page 45: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 45

PERCABANGAN JALUR

Struktur Percabangan Jalur

Struktur Pohon Tt

Rangkaian Proses

s a t Struktur Pohon Jalur Terpendek

Jalur ke-p :

Kandidat jalur-jalur ke-q (q > p):

s … t a

s a t …

Page 46: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 46

STRUKTUR POHON Tt

Struktur Percabangan Jalur

Struktur Pohon Tt

Rangkaian Proses

Struktur Pohon Jalur Terpendek

2

1 3

4

0

2

0

2

0

0

3

1

5

Struktur Pohon Tt

Page 47: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 47

STRUKTUR POHON Tt

Struktur Percabangan Jalur

Struktur Pohon Tt

Rangkaian Proses

Struktur Pohon Jalur Terpendek

2

3

4

2

0

2

0

5

Struktur Pohon Tt setelah dilakukan penghapusan edge-edge pada jalur 1-2-5

1 3

1

Page 48: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 48

PSEUDOCODE (1)

Page 49: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 49

PSEUDOCODE (2)

Page 50: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 50

KODE SUMBER (1)

Page 51: IMPLEMENTASI ALGORITMA PENCARIAN K JALUR …digilib.its.ac.id/public/ITS-paper-30192-5108100075-Presentation.pdfIMPLEMENTASI ALGORITMA PENCARIAN . K. JALUR SEDERHANA TERPENDEK DALAM

10 Juli 2013 Tugas Akhir - KI091391 51

KODE SUMBER (2)