#教学任务指派问题import numpy as np
from scipy.optimize import linear_sum_assignment
#这个函数是用来求效率问题,也就是极小化问题def printf(row_ind,col_ind,goodAt):#输出print("最优解:")for i in range(len(row_ind)):print("x_{}{}=1".format(row_ind[i]+1,col_ind[i]+1),end='; ')print("\n 最优解对应的系数为:")for i in range(len(row_ind)):print("c_{}{}={}".format(row_ind[i]+1,col_ind[i]+1,goodAt[row_ind,col_ind][i]),end='; ')print()
#教师与课程一样多
#各个教师对各个课的擅长程度矩阵
def mainSection(goodAt):#极大转极小print("初始矩阵:\n", goodAt)weakAt=20-goodAtrow_ind,col_ind=linear_sum_assignment(weakAt)#print(row_ind)#开销矩阵对应的行索引#print(col_ind)#对应行索引的最优指派的列索引#print(goodAt[row_ind,col_ind])#提取每个行索引的最优指派列索引所在的元素,形成数组print("最优值:",goodAt[row_ind,col_ind].sum())#数组求和printf(row_ind,col_ind,goodAt)
def mainSection1(goodAt):#极小print("初始矩阵:\n", goodAt)row_ind,col_ind=linear_sum_assignment(goodAt)#print(row_ind)#开销矩阵对应的行索引#print(col_ind)#对应行索引的最优指派的列索引#print(goodAt[row_ind,col_ind])#提取每个行索引的最优指派列索引所在的元素,形成数组print("最优值:",goodAt[row_ind,col_ind].sum())#数组求和printf(row_ind,col_ind,goodAt)print("\n")def test1():goodAt =np.array([[18,5,7,16],[10,16,6,5],[11,6,4,7],[13,12,9,11]])mainSection(goodAt)
def test2():#人多事少print("非平衡的指派问题,虚设两项收益为0的任务,化为平衡指派问题")goodAt =np.array([[-3,-5,-4,-5,0,0],[-6,-7,-6,-8,0,0],[-8,-9,-8,-10,0,0],[-10,-10,-9,-11,0,0],[-12,-11,-10,-12,0,0],[-13,-12,-11,-13,0,0]])mainSection1(goodAt)
def test3():#人多事少print("人数与工作不等的指派问题")goodAt =np.array([[4,8,7,15,0],[12,9,2,14,0],[6,9,12,8,0],[11,7,17,6,0],[6,9,12,10,0]])mainSection1(goodAt)
def test4():#一人多用print("一个人可以做几项工作的指派问题,A1可以做3项工作")goodAt =np.array([[2,5,9,1,3],[6,7,4,2,8],[9,2,3,8,7],[2,5,9,1,3],[2,5,9,1,3]])mainSection1(goodAt)
def test5():#一项工作一定不能由某人做print("一项工作一定不能由某人做")goodAt =np.array([[2,5,9,1000,3],[6,7,4,2,8],[9,2,1000,8,7],[1,6,4,9,2],[8,7,2,5,4]])mainSection1(goodAt)
def test6():#一项工作一定不能由某人做print("一项工作一定不能由某人做")goodAt =np.array([[12,8,9,7,9],[8,9,6,5,6],[7,10,12,14,9],[15,7,6,8,10],[6,10,8,10,9]])mainSection1(goodAt)
def test6():#一项工作一定不能由某人做print("一项工作一定不能由某人做")goodAt =np.array([[-8,-7,-6,-5,-7,-6],[-8,-7,-6,-5,-7,-6],[-9,-10,-8,-8,5,-4],[-9,-10,-8,-8,5,-4],[-7,-6,-9,-6,-9,-9],[-7,-6,-9,-6,-9,-9]])mainSection1(goodAt)
test2()
test3()
test4()
test5()
test6()

