gpt4 book ai didi

java - 如何创建从单个节点相对于图中距离传播的边

转载 作者:行者123 更新时间:2023-12-02 06:20:35 25 4
gpt4 key购买 nike

我有一个图,我需要创建从单个节点到距该节点一定距离内的所有节点的有向边,从初始节点指向距离内的节点。然后,它从距离初始节点较远的节点到这些节点距离内的节点创建边,并继续下去,直到每个节点都至少有一条边。

我在代码中概念化这一点并将其付诸实践时遇到了问题。我目前有以下代码,该代码可以工作,但不够好,因为有时远离初始节点的节点没有边缘:

//create patient zero
graphVer.get(0).getValue().setInfected(true);
graphVer.get(0).getValue().setRecentlyInfected(true);
graphVer.get(0).getValue().setLevel(0);
for(int i = 0; i < graphVer.size();i++) {
for(int j = 0; j < graphVer.size();j++) {
//checks each vertex against every other vertex, and if their distance is within limits and they aren't equal to each other, then create an edge between them
if(distance(graphVer.get(i).getValue().getX(), graphVer.get(i).getValue().getY(),graphVer.get(j).getValue().getX(),graphVer.get(j).getValue().getY()) < dis.getRange()) {
if(i != j) {
//makes sure that there is only one edge between two nodes and directs it based on where patient zero is
if(graphVer.get(i).getValue().getLevel() <= i && graphVer.get(j).getValue().getLevel() > graphVer.get(i).getValue().getLevel()) {
graphEdge.add(new Edge<>(0,graphVer.get(i),graphVer.get(j)));
graphVer.get(j).getValue().setLevel(i+1);
}
}
}
}
}

我没有包含顶点创建的代码,它只是在方形边界内随机创建顶点,确保没有重叠。 graphVer 是图中所有顶点的数组列表,graphEdge 是图中所有边的数组列表。

有什么更好的方法可以让它每次都能正常工作?

最佳答案

你的措辞有点困惑,你不是只想到达距原始节点一定距离内的节点吗?如果是这种情况,那么“有时距离初始节点较远的节点没有边缘”将是您想要发生的情况。

关于java - 如何创建从单个节点相对于图中距离传播的边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55836477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com