匹配算法的局部最优解
来源:互联网 发布:mac爱奇艺弹幕 编辑:程序博客网 时间:2024/06/05 02:50
【算法背景】
某班要准备进行小组学习,每组2人,剩下的可以是3人一组。其中比较麻烦的一件事情是水平差距比较大的同学不适合结组。另外男女生结组要优先考虑,这个你懂得。。。。那么如何设计一个算法来进行分组,来保证整体最优?
鑫超同学开始给我讲这个问题的困难点:比如A同学和B同学比较合适,B同学优先考虑A,其次考虑别人,如果A和B结组,那么就意味着这个选择对B造成了损害。所以这是一个牵一发而动全身的选择,如何选择能让每个人满意呢?
【谈方法】
第一步:问题抽象。
把人和人之间适合度量化,作为人和人之间的距离。
第二步:利用已有知识
我第一感觉就想到了矩阵,然后想着想着自然而然地利用了图。上述问题就是一个比较大的有向图,在这个图中人作为节点,而人和人之间的适合度作为节点距离。现在的问题就是如何在图中两个两个分组,使总距离之和最大。
第三步:站在巨人肩膀上
因为我之前学习数据结构的时候,听说过什么布鲁斯卡尔算法,里面好像有什么选择最大路径的过程。借鉴一下,面对我现在的这个问题,就像从有向图中选择一条回路(类比珍珠项链),包括所有节点,然后两个两个分组,断成多个火柴棍。
具体做法:从任意节点开始,选择最大路径,跳到第二节点。选择最小路径,标记为需要断裂的路,跳到第三个节点。选择最大路径,跳到第四节点。选择最小路径,标记为需要断裂的路,跳到第五个节点。。。以此类推。
【悟道理】
1、读书是为了学习别人的思想,为读书而读书的行为,效率较低。这样能在特定场景下利用前人的思想。
2、技术的本质是为了改善生活,通过个人技术谋求整体最大化利益的行为才是技术的本质。一个人技术再牛逼,造福的人少,产生的社会价值小,个人价值也就不会很大。
3、跟人学习的效率最高。一个活生生的人包含了知识,情感,人格,修养,这些东西也通过人与人之间打交道相互借鉴吸收,最终成为高手 。
- 匹配算法的局部最优解
- km算法的非最优匹配应用
- 最优匹配算法
- matlab局部最优和全局最优算法
- k-means聚类算法与局部最优解
- KM算法(最优匹配)
- KM算法(最优匹配)
- KM算法(最优匹配)
- 带权的二分图的最优匹配KM算法
- 二分图的最优匹配(KM算法)
- 带权二分图的最优匹配 Kuhn-Munkres算法
- 匈牙利算法求二分图的最优匹配(java)
- poj 2195 最优匹配算法的优化
- 带权二分图的最优匹配 Kuhn-Munkres算法
- 带权二分图的最优匹配 Kuhn-Munkres算法
- 最优解算法的讨论
- 二分图的两种算法-最大匹配与最优匹配 poj--1469,2536
- hdu2426 二分最优匹配KM算法
- CAN的应用
- xml与数据库
- linux中grep命令
- CAN的编程
- 经典题! 双指针枚举半平面,求最大最小值
- 匹配算法的局部最优解
- 【c++进阶】1.typedef、using和define(未完)
- 深入JVM内核---JVM内存模型
- XHTML1.0 vs HTML4.0比较
- C语言杂散问题
- 基于FPGA的GV7600驱动
- OLED屏使用
- CentOS6.5上安装Python2.7和PIP
- USACO3.2.4 mequare