Hungarian Algorithm(匈牙利算法)

本文简单介绍 Hungarian Algorithm(匈牙利算法) 及其矩阵表示下的操作流程。翻译自维基百科

匈牙利算法(Hungarian Algorithm)是一种组合优化算法(combinatorial optimization algorithm),用于求解指派问题(assignment problem),算法时间复杂度为 O(n3) 。Harold Kuhn发表于1955年,由于该算法基于两位匈牙利数学家的早期研究成果,所以被称作“匈牙利算法”。 —— 维基百科

1.指派问题

假设有三位工人A, B和C,需要分配他们每人完成一件工作;对于不同的工作他们索要不同的工钱,如下表所示。问题就是要找到一套开销最小的指派方案。

. 扫地 擦窗户 清理浴室
A 100 元 300元 300元
B 300 元 100元 300元
C 300 元 300元 100元

使用匈牙利方法可以找到开销最小的方案,即A负责扫地,B负责擦窗户,C负责清理浴室,总开销为300元。

2.匈牙利算法的矩阵形式

给定 n 位工人以及 n 件工作,可以用一个 n×n 开销矩阵来表示这一指派问题:

a1b1c1d1a2b2c2d2a3b3c3d3
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值