查看相邻节点,前面有n个节点

时间:2014-03-19 22:20:54

标签: java

我目前正在开发一个项目,我正在实现Java中“在线”网络优化的启发式方法。启发式意味着是动态的,并且根据时间限制,我将查看N个节点以决定走哪条路。我的问题如下:

从我当前所在的节点开始,我想查看相邻节点,以确定目前哪种方式最佳。我还想看看我当前节点邻居的相邻节点,我想这样做N次(如果N是3我想看看邻居和他们的邻居然后他们的邻居)。查看前面的N个相邻节点我想将第一个节点(最佳路径)添加到路径中,然后重复进程。

有没有一种有效的方法,我意识到如果我用静态N编写代码可以解决问题,但我需要这是可以改变的。

我希望我能够清楚地解释这个问题,是否有人为这个问题提供了智能解决方案。

1 个答案:

答案 0 :(得分:0)

使用递归解决了问题。

'public ArrayList <path> searchNetwork(int Depth, ArrayList<Path> paths, int currentDepth){
    currentDepth++
if(currentDepth < depth){
    for(int i = 0; i < n; i++){

        if(paths.get(i).getNeighbours > 1){
        paths.add(createNewPath(paths.get(i).deepCopy));
        paths.get(i).addNeighbour;
        }
    }
    searchNetwork(deoth, paths, currentDepth);
}

}`