Red de conocimiento informático - Aprendizaje de programación - Existe una función de este tipo en matlab: [dist, path, pred] = graphshortestpath(G, S, T), déjame preguntarte cuál es el significado específico de pred.

Existe una función de este tipo en matlab: [dist, path, pred] = graphshortestpath(G, S, T), déjame preguntarte cuál es el significado específico de pred.

Representa el precursor del nodo objetivo en el camino más corto desde S a cada nodo, es decir, el nodo anterior del nodo objetivo.

Por ejemplo, el siguiente código. Observe si el penúltimo número del vector de ruta en cada conjunto de valores de retorno es el mismo que el número del nodo correspondiente en pred. Es decir, el penúltimo valor de la ruta se extrae en secuencia para formar la matriz pred.

>> W = [.41 .99 .51 .32 .15 .45 .38 .32 .36 .29 .21];

>> DG = disperso([ 6 1 2 2 3 4 4 5 5 6 1],[2 6 3 5 4 1 6 3 4 3 5],W);

>> [dist,path,pred] = Graphshortestpath(DG ,1,1)

dist =

0

ruta =

1

pred = p>

0 6 5 5 1 4

>> [dist,ruta,pred] = Graphshortestpath(DG,1,2)

dist =

1.3600

ruta=

1 5 4 6 2

pred =

0 6 5 5 1 4

>> [dist,ruta,pred] = graphshortestpath(DG,1,3)

dist =

0.5300

ruta =

1 5 3

pred =

0 6 5 5 1 4

>> [dist,ruta,pred] = rutamáscorta( DG, 1,4)

dist =

0.5700

ruta =

1 5 4

pred =

0 6 5 5 1 4

>> [dist,ruta,pred] = Graphshortestpath(DG,1,5)

dist =

0.2100

ruta=

1 5

pred =

0 6 5 5 1 4

>> [dist,ruta,pred] = graphshortestpath(DG,1,6)

dist =

0.9500

ruta =

1 5 4 6

pred =

0 6 5 5 1 4