我不相信在二部图中找到最大独立顶点集的算法,除了在所有可能的独立集中寻找最大值的蛮力方法之外。
我想知道找到所有可能的顶点集的伪代码。
假设给定一个有4个蓝色顶点和4个红色顶点的二部图。目前,我将
Start with an arbitrary blue,
find all red that don't match this blue
put all these red in Independent Set
find all blue that dont match these red
put these blue in Independent Set
Repeat
我有一个应用程序,人们可以给对方打分,满分10分。每天午夜,我都想为每个成员计算一个“匹配”。一般来说,我希望让每个人都尽可能地快乐。
So at the midnight, I have an oriented graph like so :
1 -> 2 : 7.5 // P1 give a 7.5/10 to P2
1 -> 3 : 5
1 -> 4 : 9
2 -> 3 : 6
2 -> 1 : 4
etc.
为了简单起见,让我们假设如果P1给P2一个5,P2给P1一个7,那么匹配的P1 - P2将具有5+7- (7-5)/2 = 11的权重(我
我们有n个盒子和k个球,不同的colors.Each容器在it.We中很少有球,可以从每个盒子中选择最多一个球。
我们能收集不同颜色的k个球吗?注意:每个容器最多有一个颜色的球。
示例:
假设我们有5个容器,4种不同颜色的A,B,C,D
Box1 - A, D
Box2 - C,B
Box3 - D, A
Box4 - D
Box5 - D
在这里,你不能选择4个颜色的球A,B,C,D从这些boxes.The条件是,你只能从每个盒子中挑选一个球。
我正在尝试按照以下思路创建一个算法:
-Create 8参与者
-Each参与者有一组兴趣
将它们与另一个兴趣最少的参与者进行-Pair
到目前为止,我已经创建了两个类,Participant和Interest,其中的Interest是Hashable,这样我就可以用它创建一个集合。我手动创建了8个具有不同姓名和兴趣的参与者。
我已经选择了一个参与者数组,并使用了一个基本的for in循环,使用集合的intersection()函数将它们配对在一起。不知何故,我的索引总是超出范围,我确信有更好的方法来做这件事,但它太混乱了,我不知道从哪里开始。
for i in 0..<particip
我有两个列表,listA和listB,可能有不同的长度。为了获得最好的匹配,我希望将listA的对象一对一地与来自listB的对象进行匹配。
我有一个算法,它可以给出任意一对对象的匹配分数。我需要的是一个有效的(并相当容易阅读)算法,以获得最高的得分比赛在一起1-1。在listA中,每个对象只有一个完全匹配,但是可能有相同的对象具有相同的分数,而在这种情况下,匹配的对象并不重要。此外,由于匹配分数不够高,某些对象是否留在其中一个或两个列表中并不重要。
我想出的算法可能有一些我没有发现的缺陷,而且可能有一种我一直找不到的标准方法,所以我正在寻找建议/修正。
以下是我的尝试:
for (a in
我正在阅读扩充路径或Kuhn的算法,以便在未加权的二部图中找到最大匹配大小。
该算法试图找到一条交替的路径(由交替的未匹配和匹配的边组成),在未匹配的顶点开始和结束。如果找到备用路径,则增加该路径,并将匹配计数加1。
我可以理解算法,但我在理解它通常实现的方式方面存在问题。这里有一个参考实现-- 。
在每个阶段,我们应该尝试从左侧不匹配的顶点开始找到一条交替的路径。然而,在给定的实现中,在每次迭代中,我们不是尝试将所有不匹配的顶点作为可能的开始位置,而是仅从一个不匹配的顶点开始搜索,如以下代码所示:
for (int u = 0; u < n1; u++) {
if (fin