龙空技术网

第217集 组合数学中的最优化问题中的稳定婚姻搭配

neo0830 422

前言:

今天咱们对“组合优化问题数学模型”可能比较重视,你们都需要了解一些“组合优化问题数学模型”的相关文章。那么小编也在网摘上收集了一些有关“组合优化问题数学模型””的相关文章,希望咱们能喜欢,大家一起来了解一下吧!

最优化问题:婚姻搭配。

在上个视频讲的4种问题中,最有用的就是最优化问题,比如婚姻搭配问题。这是一个典型的案例,假设你可以配对男女之间的婚姻关系,那么肯定要让每一个男生和每一个女生感觉自己的男友或女友都是比较好的。也就是说,他是不会出现一个男生和一个女生互相喜欢,双方比较起来都不喜欢现在的男友和现在的女友了。

如果产生了这种情况,就说明你配对的这个婚姻是不稳定的,也就是不合理的,所以你要对这个婚姻进行调整。如果没有产生这种情况,那就说明你配对婚姻成功了,你这样的配对方式非常稳定,非常合理。

而婚姻配对问题就是在研究该怎么样得到一个比较好的稳定婚姻方式。有一种比较粗鲁的方法,就是如果出现不稳定的婚姻,就把这两个男生或女生进行调换,如果还是不稳定,就继续进行调换。这种方法有时候是可以的,但有时候却会进入一个死循环,永远得不到婚姻正确的搭配。也就是说所有的婚姻,你所有尝试的结果都是不稳定的。

所以这种方法只能解决部分婚姻问题,但解决不了全部。这时候就要使用另外一种配对婚姻的方法了,这种方法可以很快的配对出婚姻。比如说,在图中模拟的就是4男4女的情况,如果通过以前的试错法去做,就会进入一个死循环。而如果使用新的算法,就只需要三轮之后就可以得出结果。

这种方法就是建立在多种计数原理之上而发展出来的方法。具体是先让每一位男生去追求他最喜欢的那位女生,向他表白。而一位女生如果没有人给他表白,那么就不用管,等着下一轮。如果有人,那就看他是几个人,如果是一个人,就马上接受,成为暂时的男友。

如果是两个及以上,挑出一个自己最喜欢的男生,并把那个最喜欢的男生视为现在的男友,并且把其他的男生全部拒绝。一般来说,做完第一轮以后还是会有一部分男生单身,有一部分男生有了暂时的女友,此时就要进行第二轮的轮换。上一轮被拒绝的男生就要从自己喜欢的女生里面化去被拒绝的那位女生,然后再看他最喜欢哪位女生,这样不停的进行下去就可以找到一个稳定的婚姻配对方式。

之所以说最优化问题是里面最出名的一个问题,就是因为在最优化问题里面诞生了很多的方法,很多的思维方法,你就像试错法就是一个最简单不过的方法了,很多事情都可以使用它来解决。但一般来说它的解决效果不是太好,但是至少可以解决一部分的问题,总比没有一个方法好。

同样稳定婚姻的过程也可以使用C+代码来实现,只不过时间代码有点长,代码放在这里大家可以看一看。在这个算法中主要是使用STO中的QEUE这个库来实现男女之间的搭配,具体还会让你先输入男生和女生的名称,包括男生在女生中喜欢的顺序,每一个男生都有,女生也是一样的,是在女生当中喜欢男生的顺序,一个一个排出来输出,就是所有可能的稳定婚姻效果。

因为每一个稳定婚姻的情况不止一个,还可能有多个,就比如说在压力输出当中就有两种可能都是稳定的,都是可以选择的。至于这两种选择有什么区别,我们下一次再讲。

标签: #组合优化问题数学模型