Saya menerapkan algoritme pembatalan siklus untuk menemukan solusi optimal untuk masalah aliran biaya minimum. Dengan menemukan dan menghilangkan siklus biaya negatif dalam jaringan residual, total biaya diturunkan di setiap putaran. Untuk menemukan siklus negatif saya menggunakan algoritma bellman-ford.
Masalah saya adalah: Bellman-ford hanya menemukan siklus yang dapat dijangkau dari sumbernya, tetapi saya juga perlu menemukan siklus yang tidak dapat dijangkau.
Contoh: Di jaringan berikut, kami sudah menerapkan aliran maksimum. Tepi membuatnya sangat mahal. Dalam jaringan residual, kami memiliki siklus biaya negatif dengan kapasitas . Menghapus itu, akan memberi kita solusi yang lebih murah menggunakan tepi dan , tapi kita tidak dapat mencapai itu dari sumber .
Label: Aliran / Kapasitas, Biaya
Tentu saja, saya bisa menjalankan Bellman-ford berulang kali dengan setiap node sebagai sumber, tetapi itu tidak terdengar seperti solusi yang baik. Saya agak bingung karena semua kertas yang saya baca sepertinya melewati langkah ini.
Dapatkah Anda memberi tahu saya, bagaimana cara menggunakan bellman-ford untuk menemukan setiap siklus negatif (dapat dicapai atau tidak)? Dan jika tidak memungkinkan, algoritma lain apa yang Anda usulkan?