# THE GRAPH FUNCTION DOESN'T CONSIDER WEIGHTS

4 visualizzazioni (ultimi 30 giorni)
Gianluca Angelini il 30 Gen 2022
Hi to everybody, in my code I am trying to calculate the shortest path from a graph, whose I have explicited all parameters.
But from some checks I have done, it seems like the shortestpath function doesn't consider the weights I have putted in the graph. In fact I have manually specified some extremely high values for some of the edges of my graph so that the shortestpath function should avoid them in its calculation, but it doen't happen. I specify that no negative values are present in the Graph.Edges.Weight array.
Are there some tricks to consider, or some advice you can give me to solve my trouble or to understand why shortestpath function doesn't work properly?
##### 0 CommentiMostra -1 commenti meno recentiNascondi -1 commenti meno recenti

Accedi per commentare.

### Risposta accettata

Christine Tobler il 31 Gen 2022
Hard to say what's going wrong without seeing your code. Here's an example where you can see the weights being used to decide on the path:
g = graph([1 2 3], [2 3 1], [1 2 100]);
plot(g, 'EdgeLabel', g.Edges.Weight)
[path, dist] = shortestpath(g, 1, 3)
path = 1×3
1 2 3
dist = 3
[path, dist] = shortestpath(g, 1, 3, 'Method', 'unweighted')
path = 1×2
1 3
dist = 1
##### 5 CommentiMostra 4 commenti meno recentiNascondi 4 commenti meno recenti
Gianluca Angelini il 4 Feb 2022
I will maintain the line with the rmnedge function in my code in order to avoid the edges with high weights.

Accedi per commentare.

### Più risposte (1)

Steven Lord il 30 Gen 2022
Are you representing your graph as a graph or digraph object or as a biograph object?
How have you stored / represented your weights? If a graph or digraph does your object's edges table G.Edges contain a variable named Weight? [Weights won't do, it must be named exactly Weight.]
What algorithm did you tell shortestpath to use in determining the shortest path? If you're using a biograph did you specify BFS as the method?
##### 1 CommentoMostra NessunoNascondi Nessuno
Gianluca Angelini il 30 Gen 2022
I confirm I have used the graph object and its weights are stored in a G.Edges.Weight array.
Concerning the shortestpath, I have used this:
shortestpath(G,start_id,finish_id,'Method','positive');

Accedi per commentare.

### Categorie

Scopri di più su Graph and Network Algorithms in Help Center e File Exchange

R2018b

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by