有权二部图的匹配问题往往采用匈牙利算法求解。算法的原理可以参考14-3: 有权二部图中的最大匹配 Maximum-Weight Bipartite Matching。此处给出一个求解匹配问题的库,pip安装参考https://pypi.org/project/munkres/,此处给出其提供的源码:

from munkres import Munkres, print_matrixmatrix = [[5, 9, 1],[10, 3, 20],[8, 7, 4]]#二部图邻接矩阵
m = Munkres()
indexes = m.compute(matrix)
print_matrix(matrix, msg='Lowest cost through this matrix:')
total = 0
for row, column in indexes:value = matrix[row][column]total += valueprint(f'({row}, {column}) -> {value}')
print(f'total cost: {total}')

输出结果为:

Lowest cost through this matrix:
[ 5,  9,  1]
[10,  3, 20]
[ 8,  7,  4]
(0, 2) -> 1
(1, 1) -> 3
(2, 0) -> 8
total cost: 12

即完全匹配的配对方式为(0, 2), (1, 1), (2, 0)时可以得到最小损失,为12。注意输入的matrix需要为一个list,不能为numpy,否则会得到错误结果。

参考资料:

  1. https://stackoverflow.com/questions/4426131/maximum-weight-minimum-cost-bipartite-matching-code-in-python
  2. https://stackoverflow.com/questions/4075669/hungarian-algorithm-in-python
  3. https://software.clapper.org/munkres/

【轮子】有权二部图中的最大匹配、最小匹配python轮子相关推荐

  1. ruby中正则表达式最小匹配与最大匹配

    正则表达式中,默认的是最大匹配,即贪婪模式,但有些时候,要最小匹配, 请看下面的例子:(ruby) str = "abbbbbdwwdwwwede" puts str[/a.*(d ...

  2. 分治法求数组中的最大最小元素

    #include<iostream> using namespace std; //分而治之法求数组中的最大最小元素 void maxmin(int i,int j,int A[],int ...

  3. 熵权法中计算的熵值与决策树的熵值完全不一样之谜

    熵权法中的熵值计算公式如图所示: 比如说某个评价的指标完全一样,1,1,1,1,1,1 那么m=6,p1到p6的概率均等于1/6:这个时候的熵值是最大的:所以在计算指标权重时,用这种方法反而是数据越小 ...

  4. 海量数据中,寻找最小的k个数。

    维护k个元素的最大堆,即用容量为k的最大堆存储最小的k个数,k1设为大顶堆中最大元素.遍历一次数列,n,每次遍历一个元素x,与堆顶元素比 较,x<kmax,更新堆,否则不更新堆. 1 // 海量 ...

  5. c编程:求出4#215;4矩阵中最大和最小元素值及其所在行下标和列下标,求出两条主对角线元素之和。...

    //求出4×4矩阵中最大和最小元素值及其所在行下标和列下标,求出两条主对角线元素之和 #include <stdio.h> int main() {int sum=0;int max,mi ...

  6. 【2021牛客暑期多校训练营5】Jewels(建图,最小匹配权,KM乱搞)

    J Jewels 题意: 给出n个点的位置x,y,z以及速度v,从第t=0秒开始打捞,打捞点i的代价为x^2+y^2+(z+t*v)^2,求打捞所有点的最小代价. 思路: 所有的宝石肯定都在 0~n- ...

  7. 找出列表中最大或最小的元素-python3

    """ 找出列表中最大或最小的元素Version: 1.0.0 Author: Catherine Data: 2019-03-11 """ ...

  8. SAP中的物料最小订购量

    [@more@]SAP 物料主数据中的舍入值(Rounding QTY) 和采购信息记录中的最小数量(Minimum Qty),验证他们的作用和优先级. 1.在设定方面,最小订购量可以位于物料主数据中 ...

  9. aka鉴权 ims_IMS鉴权过程中各参数的用途

    IMS 鉴权过程中各参数的用途 发帖日期: 2011-08-18 14:12:52 按照目前的国际规范, IMS 认证方式主要有 IMS AKA . SIP Digest . NASS-IMS Bun ...

  10. 堆排序及从10亿个数据中找出最小或最大的10个数

    高频面试题目 一.堆排序 1.基础知识 * ------基本知识: * 1. 堆数据结构特征: * 大顶堆:所有父节点大于等于左右子节点,arr[i] >= arr[2i+1] &&am ...

最新文章

  1. Session对象失效的客户端解决方法
  2. 如何修复修复损坏的TAU G2的.u2文件
  3. m3u8地址_「波波带你手动提取网页视频」04讲 Network和Elements提取m3u8链接
  4. 分布式Matlab计算集群建立方法与Demo
  5. 贫血的Domain Model之说
  6. 可以创建专业的客户端/服务器视频会议应用程序的音频和视频控件LEADTOOLS Video Conferencing SDK...
  7. 外国人怎么看祖冲之量子计算机,我国“祖冲之号”量子计算机再次刷新纪录:1.2 小时完成超算 8 年计算量...
  8. 如何改变“只收藏不阅读”的习惯
  9. java多数据源事务处理_springboot整合多数据源解决分布式事务
  10. cruisecontrol 持续化集成(运行bat脚本)
  11. CSS:个人常用搜索框样式
  12. 饱和度,对比度,锐度
  13. 線上 Android/Linux Kernel Source Code瀏覽 - Android/Linux Source Code Cross Reference
  14. 价值百万的2022年度总结
  15. raspberry 4b|点亮树莓派桌面(以及坑总结)
  16. 服装实体店运营需要的所有软件,合集在此!(建议收藏)实体店运营 实体店运营干货 实体店运营全流程所需系统推荐
  17. 计算机专业自我认知swot,计算机专业自我认知.doc
  18. 读《半生烟雨,半世落花:李清照传》小感
  19. Java后端工程师必备书单(从Java基础到分布式)
  20. 那些年啊,那些事——一个程序员的奋斗史 ——94

热门文章

  1. android sdcard下创建文件,android创建以及使用SDcard镜像文件
  2. python中正则的使用
  3. 调侃计算机专业的笑话,段子手要失业了 计算机也懂幽默
  4. 我们一起写opengl程序
  5. DSP28335 ecap使用
  6. NL2SQL深度学习方法总结
  7. 设计模式08—模板方法模式
  8. oracle数据库综合练习题及答案写法
  9. 桌面被关闭,如何在任务管理器中打开桌面?
  10. tomcat图标修改——东子破解