Eu tenho alguns dados de caminho mais curto para um gráfico. Posso reconstruir o próprio gráfico a partir desses dados?
Mais precisamente, eu tenho uma matriz booleana (0/1) para cada vértice v no gráfico (V, E) . Matriz elemento [s, d] é igual a 1 sse v está no caminho mais curto do vértice fonte s de destino vértice d . Todas as arestas do gráfico têm o mesmo comprimento.
Por exemplo, para o gráfico
(V1) -- (V2) -- (V3)
as três matrizes seriam:
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
Minhas perguntas:
1) existe um algoritmo para reconstruir o conjunto de arestas E dessas matrizes?
2) a solução é sempre única? (isso é mais uma curiosidade pessoal do que um requisito real)
3) o algoritmo pode ser generalizado para comprimentos de borda não uniformes?
v1
ev2
, exatamente esses dois vértices estarão no caminho mais curto entrev1
ev2
. Assim, para qualquer outro vérticev
,[v1, v] == 0 == [v, v1]
na matriz dev2
e[v2, v] == 0 == [v, v2]
na matriz dev1
.