这几天读完《深度学习革命:从历史到未来》,将过去多年的AI从业经验与书中介绍的深度学习革命有机的联系起来,认识到了上一波AI创业浪潮缘起,以及产业界AI人才到工业界的的趋势。春节期间,deepseek新模型震撼了科技圈,美国科技界和美股也遭受重击,深度学习革命还在继续。
近一年来,作为AI从业者经历着AI在产业应用与变革,为了更好将AI落地,不可避免会涉及机理模型和AI模型的结合,而在众多机理模型中被广泛应用的运筹优化技术是绕不开的话题,作为将运筹优化技术集大成的优化求解器被称为工业之芯。
万物可优化
运筹优化和优化求解器都是非常抽象的概念。运筹优化是二战中应用于计算弹道轨迹而发展出来的独立学科,主要应用的领域是在资源一定的情况下,获得最大收益或最小成本的决策方案。
现实世界中的问题,通常都会有各种约束作为限制,同时在这些限制条件下获取最大收益或最小成本。拿投资理财举例,假设有1000w,有定期存款、活期存款、基金、股票、债券等不同选择,不同选择有不同的收益和损失风险,如何在一年内获得最大收益。这个问题是在总资金有限约束下,不同投资标的有不同的收益和损失约束,寻找最佳投资方案使得收益最大。
不难看出很多现实问题,都可以通过对问题理解和抽象,转换成运筹优化问题。以前初高中采用图解法在二维空间求解最优解,现实中的很多问题空间不止二维,往往会有高维问题,对问题求解过程,就变成了如何在多维空间高效搜索最优解的问题。
优化求解器便是在问题一定的情况下,高效获得最优解的工具。优化求解器内置了几十到上百的算法,可以针对不同的建模问题高效求解。得出的优化方案在业务中起到降本增效的作用。
求解逻辑
通常拿到一个现实的问题,需有有数学建模人员将问题抽象成数学问题,并将数学问题编写成求解器需要的Java或Python代码,调用求解器求解器求解。十年前写可视化方向代码时,经常调用各种代码库实现所需效果,求解器也是一个代码工具包,下载和安装后,可以通过声明库和使用相关API方法调用求解能力。
针对具体问题求解过程,可能会经历预求解的过程。通过预求解主要对部分变量和约束进行删除,从而使待求解模型发生变化,主要是为了加速求解速度,之后再调用不同的算法。
预求解之后,求解器内置了启发式算法,可以通过启发式的方法获得可行解。
针对线性整数规划问题,求解器调用单纯形法求解。单纯形法从物理意义上理解,线性规划问题的解一定在高维空间的顶点上,单纯形法通过一个顶点一个顶点的尝试和迭代,最终求得最优解,并且最优解并不会受到初始点而变化,但不同的初始点会影响寻优的速度。
针对混合整数规划问题,求解器会调用分支定界法等算法求解。采用分支定界算法求解,首先将混合整数规划问题松弛为线性规划问题,也即将离散问题转化为连续问题。之后的问题转化成求解线性规划问题,并不断对当前最优解上下界进行求解与比较,直到找到最优解。本质上是在不同树分支上进行搜索。
GAP是当前解与下界解的差距,主要用于衡量当前解的质量,越小越好。现实世界中,受限于各种现实约束,往往可行解比最优解更有意义。拿现实中的相亲举例,一个人可能要相亲1000次才能遇到最合适的人,但时间和外部资源约束,往往不会等到1000次再建立恋爱关系。
现实中往往做决策会从多个维度考虑,即优化目标有多个。例如买房需要同时考虑交通、升值潜力、居住环境、户型、楼层等因素,此时可以考虑将部分条件作为约束,也可以通过将不同目标量化成不同的权重放在目标函数里。
外围工具
优化求解器在求解不同的问题时,算法会预置不同的参数,有经验的建模工程师会根据个人经验设置参数。在求解器工具中有调参器工具,可以帮助专家自动调整到适配当前数学模型的最佳求解参数。此类工具在人工智能领域也有应用,在人工智能领域叫AutoML。本质上都是替代建模专家经验,通过机器学习的方式自动寻找最优参数,加速最优解求解过程。
建模语言则是另外一种重要的工具。在阅读《运筹优化常见模型、算法及案例实战》时,求解相同问题采用python和Java代码编写,代码量和可读性差异非常大,好的建模语言可以有效降低优化求解器使用门槛,让求解器使用尽量贴合数学模型本身样子。
优化求解器也可以与AI有机结合。利用深度学习具有拟合高维特征的优势,可以将AI模型作为代理模型,默认通过代理模型推理快的优势作为决策输出模型,在代理模型瓶颈时采用运筹优化模型求解;也可以利用AI模型提供给运筹优化模型部分初始解,加速求解过程;也可以在求解器内部通过AI模型选择分支定界的分支,加速求解过程。
优化求解器应用领域涉及各行各业核心决策场景,在当前经济下行的背景下,降本增效需求更加突出,运筹优化应用场景和范围将不断扩大。