【运筹学】匈牙利法 ( 匈牙利法步骤 | 第二步 : 试指派操作示例 )
文章目录
一、指派问题求解步骤
指派问题求解步骤 :
1 . 使行列出现
元素 : 指派问题系数矩阵
变换为
系数矩阵 , 在
矩阵中 每行 每列 都出现
元素 ;
- 每行都出现
元素 :
系数矩阵中 , 每行都 减去该行最小元素 ;
- 每列都出现
元素 : 在上述变换的基础上 , 每列元素中 减去该列最小元素 ;
注意必须先变行 , 然后再变列 , 行列不能同时进行改变 ; 否则矩阵中会出现负数 , 该矩阵中 不能出现负数 ;
2 . 试指派 : 进行尝试指派 , 寻求最优解 ;
在
系数矩阵 中找到尽可能多的 独立
元素 , 如果能找到
个独立
元素 , 以这
个独立
元素对应解矩阵
中的元素为
, 其余元素为
, 这样就得到最优解 ;
二、第二步 : 试指派操作示例
在 【运筹学】匈牙利法 ( 匈牙利法步骤 | 第一步 : 使行列出现 0 元素示例 ) 博客示例基础上 , 已经得到了行列都有
元素的系数矩阵 :
下面进行试指派操作 , 试指派就是找独立
元素 , 独立
元素就是位于不同行不同列的
元素 ;
第
行只有
个
, 选第
个 ; 每行每列只能选择
个 , 第
行第
列的
元素就不能再用了 ;
第
行只有
个
, 选第
个 ;
第
行有
个
, 都可以选择 , 这里选择第
个 ;
最终试指派结果 :
上面只找到了
个独立的
元素 , 应该找出
个独立
元素 ;
调整上述系数矩阵
, 每行每列同时增加或减去一个数 , 且不能出现负数 ;
第
行都减去
, 得到如下矩阵 :
第
行第
列出现了
, 这里在将第
列都加上
, 得到如下矩阵 :
第一行此时没有独立的
了 , 第一行再减去
, 得到如下矩阵 :
再次进行试指派 , 找到了如下独立
元素 ;
在上述没有找到
个独立
元素后 , 由于在第
行没有找到
元素 , 开始从第
行进行调整 ,
调整时将非
的最小值转为
, 这样本行就多出一个
, 以及负数 , 负数有需要再对应列加上一个值 , 保持矩阵中所有的值都是非负的 ;
相关文章
- ansible常用操作示例
- 【嵌入式开发】ARM 内存操作 ( DRAM SRAM 类型 简介 | Logical Bank | 内存地址空间介绍 | 内存芯片连接方式 | 内存初始化 | 汇编代码示例 )
- 【Android 异步操作】线程池 ( 线程池使用示例 | 自定义线程池使用流程 | 自定义任务拒绝处理策略 | 完整代码示例 )
- 【C 语言】文件操作 ( remove 函数删除文件 | rename 函数重命名文件 | 代码示例 )
- 【数字信号处理】傅里叶变换性质 ( 傅里叶变换频移性质示例 | PCM 音频信号处理 | 使用 matlab 进行频移操作 )
- ASP.NETMVC数据库完整CRUD操作示例
- MongoDB增删查改操作示例【基于JavaScript Shell】
- MongoDB中文档的更新操作示例详解
- MySQL数据操作管理示例详解
- Python操作MySQL数据库示例详解编程语言
- MySQL联表操作:从多张表中删除记录(mysql联表删除)
- Linux下串口操作指南(linux串口操作)
- MySQL Root 操作实践:轻松掌握Root指令(mysqlroot命令)
- Detach Volume 操作 – 每天5分钟玩转 OpenStack(55)
- 如何关闭MySQL日志?25字提示您操作细节!(关闭mysql日志)
- 简易操作,轻松安装MySQL于OS X系统上(osx安装mysql)
- 使用MongoDB PDO操作数据库(mongodb pdo)
- C操作MySQL数据库的快速入门(cmysql库)
- MySQL中的分离查询操作详解(mysql中从分离)
- SQLSERVER2005中使用sql语句对xml文件和其数据的进行操作(很全面)
- java使用jdbc操作数据库示例分享
- python读取csv文件示例(python操作csv)
- c#操作xml文件示例
- c#异步操作后台运行(backgroundworker类)示例
- java使用jaxb操作xml示例
- Jquery操作js数组及对象示例代码