C# 二维阵列的路径搜索

C# 二维阵列的路径搜索,c#,path-finding,dijkstra,a-star,C#,Path Finding,Dijkstra,A Star,我有一个2D的整数数组,我从一个图像中处理得到。每个索引可以被认为是该像素的权重。我想在两个索引之间找到一个成本最低的路径(我将把这些索引作为输入)。如果可以修改移动方向(如仅向下和向左、向上和向左或全部等),那就太好了,否则可能是向下、向左和向右) 如何在C#中做到这一点?对于这一点,A*算法(已经标记为:)是一个很好的选择 请参见,例如,无论使用何种语言,我都会首先计算直接路径的成本。这将成为第一条底线。然后我会递归地搜索一条较短的路径。您可以进行一些边界检查以减少递归 任何>=基线(或当前

我有一个2D的整数数组,我从一个图像中处理得到。每个索引可以被认为是该像素的权重。我想在两个索引之间找到一个成本最低的路径(我将把这些索引作为输入)。如果可以修改移动方向(如仅向下和向左、向上和向左或全部等),那就太好了,否则可能是向下、向左和向右)

如何在C#中做到这一点?

对于这一点,A*算法(已经标记为:)是一个很好的选择


请参见,例如,

无论使用何种语言,我都会首先计算直接路径的成本。这将成为第一条底线。然后我会递归地搜索一条较短的路径。您可以进行一些边界检查以减少递归

  • 任何>=基线(或当前最佳)的路径都将终止
  • 任何两次命中索引的路径都将终止
  • 任何成功的路径都会设置新的基线(或最佳)

  • 关于方向问题,你能说些什么?我的直觉是,不允许从当前单元格向打开的单元格列表添加对角单元格(或其他任何单元格)进行搜索,只允许那些符合你的约束条件的单元格。我已经有一段时间没有使用*了,所以我不确定它是否会像它应该的那样结束…你能写一个小例子吗