我目前正在开发一个项目,我正在实现Java中“在线”网络优化的启发式方法。启发式意味着是动态的,并且根据时间限制,我将查看N个节点以决定走哪条路。我的问题如下:
从我当前所在的节点开始,我想查看相邻节点,以确定目前哪种方式最佳。我还想看看我当前节点邻居的相邻节点,我想这样做N次(如果N是3我想看看邻居和他们的邻居然后他们的邻居)。查看前面的N个相邻节点我想将第一个节点(最佳路径)添加到路径中,然后重复进程。
有没有一种有效的方法,我意识到如果我用静态N编写代码可以解决问题,但我需要这是可以改变的。
我希望我能够清楚地解释这个问题,是否有人为这个问题提供了智能解决方案。
答案 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);
}
}`