能否为TSP算法指定起始节点?以伦敦为起点的技术咨询
指定伦敦作为TSP起始点的查询方案
完全可以实现,直接修改你的Cypher查询,指定伦敦作为TSP算法的起始节点即可,修改后的代码如下:
MATCH (london:City {name: "London"}) MATCH (n:City) WITH london, COLLECT(n) AS cities CALL tsp.solve(cities, "1.5_approx", london) YIELD sources, destinations WITH EXTRACT(i IN RANGE(0, SIZE(sources) - 1) | [sources[i], destinations[i]]) AS path UNWIND path as edge WITH edge[0] AS from, edge[1] AS to CREATE (from)-[path:PATH]->(to) RETURN from, to, path;
关键修改说明:
- 新增
MATCH (london:City {name: "London"})语句,精准匹配伦敦节点 - 在
CALL tsp.solve(...)中增加第三个参数london,将其指定为TSP算法的起始点 - 保留原查询中收集所有城市、生成路径、创建关系的逻辑,确保结果格式和之前一致
这样就能让旅行商从伦敦出发遍历所有首都城市了。
内容的提问来源于stack exchange,提问作者NoLANman
相关产品推荐
相关产品推荐

