Saat ini saya membaca pengantar algoritma dan datang dengan algoritma Johnson yang tergantung pada memastikan bahwa semua jalur positif.
algo tergantung pada menemukan fungsi bobot baru (w ') yang positif untuk semua tepi dan menjaga kebenaran hubungan jalur terpendek.
Ia melakukannya dengan menghitung nilai h (s), h (d) yang akan ditambahkan ke nilai asli w.
Pertanyaan saya adalah, mengapa tidak hanya menemukan w terkecil dalam grafik dan menambahkannya ke semua tepi? ini akan memenuhi kedua kondisi dan akan membutuhkan lebih sedikit perhitungan.
Jawaban:
Menambahkan bobot ke setiap sisi menambah bobot lebih untuk jalur panjang daripada jalur pendek. (Panjang dalam arti memiliki banyak sisi.)
Sebagai contoh, misalkan tepi berbiaya terendah memiliki bobot- 2 dan ada dua jalur dari Sebuah ke b : satu tepi berat 3 dan jalur dengan dua tepi, masing-masing berat 1 . Jalur dua sisi memiliki bobot terendah. Namun, jika Anda menambahkan 2 ke setiap tepi, jalur satu sisi memiliki bobot 5 tetapi jalur dua sisi sekarang memiliki bobot 6 , sehingga Anda mendapatkan jawaban yang salah.
sumber
Menambah setiap berat tepi dengan jumlah yang sama tidak serta merta meningkatkan setiap jalur dengan jumlah jarak yang sama. Sebaliknya, peningkatan jalur sering tidak proporsional yang tergantung pada berapa banyak tepi jalan.
sumber