Banyak algoritma aliran max yang biasa saya lihat diimplementasikan, algoritma Dinic, push relabel, dan lainnya, dapat meningkatkan biaya waktu asimptotik melalui penggunaan pohon dinamis (juga dikenal sebagai pohon tautan-potong).
- Relabel dorong berjalan di atau O ( V 3 ) atau O ( V 2 √normal, tetapi dengan pohon dinamisO(VElog(V2/E))
- Algoritma Dinic berjalan dalam , tetapi dengan pohon dinamis O ( V E log ( V ) )
Namun, implementasi praktis dari algoritma max-flow di sebagian besar perpustakaan tampaknya tidak memanfaatkan struktur data ini. Apakah pohon dinamis pernah digunakan dalam praktiknya untuk perhitungan aliran maksimum? Atau apakah mereka membawa terlalu banyak overhead untuk berguna untuk ukuran masalah dunia nyata?
Apakah ada domain masalah lain di mana pohon-pohon penghubung tautan digunakan?
Pertanyaan ini terkait dengan pertanyaan yang saya ajukan pada cstheory: Apakah ada yang mutakhir dari algoritma Aliran Maksimal yang praktis?
sumber
Jawaban:
Ada sebuah makalah berjudul " Pohon Dinamis dalam Praktek " yang mengulas implementasi praktis.
Kategori lain yang pohon Link-Cut dapat digunakan secara efisien adalah dalam Pengindeksan Basis Data . Anda dapat menemukannya di buku " Teknik Indeks Basis Data ".
sumber
makalah ini menemukan pada akhirnya bahwa pohon tautan-potong (LC) mengungguli pohon-pohon rake-kompres (RC) untuk algoritma Sleator / Tarjan max-flow menggunakan generator grafik acak Dimacs standar.
makalah ini berfokus pada perubahan propagasi sebagai salah satu aplikasi pohon dinamis. misalnya, perubahan propagasi mirip dengan cara sel excel spreadsheet harus dihitung ulang pada perubahan beberapa sel berdasarkan pada dependensi sel / rumus. penulis merilis kode mereka sebagai perpustakaan terbuka.
Analisis eksperimental perambatan perubahan pada pohon dinamis Acar, Blelloch, Vittes
sumber