使用Neo4J解决加权网络流

时间:2014-10-30 21:46:23

标签: neo4j graph-theory linear-programming graph-traversal

我有一个二分图(男孩和女孩笔记),其中节点与加权边连接(女孩对的兼容性),每个节点的容量为5(每个人/女孩可以匹配5个人)异性的)。我需要找到最佳匹配以最大化权重。

这可以表示为加权网络流 - 每个人是5个单位的来源,每个女孩是5个单位的宿,每个可能的弧具有1个单位的容量。可以使用线性编程或图遍历算法(例如Ford-Fulkerson)来解决该问题。

我目前正在研究使用Neo4j的可能解决方案 - 有没有人知道如何去做? (或者我应该选择线性编程解决方案......)

1 个答案:

答案 0 :(得分:0)

我认为这是这样的。根据关系的权重按降序查找排序最多的五个COMPATIBLE关系,然后将它们创建为单独的关系MATCH

match (guy:Guy)-[rel:COMPATIBLE]->(girl:Girl)
where guy.id = 'xx'
with guy, rel, girl
order by rel.weight desc
limit 5
create (guy)-[:MATCH]->(girl)