問題是我想從右上角到左下角用最大的數字總和,我只需要用12步就可以做到這一點,實際上它是一種化學反應。工程。問題,但簡要的解決方法是我提到的要點,我知道這些類型的問題在圖形和一些算法中有一些理論,但由於我是化學工程專業的學生,我不太瞭解圖表和相關算法。 我很努力想出一個想法,但我實際上沒有發現任何東西,我很欣賞你的想法。兩點之間最長的路徑
- 注:我們被允許做水平和垂直移動僅
我以前的答案,我得到這樣的:(從下會左至右上方,這樣移動從下往上,從左到右只,從節點43將節點7):
clc
clear
A = zeros(49) ;
A(8,1) = -3.02 ;
A(1,2) = -3.1 ;
A(9,2) = -2.04 ;
A(2,3) = -2.07 ;
A(10,3) = -2.09 ;
A(3,4) = -2.01 ;
A(11,4) = -2.04 ;
A(4,5) = -3.1 ;
A(12,5) = -3.03 ;
A(5,6) = -2.06 ;
A(13,6) = -2.05 ;
A(6,7) = -3.04 ;
A(14,7) = -2.05 ;
A(15,8) = -2.04 ;
A(8,9) = -3.04 ;
A(16,9) = -2.05 ;
A(9,10) = -2.02 ;
A(17,10) = -2.01 ;
A(10,11) = -3.1 ;
A(18,11) = -2.1 ;
A(11,12) = -2.09 ;
A(19,12) = -3.1 ;
A(12,13) = -2.08 ;
A(20,13) = -2.04 ;
A(13,14) = -2.03 ;
A(21,14) = -2.06 ;
A(22,15) = -3.05 ;
A(15,16) = -2.02 ;
A(23,16) = -2.09 ;
A(16,17) = -3.05 ;
A(24,17) = -2.07 ;
A(17,18) = -3.01 ;
A(25,18) = -2.08 ;
A(18,19) = -2.09 ;
A(26,19) = -3.03 ;
A(19,20) = -2.09 ;
A(27,20) = -2.02 ;
A(20,21) = -2.04 ;
A(28,21) = -3.05 ;
A(29,22) = -3.05 ;
A(22,23) = -2.07 ;
A(30,23) = -3.09 ;
A(23,24) = -3.05 ;
A(31,24) = -3.08 ;
A(24,25) = -2.01 ;
A(32,25) = -3.05 ;
A(25,26) = -2.01 ;
A(33,26) = -3.03 ;
A(26,27) = -3.04 ;
A(34,27) = -3.1 ;
A(27,28) = -3.05 ;
A(35,28) = -2.06 ;
A(36,29) = -2.03 ;
A(29,30) = -2.05 ;
A(37,30) = -3.05 ;
A(30,31) = -2.1 ;
A(38,31) = -3.06 ;
A(31,32) = -2.09 ;
A(39,32) = -2.09 ;
A(32,33) = -2.05 ;
A(40,33) = -2.07 ;
A(33,34) = -3.08 ;
A(41,34) = -3.02 ;
A(34,35) = -3.07 ;
A(42,35) = -3.04 ;
A(43,36) = -2.08 ;
A(36,37) = -2.05 ;
A(44,37) = -2.07 ;
A(37,38) = -2.08 ;
A(45,38) = -3.1 ;
A(38,39) = -3.03 ;
A(46,39) = -2.02 ;
A(39,40) = -2.09 ;
A(47,40) = -3.05 ;
A(40,41) = -3.09 ;
A(48,41) = -2.1 ;
A(41,42) = -3.1 ;
A(49,42) = -2.07 ;
A(43,44) = -2.08 ;
A(44,45) = -3.06 ;
A(45,46) = -2.01 ;
A(46,47) = -2.1 ;
A(47,48) = -2.02 ;
A(48,49) = -2.06 ;
G = digraph(A) ;
[path,d] = shortestpath(G,43,7) ;
,但我得到了錯誤的路徑長度,MATLAB的答案是32 .78和正確的一個必須是25.73。 我找到路徑是:
答案路徑是:
可能看看Dijkstra的算法,你必須實現它來尋找效率最低的路徑,而不是最高效的路徑,但它可能會工作。 – user3716193
同意@ user3716193。首先創建一個拓撲,然後你可以使用Djikstra的算法。用f(x)= 1/x轉換你的體重,然後計算「最短路徑」 – obchardon
我建議你閱讀[this](http://www.geeksforgeeks.org/dynamic-programming-set-6-min-cost) -path /),它非常相似,並且適應你的場景。 –