我不确定应该使用哪种算法来完成这个任务。我有一个节点图。一些节点通过加权线连接,需要遍历。然而,每个节点都与一个加权的双向线连接。只有一些线路必须被遍历,而其他线路仅用于导航。我需要找到一条路径,以覆盖所有这些必需的线路(双向),但只经过一次这些线路。我知道我必须从哪个节点开始。
现实世界中的问题是,我有一个需要从CNC图案中切割出来的边缘列表。我试图减少CNC机器切割此图案所需的时间。我知道我总是想从原点开始,但我不在乎图案在哪里结束,只要图案中的所有小块都被切割出来即可。我知道每个零件的每条边需要多长时间来切割,而且机器足够精确,可以抬起头并转到任何位置以从该位置开始。我的图形不是很大,通常最多有100个节点。
这与旅行商不同,因为我不必从同一个地方开始和结束,并且允许(并且需要)多次击中一个节点。
Djikstra算法不起作用,因为我需要遍历所有节点才能得到所有被切割的边缘... 我不仅仅是试图找到从点A到点B的最快方式。
额外奖励,我需要用C#实现这个算法,但即使我只知道是哪种算法,我也可以编程。
这是一个我需要切割的样式图案示例。请注意,我忘记为其中一个对角线和一条弧分配权重,可以将其分别设置为50和75:
现实世界中的问题是,我有一个需要从CNC图案中切割出来的边缘列表。我试图减少CNC机器切割此图案所需的时间。我知道我总是想从原点开始,但我不在乎图案在哪里结束,只要图案中的所有小块都被切割出来即可。我知道每个零件的每条边需要多长时间来切割,而且机器足够精确,可以抬起头并转到任何位置以从该位置开始。我的图形不是很大,通常最多有100个节点。
这与旅行商不同,因为我不必从同一个地方开始和结束,并且允许(并且需要)多次击中一个节点。
Djikstra算法不起作用,因为我需要遍历所有节点才能得到所有被切割的边缘... 我不仅仅是试图找到从点A到点B的最快方式。
额外奖励,我需要用C#实现这个算法,但即使我只知道是哪种算法,我也可以编程。
这是一个我需要切割的样式图案示例。请注意,我忘记为其中一个对角线和一条弧分配权重,可以将其分别设置为50和75:
![Here is a sample picture of a pattern I need to cut out](https://istack.dev59.com/50YH5.webp)