线性规划求最优解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
s.t.
x
n
i 1 j1
x
i 1
j1 n
ij
1
i = 1,2, , n
ij
1
j = 1,2, , n
i = 1,2, , n; j = 1, , n
4
x ij 0或1,
分配问题成本(效率)矩阵
c11 c12 c c 21 22 C c31 c32 cn1 cn 2 c13 c1n c23 c2 n c33 c3n cn 3 cnn
11
覆盖原则
• 1、从第一行开始,若该行只有一个0元素,就对这 个0打上(),对打()的0元素所在列画一条直线; 若该行没有或有两个以上0(已划去的不计在内), 则转下一行,依次进行到最后一行; • 2、从第一列开始,与行做法类似,依次进行到最 后一列; • 3、重复以上两个步骤。若还有未被划去的0, 且未 被划去的0之间存在闭回路。这时可沿着闭回路的 走向,对每个间隔的0打(),然后对打()的0, 或所在的行,或所在的列,画一条直线。
12
变换原则
1、从矩阵未被直线覆盖的数字中找出一个最小 的数k; 2、对矩阵的每行,当该行有直线覆盖时,令 ui=0,无直线覆盖的令ui=k ; 3、对矩阵有直线覆盖的列,令vj=-k ,对无直 线覆盖的令vj=0 ; 4、从原矩阵的每个元素cij中分别减去ui和vj , 得到一个新矩阵。
13
例题求解
人完成。求最佳分配方案。
两个基本类型
若完成任务的成本表现为资源的消耗, 则考虑 的是如何分配任务, 使目标极小化; 若完成任务的成本表现为生产效率的高低, 则 要考虑如何分配, 使目标极大化。
3
分配问题的数学模型
设决策变量为:
1 xij 0 第i员工分配做第j项工作 否则
n n
min(or max) z = c ij xij
11 8 2 10 7 3 3 6 2 1 1 8 0 4 3 6 4 0 4 3 3 0 11 8 1 7 7 3 2 3 2 1 0 5 0 4 2 3 4 0
0 3 ( 0 ) (0 ) 1 7 0 2 3 0 ( 0 ) 5 0 2 3
4 7 6 6 6 8 7 9 17 9 12 7 14 9 12 15 12 14 10 8 7 6 10 10 6 11 8 7 3 2 1 0 4 4 ( 0 )
4 7 6 6 6
1 3
0 0 0 0 0 0 0 0 0 0
14
0 3 ( 0 ) 0 ) 1 7 ( 0 2 3 ( ) 0 0 5 0 2 3
-1 0 0
11 8 0 7 3 1 2 1 1 0 4 0 ) 1 4 ( 0
0 -1
1 3 ( 0 ) 0 ( 0 ) 6 (0 ) 1 2 1 0 5 0 1 2
• 作用: 如何寻找位于不同行不同列的零元 素.
10
分配问题的求解-匈牙利方法步骤
第一步:成本矩阵的每一行及每一列减去该行或列的最小
数,使每行每列至少有一个0;
第二步:画直线覆盖全部0元素。覆盖原则
如果直线条数= n (此时矩阵每行都有一个打()的 0,并且所有打()的0必在不同行不同列),只要令对应 打()0元素的xij=1即为最优解,算法结束。 如果直线条数< n(此时打()的0个数<n),转下一 步; 第三步:进行成本矩阵变换。变换原则 得到一个新的成本矩阵,转第二步。 直到矩阵的每一行都有一个打()的0元素为止
期中考试:4月18日8:00-9:30 4106
1
4月23日(周六)调课
春假后 5月6日(周五)8:00 – 9:30
2
பைடு நூலகம்
第二节 经典分配(指派)问题与匈牙利法
n个员工分配作n项工作,已知第i个员工做第 j项工作的成本为cij,i=1,…,n; j=1,…,n。
规定:每人完成其中一项,每项只交给一个
c ij x ij c kj x kj (s) x kj
i 1 j1 ik n n j1 n j1
n
n
n
c ij x ij c kj x kj (s)
i 1 j1 ik j1
z (s)
9
指派问题的性质(续)
•定理2: 若成本矩阵C的元素可分成0 与非0两部分, 则覆盖0元素的最少直 线数等于不同行不同列的0元素的最 大个数.
人工作
B1 B2 B3 B4 B5 4 7 6 6 6 8 9 9 7 9 7 15 12 17 14 10 12 8 7 14 6 10 12 10 6
A1 A2 A3 A4 A5
ci
j
6
问应如何分配,使这五人分别完成这五项任 务的总时间最小?
匈牙利算法基本思想
• 匈牙利算法适用于极小化且成本矩阵的所有元 素都非负的分配问题 • 如果成本矩阵的所有元素都非负,并且存在 一 组位于不同行不同列的0元素, 则只要令对应于 这些0元素位置的xij=1, 其余的xij=0, 即为所 求的最优解. 因为此时必有z=0就是问题的最优 值 • 匈牙利算法的关键: 如何产生并寻找一组位于 不同行不同列的0元素
7
分配问题的性质—匈牙利算法的依据
定理1:对于分配问题,成本矩阵的 任一行(或列)减去(或加上)一个相同 的数得到的新指派问题与原问题同解
作用: 如何在效率矩阵中产生零元素
8
证明:
z = cij x ij (c kj s)x kj
i 1 j1 ik n j1 n n n
•分配问题(基)可行解的结构: 在n2个分量中只有n 个分量为1,其余的全部为0; 并且这些为1的分量的 位置应位于成本矩阵的不同行不同列上. 即
分配问题的解应对应于成本矩阵的不同行与 不同列(为什么?)
5
例:已知分配A1、A2、A3、A4、A5五人分别完 成五项任务, 他们分别完成各任务的时间如下