在 Neo4j 中寻找最短路径函数应用于现实生活中的问题
Finding Shortest Path function in Neo4j applied to real life problems
问题
1.) 对于“通用计算”途径,哪个模块影响最大
(即,是大多数模块的必修课)?
2.) 如果学生在第一年的某个模块不及格,则显示路径
完成课程至少需要 4 年(注意:所有模块都在
需要完成该途径才能完成课程)。
请帮忙
如果我理解你的数据模型,这可能有效:
MATCH (m:Module)<-[r:PRE_REQUISITE]-(:Module)-[:ON]->(pw:Pathway)
WHERE pw.title = 'General Computing' AND r.type = 'Compulsory'
RETURN m, COUNT(*) AS impact
ORDER by impact DESC
LIMIT 1
您提供的信息不足。我们不知道每个模块需要多长时间才能完成,多久提供一次,是否需要考虑 level
属性 以及如何考虑,还有哪些其他 type
值以及它们是什么都是真正的意思,等等。似乎人们真的想要 maximum 4 年,而不是 minimum.
我觉得第一个问题的答案应该是这样的:
匹配(模块)<-[r:PRE_REQUISITE{type: "Compulsory"}]-(m:Module)-[:ON]->(p:Pathway{title: "General Computing"})
return module.title 作为模块名称,计数 (*) 作为 highest_impact
按 highest_impact 顺序排序
限制 1
问题
1.) 对于“通用计算”途径,哪个模块影响最大 (即,是大多数模块的必修课)?
2.) 如果学生在第一年的某个模块不及格,则显示路径 完成课程至少需要 4 年(注意:所有模块都在 需要完成该途径才能完成课程)。
请帮忙
如果我理解你的数据模型,这可能有效:
MATCH (m:Module)<-[r:PRE_REQUISITE]-(:Module)-[:ON]->(pw:Pathway) WHERE pw.title = 'General Computing' AND r.type = 'Compulsory' RETURN m, COUNT(*) AS impact ORDER by impact DESC LIMIT 1
您提供的信息不足。我们不知道每个模块需要多长时间才能完成,多久提供一次,是否需要考虑
level
属性 以及如何考虑,还有哪些其他type
值以及它们是什么都是真正的意思,等等。似乎人们真的想要 maximum 4 年,而不是 minimum.
我觉得第一个问题的答案应该是这样的:
匹配(模块)<-[r:PRE_REQUISITE{type: "Compulsory"}]-(m:Module)-[:ON]->(p:Pathway{title: "General Computing"}) return module.title 作为模块名称,计数 (*) 作为 highest_impact
按 highest_impact 顺序排序 限制 1