Tôi muốn networkx tìm đường đi dài nhất tuyệt đối trong biểu đồ tuần hoàn theo chỉ dẫn của tôi.networkx: tìm đường dẫn dài nhất tuyệt đối trong digraph
Tôi biết về Bellman-Ford, vì vậy tôi đã phủ nhận độ dài biểu đồ của mình. Vấn đề: bellx_ford() của networkx yêu cầu nút nguồn. Tôi muốn tìm đường dẫn dài nhất tuyệt đối (hoặc đường đi ngắn nhất sau khi phủ định), chứ không phải đường dẫn dài nhất từ một nút nhất định.
Tất nhiên, tôi có thể chạy bellman_ford() trên mỗi nút trong biểu đồ và sắp xếp, nhưng có phương pháp hiệu quả hơn không?
Từ những gì tôi đã đọc (ví dụ: http://en.wikipedia.org/wiki/Longest_path_problem) Tôi nhận ra có thực sự có thể không phải là một phương pháp hiệu quả hơn, nhưng đã tự hỏi nếu ai có bất kỳ ý tưởng (và/hoặc đã chứng minh P = NP (cười)).
CHỈNH SỬA: tất cả độ dài cạnh trong biểu đồ của tôi là +1 (hoặc -1 sau phủ định), do đó, một phương thức chỉ truy cập vào hầu hết các nút cũng sẽ hoạt động. Nói chung, nó sẽ không thể truy cập tất cả các nút của khóa học.
EDIT: OK, tôi vừa nhận ra rằng tôi có thể thêm một nút bổ sung chỉ đơn giản là kết nối với mọi nút khác trong biểu đồ và sau đó chạy bellman_ford từ nút đó. Bất cứ một đề nghị nào khác?
Đây không phải là bài tập về nhà. Chắc chắn, networkx sẽ thực hiện thuật toán này?Tôi đã thử liên kết của bạn và dường như yêu cầu đăng nhập? – barrycarter
Tôi đã cập nhật bằng mã. Bạn nói đúng - liên kết đó là xấu. Nên có những tài liệu tham khảo khác - có lẽ chúng ta có thể tìm thấy một tài liệu hay. – Aric
Hóa ra đồ thị của tôi đã được sắp xếp topo và tôi có thể giải quyết vấn đề mà không cần sử dụng networkx (bằng cách theo dõi đường dẫn đến dài nhất trên mỗi nút và nút trước đó cho mỗi đường dẫn như vậy). Không thể tin rằng nó là dễ dàng! – barrycarter