- 0
- 0
- 约5.38千字
- 约 12页
- 2024-01-12 发布于河南
- 举报
python的scipy(匈⽛利算法)解决教学任务指派问题
python的scipy(匈⽛利算法)解决教学任务指派问题
参考资料:
组合优化理论⾥的第六章_指派问题的课件
问题简介
在⽣活中经常遇到这样的问题,某单位需完成n项任务,恰好有n个⼈可承担这些任务。由于每⼈的专长不同,各⼈完成任务不同(或所费时
间),效率也不同。于是产⽣应指派哪个⼈去完成哪项任务,使完成n项任务的总效率最⾼(或所需总时间最⼩)。这类问题称为指派问题或分
派问题。
教学任务指派问题为指派问题中的⼀种,考虑教师对课程的擅长程度,教学任务饱满序列和学⽣对教师的满意度,通过匈⽛利算法求得最优
课程指派。
算法
指派问题⼀般模型:
匈⽛利算法:
教师与课程⼀样多
把求最⼤值变为求最⼩值问题:矩阵C=20-擅长矩阵。
再进⾏匈⽛利算法操作:
如果得不到解,则:
程序实现:
#教学任务指派问题
importnumpyasnp
fromscipy.optimizeimportlinear_sum_assignment
defprintf(row_ind,col_ind):#输出
print((最优教师课程指派:最优教师课程指派:)
foriinrange(len(row_ind)):
print((教师教师,row_ind[i],],课程课程,col_ind[i],end=;)
print()
#教师与课程⼀样多
#各个教师对各个课的擅长程度矩阵
goodAt=np.array([[18,5,7,16],[10,16,6,5],[11,6,4,7],[13,12,9,11]])
weakAt=20-goodAt
row_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)
输出结果:
教师少与课程多
把求最⼤值变为求最⼩值问题:矩阵C=10-擅长矩阵。
设想每个教师都有个分⾝,问题变为8个教师完成6项教学任务,虚设两门课程,擅长程度都为最⼤值。
得到矩阵C为:
程序实现:
#当教师少课程多
#各个教师对各个课的擅长程度矩阵
goodAt=np.array([[7,3,7,4,5,5],[7,3,7,4,5,5],
[4,9,2,6,8,3],[4,9,2,6,8,3],
[8,3,5,7,6,4],[8,3,5,7,6,4],
[4,6,2,3,7,8],[4,6,2,3,7,8]])
weakAt=10-goodAt
row_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)
输出结果:
结果表明:教师A教课程2;教师B教课程1和课程4;教师C教课程0和课程3;教师D教课程5.
教师少与课程多且⼀个教师最多教两门课,最少⼀门
把求最⼤值变为求最⼩值问题:矩阵C=10-擅长矩阵。
设想每个教师都有个分⾝,问题变为8个教师完成6项教学任务,虚设两门课程,擅长程度⼀个为最⼤值,另⼀个为最⼩值。
得到矩阵C为:
程序实现:
#教师少课程多且⼀个教师最多教两门课,最少⼀门
goodAt=np.array([[7,3,7,4,5,5,0,0],[7,3,7,4,5,5,100,100],
[4,9,2,6,8,3,0,0],[4,9,2,6,8,3,100,100],
[8,3,5,7
您可能关注的文档
最近下载
- 2025-2026学年重庆市江津实验中学、田家炳中学、李市中学、白沙中学等金砖六校九年级(上)期末化学模拟试卷(含答案).pdf VIP
- 阿特拉斯•科普柯 冷冻式干燥机.pdf VIP
- 重庆市九龙坡区2024-2025学年九年级上学期期末考试数学试题(含答案与解析).pdf VIP
- 江苏省盐城七校联考2025-2026学年高三上学期阶段检测语文试题及答案.docx VIP
- 浙江省杭州市富阳区2023-2024学年三年级上学期数学期末试卷.docx VIP
- TXFQC-合成橡胶消防水带.pdf VIP
- 重庆市九龙坡区渝高教育集团2024-2025学年九年级上学期期末考试物理试题(含答案).pdf VIP
- 精品解析:2024-2025学年浙江省杭州市富阳区人教版四年级上册期末考试数学试卷(原卷版).docx VIP
- 2025安徽高级档案职称综合试题及答案.docx VIP
- 社工助力乡村振兴—农村社会工作网络培训课程答案.pdf VIP
原创力文档

文档评论(0)