创建一个图表,以便我可以对其应用统一成本搜索

时间:2014-03-15 06:45:47

标签: java search graph

您好我试图找到2个城市之间的最短路径,我需要使用UCS算法。我在实施图表时遇到了麻烦,我不知道我是否做得对。到目前为止,我有:

public class City {
    final private String id;  

      public City(String id) {
        this.id = id;
      }
      public String getId() {
        return id;
      }

      @Override
      public String toString() {
        return id;
      }  
}




public class Route {

private final City node;
private final int cost; 

  public Route(City node, int cost) {
    this.node = node;
    this.cost = cost;
  }

  public City getCity() {
    return node;
  }
  public int getCost() {
    return cost;
  }

  @Override
  public String toString() {
      return "{" + node + ", " + cost + "}";
  }

}

1 个答案:

答案 0 :(得分:1)

这听起来像是一个家庭作业问题,所以我不打算告诉你如何解决这个问题。相反,让我建议一种方法来查看可能让您自己找到答案的问题。

退一步检查算法。问自己这些问题:

  1. 我需要表达什么概念?
  2. 我需要对这些表示执行哪些操作?
  3. 哪些数据结构和编程结构支持我的需求?
  4. 您已经确定了城市(顶点),这些城市(边缘)之间的路线以及整个地图(图表),作为您需要表达的概念。到目前为止,非常好。

    接下来,检查算法并确定您需要做什么表示(类)以及需要对它们执行的操作。您需要坚持的需求很简单:您需要能够确定通过道路立即连接到特定城市的城市。看看你的代码并问自己:

    1. 我是否以支持我需求的方式组织了我的数据?
    2. 我可以使用什么算法来确定哪条城市通过路线连接?
    3. 一旦您回答了这些问题,请问自己第三个问题:是否有更好的方法来满足这一需求?我可以更改我的数据结构和/或算法以更好的方式解决此问题吗?如果答案是肯定的,请回到问题1和2. This list可能会为您提供一些想法。

      我认为你应该拿一支铅笔和一张纸来解决问题。根据我的经验,这是一种解决新问题并获得理解的好方法,可以提出一个可以提供解决方案的程序。