当前位置: 首页 > article >正文

匈牙利算法

匈牙利算法

  • 1 概念
  • 2 依据
  • 3 目的
  • 4步骤
  • 5 案例
  • 6 测试

1 概念

匈牙利算法基于代价矩阵找到最小代价的分配方法,是解决分配问题中最优匹配(最小代价)的算法。

2 依据

代价矩阵的行或列同时加或减一个数,得到新的代价矩阵的最优匹配与原代价矩阵相同。

3 目的

寻找最优匹配。

4步骤

   (1)如果代价矩阵不为方阵,则在相应位置补0使得代价矩阵为方阵。
   (2)首先代价矩阵每一行减去此行最小值,每一列减去此列最小值。
   (3)用最少的横线或竖线覆盖代价矩阵中的所有0元素。
   (4)如果线的条数小于方阵维数,找出步骤3中未被覆盖元素的最小值,且未被覆盖元素减去该最小值;对覆盖直线交叉点元素加上该最小值。
   (5)重复步骤(3)、(4),直到覆盖线的数量等于对应方阵的维度数。
   (6)当线的条数等于方阵维数时,从行或列中找0数最小的匹配对,以此类推,找到所有匹配的行和列。

5 案例

在这里插入图片描述

6 测试

import numpy as np
cost_matrix = np.array(
   [[ 5,  2,  5],
    [ 2, 13,  8],
    [ 1, 13,  4],
    [12,  3,  7]])
x, y = scipy.optimize.linear_sum_assignment(cost_matrix)
# x, y
# (array([0, 1, 2]), array([1, 0, 2]))

http://www.kler.cn/a/451555.html

相关文章:

  • Kubernetes、Docker 和 Docker Registry 关系是是什么?
  • 如何在centos系统上挂载U盘
  • 编译原理复习---正则表达式+有穷自动机
  • alertmanager告警持久化方案:alertsnitch
  • Bluetooth Spec【0】蓝牙核心架构
  • DataX与DataX-Web安装与使用
  • Java基本查询(四)
  • minicpm 多模态RAG构建案例
  • 组态软件行业市场发展现状
  • 怎麼驗證HTTP代理的可靠性?
  • 信息安全技术——防火墙、入侵检测技术
  • 【深度学习】嘿马深度学习笔记第10篇:卷积神经网络,学习目标【附代码文档】
  • Hadoop中MapReduce过程中Shuffle过程实现自定义排序
  • 演讲 | 学好语文的经验介绍
  • [react]不能将类型“string | undefined”分配给类型“To”。 不能将类型“undefined”分配给类型“To”
  • cudnn版本gpu架构
  • 用 ElementUI 的日历组件 Calendar 自定义渲染
  • 面试经验分享 | 北京渗透测试岗位
  • Spring Boot框架结合MongoDB实现日志数据的保存和归档
  • 50.第二阶段x86游戏实战2-lua获取本地寻路,跨地图寻路和获取当前地图id
  • H3C交换机远程登录基本配置
  • es 中 terms set 使用
  • 爬虫代码的适应性:如何调整以匹配速卖通新商品页面
  • 牛客--迷宫问题
  • k8s备份 ETCD , 使用velero工具进行备份
  • MySQL45讲 第三十六讲 为什么临时表可以重名?——阅读总结