Bắt chu kỳ tiêu cực bằng Bellman Ford


20

Tôi phải tìm một chu kỳ âm trong đồ thị có trọng số theo hướng. Tôi biết thuật toán Bellman Ford hoạt động như thế nào và nó cho tôi biết nếu có một chu kỳ tiêu cực có thể tiếp cận. Nhưng nó không đặt tên rõ ràng.

Làm thế nào tôi có thể nhận được đường dẫn thực tế của chu kỳ?v1,v2,vk,v1

Sau khi áp dụng thuật toán tiêu chuẩn, chúng tôi đã thực hiện bước lặp và không thể cải thiện thêm. Nếu chúng ta vẫn có thể hạ thấp khoảng cách đến một nút, một chu kỳ âm tồn tại.n1

Ý tưởng của tôi là: Vì chúng tôi biết cạnh vẫn có thể cải thiện đường dẫn và chúng tôi biết tiền thân của mỗi nút, chúng tôi có thể theo dõi đường trở lại từ cạnh đó cho đến khi chúng tôi gặp lại nó. Bây giờ chúng ta nên có chu kỳ của chúng tôi.

Đáng buồn thay, tôi đã không tìm thấy bất kỳ bài báo cho tôi biết nếu điều này là chính xác. Vì vậy, nó thực sự làm việc như vậy?

Chỉnh sửa: Ví dụ này chứng minh rằng ý tưởng của tôi là sai. Đưa ra biểu đồ sau, chúng tôi chạy Bellman-Ford từ nút .1

nhập mô tả hình ảnh ở đây

Chúng tôi xử lý các cạnh theo thứ tự . Sau khi lặp chúng ta nhận được khoảng cách nút:a,b,c,dn1
1:5
2:30
3:15

bảng cha mẹ: có cha mẹ có cha mẹ có cha mẹ
13
23
32

Bây giờ, thực hiện lần lặp thứ chúng ta thấy rằng khoảng cách của nút vẫn có thể được cải thiện bằng cách sử dụng cạnh . Vì vậy, chúng ta biết rằng một chu kỳ tiêu cực tồn tại và là một phần của nó.n1aa

Nhưng, bằng cách lần theo lại cách chúng tôi thông qua bảng phụ huynh, chúng tôi gặp khó khăn trong một chu kỳ tiêu cực và không bao giờ gặp lần nữa.c,da

Làm thế nào chúng ta có thể giải quyết vấn đề này?

Câu trả lời:


14

v1

s


liên kết bị hỏng.
human.js


Tôi chỉ sử dụng ý tưởng của giáo sư Huang, nhưng tôi không hiểu tại sao ông lại thêm cả nút nguồn mới và mục tiêu mới ( s't'). Dường như với tôi rằng một nút nguồn mới, được kết nối với tất cả các đỉnh hiện có bởi một cạnh có độ dài bất kỳ, sẽ bật lên tất cả các chu kỳ.
AbuNassar

0

Ví dụ của bạn không mâu thuẫn với ý tưởng của bạn. Quả thực bạn đã tìm thấy một chu kỳ tiêu cực. Tôi nghĩ ý tưởng mà ví dụ của bạn minh họa là đỉnh nguồn có thể không phải là nút trong chu kỳ âm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.