Tìm đường đi ngắn nhất trong đồ thị bổ sung


7

Tôi đang tìm một thuật toán nhận như là đầu vào một đỉnh , và tìm thấy con đường đi ngắn nhất từ đến tất cả các đỉnh trong đồ thị bổ sung (vô hướng). Thuật toán sẽ chạy trong thời gian , trong đó là số cạnh trong biểu đồ gốc (không phải biểu đồ bổ sung).sSÔi(V+E)E

Nếu là đồ thị, đồ thị bổ sung được xác định là đồ thị sau: là một cạnh trong đồ thị bổ sung, nếu và chỉ khi nó không phải là cạnh trong đồ thị ban đầu. Nói cách khác, chúng tôi xóa tất cả các cạnh hiện có và thêm tất cả các cạnh bị thiếu khỏi biểu đồ ban đầu.Ge

Vì vậy, trước tiên tôi nghĩ đến việc "xây dựng" biểu đồ bổ sung (thay thế các đỉnh trong danh sách kề với các đỉnh không xuất hiện ở đó), sau đó chạy BFS trên danh sách mới, nhưng tất nhiên điều đó có nghĩa là thời gian chạy sẽ dựa trên các cạnh trong biểu đồ bổ sung, không phải là bản gốc.

Tất nhiên tôi cũng nhận thấy rằng sau khi chạy BFS trên biểu đồ gốc, bất kỳ đỉnh nào có khoảng cách từ lớn hơn 1 (trong biểu đồ gốc) sẽ trở thành 1 trong biểu đồ bổ sung (vì nếu chúng không có hàng xóm trong đồ thị ban đầu, chúng là hàng xóm trong đồ thị bổ sung). Nhưng tôi không thể có được thuật toán để tiếp tục theo một số quy tắc cụ thể về việc khi nào nên cập nhật khoảng cách và làm gì. Bất kỳ đề xuất?S


3
Một hướng có thể là xem xét hai trường hợp: và , với một số hằng số . Trong trường hợp thứ hai, đồ thị bổ sung có các cạnh , vậy là xong. Trong trường hợp đầu tiên, đồ thị bổ sung rất dày đặc, có thể giúp thuật toán chạy nhanh hơn. |E|<c|V|2|E|c|V|2c<1/2Ôi(|E|)
Yuval Filmus

Câu trả lời:


-1

Cá nhân tôi, không thấy lý do tại sao điều này vẫn chưa được trả lời .

Tìm một cái gì đó trong biểu đồ bổ sung và tìm thấy điều tương tự trong biểu đồ về cơ bản có cùng độ phức tạp thời gian (lên đến hệ số không đổi).

Kể từ khi hoán đổi giữa các cạnh (bạn,v) và không cạnh (bạn,v) Chỉ là Ôi(1)hoạt động thời gian. Chúng tôi không phải chuyển đổi hoặc chuyển đổi bất cứ điều gì chỉ phủ nhận mọi đầu ra truy vấn .


1
Nó nên được chạy trong Ôi(|V|+|E|)thời gian. Ghi chúElà tập hợp các cạnh trong biểu đồ gốc, không phải trong biểu đồ bổ sung.
xskxzr
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.