MATLAB: LONGEST PATH BY PRODUCT

adjacency matrixnp hard

Hello,
I have an adjacency matrix (A= [0,0,0.6,0.7,0.3;0.9,0,0,0.3,0;0,0.6,0,0.9,0;0,0,0.4,0,0.9;0,0,0,0,0]) that represents the weights of edges on a 5 node graph, and I wish to find the longest (by product not sum) between two nodes. I was considering doing an element by element inverse of the matrix (1./A) then I would go ahead and apply the Dijkstra's algorithm but using this method would give me the longest path (due to the inverse funtion) based on summation, where as I need the longest path based on multiplication.

Best Answer

You can take the log of your inverse matrix and use the log property:
Which basically says that maximizing/minimizing the sum (of logs) is the same as maximizing/minimizing the product of the variables.