Một thuật toán để xây dựng lại một biểu đồ từ thông tin đường dẫn ngắn nhất của nó?


8

Tôi có một số dữ liệu đường dẫn ngắn nhất cho một biểu đồ. Tôi có thể tự xây dựng lại biểu đồ từ dữ liệu này không?

Chính xác hơn, tôi có ma trận boolean (0/1) cho mỗi đỉnh v trong đồ thị (V, E) . Phần tử ma trận [s, d] bằng 1 iff v nằm trong đường đi ngắn nhất từ ​​đỉnh nguồn s đến đỉnh đích d . Tất cả các cạnh trong biểu đồ có cùng chiều dài.

Ví dụ: đối với biểu đồ

(V1) -- (V2) -- (V3)

ba ma trận sẽ là:

V1:

1 1 1
1 0 0
1 0 0

V2:

0 1 1
1 1 1
1 1 0

V3:

0 0 1
0 0 1
1 1 1

Những câu hỏi của tôi:

1) có một thuật toán để xây dựng lại tập hợp các cạnh E từ các ma trận này không?

2) là giải pháp luôn duy nhất? (đây là một sự tò mò cá nhân hơn là một yêu cầu thực tế)

3) thuật toán có thể được khái quát thành độ dài cạnh không hình thành không?


1
Nếu có một cạnh giữa hai đỉnh v1v2, thì chính xác hai đỉnh này nằm trong đường đi ngắn nhất giữa v1v2. Vì vậy, đối với bất kỳ đỉnh khác v, [v1, v] == 0 == [v, v1]trong ma trận của v2[v2, v] == 0 == [v, v2]trong ma trận của v1.
Giorgio

1
Có thể tôi sai, nhưng arent 1) và 2) tương đương?
proskor

Tôi không chắc chắn nếu 1) và 2) tương đương nhau: có thể có nhiều hơn một biểu đồ cho thông tin đường dẫn ngắn nhất cho trước và cũng là thuật toán tìm tất cả các giải pháp có thể.
Giorgio

Ok, nhưng đó là một vấn đề khác. Vấn đề là xây dựng lại một biểu đồ từ tập hợp các ma trận này, không tính toán xem có giải pháp nào thỏa mãn các ràng buộc được mã hóa trong các ma trận này hay không.
proskor

1
@Giorgio thêm một cạnh duy nhất từ ​​v1 đến v3 dài hơn v1-v2-v3 dẫn đến cùng một tập hợp ma trận trừ khi tôi thiếu một cái gì đó - vì vậy sẽ là một ví dụ cho trường hợp cạnh không đồng nhất
jk.

Câu trả lời:


2

bạn có thể trích xuất ma trận kề bằng từ ma trận đường dẫn bằng cách sử dụng thuộc tính sau.

Có một cạnh giữa 2 đỉnh sd nếu và chỉ khi đường đi ngắn nhất giữa chúng chỉ chứa sd.

Đối với độ dài không đồng nhất, bạn sẽ chỉ nhận được giải pháp duy nhất nếu bất đẳng thức tam giác giữ. Mặt khác, một biểu đồ có d(p1,p2)=1 d(p2,p3)=2d(p1,p3)=4sẽ hiển thị đường dẫn ngắn nhất giữa p1p3qua p2thay vì kết nối trực tiếp. Điều đó có nghĩa là cạnh [p1, p3] sẽ không bao giờ là một phần của bất kỳ con đường ngắn nhất nào.

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.