目前,我在一个高级数据结构类中学习了一些关于图表的知识。今年夏天,我被要求帮助写一个算法来匹配室友。现在,对于我的数据结构类,我编写了一个城市路径图,并执行了一些排序和启动算法,我认为一个图表可能是一个很好的地方,从我的室友匹配算法开始。
我在想,我们的数据库可能只是一个文本文件,没什么特别之处。但是,我可以将图中的每个节点初始化为一个学生--每个学生都有一个没有定向的边缘给更多的学生(对于不想成为另一个同学的学生没有优势,女生联谊会也不想重复室友)。现在,我也可以使边缘权重更多,这取决于特殊的兴趣。
上面列出的一切都很简单,我认为实现它不会遇到任何问题。但我的问题是:
如何更新“共同利益”字段?我是否应该从物理调查开始,然后回到文本文件中,手动更新边缘的权重?还是应该创建一个跟踪匹配兴趣的字段?
发布于 2017-04-25 16:10:33
你想要设计的东西叫做二部匹配。幸运的是,与其他二分匹配算法不同,您不需要花哨的图形算法和复杂的实现。这是非常接近稳定婚姻问题,令人惊讶的是,有非常有效的,甚至更容易的算法。
如果你感兴趣,我可以分享我的C++实现稳定婚姻问题。
https://stackoverflow.com/questions/43615722
复制相似问题