一、优化问题分类、形式、库函数

优化问题的问题描述中,往往会有“最”,时间最短、效率最高等等。

分类:

1、线性规划

2、二次规划(即多个变量的二次函数在这些变量上受线性约束的优化(最小化或最大化)问题)

3、非线性规划

4、组合最优化(TSP、作业调度问题、背包问题)

5、动态规划(离散的时间)

6、图论中的优化问题(与组合优化关系密切)

7、最小二乘问题(线性、非线性)(确定参数、函数形式,一般描述为误差最小,可以看做非线性规划问题)

8、变分问题

9、多目标规划(变成单目标后再使用软件处理)

形式:

强化学习离散优化 离散优化模型与算法_图论


常用工具:

Matlab的优化工具箱optim(只能求最小化)

强化学习离散优化 离散优化模型与算法_图论_02


强化学习离散优化 离散优化模型与算法_图论_03


flag=1:有有限最优解

flag为负数:不可行/无界(建模有问题)

flag=0:算不出来(算不出来并不意味着无解,可以在输入参数中再加入一个猜测解,或者使用近似算法求解)

二、离散优化模型的例子

关键是找到决策变量

1、下料问题:一维、二维、三维(货车装箱)

2、排班问题:

强化学习离散优化 离散优化模型与算法_线性规划_04

3、车辆路径问题:

强化学习离散优化 离散优化模型与算法_最优化_05

三、优化问题的基本思想、方法

并非所有的优化模型,都可以使用Matlab的库函数解出来。下面介绍一些其他求解算法的设计思想:

1、模拟–蒙特卡洛

问题中出现不确定性、与概率相关的现象时,往往可以用模拟的方法解决。有时会套上最优化的背景,也就是这里说的用蒙特卡洛求解最优化问题。

例:

强化学习离散优化 离散优化模型与算法_图论_06


买彩票的人数多少会影响获奖人数及获奖比例等。

强化学习离散优化 离散优化模型与算法_最优化_07

2、数据插值、拟合、参数估计(给出问题的近似解)

例:

强化学习离散优化 离散优化模型与算法_强化学习离散优化_08


本质上是一个变分问题。山区地形图其实是一个连续的函数(z=f(x,y)),在已知头尾两点及中间某点的情况下,要求构建一条曲线。

强化学习离散优化 离散优化模型与算法_强化学习离散优化_09

3、图论

例:

强化学习离散优化 离散优化模型与算法_最优化_10

4、分支定界、分治算法

例:

强化学习离散优化 离散优化模型与算法_线性规划_11


变量选择:在A7-A8之间选一点T,则A7-A8之间的钢管有两种铺设方式——A7-T铺设,A8-T铺设(暂不考虑A7,A8两点的钢管来自哪个厂家)

强化学习离散优化 离散优化模型与算法_最优化_12

5、网格化算法、穷举法

网格化算法,也即连续变量离散化。

例:

强化学习离散优化 离散优化模型与算法_强化学习离散优化_13


在该问题中,连续变量与离散变量混杂,建模并不方便。因此,可以考虑将连续变量离散化。

(该题也可以用分支定界的方法做)

强化学习离散优化 离散优化模型与算法_图论_14

6、智能算法(算法要有一定的针对性,不要随随便便就用智能算法)

四、遗传算法介绍

遗传算法在最优化问题中,适用性非常广泛,但是针对性却不好。

强化学习离散优化 离散优化模型与算法_线性规划_15


强化学习离散优化 离散优化模型与算法_强化学习离散优化_16


强化学习离散优化 离散优化模型与算法_优化问题_17


适应度函数:对于最优化问题来说,如果是求目标函数的最大值,则可以定义函数值越大适应度越大。

例1:

强化学习离散优化 离散优化模型与算法_优化问题_18


例2:

强化学习离散优化 离散优化模型与算法_强化学习离散优化_19


(感觉右下角这个映射关系好像不是很对)

这种方式,一定程度上保留了一些比较好的部分组合。

变异时可以某两个对调,或者把8265变成5628这样。

Matlab的遗传工具箱:

强化学习离散优化 离散优化模型与算法_最优化_20


这篇的内容实在是有点杂,就是仅起一个提醒和提纲的作用,具体内容还是要仔细去学呀~