operational|Assignment Problem(任务分配问题) 详解
Assignment Problem(任务分配问题)
定义: 任务分配问题,一般的定义都是以n个机器, n 个任务,每个机器mim i上安排仅且一个任务tjt j , 每个任务只能被安排一次,且每个任务在每个机器上都有一个价值aija i j , 问怎样安排使得总的价值最大?数据格式定义:
定义2:我更偏爱于师父-徒弟来阐释, 即: 有n 个师父, n 个徒弟,每个徒弟只能选者一个师父学习, 每个师父只能带一个徒弟; 每个师父有自己的技能, 每个徒弟有自己学习的天分, 当徒弟 j 在师父 i 门下学习, 产生效益为aija i j , 问如何安排使得总效益最大?
mim i : 第 i 个师父, i= 1,2,3,?,n1 , 2 , 3 , ? , n数学模型
tjt j : 第 j 个徒弟, j= 1,2,3,?,n1 , 2 , 3 , ? , n
xijx i j : 第j 个徒弟是否在第i 个师父门下学习: 1, 是; 2 不是.
aija i j : 第j 个徒弟在第i 个师父门下学习产生的效益.
【operational|Assignment Problem(任务分配问题) 详解】f.o.max∑ni=1∑nj=1aij?xij∑ i = 1 n ∑ j = 1 n a i j ? x i j(0)编程:代入solver中解决即可
s.t.∑ni=1xij=1?j=1,2,3,?,n∑ i = 1 n x i j = 1 ? j = 1 , 2 , 3 , ? , n(1)
∑nj=1xij=1?i=1,2,3,?,n∑ j = 1 n x i j = 1 ? i = 1 , 2 , 3 , ? , n(2)
xij∈{0,1}?i=1,2,3,?,n; x i j ∈ { 0 , 1 } ? i = 1 , 2 , 3 , ? , n ;
j=1,2,3,?,nj = 1 , 2 , 3 , ? , n(3)
式0 为目标函数, 即最大化总效益;
式1 表示一个师父只能带一个徒弟;
式2 表示一个徒弟只能跟一个师父学习;
式3 表示师父-徒弟分配是原子操作,要么分配要么不分配。
localsolver 或者 ilog cplex
推荐阅读
- 杭电oj——2030汉字统计
- hdu5289|hdu5289 Assignment(极差<k的子区间数量,单调性证明+双指针+单调队列)
- 845G|845G - Shortest Path Problem?(线性基)
- [Programming|[Programming Tracking]Compliers Programming Assignment 1: Lexer
- 输出集合中所有数据项组合
- 解题报告|51nod 1667 概率好题
- 斐波那契()
- codeforces|Codeforces 845G Shortest Path Problem
- 算法|HDU 5685 (前缀+逆元)
- 【HDU 5528】Count a * b(推导)