Back to IF2211 Strategi Algoritma

Topic

Questions/Cues

  • TSP & Prinsip Optimalitas
  • Karakteristik DP untuk TSP
  • State Kompleks: (i, S)
  • Formula Rekursif f(i, S)
  • Contoh n=4: Perhitungan Basis
  • Analisis Inkonsistensi Data
  • Perhitungan Tahap |S|=1
  • Perhitungan Tahap |S|=2
  • Perhitungan Akhir
  • Rekonstruksi Tur Optimal

Persoalan Travelling Salesperson Problem (TSP) dengan Dynamic Programming

  • Definisi: Menemukan tur terpendek dari kota asal, mengunjungi setiap kota lain tepat sekali, dan kembali ke kota asal.

  • Penerapan Prinsip Optimalitas: Dynamic programming dapat diterapkan karena Prinsip Optimalitas berlaku. Jika tur 1 → k → ... → 1 adalah optimal, maka sub-jalur dari k ke 1 (yang melalui semua simpul sisanya) juga harus merupakan jalur terpendek dari k ke 1 yang melalui himpunan simpul tersebut.

  • Langkah 1: Karakteristikkan Struktur Solusi Optimal:

    • Tahap: Jumlah simpul yang telah dikunjungi dalam tur.
    • State: Ini adalah bagian yang paling krusial dan berbeda dari contoh sebelumnya. Sebuah status tidak cukup hanya dengan mengetahui posisi saat ini. Kita juga perlu tahu simpul mana saja yang belum dikunjungi. Oleh karena itu, status didefinisikan oleh sebuah pasangan: (i, S).
      • i: Simpul saat ini (kota tempat kita berada sekarang).
      • S: Himpunan (set) dari simpul-simpul yang masih harus dikunjungi sebelum kembali ke simpul awal (simpul 1).
    • Keputusan: Dari status (i, S), keputusan yang diambil adalah memilih simpul berikutnya, j, dari himpunan S.
  • Langkah 2: Definisikan Hubungan Rekursif

    • Fungsi Tujuan: Misalkan f(i, S) adalah panjang (biaya) lintasan terpendek yang dimulai dari simpul i, mengunjungi semua simpul dalam himpunan S tepat sekali, dan berakhir di simpul 1.
    • Logika: Untuk menghitung f(i, S), kita mencoba semua kemungkinan untuk langkah berikutnya. Kita bisa pergi dari i ke salah satu simpul j di dalam S. Biaya untuk pilihan ini adalah biaya dari i ke j (c_ij) ditambah biaya sub-masalah sisanya, yaitu f(j, S - {j}) (biaya terpendek dari j, mengunjungi sisa simpul S-{j}, lalu ke 1). Kita pilih j yang memberikan total biaya minimum.
    • Formula Rekurens:
    • Basis: Kasus dasar terjadi ketika tidak ada lagi simpul yang harus dikunjungi (himpunan S kosong). Dari simpul i, kita hanya perlu kembali ke simpul 1.
  • Langkah 3: Hitung Nilai Solusi Optimal (Contoh n=4)

  • Analisis Inkonsistensi Data:

    • Materi sumber menyajikan beberapa matriks biaya yang berbeda. Kita akan gunakan yang terakhir disajikan sebelum perhitungan. Namun, nilai basis c_{i1} yang digunakan dalam perhitungan (c_{21}=5, c_{31}=6, c_{41}=8) juga tidak cocok dengan matriks tersebut. Untuk menjaga alur contoh, kita akan mengikuti nilai-nilai yang digunakan dalam perhitungan sumber, bukan nilai dari matriks yang ditampilkan. Matriks Biaya (untuk referensi):

    • Tahap 1: Basis Kasus ()

    • Tahap 2: Perhitungan untuk

    • Tahap 3: Perhitungan untuk

    • Tahap Akhir: Menghitung Biaya Tur Lengkap Tujuan kita adalah mencari .

  • Langkah 4: Rekonstruksi Tur Optimal

    • Total biaya tur terpendek adalah 35.
    1. Dari Simpul 1: Nilai 35 didapat dari pilihan j=2 (). Maka, tur dimulai dengan 1 → 2.
    2. Dari Simpul 2, dengan sisa {3,4}: Kita lihat perhitungan . Nilai 25 didapat dari pilihan j=4 (). Maka, langkah berikutnya adalah ke simpul 4. Tur menjadi 1 → 2 → 4.
    3. Dari Simpul 4, dengan sisa {3}: Kita lihat perhitungan . Hanya ada satu pilihan, yaitu ke simpul 3. Tur menjadi 1 → 2 → 4 → 3.
    4. Dari Simpul 3, dengan sisa {}: Tidak ada lagi simpul yang harus dikunjungi, maka kita kembali ke simpul 1.
    • Tur Optimal: 1 → 2 → 4 → 3 → 1
    • Verifikasi Biaya: . Hasilnya konsisten.

Summary

Dynamic programming menyediakan metode yang pasti (eksak) untuk menyelesaikan TSP dengan mengubahnya menjadi serangkaian sub-masalah yang tumpang tindih. Kuncinya adalah mendefinisikan state secara cerdas menggunakan pasangan (simpul saat ini, himpunan simpul sisa). Dengan menghitung biaya optimal untuk setiap kemungkinan state secara bertahap (bottom-up), dari himpunan sisa terkecil hingga terbesar, algoritma ini dapat menjamin penemuan tur dengan biaya terpendek. Meskipun optimal, kompleksitasnya yang eksponensial membuatnya hanya praktis untuk jumlah kota yang relatif kecil.