移动度数为 8 时矩阵中的最小成本路径
Posted
技术标签:
【中文标题】移动度数为 8 时矩阵中的最小成本路径【英文标题】:min cost path in matrix when degree of movement is eight 【发布时间】:2014-02-25 10:15:39 【问题描述】:这个问题的一个变种......
给定一个成本矩阵cost[][]
和cost[][]
中的一个位置(m, n)
,编写一个函数,返回从(0, 0)
到达(m, n)
的最小成本路径的成本。矩阵的每个单元格代表遍历该单元格的成本。到达(m, n)
的路径的总成本是该路径上所有成本的总和(包括源和目标)。您只能从给定单元格向下、向右和对角向下遍历单元格,即从给定单元格(i, j)
、单元格(i+1, j)
、(i, j+1)
和(i+1, j+1)
可以遍历
Problem link
如果我们被允许遍历所有可能的方向,而不是这里允许的三个..现在如何解决这个变体.. 我尝试考虑回溯,但它不起作用.. 任何想法!!!!!!!!!
【问题讨论】:
【参考方案1】:这是加权图中的shortest path problem,可通过Dijkstra's Algorithm(如果所有成本均为正数)或Bellman-Ford Algorithm 求解。
在这里,图表是G=(V,E)
,其中V=(x,y) | (x,y) is a cell in the matrix
和E=(u,v) | can move from cell u to cell v
。
您的权重函数将是
w((x1,y1),(x2,y2)) = cost[x2][y2]
用于图中的每条边。
请注意,如果图表具有“负循环”,这两种算法都会失败 - 因为在此类图表中不存在最低成本。
【讨论】:
以上是关于移动度数为 8 时矩阵中的最小成本路径的主要内容,如果未能解决你的问题,请参考以下文章