本文主要是介绍Inverse Optimization: Theory and Applications,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、介绍逆优化问题基本概念
传统优化问题是给定目标函数和约束,求最优决策。而逆优化问题是给定一组决策,求使这组决策成为最优决策的目标函数和/或约束条件。两类问题的思路正好相反。
传统优化问题由下述组成:
- 决策变量空间X
- 目标函数f(x),用于衡量不同决策的优劣
- 约束集g(x)≤0,限制决策选择范围
- 目标是求解min f(x),使其满足约束条件得到最优决策x*
而逆优化问题给出的是一个组决策{xi},目标是求解什么样的目标函数f'(x)和约束g'(x)≤0,可以使给出的决策集成为最优决策。
二、逆优化问题分类标准
-
前向问题结构分类
视前向问题是否线性、整数规划、凸规划等进行分类,这将决定逆优化问题的表述和算法。 -
参数类型分类
参数是否在目标函数参数或约束条件参数,一般分类讨论一个参数类型。 -
模型与数据匹配程度
是否严格要求模型完全匹配观测数据,如果不匹配采用何种损失函数来衡量程度,从而将问题形式化。
基于这三个维度,文章给出经典逆优化和基于数据的逆优化两个分类。
三、经典逆优化问题算法
-
线性模型变形利用对偶理论及KKT条件将问题线性化成单层线性规划
-
整数规划模型采用切分算法逐步紧逼逆可行解空间
-
序贯决策模型用动态规划方法求解
-
网络流模型利用网络流对偶性条件解偶问题
-
凸规划模型利用对偶理论和KKT条件的凸 relax技巧
给出了不同模型下详细的问题变形和算法描述。
四、基于数据的逆优化问题形式
不再强求完全匹配,而是加入损失函数来衡量匹配程度的程详细。典型地,损失函数可以体现匹配程度,模型风险等成分。从而将问题整合成一个风险最小化问题来求解。
五、大规模问题学习方法
-
在线学习考虑数据顺序,以增量方式迭代学习
-
强化学习用于大规模动态决策问题
-
神经网络学习深入挖掘数据模式等方法
六、应用分类
-
设计型问题如交通控制、医疗激励等
-
估计型问题如能源需求学习、人性偏好提取等
-
混合型问题学习和设计兼备等
七、典型应用领域详解
给出了交通、物流、医疗、能源等各个领域的详细应用案例,阐述了逆优化在这些领域解决什么问题和取得什么成效。
这篇关于Inverse Optimization: Theory and Applications的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!