在图表

时间:2016-04-14 18:03:44

标签: graph tree routing

以下问题来自地理位置,但我不知道任何GIS方法来解决它。我认为它的解决方案可以通过图形分析找到,但我需要一些指导来思考正确的方向。

有一个地理区域,比如一个州。它被细分为几个象限,再进一步细分。因此它是一个以root为状态的树结构,以及3个子节点级别,每个父节点有4个子节点。但是从底层流程的角度来看,它更像是一个完整的图,因为从理论上讲,节点可以直接从每个其他节点到达。

细分反映不同地图的地图表边界。每个地图必须由地形测量师在一段时间内根据地图内容的复杂性进行审查。

在查看地图时,基础数字数据被锁定在数据库中。由于对象与相邻地图表的对象具有拓扑关系(例如,跨越地图边界的道路),所有8个周围的地图表也被锁定。

问题是,应该访问叶子(在最低级别)以满足以下要求的最佳顺序是什么:

  • 必须访问每个节点

  • 我们不处理旅行时间,而是处理工人在每个节点花费的时间(地图)

  • 在节点上花费的时间不同

  • 当工人在一个节点时,所有相邻的节点都无法访问;其他工人也是如此;他们无法在已经处理好的地图的情况下并排在地图上工作

  • 如果访问了一个节点,则应该优先选择具有相同父节点的其他节点作为下一个节点;对于所有级别的父母来说都是如此

最后,对于给定数量的节点/地图和工作人员,我们需要一系列有序的节点,每个工作人员访问以最小化总时间,以及每个父节点的时间。

在设计解决方案后,真正的工作开始了。我们将认识到,实际工作可能需要比预期更多或更少的时间。因此,有必要将解决方案重放到当前状态,并设计具有稍微不同条件的新解决方案,从而产生另一个节点顺序。

有人知道使用哪种数据结构和哪种算法来找到解决此类问题的方法?

1 个答案:

答案 0 :(得分:0)

不是一个现成的算法,但可能是以下有助于设计一个:

你的exakt拓扑不是克莱尔。我从其他言论中假设, 您的目标是常规结构。在你的情况下是4x4平方。

鉴于限制在节点上阻塞任何邻接节点可用于识别算法的起始条件:

将工人放在总数的一角,然后放其他人 在这个ditance 2处(第一个在x方向上,并且一边用y方向“填充”。这将占据所有(x,y)节点(x,y在0,2,...,2n中,其中2n< ; =网格的大小)

使用4x4区域,这将允许最多4个工作人员,并将为每个2级网格节点的每个子节点定位一个工作人员)

从这个让每个工人进程(x,y),(x + 1),(y + 1),(x + 1,y)。这是一个小方块的4个节点。

如果工作人员已完成但无法继续执行下一个计划节点,则可以将其提前到计划中的下一个空闲节点。

您将拥有的工人越多,争用的风险就越高。如果您对每个节点的预期wokload有任何估计, 那么您可能更愿意从最昂贵的那些开始,并安排处理顺序继续使用总预期成本最高的那些。