2D - Fitri Nur Aini - Presentasi 4
2D - Fitri Nur Aini - Presentasi 4
Oleh :
Fitri Nur Aini
18301241035
CONTOH KASUS Misal 𝑉 sebagai kumpulan kota dan 𝐸 sebagai kumpulan jalan
raya yang menghubungkan kota-kota tersebut. Bobot sebuah sisi {𝑖, 𝑗}, 𝑤(𝑖, 𝑗), 𝑡
biasanya disebut sebagai panjang sisi {𝑖, 𝑗} yang mempunyai interpretasi yang jelas
sebagai jarak antara kota 𝑖 dan 𝑗 meskipun interpretasi lainnya seperti biaya tahunan
𝑡 pemeliharaan jalan raya, atau jumlah kecelakaan jalan raya yang mungkin dan
berarti pada setiap bulannya. Panjang lintasan di 𝐺 didefinisikan sebagai jumlah dari
panjang sisi di lintasan tersebut. Salah stau masalah yang menarik perhatian adalah
menentukan lintasan terpendek dari satu simpul ke simpul lain di 𝑉. Ada beberapa
perosedur terkenal untuk menyelesaikan soal ini, salah satunya adalah yang
ditemukan oleh 𝐸.W. Dijkstra. Penyajian ini merupakan grafik tidak berarah, meskipun
prosedurnya juga berlaku untuk grafik berarah.
Cara kerja algoritma Dzikstra memakai stategi greedy, dimana pada setiap
langkah dipilih sisi dengan bobot terkecil yang menghubungkan sebuah simpul yang
sudah terpilih dengan simpul lain yang belum terpilih. Misalkan kita menentukan
lintasan terpendek dari simpul 𝑎 ke simpul 𝑧 di 𝐺. Dalam prosedurnya, sebuah lintasan
terpendek dari 𝑎 ke simpul lain ditentukan, kemudian lintasan terpendek dari 𝑎 ke
simpul yang lain ditentukan, dan seterusnya. Bahkan akhirnya prosedur tersebut
berhenti ketika lintasan terpendek dari 𝑎 dan 𝑧 yang sudah ditentukan.
Prosedur kami didasarkan pada pengamatan berikut : Misalkan 𝑇
merupakan himpunan bagian dari simpul di 𝑉 dengan 𝑎 ∉ 𝑇. Misalkan P menunjukkan
himpunan bagian dari simpul 𝑉 − 𝑇. Sebuah lintasan terpendek dari 𝑎 ke salah satu
simpul di 𝑇 dapat ditentukan sebagai berikut :
• Untuk setiap simpul 𝑡 di 𝑇 misalkan 𝑙(𝑡) menunjukkan panjang lintasan terpendek
di antara semua lintasan dari 𝑎 ke 𝑡 yang tidak menyertakan simpul lain di 𝑇.
[perhatikan bahwa 𝑙(𝑡) belum tentu jarak terpendek dari 𝑎 ke 𝑡 karena mungkin
ada bagian yang lebih pendek dari 𝑎 ke 𝑡 yang meliputi simpul lain di 𝑇].
• Kita menyebut 𝑙(𝑡) sebagai indeks dari 𝑡 sehubungan dengan 𝑃. Di antara semua
simpul di 𝑇, misalkan 𝑡1 merupakan simpul yang memiliki indeks terkecil.
• Kita mengklaim bahwa jarak terpendek dari 𝑎 dan 𝑡1 memang sama dengan 𝑙(𝑡1).
• Untuk membuktikan klaim kita, mari kita asumsikan bahwa ada lintasan dari 𝑎 ke
𝑡1 yang panjangnya kurang dari 𝑙(𝑡1 ). Dalam hal ini lintasan seperti itu harus
menyertakan satu atau lebih simpul di 𝑇 − {𝑡1 }. Misalkan 𝑡2 menjadi simpul
pertama di 𝑇 − {𝑡1 } yang kita temui saat kita menelusuri lintasan ini dari 𝑎 ke 𝑡1 .
Oleh karena itu, 𝑙(𝑡2 ) lebih kecil dari 𝑙(𝑡1 ), yang merupakan kontradiksi.
Akibatnya, jika saat menghitung 𝑙(𝑡) untuk setiap 𝑡 di 𝑇, kita juga akan menentukan
lintasan terpendek dari 𝑎 ke 𝑡1 .
Misalnya, untuk grafik pada Gambar 5.13a, misalkan 𝑇 = {𝑐, 𝑑, 𝑒, 𝑧}. Kami
meminta pembaca untuk memeriksa bahwa 𝑙(𝑐) = 3, 𝑙(𝑑) = 8, 𝑙(𝑒) = 6, 𝑙(𝑧) =
∞ . Sehingga jarak terpendek dari 𝑎 ke 𝑐 adalah 3.
Kita juga harus menemukan cara yang efisien untuk menghitung 𝑙(𝑡) setiap 𝑡
di 𝑇. Sekali lagi, misalkan 𝑇 adalah himpunan bagian dari 𝑉 dan 𝑃 = 𝑉 − 𝑇. Misalkan
untuk setiap simpul 𝑝 di 𝑃, ada lintasan terpendek dari 𝑎 ke 𝑝 yang hanya mencakup
simpul di 𝑃. Kita asumsikan bahwa untuk setiap simpul 𝑡 di 𝑇 telah dihitung indeksnya
sehubungan dengan 𝑃, 𝑙(𝑡). Misalkan 𝑥 merupakan titik puncak di 𝑇. Misalkan 𝑃′
menjadi 𝑃 ∪ {𝑥} dan 𝑇′ menjadi 𝑇 − {𝑥}. Misalkan 𝑙′(𝑡) menunjukkan indeks dari
sebuah simpul 𝑡 di 𝑇′ terhadap 𝑃′. Maka, kita mengklaim bahwa :
𝑙′(𝑡) = 𝑚𝑖𝑛[𝑙(𝑡), 𝑙(𝑥) + 𝑤(𝑥, 𝑡)]
Untuk menunjukkan hal ini, kita mengamati bahwa ada dua cara yang mungkin
untuk mendapatkan lintasan terpendek dari 𝑎 ke 𝑡 yang tidak menyertakan simpul
manapun di 𝑇′. Cara pertama adalah mempunyai lintasan yang tidak menyertakan
simpul di 𝑇′ maupun simpul 𝑥. Dalam hal ini, indeks 𝑡 terhadap 𝑃′ adalah 𝑙(𝑡). Cara
kedua adalah memiliki lintasan yang terdiri dari lintasan dari 𝑎 ke 𝑥 yang tidak
memiliki simpul di 𝑇, diikuti oleh sisi {𝑥, 𝑡}. Dalam hal ini, indeks dari 𝑡 terhadap 𝑃′
adalah 𝑙(𝑥) + 𝑤(𝑥, 𝑡). Kita harus menunjukkan bahwa kita tidak perlu
mempertimbangkan kemungkinan memiliki lintasan dari 𝑎 ke 𝑥, lalu ke beberapa 𝑝1 di
𝑃, dan kemudian ke 𝑡. Karena apabila ini masalahnya, sementara ada lintasan
terpendek dari 𝑎 ke 𝑝1 yang menyertakan 𝑥, ada juga yang tidak menyertakan 𝑥 yang
dapat menggantikannya. Oleh karena itu, ini direduksi menjadi kemungkinan pertama
yang dipertimbangkan di atas.
Sebagai contoh, pada graf di gambar 5.13a di atas, misalkan 𝑃 = {𝑎, 𝑏} dan
𝑇 = {𝑐, 𝑑, 𝑒, 𝑧}. Misalkan kita sudah menghitung 𝑙(𝑐) = 3, 𝑙(𝑑) = 8, 𝑙(𝑒) = 6,
𝑙(𝑧) = ∞ . Misalkan 𝑃’ = {𝑎, 𝑏, 𝑐}, 𝑇’ = {𝑑, 𝑒, 𝑧}. Diperoleh
𝑙’(𝑑) = 𝑚𝑖𝑛(8, 3 + ∞) = 8
𝑙’(𝑒) = min(6,3 + 1) = 4
𝑙’(𝑧) = 𝑚𝑖𝑛(∞, 3 + ∞) = ∞
Observasi ini mengarahkan pada prosedur untuk menghitung jarak terpendek
dari 𝑎 ke setiap simpul yang ada di 𝐺 berikut :
1. Misalkan 𝑃 = {𝑎} dan 𝑇 = 𝑉 − {𝑎}. Untuk setiap simpul 𝑡 pada 𝑇, maka 𝑙(𝑡) =
𝑤(𝑎, 𝑡).
2. Pilih simpul di 𝑇 yang memiliki indeks terkecil terhadap 𝑃. Misalkan 𝑥
menyimbolkan simpul ini.
3. Apabila 𝑥 merupakan simpul yang ingin dijangkau dari 𝑎, berhenti. Jika tidak, maka
𝑃’ = 𝑃 ∪ {𝑥} 𝑑𝑎𝑛 𝑇’ = 𝑇 − {𝑥}. Untuk setiap simpul 𝑡 di 𝑇’, hitung indeksnya
terhadap 𝑃’ sesuai pada 𝑙′(𝑡) = 𝑚𝑖𝑛[𝑙(𝑡), 𝑙(𝑥) + 𝑤(𝑥, 𝑡)]
4. Ulangi langkah 2 dan 3 dengan 𝑃’ sebagai 𝑃 dan 𝑇’ sebagai 𝑇
Sebagai contoh, untuk grafik berbobot pada gambar 5.13a, langkah-langkah
berurutan untuk menentukan lintasan terpendek antara 𝑎 dan 𝑧 ditunjukkan pada
gambar 5.13b melalui gambar 5.13f, dimana simpul-simpul pada 𝑃 dilingkari.
Perhatikan bahwa simpul pada 𝑇 diberi nama dengan indikasi mereka. Bahkan, simpul
dengan indeks tidak terbatas juga diberi nama dengan barisan simpul-simpul yang
berhubungan pada lintasan dari 𝑎 ke simpulnya yang panjangnya sama dengan indeks
dari simpul tersebut.
Bilangan yang sudah tertera pada diagram tidak hanya menyatakan panjang
ruas jalan, namun bisa juga sebagai waktu yang dibutuhkan untuk melewati ruas jalan
yang bersangkutan, atau pada biaya untuk melewatinya. Sehingga, jika kita memiliki
sebuah algoritma untuk memecahkan permasalahan ini dalam formulasi aslinya, maka
algoritma tersebut akan dapat digunakan pula untuk menemukan rute tercepat atau
rute termurah.
Kita dengan mudah dapat menentukan sebuah batas atas untuk jawaban yang
diinginkan dengan cara memilih sembarang lintasan 𝐴 ke 𝐿 dan menghitung
panjangnya. Misalkan kita mengambil lintasan :
𝐴→𝐵→𝐷→𝐺→𝐽→𝐿
Lintasan tersebut mempunyai panjang total 18 maka panjang lintasan
terpendek yang dimaksud tidak mungkin melebihi 18.
Kita memandang diagram tersebut sebagai graf terhubung dimana semua
bilangan non negative dituliskan untuk tiap-tiap rusuknya. Artinya graf tersebut
mempunyai bobot/harga pada setiap sisinya. Graf semacam ini disebut graf berbobot
(weighted graph) dan bilangan yang diberikan untuk tiap-tiap rusuk e disebut bobot
(weight) dari 𝑒, dituliskan dengan notasi 𝑤(𝑒).
Pada sub bab kali ini permasalahannya adalah menemukan sebuah lintasan
terpendek dari 𝐴 ke 𝐿 dengan nilai bobot toal minimum. Terdapat beberapa metode
yang dapat kita gunakan untuk memecahkan persoalan ini. Salah satunya adalah
dengan membuat sebuah model peta dengan cara menyambungkan dan mengikatnya
dengan simpul-simpul, potongan-potongan tali atau benang yang panjangnya
sebanding dengan panjang ruas jalan yang diwakili tiap-tiap potong tali atau benang.
Untuk menemukan lintasan terpendek peganglah kedua simpul yang mewakili kota 𝐴
dan 𝐿 dan bentangkan. Selain itu, terdapat cara lain yang lebih matematis untuk
memecahkan persoalan ini dengan cara bergerak menjelajahi peta tersebut dari kiri
ke kanan, sambil memberi label pada setiap simpul 𝑉 yang kita lalui dengan sebuah
bilangan 𝑙(𝑉) yang menunjukkan jarak terpendek dari 𝐴 ke 𝑉.
Kita ambil contoh pada gambar 2.35, ketika kita tiba di sebuah simpul
semisal 𝐾, kita akan menulis pada simpul tersebut sebuah bilangan 𝑙(𝐾) yang adalah
penjumlahan 𝑙(𝐻) + 6 atau 𝑙(𝑙) + 2, mana yang bernilai lebih kecil diantara kedua
kemungkinan ini. Sasaran akhir kita adalah menemukan 𝑙(𝐿). Untuk menerapkan
algoritma ini, pertama-tama memberikan label 0 pada 𝐴 dan untuk masing-masing
dari 𝐵, 𝐸, dan 𝐶, kita memberikan label sementara 𝑙(𝐴) + 3, 𝑙(𝐴) + 9 𝑑𝑎𝑛 𝑙(𝐴) +
2 tepatnya 3, 9 dan 2 secara berturut-turut. Kita memilih yang terkecil di antara
ketiga kemungkinan ini, dan menuliskan 𝑙(𝐶) = 2. Simpul 𝐶 sekarang diberi label 2
secara permanen.
Selanjutnya, beralih ke simpul-simpul yang bertetangga dengan 𝐵. Kita
memberikan 𝐷 label sementara 𝑙(𝐵) + 2 = 5 dan kita dapat memperkecil lagi label
sementara di 𝐸 menjadi 𝑙(𝐵) + 4 = 7. Label terkecil sementara kini adalah 5 (di 𝐷)
dan karenanya kita menulisakan 𝑙(𝐷) = 5. 𝐷 sekarang diberi label 5 secara
permanen. Berikutnya kita memperhatikan simpul-simpul yang bertetangga dengan
𝐷. Satu-satunya simpul yang merupakan tetangga dengan 𝐷 adalah 𝐺, dan kita
memberikan simpul ini label sementara 𝑙(𝐷) + 3 = 8. Label sementara terkecil
sekarang adalah 7 (di 𝐸), sehingga kita menuliskan 𝑙(𝐸) = 7. 𝐸 sekarang diberi label
7 secara permanen.
Dengan meneruskan prosedur ini hingga kita tiba di L, kita akan mendapatkan
label-label permanen berikut ini secara berurutan
𝐿(𝐺) = 8, 𝑙(𝐻) = 9, 𝑙(𝐹) = 10, 𝑙(𝑙) = 12, 𝑙 (𝐽) = 13, 𝑙(𝐾) = 14, 𝑙(𝐿) = 17
yang diperlihatkan dalam gambar 2.36. Dengan demikian lintasan terpendek dari 𝐴
ke L panjangnya adalah 17.
AYO BERLATIH!
Pembahasan :
• Mulai dari simpul A sebagai simpul awal, lingkari simpul A.
• Tentukan jalur dengan bobot terpendek yang menghubungkan A
dengan simpul yang lain.
• Jika jalurnya lebih dari satu, pilih jalur dengan bobot terendah.
CONTOH KASUS
Gambar 2.38
CONTOH SOAL
AYO BERLATIH!
Dari graf di atas, jalur manakah yang merupakan lintasan kritis/jalur kritis?
Pembahasan :
• Jalur 1 = 𝟏 − 𝟐 − 𝟓 − 𝟔 − 𝟕 (𝒂 − 𝒅 − 𝒈 − 𝒉) = 𝟐𝟎
• Jalur 2 = 𝟏 − 𝟐 − 𝟑 − 𝟓 − 𝟔 − 𝟕 (𝒂 − 𝒆 − 𝒈 − 𝒉) = 𝟏𝟗
• Jalur 3 = 𝟏 − 𝟑 − 𝟓 − 𝟔 − 𝟕 (𝒃 − 𝒆 − 𝒈 − 𝒉) = 𝟏𝟕
• Jalur 4 = 𝟏 − 𝟒 − 𝟔 − 𝟕 (𝒄 − 𝒇 − 𝒉) = 𝟏𝟔
Jadi, jalur kritis adalah jalur 1 karena mempunyai lama penyelesaian yang
lama.
D. Permasalahan Petugas Pos Cina
Permasalahan petugas pos cina pertama kali dikemukakan oleh Mei Gan yang
berasal dari Cina pada tahun 1962. Permasalahan tersebut bermula dari seorang
tukang pos akan mengantar surat ke alamat-alamat sepanjang jalan di suatu daerah.
Bagaimana ia merencanakan rute perjalannya agar ia melewati jalan tepat sekali dan
kembali lagi ke tempat awal keberangkatannya. Persoalan ini tak lain merupakan
persoalan untuk menentukan sirkuit Euler dalam graf. Jika peta jalan tempat tukang
pos bekerja adalah graf genap, sirkut Euler akan mudah ditemukan. Jika tidak, maka
harus di cari rute terpendek yang harus di ulangi oleh tukang pos.
Permasalahan ini dapat dirumsukan kembali dengan bantuan sebuah graf
berbobot dimana graf ini merepresentasikan jejaring jalan, dan bobot tiap-tiap
rusuknya adalah panjang ruas jalan yang diwakili. Dengan rumusan ini, persoalannya
sekarang adalah menemukan sebuah walk tertutup dengan bobot total minimum
yang mencakup setiap rusuk paling sedikit satu kali. Jika graf tersebut adalah graf
Euler, maka setiap jejak Euler di dalamnya adalah walk tertutup dengan sifat yang kita
inginkan; jejak Eiler semacam ini dapat ditemukan dengan bantuan algoritma Fleury.
Jika graf tersebut bukan graf Euler, maka persoalannya menjadi jauh lebih sukar,
walaupun diketahui terdapat sebuah algoritma yang efisien untuk memecahkannya.
Untuk mengilustrasikan gagasan tersebut, kita dapat melihat pada sebuah
kasus khusus dimana terdapat tepat dua simpul berderajat ganjil pada gambar di
bawah ini
Dari gambar tersebut kita tahu bahwa simpul B dan E mempunyai simpul berderajat
ganjil. Kita dapat menemukan jejak semi Euler dari B ke E yang mempunyai lintasan
setiap rusuk persis satu kali. Untuk dapat kembali ke titik awal keberangkatan kita
dengan menempuh jarak terpendek, kita sekarang dapat menemukan lintasan
terpendek dari E ke B dengan menggunakan algoritma yang telah kita pelajari di atas.
Solusi permasalahan petugas pos cina dengan demikian dapat diperoleh dengan
menggabungkan lintasan terpendek berikut ini.
𝐸→𝐹→𝐴→𝐵
Dengan jejak semi Euler yang kita temukan lebih dulu, yang menghasilkan jarak total
sebesar 13 + 64 = 77. Perhatikan bahwa, kita menggabungkan lintasan terpendek
tersebut dengan jejak semi Euler ini, kita mendapatkan sebuah graf Euler.
AYO BERLATIH!
Tentukan lintasan yang dapat dilalui tukang pos (menggunakan sirkuit Euler)!
Pembahasan :
𝐴→𝐵→𝐶→𝐷→𝐸→𝐹→𝐶→𝐸→𝐵→𝐹→𝐴
CONTOH SOAL
AYO BERLATIH!
b. I1 = (a, b, c, d, a) bobot = 10 + 12 + 8 + 15 = 45
I2 = (a, c, d, b, a) bobot = 12 + 5 + 9 + 15 = 41
I3 = (a, c, b, d, a) bobot = 10 + 5 + 9 + 8 = 32
Sirkuit Hamilton terpendek I3 dengan bobot = 10 + 5 + 9 + 8 = 32
DAFTAR PUSTAKA