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?
v1
vàv2
, thì chính xác hai đỉnh này nằm trong đường đi ngắn nhất giữav1
vàv2
. Vì vậy, đối với bất kỳ đỉnh khácv
,[v1, v] == 0 == [v, v1]
trong ma trận củav2
và[v2, v] == 0 == [v, v2]
trong ma trận củav1
.