算法设计(第8章迭代改进法)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

b y kxk
kR:zkck0
b
0
b1
y0k
y
1
k
x
k
b m 1 y m 1 , k
8.1 线性规划与单纯形法
单纯形法
Algorithm Simplex(c, b: real[]; A: real[,]) begin let (m,n) = |A|, (B,N,R) = base(A); while (true) do
90x1150x260
24x1 20x2 x1=6/19, x2=4/19
100x1125x275
x1
8.1 线性规划与单纯形法
线性规划问题(标准型)
Min c0x0 c1x1 K cn1xn1 s.t. a00x0 a01x1 K a0,n1xn1 b0
a10x0 a11x1 K a1,n1xn1 b1 M am1,0x0 am1,1x1 K am1,n1xn1 bm1 x0 0, x1 0,K,xn1 0
3x1 2x2
8.1 线性规划与单纯形法
线性规划问题
M ax 3 x1 2 x2 s.t. 2 x1 x2 100
x1 4 x2 200 x1 0, x2 0
x1=200/3, x2=100/3
3x1 2x2
8.1 线性规划与单纯形法
线性规划问题
➢ 问题的可行域: n维空间中的一个凸多边形(凸集) ➢ 问题的最优解总: 在凸多边形的顶点上获得
Min c T x s.t. Ax b
x0
8.1 线性规划与单纯形法
单纯形法
Min c T x s.t. Ax b
1. 求出一个基本可行解
x0
2. 不存在改进可能则结束
3. 否则进行变换,转到下一个更优的顶点,而后继续上一步
x
xB xN
B1b 0
x B B 1b B 1p k x k
8.3 最大流
流网络
定义: 流网络G = <V,E,c>是一个有向图,其中每条边 (u,v)E上的权值c(u,v)≥0表示允许通过的最大容量。网络 中存在两个特殊的顶点:源点s和汇点t
网络中的流: 实值函数f: VVR,其满足f(u,v) ≤ c(u,v), f(u,v) = −f(v,u);除s和t外,其它任意顶点u满足流守恒特 性∑vV f(u,v) =0
let u = Q[0]; let P = Augment(u, A, B, E, M); if (P = null) then then Q Q \ {u}; else M M P; Q A \ {e.a | eM}; return M; end
8.3 最大流
流网络
定义: 流网络G = <V,E,c>是一个有向图,其中每条边 (u,v)E上的权值c(u,v)≥0表示允许通过的最大容量。网络 中存在两个特殊的顶点:源点s和汇点t
90 150 60
脂肪
150 60 60
¥24 ¥20
8.1 线性规划与单纯形法
营养搭配问题
Min 2 4 x1 20 x 2 s.t. 100 x1 125 x 2 75
90 x1 150 x 2 60 150 x1 60 x 2 60 x1 0, x2 0
x2
150x160x260
a1
b1 a2
b2 a3
b3
a4
b4 a5
8.2 二部图匹配
迭代改进法
交错路径: 路径中任意两条相邻的边
都是一条属于M而另一条不属于M
a1
增广路径: 起点和终点都不在M中的
b1
交错路径
a2
b2 a3
b3
a4
b4 a5
8.2 二部图匹配
迭代改进法
Algorithm BipartiteMatching(A, B: set<int>; E: set<intint>) begin let M = {E[0]}; //初始匹配 let Q = A \ {E[0].a}; while (|Q| > 0) do
let xB = b' = B-1*b, cB = c[0..n-m-1], cN = c[n-m..m-1]; let fv = cB*xB, w = cB*B-1, k = -1, t1 = 0; foreach (j R) do let z = cB*B-1*N[k]; if (z-c[j] > t1) then k j, t1 z-c[j]; if (k = -1) then return x; let y = B-1*N[k], r = -1, t2 = 0; for (i=0 to m-1) do if (y[i] > t2) then r i, t2 y[j]; if (r = -1) then return x; xB b' – y*(b'[r]/y[r]), B B*y; end
8.2 二部图匹配
二部图G = <(A,B),E>
匹配
a1 b1
a2 b2
a3 b3
a4 b4
a5
8.2 二部图匹配
二部图G = <(A,B),E>
匹配
a1 b1
a2 b2
a3 b3
a4 b4
a5
8.2 二部图匹配
二部图G = <(A,B),E>
匹配 最大匹配
a1 b1
a2 b2
算法设计(第8章迭代改进法)
8.1 线性规划与单纯形法
营养搭配问题
Min 2 4 x1 20 x 2 s.t. 100 x1 125 x 2 75
90 x1 150 x 2 60 150 x1 60 x 2 60 x1 0, x2 0
食物
A B
碳水化合物
100 125 75
蛋白质
a3 b3
a4 b4
a5
8.2 二部图匹配
迭代改进法
1. 找到任意一个匹配(如空匹配) 2. 不存在改进可能则结束 3. 寻找一个更大的匹配并继续上一步
寻找增广路径
ቤተ መጻሕፍቲ ባይዱ
a1 b1
a2 b2
a3 b3
a4 b4
a5
8.2 二部图匹配
迭代改进法
交错路径: 路径中任意两条相邻的边
都是一条属于M而另一条不属于M
Min c T x s.t. Ax b
x0
标准化: (1) 极大值 极小值: 目标函数系数取反 (2) 不等式约束 等式约束: 增加约束变量 (3) 正数范围限制: 变量平移
8.1 线性规划与单纯形法
线性规划问题
M in 3 x1 2 x2 s.t. 2 x1 x2 100
x1 4 x2 200 x1 0, x2 0
相关文档
最新文档