运筹学实验_指派问题相关推荐

  1. 运筹学实验_最短路径

    运筹学实验四 实验目的: 实验要求: 报告内容: Python实现: 代码: Lingo实现: 代码: 实验目的: python实现Dijkstra算法,lingo解决最短路问题 实验要求: 报告内容 ...

  2. 运筹学实验_单纯形法

    运筹学实验一 实验目的: 实验要求: 报告内容: python实现: 代码: Lingo实现: 代码: 实验目的: python实现单纯形法.lingo实现灵敏度分析.对偶变量.人工变量 实验要求: ...

  3. 运筹学实验6 指派问题的求解

    文章目录 实验目的: 实验内容: 需要word文件请访问 http://daxs.top 站内搜索实验名称或者实验内容访问文章并且下载附件即可. 实验目的: 学会使用Matlab求解指派问题. 实验内 ...

  4. 网络安全_密码学实验_非对称加密算法RSA

    网络安全_密码学实验_非对称加密算法RSA 一.实验环境 二.非对称加密RSA 1.理解RSA算法原理 2.加密过程 解密过程 一.实验环境 PyCharm 2019.2.4 (Professiona ...

  5. 迷宫_随机实验_边做边学深度强化学习:PyTorch程序设计实践(1)

    迷宫_随机实验_边做边学深度强化学习:PyTorch程序设计实践 0.相关文章 1.导入所使用的包 2. 定义迷宫 3.定义迷宫动作 4.策略参数θ转换为行动策略π 5.定义随机移动函数 6.定义使智 ...

  6. 网络安全_密码学实验_对称加密算法DES

    网络安全_密码学实验_对称密码非对称密码_加密算法DES RSA 一.实验环境 二.对称加密DES 1.理解DES算法原理 2.加密过程 3.解密过程 三.运行结果 一.实验环境 PyCharm 20 ...

  7. 密码学实验题_03.3_AES实验_利用Sage构建AES的S盒和逆S盒(基于阅读Sage数学库的Python代码)

    密码学实验题_03.3_AES实验_利用Sage构建AES的S盒和逆S盒(基于阅读Sage数学库的Python代码) 3.    AES实验 3)    (思考题)利用Sage构建AES的S盒和逆S盒 ...

  8. 大学物理实验_超声声速的测量_数据处理软件_源代码

    大学物理实验_超声声速的测量_数据处理软件_源代码1 前言 程序适用于大学物理实验_超声声速的测量的有关数据处理.本程序以NUAA大学物理实验中心所提供的的器材以及实验报告模板为基础编写. 代码(基于 ...

  9. Oracle(11g)数据库教程之十三:第二次实验_数据库的查询和视图

    Oracle(11g)数据库教程之十三:第二次实验_数据库的查询和视图 一.实验目的: 1  掌握select语句的基本语法 2. 掌握子查询.连接查询的表示方法 3. 掌握数据汇总的方法 二.实验内 ...

  10. 组成原理——实验一运算器组成实验_微程序控制器方式

    实验一运算器组成实验_微程序控制器方式实验报告 一.实验目的 (1)熟悉逻辑测试笔的使用方法. (2)熟悉 TEC-8 模型计算机的节拍脉冲 T1.T2.T3: (3)熟悉双端口通用寄存器组的读写操作 ...

最新文章

  1. IP地址修改后ORACLE不能使用问题
  2. 进程、线程、堆、栈的理解和区别!
  3. 根据后续数组重建搜索二叉树
  4. FE之DR之线性降维:PCA/白化、LDA算法的数学知识(协方差矩阵)、相关论文、算法骤、代码实现、案例应用等相关配图之详细攻略
  5. 中国人事考试网html制作,中国人事考试网 登录入口
  6. suse 安装oracle11,Suse11安装Oracle11gR2
  7. discuz mysql 编码_Discuz!X 下如何使用 Tools 来转换数据库编码
  8. 人大经济论坛SAS入门到高级教程
  9. 一个IT农民工分享互联网巨头公司面试流程
  10. Android: 页面元素抓取工具Weditor
  11. 使用python处理wps表格_Python处理Word文件的实用姿势
  12. python学习 - 52周存钱挑战
  13. 入驻商家卖违禁药物、评论造假、试水会员,直播能让新氧再次“乘风破浪”吗?
  14. python实现排序的lowB三人组:冒泡、插入、选择
  15. Python使用turtle绘图中设置小乌龟(画笔)旋转的角度turtle.setheading()
  16. c语言人民日报排版的代码,人民日报都在玩的排版黑科技,教你1分钟上手!
  17. Spark中--jars与spark.driver.extraClassPath、spark.executor.extraClassPath区别与联系
  18. 码云最火爆开源项目 TOP 50,你都用过哪些?
  19. 串之Ukkonen、Rabin_karp算法
  20. 【编辑器】unity自动化生成UI模板代码

热门文章

  1. Solidworks工程图转CAD映射配置指南
  2. 【Qt编程】基于Qt的词典开发系列十--国际音标的显示
  3. 4.4 输入法图片 android,支持安卓4.4!搜狗输入法5.1新版发布
  4. 避坑宝典|win11升级最新预览体验版bug梳理
  5. PhotoKit在线图片编辑器
  6. t检验、t分布、t值
  7. Fiddler抓包https配置
  8. html修改鼠标手势,css设置鼠标手势的方法
  9. 虚拟大师怎么修改手机_怎么修改手机应用名称
  10. 5分钟在大米云上基于WordPress搭建一个博客