离散变量优化问题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
传统方法的局限性
求离散问题的最优解,传统的方法是先用连续变量优化 设计方法求连续变量的最优解,然后圆整到离散值上。
弊病:可能得不到可行最优解,或所得的解不是离散最 优解。
x *为连续变量最优解;
x(1)是圆整后最近的离散点,但不可 行;
x(2)是最近的可行离散点,但不是离 散最优点;
x(3)是离散最优点。
将这两个约束条件,分别加入问题B,求两个后继规划问题B1和B2, 不考虑整数条件求解这两个后继问题.
(2)定界 以每个后继问题为一分枝标明求解结果,在解的结果中,找出最优 目标函数值最大者作为新的上界.从已符合整数条件的各分支中, 找出目标函数值为最大者作为新的下界,若无,则下界为0.
(3)比较与剪枝
§9.3 分枝定界法(the branch and bound algorithm)
引入概念:松弛问题。
以整型优化问题为例:
m ax Z x1 5 x2
松弛问题:
x1 x2 2
s
.t
.
5
x1 x1
6
x2
30 4
x1 , x 2 0 且 全 为 整 数
m ax Z x1 5 x2
x1 x2 2
s
.t
.
5
x1 x1
6
x2
30 4
x 1 , x 2 0
分枝定界法基本思想: 设有最大化的整型优化问题A,相应有松弛问题B,从解松弛问题 B开始,若其最优解不符合A的整数条件,那么B的最优目标函数
必是A的最优目标函数 z * 的上界,记作 z ;而A的任意可行解
z 的目标函数值将是 z * 的一个下界,记作 。
(1)X *0 为整数解,则X*0 为(IP)的最优解 结束
(2) X *0 中至少有一个是分数,设x*01 是分数:分枝
子问题 L1 : 1、L1无最优解,剪枝 2 、 最 最 X z优 1 * 1 优 (x* 值 1, 1解 x* 1,2 ,x* 1 n),
(1)X *1 为整数解, z1为下界 关闭
( IP
2)
5
x1 x1
6
x2
30 4
x 1
2
现在只要求出(LP1)和(LP2)的最优解即可。
先求(LP1),如图所示。
m ax Z x1 5 x2
x1 x2 2
( IP 1)
5
x
1
x1
6
x2
30 4
x 1
1
先求(LP1),如图所示。
m ax Z x1 5 x2
x1 x2 2
z z 各分支的最优目标函数中若有小于 ,则剪掉这枝;若大于
且不符合整数条件,则重复前两步,直到找到最优解。
分枝定界法计算过程:
上界
讨论松弛问题L0 : 1、L0无最优解, 则(IP)无最优解 结束 2 、X 最 * 0 ( x * 优 0, 1 x * 0, 2 解 ,x * o)n 最 , z 0优值
离散变量问题优化算法 (Algorithms for Discrete Variable Problem)
§9.1 引言
一般的优化方法只能求得连续变量的最优解。 工程实际中存在大量混合设计变量问题。 混合设计变量包含:连续设计变量、整型设计变量和离散设 计变量。
例如:齿轮传动装置的优化设计, 齿数是一个整型量,模数是一系列 离散量,变位系数可以看做连续量, 齿宽若按长度1mm单位计算,则也可 以看做整型量。
( IP 1)
目标函数值最大的整数解既为所求的最优解
例:用分枝定界法求解整型优化问题(用图解法计算):
m ax Z x1 5 x2
x1 x2 2
s
.t
.
5
x1 x1
6
x2
30 4
x1 , x 2 0 且 全 为 整 数
首先去掉整数约束,变为一般线性优化问题(松弛问题),记为
LP:
m ax Z x1 5 x2
先将(LP)划分为(LP1)和(LP2), 取 x1 1, x1 2。
将(LP)划分为(LP1)和(LP2),取 x1 1, x1 2。
m ax Z x1 5 x2
x1 x2 2
( IP 1)
5
x1 x1
6
x2
30 4
x 1
1
m ax Z x1 5 x2
x1 x2 2
即 Z( 0 )也是离散问题目标函数的上限。
松弛问题最优解: x* (x1, x 2 ) (18 / 11, 40 / 11)
Z (0) 218 / 11 19.8
对 于 x1=1 8 / 1 1 1 .6 4, 取 值 x1 1, x1 2 对 于 x2 4 0 / 1 1 3 .6 4, 取 值 x 2 3, x 2 4
பைடு நூலகம்(2) X *1 中至少有一个是分数: 继续分枝
子问题 L2 :
设已找到下界Zi0:
讨论子问题Lk :
若 L k 的最优值 Zk Zi0,剪枝 若 L k 的最优值 Zk Zi0;
(1)最优解 X*k 是整数解 将下界改为 Z k ,关闭Lk
(2)最优解 X*k 不是整数解 继续对Lk分枝
当所有的子问题均被关闭或剪枝后
x1 x2 2
s
.
t
.
5
x1 x1
6
x2
30 4
x 1 , x 2 0
求出松弛问题最优解:
m ax Z x1 5 x2
x1 x2 2
s
.
t
.
5
x1 x1
6
x2
30 4
x 1 , x 2 0
x* (x1, x 2 ) (18 / 11, 40 / 11)
Z (0) 218 / 11 19.8
离散变量优化方法
离散变量优化难点:不存在指导搜索过程的最优性条件。
直接方法:枚举法(enumeration)。可行点过多时,计算量大。
减少计算量:随机思想(stochastic ideas)、启发式原则(heuristic rules)。
两种基本方法: (隐式)枚举法:如,分枝定界法(the branch and bound algorithm); 随机或进化方法:如,模拟退火算法、遗传算法等。
分枝定界法就是将B的可行域分成子区域(称为分枝)的方法,
z 逐步减小 z ,增大 ,最终求到 z * 。
z z* z
三个基本操作:
(1)分枝
在松弛问题B的最优解中任选一个不符合整数条件的变量 x j ,其
值为 b j ,以 [ b j ] 表示小于 b j 的最大整数。构造两个约束条件
x j [b j] 和x j [b j] 1