实验四:矩阵算法
一、实验目的
问题描述:N个人分配N项任务,一个人只能分配一项任务,一项任务只能分配给一个人,将一项任务分配给一个人是需要支付报酬,如何分配任务,保证支付的报酬总数最小。假设N=5,每个人工作和报酬之间的关系如下表所示,求解该问题的最优解
表1.1 任务分配
work1work2work3work4work5
person19075 75 80 60
person23585 556548
person31259590105100
person4451109510598
person57664578890
二、实验要求
(1)做好实验预习
(2)独立完成实验
(3)撰写实验报告
三、实验题目
本实验由于要求较少,只是寻求最优解,因此采用简单的方法。
四、实验环境
本文的编程环境为Ubantu16.04。
本文的编程语言为Python3.7。
五、实验分析与设计思路
本实验采用的是矩阵的方式进行计算,但是其中包含了列表的计算方法,矩阵的相乘。
主要采用的程序:
np.array([])生成一个想要的数组 包括列向量,和行向量。
b=numpy.array([b]).T 行向量转成列向量。
a.dot(b) 向量的乘法。
a*b只是对应相乘不是矩阵的乘法。
a[[1,2],:]=a[[2,1],:] 矩阵的一二两行对调。
左乘单位行向量再乘以已知矩阵再乘以变换矩阵再乘以单位列向量。