【发布时间】:2018-01-25 07:31:23
【问题描述】:
我正在尝试串起一些庭院灯。根据我问过的another question,我意识到我需要一种算法来解决Route Inspection Problem 以找出灯光应该采用的最有效路线,这样灯光覆盖的重复边缘就会最少。经过一番搜索,我意识到也许这样的东西是我最好的选择:Solving Chinese Postman algorithm with eulerization。
但是,我在创建图表时遇到了问题。
这是它需要的样子:
- 粉色圆圈代表结构中可以挂灯的地方
- “开始”是唯一可用的电源插座
- 黄点代表灯光应该覆盖的所有地方
这是参考这篇文章后我的图表的样子:Visualizing distance between nodes according to weights - with R:
如您所见,所有节点都在正确的位置,但边连接到了它们不应该连接的位置。这是我的代码:
library(igraph)
gg<-graph.ring(20)
ll=matrix(
c( 0,0, 75.25,0, 150.5,0, 225.8125,0, 302.8125,0,
0,-87, 302.8125,-87,
0,-173.8125, 302.8125,-173.8125,
0,-260.9375, 302.8125,-260.9375,
16,-384.3125, 302.8125,-384.3125,
16,-435.9575, 302.8125,-435.9375,
16,-525.1875, 75.25,-525.1875, 150.5,-525.1875, 225.8125,-525.1875, 302.8175,-525.1875),
ncol=2,byrow=TRUE)
plot(gg,layout=ll)
我认为这与graph.ring 的性质有关,但我无法找出另一种方法来无误地定义图形的边长度。
【问题讨论】: