我有一个二分图(男孩和女孩笔记),其中节点与加权边连接(女孩对的兼容性),每个节点的容量为5(每个人/女孩可以匹配5个人)异性的)。我需要找到最佳匹配以最大化权重。
这可以表示为加权网络流 - 每个人是5个单位的来源,每个女孩是5个单位的宿,每个可能的弧具有1个单位的容量。可以使用线性编程或图遍历算法(例如Ford-Fulkerson)来解决该问题。
我目前正在研究使用Neo4j的可能解决方案 - 有没有人知道如何去做? (或者我应该选择线性编程解决方案......)
答案 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)