3.4指派问题(经典运筹学)
三类指派问题
三类指派问题1. 简介三类指派问题是运筹学中的一类经典问题,它的目标是找到一种最优分配方案,将若干个任务分配给若干个执行者,使得总体成本或效益达到最小或最大。
这类问题通常可以用线性规划模型来描述和求解。
三类指派问题包括: - 任务分配问题:将若干个任务分配给若干个执行者,使得总体成本最小或效益最大。
- 作业调度问题:将若干个作业安排在若干台机器上进行处理,使得总体完成时间最短或机器利用率最高。
- 设备调度问题:将若干个任务安排在若干台设备上进行处理,使得总体完成时间最短或设备利用率最高。
2. 任务分配问题2.1 模型描述假设有n个任务和n个执行者,每个任务只能由一个执行者完成,并且每个执行者只能处理一个任务。
每个任务与每个执行者之间都有一个成本或效益值。
我们的目标是找到一种分配方案,使得总体成本最小或效益最大。
可以使用二维数组C表示各任务与各执行者之间的成本或效益值,其中C[i][j]表示第i个任务分配给第j个执行者的成本或效益值。
定义一个二进制变量X[i][j],如果第i个任务分配给第j个执行者,则X[i][j]=1,否则X[i][j]=0。
任务分配问题可以用下面的线性规划模型来描述:minimize ∑(i=1 to n)∑(j=1 to n) C[i][j] * X[i][j]subject to∑(i=1 to n) X[i][j] = 1, for j = 1,2,...,n∑(j=1 to n) X[i][j] = 1, for i = 1,2,...,nX[i][j] ∈ {0, 1}, for i,j = 1,2,...,n2.2 求解方法常用的求解任务分配问题的方法有匈牙利算法和线性规划方法。
匈牙利算法是一种经典的图论算法,它通过构建增广路径来找到最优分配方案。
该算法的时间复杂度为O(n^3),适用于小规模问题。
线性规划方法则通过将任务分配问题转化为线性规划模型,并利用线性规划求解器进行求解。
运筹学__指派问题
•下面要证明M m. 如图假定覆盖所有0元素的m条直线 有r行、c列,m=r+c.
所有r行上不在j1,…,jc列上的0元 素个数≥ r,这些0元素至少有r个位
于不同列
同理:所有c列上不在i1,…,ir行上
j1 j2
的0元素个数≥c ,且这些0元素至
少有c个位于不同
i1 i2
ir jc
若上述两部分0个数总和为S,则S≥m;其中有m 个,又它们必无重复元素,彼此独立,则SM,故 有m≤M, 故可得M=m.
覆盖所有“0”元素的最少直线数 = 独立的“0”元素 的最多个数
推论1:覆盖所有“0”元素的直线数≥ 不同行不同列的“0”元素的最多个数(m)
推论2:覆盖所有“0”元素的最少直线数≥ 不同行不同列的“0”元素的个数
定理2说明: 1. 只要表中含有不同行或不同列的“0”元素,
都可以通过直线覆盖的方式来找到它们 2. 当覆盖直线的最少条数达到m条时,
(二)算法的基本原理 匈牙利数学家狄·康尼格(D·Konig)证明的两个定理
定理1 如果从指派问题效率矩阵[cij]的每一行元素中分别 减去(或加上)一个常数ui(被称为该行的位势), 从每一列分别减去(或加上)一个常数vj(称为该列的位势) 得到一个新的效率矩阵[bij], 若其中bij=cij-ui-vj,
一、指派问题的数学模型
(一)举例
例7: 有一份中文说明书, 要分别译成英、日、德、俄四种文字, 分别记作E 、 J 、 G 、 R ,交与甲、乙、丙、丁 四个人去完成. 因个人专长不同, 他们完成翻译不同语种的说明书所需的时间(h)如表所示. 应如何指派,使四个人分别完成这四项任务总时间为最小?
任务 人员
将其代入目标函数中得到zb=0,它一定是最小值。 ❖ 这就是以(bij)为系数矩阵的指派问题的最优解。
运筹学指派问题
运筹学作业-----关于指派问题的求解算法设计学院:计算机科学与技术学院班级:信息与计算科学1202班学号:20姓名:韩雪平1.问题描述与数学模型:在现实生活中,有各种各样的指派问题。
例如,有若干项工作(或者任务,事情)需要分配给若干人(或者部门,设备等)来完成;有若干项合同需要选择若干个投标者来承包;有若干条交通线(如航空线,航海线,公路线等)需要配置若干交通运输工具(如飞机,船只,汽车等)来运营;有若干班级需要安排在不同的教师里上课;等等/诸如此类问题,它们的基本要求是来满足特定的指派要求时,使指派方案的总体效果最佳。
由于指派总是多样性的,有必要定义指派的特定问题的标准形式。
指派问题的标准形式(以人和事为例):设有n个人和n件事,已知第i个人做第j 件事的费用为cij(i,j=1,2,....n),求人与事之间一一对应的指派方案,使完成的这n件事的总费用最少。
一般称矩阵c11 c12 c13 c14 (1)c21 c22 c23 c24 (2)c31 c32 c33 c34 (3)C= . . . . .. . . . .. . . . .cn1 cn2 cn3 cn4……cn5为指派问题的系数矩阵。
在实际问题中,根据cij的具体意义,矩阵C可以有不同的名称,如费用矩阵,成本矩阵,时间矩阵等。
系数矩阵C中,第i行各元素表示第i人做各事的费用,第j列各元素表示第j件事由各个人做的费用。
为建立标准的指派问题的数学模型,引入n^2个0-1变量1 当指派第i人去做第i件事时Xij={(i,j=1,2,3……,n)0 当不指派第i人去做第j件事时然后对矩阵进行化解,当然作为可行解,矩阵中每一列都有且只有一个1,每行有且仅有一个1,以满足约束条件2.算法思想:标准的指派问题是特殊的整数规划问题,也是特殊的0—1规划问题和特殊的运输问题。
因此它可以用很多相应的解法来求解。
匈牙利解法的依据是指派问题的最优解的一下性质:设指派问题的系数矩阵C=(cij)n*n.若将C的一行或列分别减去一个常数K,则得到一个新的矩阵C'=(c'ij)n*n,那么C’为系数矩阵的指派问题和以C为系数矩阵的原指派问题有相同的最优解。
指派问题详解
第一章绪论1、指派问题的背景及意义指派问题又称分配问题,其用途非常广泛,比如某公司指派n个人去做n 件事,各人做不同的一件事,如何安排人员使得总费用最少?若考虑每个职工对工作的效率(如熟练程度等),怎样安排会使总效率达到最大?这些都是一个企业经营管理者必须考虑的问题,所以该问题有重要的应用价值.虽然指派问题可以用0-1规划问题来解,设X(I,J)是0-1变量, 用X(I,J)=1表示第I个人做第J件事, X(I,J)=0表示第I个人不做第J件事. 设非负矩阵C(I,J)表示第I个人做第J件事的费用,则问题可以写成LINGO程序SETS:PERSON/1..N/;WORK/1..N/;WEIGHT(PERSON, WORK): C, X ;ENDSETSDATA:W=…ENDDATAMIN=@ SUM(WEIGHT: C*X);@FOR(PERSON(I): @SUM(WORK(J):X(I,J))=1);@FOR(WORK(J): @SUM(PERSONM(I):X(I,J))=1);@FOR(WEIGHT: @BIN(X));其中2*N个约束条件是线性相关的, 可以去掉任意一个而得到线性无关条件.但是由于有N^2个0-1变量, 当N很大时,用完全枚举法解题几乎是不可能的. 而已有的0-1规划都是用隐枚举法做的,计算量较大. 对于指派问题这种特殊的0-1规划,有一个有效的方法——匈牙利算法,是1955年W. W. Kuhn利用匈牙利数学家D.König的二部图G的最大匹配的大小等于G的最小顶点覆盖的大小的定理提出的一种算法,这种算法是多项式算法,计算量为O(N3).匈牙利算法的基本原理是基于以下两个定理.定理1设C=(C ij)n×n是指派问题的效益矩阵,若将C中的任一行(或任一列)减去该行(或该列)中的最小元素,得到新的效率矩阵C’,则C’对应的新的指派问题与原指派问题有相同的最优解.证明:设X’是最优解, 即@SUM(WEIGHT: C*X’)<= @SUM(WEIGHT: C*X), 则当C中任一行或任一列减去该行或该列的最小数m时,得到的阵C’还是非负矩阵, 且@SUM(WEIGHT: C’*X’)<=@SUM(WEIGHT: C*X)-m=@SUM(WEIGHT: C’*X)定理2效率矩阵C中独立的0元素的最多个数等于覆盖所有0元素的最少直线数. 当独立零元素的个数等于矩阵的阶数时就得到最优解.3、理论基础定义:图G的一个匹配M是图G中不相交的边的集合. 属于匹配M中的边的所有端点称为被该匹配M饱和, 其他的顶点称为M-未饱和的. 如果一个匹配M 饱和了图G的所有顶点,则称该匹配M是一个完全匹配. 可见顶点数是奇数的图没有完全匹配. 一个匹配M称为是极大匹配, 如果它不能再扩张成更大的一个匹配. 一个匹配称为是最大匹配, 如果不存在比它更大的匹配.定义:对于一个匹配M, 图G的一个M-交替路是图G中的边交替地在M中及不在M中的边组成. 从M-未饱和点出发到M-为饱和点结束的M-交替路称为一条M-增广路. 把M-增广路中不是M中的边改成新的匹配M’中的边, 把M-增广路中M中的边不作为M’中的边, 在M-增广路以外的M中的边仍作为M’中的边, 则M’的大小比M大1. 故名M-增广路. 因此最大匹配M不存在M-增广路.定义:若图G和图H有相同的顶点集V, 我们称G和H的对称差,记为G∆H,是一个以V为顶点集的图, 但其边集是G和H的边集的对称差: E(G∆H)=E(G) ∆E(H)=E(G)⋂E(H)-(E(G)⋃E(H))=(E(G)-E(H)) ⋂ (E(H)-E(G))定理: (Berge, 1957) 图G的一个匹配M是最大匹配,当且仅当G中没有M-增广路.证明: 我们只要证明, G中没有M-增广路时, M是最大匹配. 用反证法, 若有一个比M大的匹配M’. 令G的一个子图F, E(F)=M∆M’, 因M和M’都是匹配, F的顶点的最大度数至多是2, 从而F由不相交的路和环组成, 它们的边交替地来自M和M’, 于是F中的环的长度是偶数. 由于M’比M大, F中存在一个连通分支,其中M’中的边数大于M中的边数. 这个分支只能是起始和终止的边都在M’中. 而这就是一条G中的M-增广路. 与假设矛盾. 证毕.定理(Hall, 1935)设G是一个二部图, X和Y是其二分集, 则存在匹配M 饱和X当且仅当对于X中的任意子集S, Y 中与S中的点相邻的点组成的集合N(S)中元素的个数大于等于集合S中元素的个数.证明:必要性是显然的. 对于充分性, 假设 |N(S)|≥|S|, ∀S⊂X, 考虑G的一个最大匹配M, 我们用反证法,若M没有饱和X, 我们来找一个集合S不满足假设即可. 设u∈X是一个M-未饱和顶点, 令S⊂X和T⊂Y分别是从u出发的M-交替路上相应的点.我们来证明M中的一些边是T到S-u上的一个匹配. 因为不存在M-增广路,T中的每个点是M-饱和的. 这意味着T中的点通过M中的边到达S中的一个顶点. 另外, S-u中的每个顶点是从T中的一个顶点通过M中的一条边到达的. 因此M 中的这些边建立了T与S-u的一个双射, 即|T|=|S-u|. 这就证明了M中的这些边是T到S-u上的一个匹配,从而意味着T⊂N(S), 实际上, 我们可证明T=N(S). 这是因为连接S和Y-T中的点y的边是不属于M的, 因为不然的话, 就有一条到达y的M-增广路, 与y∉T矛盾. 故|N(S)|=|T|=|S-u|=|S|-1<|S|, 与假设矛盾.当X与Y的集合的大小相同时的Hall定理称为婚姻问题,是由Frobenius(1917)证明的.推论: k-正则的二部图(X的每一点和Y的每一点相关联的二部图)(k>0)存在完全匹配.证明: 设二分集是X,Y. 分别计算端点在X和端点在Y的边的个数, 得k|X|=k|Y|, 即|X|=|Y|.因此只要证明Hall的条件成立即可. 使X饱和的匹配就是完全匹配. 考虑∀S⊂X, 设连接S与N(S)有m条边, 由G的正则性, m=k|S|. 因这m条边是与N(S)相关联的, m≤k|N(S)|, 即k|S|≤ k|N(S)|, 即|N(S)|≥|S|. 这就是Hall的条件.用求M-增广路的方法来得到最大匹配是很费时的. 我们来给出一个对偶最优化问题.定义:图G的一个顶点覆盖是集合S⊂V(G), 使得G的每条边至少有一个端点在S中. 我们称S中的一个顶点覆盖一些边, 若这个顶点是这些边的公共端点.因为匹配的任意两条边不能被同一个顶点覆盖, 所以顶点覆盖的大小不小于匹配的大小: |S|≥|M|. 所以当|S|=|M| 时就同时得到了最大的匹配和最小的顶点覆盖.定理(König [1931],Egerváry[1931])二部图G的最大匹配的大小等于G的最小顶点覆盖的大小.证明: 设M是G的任一个匹配, 对应的二分集是X,Y. 设U是一个最小的顶点覆盖, 则|U|≥|M|, 我们只要由顶点覆盖U来构造一个大小等于|U|的匹配即完成证明. 令R=U⋃X, T=U⋃Y, 令H, H’分别是由顶点集R⋂(Y-T)及T⋂(X-R)诱导的G的子图. 我们应用Hall的定理来证明H有一个R到Y-T中的完全匹配,H’有一个从T到X-R中的完全匹配. 再因这两个子图是不相交的, 这两个匹配合起来就是G中的一个大小为|U|的匹配.因为R⋂T是G的一个覆盖, Y-T与X-R之间没有边相联接. 假设S⊂R, 考虑在H中S的邻接顶点集N(S), N(S) ⊂Y-T. 如果|N(S)|<|S|, 因为N(S)覆盖了不被T覆盖的与S相关联所有边, 我们可以把N(S) 代替S作为U中的顶点覆盖而得到一个更小的顶点覆盖. U的最小性意味着H中Hall条件成立. 对H'作类似的讨论得到余下的匹配. 证毕.最大匹配的增广路算法输入: 一个二分集为X,Y的二部图G,一个G中的匹配M, X中的M-未饱和顶点的集合U.思路: 从U出发探求M-交替路,令S⊂X,T⊂Y为这些路到达过的顶点集. 标记S中不能再扩张的顶点. 对于每个x∈(S⋂T)-U, 记录在M-增广路上位于x前的点.初始化: S=U,T=∅.叠代: 若S中没有未标记过的顶点, 结束并报告T⋂(X-S)是最小顶点覆盖而M是最大匹配.不然, 选取S中未标记的点x, 考虑每个y∈N(x)且xy∉M, 若y是M-未饱和的, 则得到一个更大的匹配,它是把xy加入原来的匹配M得到的,将x从S中去除. 不然, y是由M中的一条边wy相连接的, w∈X, 把y加入T(也有可能y本来就在T中), 把w加入S. w未标记, 记录w前的点是y. 对所有关联到x的边进行这样的探索后, 标记x. 再次叠代.定理: 增广路算法可以得到一个相同大小的匹配和顶点覆盖.证明: 考虑这个算法终止的情况, 即标记了S中所有的点. 我们要证明R=T⋂(X-S)是大小为|M|的一个顶点覆盖.从U出发的M-交替路只能通过M中的边进入X中的顶点, 所以S-U中的每个顶点通过M与T中的顶点匹配, 并且没有M中的边连接S和Y-T. 一旦一条M-交替路到达x∈S, 可以继续沿着任何未饱和的边进入T, 由于算法是对于x的所有邻域顶点进行探索才终止的,所以从S 到Y-T 没有未饱和边. 从而S 到Y-T 没有边, 证明了R 是一个顶点覆盖.因为算法是找不到M-增广路时终止, T 的每一个顶点是饱和的. 这意味着每个顶点y ∈T 是通过M 匹配与S 中的一个顶点. 由于U ⊂S, X-S 的每个顶点是饱和的, 故M 中与X-S 相关联的边不和T 中的点相连接. 即它们与是饱和T 的边不同的, 这样我们可见M 至少有|T|+|X-S|条边. 因不存在一个比顶点覆盖更大的匹配, 所以有|M|=|T|+|X-S|=|R|.设二部图G 的二分集X 和Y 都是n 个元素的点集, 在其边j i y x 上带有非负的权ij w , 对于G 的一个匹配M, M 上各边的权和记作w(M).定义: 一个n ×n 矩阵A 的一个横截(transversal)是A 中的n 个位置, 使得在每行每列中有且只有一个位置(有的文献中把横截化为独立零元素的位置来表示).定义: 指派问题就是给定一个图G=n n K ,(完全二部图, 即每个X 中的顶点和Y 中的每个顶点有边相连接的二部图)的边的权矩阵A, 求A 的一个横截, 使得这个横截上位置的权和最大. 这是最大带权匹配问题的矩阵形式.定义: 对于图G=n n K ,,设其二分集是X ,Y ,给定G 的边j i y x 的n ×n 权矩阵W={ij w }.考虑G 的子图v u G ,, 设其二分集是U ⊂X ,V ⊂Y, 边集是E(v u G ,), 对于子图v u G ,的带权覆盖u,v 是一组非负实数{i u },{j v },使得ij j i w v u ≥+,)(,v u j i G E y x ∈∀, v u G ,的带权覆盖的费用是∑∑+j i v u 记为C(u,v), 最小带权覆盖问题就是求一个具有最小费用C(u,v)的带权覆盖u,v.引理: 若M ⊂E(v u G ,)是一个带权二部子图v u G ,的最大匹配, 且u, v 是v u G ,的带权覆盖, 则C(u,v)≥w(M). 而且, C(u,v)=w(M)当且仅当ij j i w v u =+,M y x j i ∈∀. 这时M 是v u G ,最大带权匹配, u,v 是v u G ,的最小带权覆盖, 定义这时的v u G ,为G 的相等子图(equality subgraph ).证明: 因为匹配M 中的边是不相交的, 由带权覆盖的定义就得C(u,v)≥w(M). 而且C(u,v)=w(M)当且仅当ij j i w v u =+,M y x j i ∈∀成立. 因一般地有C(u,v)≥w(M).所以当C(u,v)=w(M)时. 意味着没有一个匹配的权比C(u,v)大, 也没有一个覆盖的费用比w(M)小.Kuhn 得到一个指派问题的算法,命名为匈牙利算法, 为的是将荣耀归于匈牙利数学家König 和Egerv áry.指派问题的匈牙利算法(Kuhn[1955], Munkres[1957]):输入G=n n K ,的边的权矩阵A, 及G 的二分集X,Y.初始化: 任取一个可行的带权覆盖,例如)(max ij ji w u =,0=j v ,建立G 的相等子图v u G ,, 其二分集是X, Y ’⊂Y, 求v u G ,的一个最大匹配M. 这个匹配的权和w(M)=C(u,v), M 的带权覆盖是具有最小费用的.叠代: 如M 是G 的一个完全匹配, 停止叠代, 输出最大带权匹配M. 不然, 令U 是X 中的M-未饱和顶点. 令S ⊂X, T ⊂Y 是从U 中顶点出发的M-交替路到达的顶点的集合.令},:min{T Y y S x w v u j i ij j i -∈∈-+=ε.对于所有的S x i ∈, 将i u 减少ε, 对于所有的T y j ∈,将j v 增加ε,形成新的带权覆盖u ’,v ’及对应的新的相等子图v u G '',.如果这个新的相等子图含有M-增广路, 求它的最大匹配M ’, 不然不改变M 再进行叠代.定理: 匈牙利算法能找到一个最大权匹配和一个最小费用覆盖.证明: 算法由一个覆盖开始,算法的每个叠代产生一个覆盖,仅在相等子图有一个完全的匹配为止。
运筹学指派问题课件
c
i 1 j 1
n
n
ij
xij
n xij 1 i 1 n st . xij 1 (i , j 1, 2, ..., n) j 1 x 1or 0 ij
运筹学教程
例1:某商业公司计划开5家新商店,商业公司决定由5家建筑 公司分别承建。已知建筑公司Ai(i=1,2…5)对新商店Bj(j=1…5) 的建筑费用报价Cij.问题:商业公司对5家建筑公司如何分配任 务,才能使总的建筑费用最少? Cij Ai Bj
运筹学教程
指派问题解法:匈牙利解法 解法思想:
若从系数矩阵C的任何一行(列)各元素中分别减去 一个常数K(K可正可负)得到新矩阵C’,则以C’为系 数矩阵的指派问题与原问题有相同的解,但最优值 比原问题最优值小K。
匈牙利法条件: MIN、i=j 、Cij≥0
运筹学教程
匈牙利法的主要步骤: 步骤1:变换系数矩阵,使在各行各列都出现零元素。 (1)从矩阵C的每行元素减去该行的最小元素;
0 11 8 7 7 3 3 2 1 C ' 5 0 4 3 4 0
第二步 圈0 寻找不同行不同列的0元素,圈之。 所在行和列其它0元素划掉
0 0 0 0 0 3 0 11 8 第三步 打 无的行打,打行上0列打 , 1 7 7 3 打列上行打,打行上0列打 ' 2 3 2 1 C 0 5 0 4 0 3 0 11 8 0 1 7 7 3 2 3 4 0 C ' 0 2 3 2 1 第四步 确定方案划线 0 0 5 0 4 没有打行上画一条横线; 0 2 3 4 0 有打列上画一条竖线;
15 120 15 12 0 14 100 14 100 8 7 0 0 8 7
指派问题的算法
指派问题的算法分析与实现摘要在企业、公司的运营与管理中,管理者总是希望把人员最佳分派以发挥其最大工作效率,从而降低成本、提高效益。
然而,如果没有科学的方法是很难实现优化管理的,由此我们引入了指派问题。
指派问题多是求项目的工时最少,而很多情况下人们并不关心项目总工时的多少,而只关心项目能否在最短的时间内完成,即历时最少的指派问题。
这类问题研究的是n个人执行n项任务,执行每项任务的人数以及总的指派人项数均有限制,要求最优指派。
在运筹学中求解整数规划的指派问题通常是通过匈牙利算法来求解,但指派问题也可以归结为一个0-1整数规划问题,本文先对指派问题进行陈述,引出对实际问题的求解。
在指派问题的背景、描述中充分理解该问题,先运用匈牙利算法实现指派问题,然后再建立一个0-1整数规划模型,并运用matlab和lingo编译程序对问题进行编译,运用软件解决模型问题,最终实现指派问题在实际问题中的运用。
通过运用匈牙利算法和0-1整数规划同时对指派问题求解,我们发现用0-1整数规划的方法来求解可以更简单,也更方便程序的阅读和理解。
与此同时,我们还对0-1整数规划问题由整数数据深入研究到小数数据。
最后通过实例来说明运用matlab,lingo编译程序来解决整数规划问题的简便和有效性。
关键词:指派问题;匈牙利算法;0-1整数规划;matlab模型;lingo模型1. 问题陈述指派问题又称分配问题,其用途非常广泛,比如某公司指派n个人去做n 件事,各人做不同的事,如何安排人员使得总费用最少?若考虑每个职工对工作效率(如熟练程度等),怎样安排会使总销量达到最大?这些都是一个企业经营管理者必须考虑的问题,所以该问题有重要的应用价值。
假设有n 件工作分派给n 个人来做,每项工作只能由一人来做,每个人只能做一项工作。
若给出各人对各项工作所具有的工作效率。
问应该如何安排人选,及发挥个人特长又能使总的效率最大。
为此用0-1整数规划来实现指派问题即如何安排人选。
运筹学 指派问题课件 PPT
效率表
工厂1 工厂2
58 75
69 50
180 150
260 230
工厂3 工厂4
65 82
70 55
170 200
250 280
2
返回总目录
例1 某公司拟将四种新产品配置到四个工厂生产,四 个工厂的单位产品成本(元/件)如下表所示。求最 优生产配置方案使得单位产品成本总和为最小。
15
返回总目录
第三步:用最少的直线覆盖所有0:
0 0 11 22 22 25 25 0 0 0 0 0 5 5 5 27 27 0 45 45 6 17 17 0 30 0 0 0 0 0 0 0 0 45 45 32 6 17 17 0 0 0 0 0 0 0 45 45
回到第三步,用最少的直线覆盖所有0。 此时最少直线数=4,表明矩阵中存在4个不同行不 同列的零元素,于是得到最优解。 第五步:找出4个独立的0元:
( 0 ) 30 0 32 6 17 17 0 ( 0) 0 0 0 ( 0 ) (0 ) 45 45 ( 0 ) 30 0 32 6 17 17 0 0 ( 0 ) 0 ( 0) 0 (0 ) 45 45
x14 x24 x34 x44
工厂2 x21 工厂3 x31 工厂4 x41
1 1 1 1
1
1
1
1
产品1 产品2 产品3 产品4
工厂1 工厂2 工厂3 工厂4 58 75 65 82 69 50 70 55 180 150 170 200 260 230 250
5280
返回总目录
数学模型 匈牙利算法 其他变异的指派问题
3.4指派问题(经典运筹学)
n
ci1 xi1
ci 2 xi 2
cin xin
cn1xn1 cn2 xn2 cnn xnn b
cc1211
c12 c22
c1n c2n
C
ci1 cn1
ci2 cn2
cin
-b
cnn
min Z Z b
c11 c21
x11 x21
c12 x12 c22 x22
i=1,2, …,n; j=1,2, …,n
Z表示总费用
12…j …n
1 c11 c12 c1 j c1n 2 c21 c22 c2 j c2n … i ci1 ci2 cij cin …
n cn1 cn2 cnj cnn
指派问题模型:
min Z
cij xij
c11 c21
c12 c22
c1n c2n
C
ci1 cn1
b
ci2 b cn2
cin b cnn
min Z
c11x11 c21x21
ccZ1222xx1222bcc12nnxx1n2
n
ci1xi1
ci 2
xi 2
cin
xin
cn1xn1 cn2 xn2 cnn xnn b
xi1 xi2 xij xin 1
s.tLeabharlann x1jx2j
xij
i=1,2, …,n
xnj 1
j=1,2, …,n
xij 0,1 i 1,2,, n; j 1,2,, n
cc1211
c12 c22
c1n c2n
C
ci1 cn1
ci 2 cn2
cin
-b
cnn
指派问题
13 0 5 1
7 6 3 0
0 9 ( b ij ) 2 0
第二步: 进行试指派,以寻求最优解。为此,按以 下步骤进行。 经第一步变换后,系数矩阵中每行每 列都已有了0元素;但需找出n个独立的0 元素。若能找出,就以这些独立0元素对 应解矩阵(xij)中的元素为1,其余为0, 这就得到最优解。当n较小时,可用观察 法、试探法去找出n个独立0元素。若n较 大时,就必须按一定的步骤去找,常用 的步骤为:
•减数得零—求初始匹配 •圈零划线—查是否最大匹配 •找数调整—求新的最优匹配 运筹学
指派问题的解法
第一步: 使指派问题的系数矩阵经变换,在各行各列中 都出现0元素。 (1) 从系数矩阵每行元素减去该行的最小元素; (2) 再从所得系数矩阵的每列元素中减去该列 的最小元素。 若某行(列)已有0元素,那就不必再减了。
④
7 4 0 11 0
0 3 8 8 4
2 0 3 0 1
0 0 5 0 4
2 0 0 4 3
运筹学
已具有n个独立0元素。这 就得到了最优解,相应的解 矩阵为: 由解矩阵得最优指派方案 甲—B,乙—D,丙—E,丁—C,戊—A
0 0 0 0 1
想想看!
运筹学
指派问题的形式表述
给定了一系列所要完成的任务(tasks)以及 一系列完成任务的被指派者(assignees), 所需要解决的问题就是要确定出哪一个人 被指派进行哪一项任务,使总的效率最高?
运筹学
指派问题的假设
被指派者的数量和任务的数量是相同的 每一个被指派者只完成一项任务 每一项任务只能由一个被指派者来完成
表1
任 人员 甲 乙 丙 丁 务
(运筹学)运输与指派问题
An Award-Winning Application 运输问题的一个获奖应用
P&G重新设计制造和配送体系 :90’S 成百上千个供应商 50多个产品类别 超过60个的工厂 15个配送中心 超过1000个的顾客群体
An Award-Winning Application 运输问题的一个获奖应用
+ 15($388) + 85($685)
= $165,595
P&T公司的运输问题
贝林翰 尤基尼 艾尔贝李 需求
萨克拉门 托
$464 $352
$995
80
盐湖城
$513 $416 $682
65
赖皮特城 奥尔巴古
$654 $690 $388
70
$867 $791 $685
85
供应
75 125 100
运输问题是一种线性规划问题
令xij = 从第i个罐头加工厂运送到第j个仓库的车数 最小化 成本=$464x11 + $513x12 + $654x13 + $867x14
+ $352x21 + $416x22+ $690x23 + $791x24 + $995x31 + $682x32 + $388x33 + $685x34
$37
$18
$32
$48
$29
$59
$51
$35
Shipment Plant 1 Plant 2 Plant 3
Total
Customer 1 Customer 2 Customer 3 Customer 4 Production
运筹学_指派问题
(xij)是n×n矩阵,对应于效率矩阵(cij).
工作
x11 人 x i1 xn1
x1n xij xin xnj xnn x1 j
可行解矩阵
x
i 1
n
ij
1,
j 1, 2, , n ②
指派问题的最优解有这样性质,若从效率矩 阵(cij)的一行(列)各元素中分别减去该行(列)的 最小元素,得到新矩阵(bij),那么以(bij)为效率 矩阵求得的最优解和用原效率矩阵求得的最优解 相同 。即 定理2 设给定了以C = (cij)为效率矩阵指派问题G, 现将C的元素cij 改变为 bij cij i j , i 与 j 为常数 则以B= ( bij )为效率矩阵指派问题G’与G有相同的最 优解。
第四节 指 派 问 题
assignment problem
在生活中经常遇到这样的问题,某 单位需完成n项任务,恰好有n个人可承 担这些任务。由于每人的专长不同,各 人完成任务不同(或所费时间),效率也 不同。于是产生应指派哪个人去完成哪 项任务,使完成n项任务的总效率最高 (或所需总时间最小)。这类问题称为指 派问题或分派问题。
行列都有 零元素
7 6 3 0*
0 * 9 (b ) ij 2 0
0 0 最优解为 ( xij ) 1 0
0 1 0 0
0 0 0 1
1 0 0 0
定理3 若矩阵C可分成”0”与非”0”两部分,则覆 盖”0”元素的最少直线等于位于不同行不同列的”0” 元素的最大个数.
如
5 0* 2 0 2 2 3 0* 0 0 0* 10 5 7 2 -2 9 8 0 0* 4 0 6 3 6 5 -2 5 0* 2 0 2 2 3 0* 0 0 2 8 3 5 0 9 8 0 0* 4 2 4 1 4 3
运输与指派问题
x11 x12 x13 x14 10
x21
x22
x23
x24
8
min Z 3x11 2x12 6x13 3x14 5x21 3x22 8x23 2x24 4x31 x32 2x33 9x34
x31
x32 x33 x34 x11 x21 x31 5
5
运输单纯形法 Transportation Simplex Method
求检验数 求出一组基可行解后,判断其是否最优,仍然是用检验数来判断, 记xij的检验数为λij ,由第一章知,求最小值的运输问题的最优判 别准则是: 所有非基变量的检验数都非负,则运输方案最优(即为最优解)。
求检验数的方法有两种,闭回路法和位势法。
设平衡运输问题的数学模型为:
mn
min z
cij xij
i1 j 1
n
xij ai
j 1
m
xij bj
i 1
xij
0,
i 1,
i 1, , m j 1, , n , m; j 1, , n
运输单纯形法基本思路: 基可行解
最优否
是停
否
运输单纯形法 Transportation Simplex Method
地区
产粮区
B1
表1
B2
B3
运价表(元/吨)
B4
产量
A1
3
2
6
3
10
A2
A3
4
1
2
9
5
需要量
5
7
8
3
23
运输模型 Model of Transportation Problems
【解】设xij(i=1,2,3;j=1,2,3,4)为i个产粮地运往第j个需求地的运 量,这样得到下列运输问题的数学模型:
运筹学第3章
§3.2 表上作业法
运输表上任何有序的至少四个以上 不同格被称为圈, 如果它们满足:
任何两个接续格在同一行或同一列; 在同一行或同一列不存在三个或三个 以上的接续格; 最后一个格应和第一个格在同一行或 同一列。
§3.3 特殊情况的处理
例3·:某农场有四种土壤,面积分别为 6 500亩、1000亩、600亩和500亩,准备将不 同的三个小麦品种播在这四种土壤上。根据 市场需求和本场的具体情况,确定这三个品 种的播种面积分别为400亩、1000亩和1200 亩,又根据过去的生产规律和未来气候的变 化以及生产物资供应的保证情况,用多元回 归方程预测得不同品种的小麦播在不同土壤 上的亩产量(公斤)如后表所示,问怎样安 排播种才能使小麦的总产量最高?
x21 x22 x23 27
s.t.
xij 0, (i 1, 2; j 1, 2,3)
例3·:一般运输问题 2 一般的运输问题可以描述为: 有 m 个供应点, n 个需求点, 第 i 个供应点的 供应量 ai ,第 j 个需求点的需求量 bj , 从 i 到 j的运费为 cij, 求费用最小的运输方 案。
6
35 10
5
0 2
工厂2 25
10
12
7
vj
8
仓库一
5
仓库三
仓库二
ui
工厂1 工厂2
7
15 10
17 +
- 174 0 6
6 12
18 35 - 10+ 27
5
5 7
0 2
25 8
最新运筹学--第4章-运输问题和指派问题精品文档
i 1
j 1
i1 j1
n
xij ai
(i 1, 2,
,m)
(产 量 约 束 )
j1
m
s.t. xij b j ( j 1, 2, , n ) (销 量 约 束 )
i1
x
ij
0
(i 1, 2,
, m ; j 1, 2,
, n)
RUC, School of Information ,Ye Xiang
例4.1的电子表格模型
RUC, School of Information ,Ye Xiang
4.2 运输问题数学模型和电子表格模型
第4章 运输问题 和指派问题
需要注意的是:运输问题有这样一个性质 (整数解性质),只要它的供应量和需求 量都是整数,任何有可行解的运输问题必 然有所有决策变量都是整数的最优解。因 此,没有必要加上所有变量都是整数的约 束条件。
i1
x
ij
0
(i 1, 2 ,
, m ; j 1, 2 ,
, n)
RUC, School of Information ,Ye Xiang
4.2 运输问题数学模型和电子表格模型
第4章 运输问题 和指派问题
对于例4.1,其数学模型如下: 首先,三个产地A1、A2、A3的总产量为7+4+9=20;四 个销地B1、B2、B3、B4的总销量为3+6+5+6=20。由 于总产量等于总销量,故该问题是一个产销平衡的运输问 题。
例4.3 某公司从两个产地A1、A2将物品运往 三个销地 B1、B2、B3,各产地的产量、各 销地的销量和各产地运往各销地每件物品的 运费如表4-6所示。问应如何调运,可使得 总运输费最小?
表4-6 例4.3的运输费用表
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、指派问题与匈牙利法
1、指派问题的数学模型
设有n个工作,要由 n个人来承 担,每个工作只能由一个人承 担,且每个人只能承担一个工 作。cij表示第i个人做第j件事 的费用,求总费用最低的指派 方案。
解:xij
1
0
第i个人做第j 人件事 第i个人不做第j 人件事
c2n x2n
cn1xn1 cn2 xn2 cnn xnn
s.t
xi1 x1
xi2
j x2
xij xin 1
i=1,2, …,n
j xij xnj 1
j=1,2, …,n
x11 x12 x1j x1n 1
s.t
x21
xn1
x11
x22
xn2
x21
x2 j
右表。 请为该市制定一个
最节省的最计优划值
5 27 17 27 15 0 14 6 20 10 21 25 14 0
布点问题模型:
min Z x1 x2 x3 x4 x5 x6
解:xi
1Z=2在第i个地区建站
0
不在第i个地区建站
i=1,2, …,6
Z表示全区消防站总数
s.t
x1 x2 1 x1 x2 x6 1
市政府希望设置的消防站最少, 1
2
但必须满足在城市任何地区发
生火火警时最,优消解防车要在15分
3 4
0 10 16 28 27 20 10 0 24 32 17 10 16 24 0 12 27 21 28 32 12 0 15 25
钟内赶到x现2=场1,。x4据=1实地测定,
各区之间消防车行驶的时间见
(0 0 0) 0
4x2 x3 6
x1, x2, x3 0或1
(0 0 1) -2 (0 1 0) 5
(1 0 0) 3
运算次数: 21
约束条件
过滤条件
(1)(2)(3)(4)
√√ √ √
Z≥0
√√ √ √
Z≥5
枚举法:
检验可行解: 32次运算 计算目标 函数值:8次
(1 0 1) 1
(1 1 0) 8 × (0 1 1) 3 (1 1 1) 6 √ √ √ √
例1投(资投资项问目题模)型华:美公司有5个项目被列入投资计
划m,ax每Z个项15目0的x1投 资21额0x和2 期 6望0的x3投资80收x4益见18下0表x5: 该公 2司10只x有1 63000万x资2 金10可0用x3 于 1投30资x4,由26于0技x5 术 上60的0 原s.t因 ,xxxx投1231i35、 、 、资在 项 项 在x0xx受2,411项 目 目满到目 35x1足以和被3i1上下选、41只1述,约中22能和,条束的选3件:前中,5中下提必一选是须项择项有一目一个1项被最被选好选中的中;投如资何
方 案,使投资收益最大
解:设xi为决策变量(i 1,2,,5)
1 xi
0
投资第i个项目 不投资第i个项目
Z表示投资效益
项目
1 2 3 4 5
投资额 投资收益 (万元) (万元)
210
150
Hale Waihona Puke 300210100
60
130
80
260
180
例2(布点问题)某城市共有6个 地 1 2 3 4 5 6
区,每个区都可以建消防站。 区
各项工作所需费用如下表所示, 且规定每人只能做一项工作,每 一项工作只能由一人承担,试求 使总费用最小的分派方案。
6x21 7x22 6x23 8x24 8x31 9x32 8x33 10x34 10x41 10x42 9x43 11x44
x11 x12 x13 x14 1
工作
一、决策问题与0-1变量
决策变量xi 是否做第i件事 i 1,2,, n
1 做第i件事
xi
0 不做第i件事 n件事中必须做k件并只做k件事 x1 x2 xn k n件事中最多做k件事 x1 x2 xn k n件事中至少做k件事 x1 x2 xn k 做第i件事的充要条件是做第j件事 xi x j 做第i件事的充要条件是不做第j件事 xi 1 x j 只在做了第i件事前提下才考虑是否做第j件事 x j xi
i=1,2, …,n; j=1,2, …,n
Z表示总费用
12…j …n
1 c11 c12 c1 j c1n 2 c21 c22 c2 j c2n … i ci1 ci2 cij cin …
n cn1 cn2 cnj cnn
指派问题模型:
min Z
cij xij
xi1 xi2 j i xij xin 1
s.t
x1
j
x2
j
i=1,2, …,n
xij xnj
j=1,2, …,n
1
xij 0,1 i 1,2,,n; j 1,2,,n
min Z
j
i
cij xij
c11x11 c12 x12 c1n x1n
c21x21
c22 x22
xnj
xi1
x2n
xnn
xn1
1
1
1
x12 x22 xi2 xn2 1
x1n x2n xin xnn 1
当n=4时,有16变量,8个约束方程
例:现有4份工作,4个人应聘,由 Z表示总费用
于各人技术专长不同,他们承担 max Z 3x11 5x12 4x13 5x14
x3 x4 1
x3 x4 x5 1 x2 x5 x6 1
xi 0,1 i 1,2,,6
二、过滤隐枚举法 (适合于变量个数较少的0-1规划)
例:求max Z 3x1 5x2 2x3
x1 2x2 x3 2
s.t x1x14xx22
x3
42 3
(x1 x2 x3) Z值
1 2 34 人
1 3 5 45 2 67 6 8
3 8 9 8 10
4 10 10 9 11
x21 x31
x22 x32
x23 x33
x24 x34
1 1
x41 x42 x43 x44 1
s.t
x11 x12
x21 x22
x31 x32
x41 x42
1 1
解:
xij
1 0
第i人做第j 件事 第i人不做第j 件事
i=1,2, 3,4; j=1,2, 3,4
x13
x23
x33
x43
1
x14 x24 x34 x44 1
xij i
0,1 1,2,
,
n
j 1,2,, n