【算法】恋爱中的博弈论(stable matching)(附带源码)

思路源自知乎:恋爱中有那些博弈?,主要是@尼克余 的回答。感谢他。然后原文有些描述不清楚的,我直接就按照我的理解补充上去了。


注:本文采用C#实现


首先假设一个虚拟世界,这个世界中分别有N个男生,N个女生,男生与女生数量完全一样,男生女生都有一个心仪对象列表,不同的人的心仪对象列表都是随机的,在心仪对象列表排名越前面,说明对于他(她)来说越喜欢。男生能向女生表白,女生不能向男生表白,女生能接受或者拒绝男生的表白。


男生首先会向对他最喜欢的女生表白,然后是次喜欢的,依次下去表白。而女生则通过对表白的男生进行判断,如果他是自己心仪列表里面排名第一的,嗯,就是他了,他就是最适合我的。但是如果不是,女生会说,对不起,你是个好人,然后拒绝男生。然后女生会想,是不是我要求太高了,那排名第二的也可以啦。然后女生把排名限制放宽到第二名。但是相应的,第二名就不是女生的最佳伴侣,如果她接受了第二名的邀请,那就说明她的幸福感并不是最高的。当然,如果在第二名向她表白之后,第一名也向她表白

matching nets源码(也被称为匹配网络)是一种用于图像和视觉处理的算法。该算法主要用于通过计算图像之间的相似度来实现图像匹配和识别的目的。下面是matching nets源码的一些关键要点: 1. 网络架构:matching nets使用了一种双分支架构,其一个分支是一个卷积神经网络(CNN),用于提取图像的特征表示。另一个分支是一个多层感知器(MLP),用于计算图像之间的相似度得分。 2. 特征提取:首先,输入的图像通过CNN分支进行特征提取。这个分支通常使用预训练的卷积网络(如VGG或ResNet),将输入图像映射为一组高维特征向量。 3. 相似度计算:接下来,从CNN分支获得的特征向量被输入到MLP分支,用于计算图像之间的相似度得分。MLP使用一系列全连接层和非线性激活函数,以将特征映射到匹配得分的输出空间。 4. 损失函数:matching nets使用对比损失函数(如triplet loss或contrastive loss)来训练网络。这种损失函数通过鼓励正样本之间的相似度得分高于负样本之间的相似度得分,来推动网络学习更好的特征表示和匹配能力。 5. 训练过程:在训练过程matching nets通过随机从正负样本对的训练集选择样本对,计算损失函数,并使用梯度下降法更新网络参数。通过逐渐减小损失函数,网络能够不断优化,提高图像匹配和识别的性能。 总之,matching nets源码是一个用于图像匹配和识别的算法,通过使用CNN进行特征提取和MLP进行相似度计算,并使用对比损失函数进行训练,从而实现了高效准确的图像匹配和识别。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值