模型建立阶段
线性规划模型:目标函数和约束条件均为线性
整数规划或0-1规划:决策变量取值被限制为整数或0、1
动态优化模型:以时间为划分阶段的动态过程优化问题
非线性规划模型:目标函数或约束条件中包括非线性函数
多目标规划模型:目标函数不唯一,同时存在多个目标函数
模型求解阶段
基于梯度的求解算法:最速下降法、随机梯度下降、动量梯度下降、拟牛顿法
智能优化算法:粒子群算法、模拟退火、遗传算法
在数学中,一个优化问题有三个要素:决策变量、目标函数、约束条件。优化问题是指,在满足约束的情况下,调整决策变量,使得目标函数的值最小(或最大)。
解决优化问题的第一步就是需要找到目标函数,也就是找到“最优”;第二步需要寻找决策变量,也就是可以优化的变量,再通俗点就是我们可以控制并且使得目标函数更优的变量;第三步就是确定约束条件,在建模过程中比较难把握的就是约束条件,约束条件需要全面准确,否则会产生无穷多最优解或者没有最优解,另外约束条件往往是对现实条件的科学刻画,对约束条件的合理简化也是比赛是需要重点关注的地方。
优化问题的一般建模步骤:
1.确定决策变量;
2.用关于决策变量的函数表示目标,并确定是求极大还是极小;
3.明确约束条件,并用关于决策变量的数学语言表示;
4.根据变量的物理性质研究变量是否有非负性。
优化模型的精确求解算法
在无约束优化模型中,如果其目标函数是凸函数并且可导,我们可以考虑通过梯度下降法求解其精确解,随即设定初始解,每次都沿梯度方向进行迭代,直到导数取值足够小。
因为梯度方向即为目标函数下降最快的方向,因此梯度下降算法求解速度很快,并且精度很高,但容易陷入局部最优解,不能求解非凸问题。
所谓凸优化问题是指目标函数为凸函数且可行域为凸集,通俗来讲,就是目标函数在可行域范围内只有一个极值点,而非凸函数在可行域内存在无数个极值点,为了跳出局部最优解,找到全局最优解,出现了启发式搜索算法。
粒子群优化算法(PSO),它源于对鸟群捕食行为的研究。粒子群优化算法的基本核心是利用群体中的个体对信息的共享,从而使得整个群体的运动在问题求解空间中产生从无序到有序的演变过程,从而获得问题的最优解。
粒子群算法多用于决策变量为连续变量的优化问题,其收敛速度很快,但其跳出局部最优解的能力相对较弱。
遗传算法是模拟生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。其主要用于决策变量为离散变量的优化问题,比如整数规划、0-1规划等。其收敛速度相对较慢,但跳出局部最优解的能力较强。
模拟退火算法脱胎于自然界的物理过程,来源于固体退火原理,是一种基于概率的算法,将固体加温至充分高,再让其徐徐冷却,加温时,固体内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平衡态,最后在常温时达到基态,内能减为最小。
模拟退火算法相对来说,对决策变量类型没有约束,不管是连续变量还是离散变量都可以进行求解,且跳出局部最优解的能力很好,容易找到全局最优解,其缺点是只能单线程作业,不能展开大范围搜索,当决策变量维度较高时,算法收敛速度很慢。