Saya menulis sebuah Program, menyelesaikan Masalah Tukang Pos Cina (juga dikenal sebagai masalah inspeksi rute) dalam sebuah draph yang tidak diarahkan dan saat ini menghadapi masalah untuk menemukan tepi tambahan terbaik untuk menghubungkan node dengan derajat ganjil, sehingga saya dapat menghitung sirkuit Euler.
Mungkin ada (mempertimbangkan ukuran grafik yang ingin diselesaikan) kombinasi tepi yang sangat besar yang perlu dihitung dan dievaluasi.
Sebagai contoh ada node aneh derajat . Kombinasi terbaik adalah:
- , , , GH
- , , ,
- , , ,
- ....
di mana berarti "ujung antara simpul dan simpul ".
Oleh karena itu pertanyaan saya adalah: adakah algoritma yang dikenal untuk memecahkan masalah itu dalam kompleksitas yang lebih baik daripada kekuatan kasar murni (menghitung dan mengevaluasi semuanya)?
€: Setelah beberapa upaya penelitian saya menemukan artikel ini , berbicara tentang "algoritma pencocokan panjang minimum Edmonds" tetapi saya tidak dapat menemukan pseudo-code atau pembelajar-deskripsi dari algoritma ini (atau setidaknya saya tidak mengenalinya, karena Google menawarkan banyak hits, algoritma yang cocok oleh J. Edmonds)
Jawaban:
Seperti dikomentari dalam komentar, Wikipedia memberikan pengurangan dari inspeksi rute ke kecocokan berat minimum . Vladimir Kolmogorov telah menerbitkan implementasi cepat dari versi tertimbang dari algoritma bunga Edmonds, di C ++ [1].
[1] V. Kolmogorov, Blossom V: Implementasi baru dari algoritma pencocokan sempurna biaya minimum . Komputasi Pemrograman Matematika , 1 (1): 43–67, 2009.
sumber