不确定优化入门:用简单实例讲明白随机规划、鲁棒优化和分布鲁棒优化

news2024/11/21 2:32:22

文章目录

  • 1 引言
  • 2 学习动机
  • 3 经典问题
  • 4 解决方案
    • 4.1 忽略不确定性
    • 4.2 随机规划
    • 4.3 鲁棒优化
    • 4.4 分布鲁棒优化
  • 5 总结
  • 相关阅读

1 引言

按2024的原定计划,今年开始要学习不确定优化了。

粗略翻阅了一些相关的书籍和教程,大都包含许多数学公式,瑟瑟发抖。出于只希望学会使用相关技术的初心,我并不想陷入过多的推导和证明过程中,所以至今断断续续持续了两周多,依然不知道该从哪里入门。

思考了一下,系列第一篇还是先阐述自己学习不确定优化的动机,然后梳理针对不确定优化问题的已有解决方案,从而有利于后续设计体系化的学习路径。

正文见下。

2 学习动机

根本上,我要学习不确定优化,是因为在工作中碰到了相关需求。

先描述我遇到的实际业务问题:问题本身可以建模为如下的0-1整数规划

max ⁡ f ( x ) = c T x s.t A x = b x ∈ { 0 , 1 } \max \quad f(\pmb x)=\pmb c^T\pmb x \\ \text{s.t} \quad \pmb A\pmb x=\pmb b \\ \pmb x \in \{0,1\} maxf(x)=cTxs.tAx=bx{0,1}
优化变量是千量级,未来至多是几十万量级;目标函数中的 c \pmb c c是模型预测出来的值,所以其值可能是不准确的;约束中的 A \pmb A A虽然有波动,但从业务判断,该值可以简化是常量, b \pmb b b是常量。

如果将 c \pmb c c当做常量,那这个问题是很容易求解的。但是直接优化得到的最优解,无法保证其落地使用后的核心指标也是最优的。

此前就已经踩过一个坑:在另一个项目中,直接当做常量求解后的落地核心指标甚至不如已有人工策略的落地核心指标好。

为了防止重蹈覆辙,领导希望我在给出最优决策方案时,能充分考虑预测不准带来的影响。

事实上,不仅这个项目遇到了这个问题,其他很多项目也有类似的需求。为了能解决好此类问题,我才决定今年深入学习一下不确定优化相关内容。

针对不确定优化,我比较关注的点有两个:

(1)考虑参数的不确定性后,核心指标能提升多少? 这个问题可以从已公开的行业案例中寻找答案。但遗憾的是,虽然很多学术文章中涉及了不确定优化的正向效果,但是行业应用的实际案例却少之又少。从一些非公开渠道得知,在库存优化场景中,不确定优化方法确实是有落地应用的,核心指标大概能提升几个点。

(2)如何考虑参数的不确定性,对应的解决方案是什么? 这方面的公开内容已经有很多了,主流的解决方案包括:随机规划、鲁棒优化和分布鲁棒优化。作为系列第一篇,本文并不打算精确地描述清楚这些解决方案,而是想通过一个实例的求解,直观地展示不同解决方案的具体思路。

3 经典问题

既然要用实例,自然要使用不确定优化领域中的最经典问题——报童问题

报童每天需要采购一定数量的报纸用于当天的销售。已知每份报纸的成本价 c = 5 c=5 c=5,销售价 p = 10 p=10 p=10,需求量 d d d是个不确定的变量,通过历史的经验得到其平均值是15,如果当天卖不完,会按回收价 r r r将未卖完的报纸返卖给回收站,为了后续计算方便,本文假设 r = 0 r=0 r=0

现在需要确定报童的最佳订购量 q q q,使得报童的净收入 θ \theta θ最大化。

4 解决方案

4.1 忽略不确定性

最简单的解决方案是忽略其不确定性,即 d = 15 d=15 d=15

此时,最佳订购量显然是
q = d = 15 q=d=15 q=d=15
对应的净收入为
θ = 15 ∗ ( 10 − 5 ) = 75 \theta= 15 * (10 - 5) = 75 θ=15(105)=75

4.2 随机规划

本节开始,我们考虑 d d d的不确定性。随机规划模型中,认为 d d d的分布函数已知,举个例子: d d d可以取10,12,18,20,对应的概率分别为 1 6 , 1 3 , 1 3 , 1 6 \frac{1}{6},\frac{1}{3},\frac{1}{3},\frac{1}{6} 61,31,31,61

随机规划模型的核心思路是:优化 q q q使得 θ \theta θ的期望值最大化。 此时,目标函数变为
E ( θ ) = 1 6 p min ⁡ ( q , 10 ) + 1 3 p min ⁡ ( q , 12 ) + 1 3 p min ⁡ ( q , 18 ) + 1 6 p min ⁡ ( q , 20 ) − c q \text{E}(\theta) = \frac{1}{6}p\min(q, 10) + \frac{1}{3}p\min(q, 12) + \frac{1}{3}p\min(q, 18) + \frac{1}{6}p\min(q, 20) -cq E(θ)=61pmin(q,10)+31pmin(q,12)+31pmin(q,18)+61pmin(q,20)cq
E ( θ ) \text{E}(\theta) E(θ) q q q的变化曲线如下图所示。显然,当 q ∈ [ 12 , 18 ] q\in[12,18] q[12,18]时,期望收益 E ( θ ) \text{E}(\theta) E(θ)取到最大,为56.67。

这里需要注意的是,此时的最优解为期望值,而不是实际收益。

4.3 鲁棒优化

在鲁棒优化模型中,一般认为 d d d的分布函数未知,但是其分布的基本信息是已知的,举个例子: d ∈ [ 10 , 20 ] d\in[10, 20] d[10,20]。显然,随机规划中的实例可以理解为本节实例的一种特殊情况。但由于分布函数未知,所以无法使用随机规划的方式来求解。

鲁棒优化的核心思路是:寻找 d d d为最差情况下的最优解。 数学化的表达方式为:
max ⁡ q min ⁡ d { p ⋅ min ⁡ ( q , p ) − c q } \mathop{\max}_q \mathop{\min}_d \{ p·\min(q, p)-cq\} maxqmind{pmin(q,p)cq}
首先分析内层 min ⁡ d \mathop{\min}_d mind。从下图可以看出,针对同一个 q q q d d d越大, θ = p ⋅ min ⁡ ( q , p ) − c q \theta=p·\min(q, p)-cq θ=pmin(q,p)cq越大,所以最差情况下, d = 10 d=10 d=10


然后分析外层 max ⁡ q \mathop{\max}_q maxq。从图上也很容易看出,最佳订购量 q = 10 q=10 q=10,此时 θ = 50 \theta=50 θ=50

4.4 分布鲁棒优化

对比随机规划和鲁棒优化,我们可以发现,从针对 d d d的不确定性刻画来看,随机规划是非常精确的,就是某个确定的分布函数;而鲁棒优化则非常模糊,得到的解也是非常保守的。

为了能在两者之间做折中,分布鲁棒优化应运而生:一方面增加不确定参数的分布特征,另一方面追求不那么保守的解。

举个例子,我们不仅知道 d ∈ [ 10 , 20 ] d\in[10, 20] d[10,20],我们还知道, d d d的概率值会随其值的增大先增大后减小。那么此时,至少能想到的一些可能的分布情况有:

分布鲁棒优化的解决方案是:寻找满足不确定参数特征的最差分布函数,然后以此分布函数为基准,使用随机规划的思路得到最优解。

为了让实例构造简单一些,我们假设分布就以上三种情况,并且对应的分布函数分别只有一种:

(1)无偏: d d d取10,12,18,20的概率分别为 1 6 , 1 3 , 1 3 , 1 6 \frac{1}{6},\frac{1}{3},\frac{1}{3},\frac{1}{6} 61,31,31,61。该情况下,随机规划一节中已经计算过,最优期望收益为56.67。

(2)左偏: d d d取10,12,18,20的概率分别为 37 216 , 72 216 , 67 216 , 40 216 \frac{37}{216},\frac{72}{216},\frac{67}{216},\frac{40}{216} 21637,21672,21667,21640。该情况下的最优订购量是12,最优期望收益是56.57。

(3)右偏: d d d取10,12,18,20的概率分别为 22 108 , 31 108 , 36 108 , 19 108 \frac{22}{108},\frac{31}{108},\frac{36}{108},\frac{19}{108} 10822,10831,10836,10819。该情况下的最优订购量是18,对应的期望收益为56.48。

所以,最差分布函数为右偏,此时最佳的期望收益为56.48。

5 总结

至此,针对每一种解决方案的思路描述和实例讲解算是结束了,看起来并没有那么复杂。

本节我们再横向对比一下这些解决方案,以探查他们之间的联系和区别,加深对它们的认知:

(1)鲁棒优化中认为,不确定参数的分布函数是未知的,仅知道其分布的简单信息;分布鲁棒优化中认为,虽然分布函数未知,但是分布的一些特征是已知的;随机规划则认为分布函数是完全已知的。所以从针对不确定参数的刻画来看,其确定性是逐渐增加的。

(2)鲁棒优化最终求解得到的是一个具体的解,而分布鲁棒优化和随机规划最终得到的是一个期望值。

(3)分布鲁棒优化一方面借鉴了鲁棒优化中的考虑最差情况的思路,另一方面又借鉴了随机规划中求期望的思路,所以看起来最有前景。

(4)从解的质量来看,忽略不确定性的最优解≥随机规划解≥分布鲁棒优化解≥鲁棒优化解。
忽略不确定性的解和考虑不确定性的解之间的差异,可以理解为不确定性约束带来的指标损失。

相关阅读

分布鲁棒优化入门视频:https://www.bilibili.com/video/BV19a411s7cy/?spm_id_from=333.880.my_history.page.click&vd_source=f416a5e7c4817e8efccf51f2c8a2c704

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1416828.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

xxl-job相关面试题整理

什么是xxl-job? ​ xxl-job是一个分布式的任务调度平台,其核心设计目标是:学习简单、开发迅速、轻量级、易扩展,现在已经开放源代码并接入多家公司的线上产品线,开箱即用。xxl是xxl-job的开发者大众点评的许雪里名称的…

腾讯云幻兽帕鲁4核16G14M服务器性能测评和价格

腾讯云幻兽帕鲁服务器4核16G14M配置,14M公网带宽,限制2500GB月流量,系统盘为220GB SSD盘,优惠价格66元1个月,277元3个月,支持4到8个玩家畅玩,地域可选择上海/北京/成都/南京/广州,腾…

在windows环境下安装hadoop

Hadoop是一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。但这个架构是基于java语言开发的,所以要先进行jdk的安装,如果电脑已经配置过jdk或者是曾经运行成功过java文件,那就可以跳过第一步。 …

单入双出高电压信号隔离变送器

定义:一路高电压信号输入,双路国际标准模拟量信号输出的小型仪器设备。 单入双出高电压模拟量信号隔离变送器 型号:JSD TAH-1002 特征: ◆薄体积,低成本,国际标准DIN35mm导轨安装方式 ◆五端隔离(输入、…

实验2:DEBUG基本命令使用

目录 1、实验目的: 2、实验内容: 3、实验要求: 4、源代码: 5、实验结果 1、实验目的: 熟悉汇编语言程序设计的上机过程,掌握DEBUG的基本命令和功能。 2、实验内容: 从键盘键入一个大写英…

解锁多模态独特魅力-“机器人+Agent+多传感器融合+3DLLM”诠释终极组合大招!

01-Multiply算法背景 01.01-触觉传感器 触觉传感器是一种用于感知和测量物体接触力、形状、纹理和其他相关参数的传感器。它们模拟人类触觉系统,通过收集和解释物体与传感器之间的相互作用来获取信息。工作原理:触觉传感器使用不同的原理来感知接触力和…

Spring 事务原理二

该说些什么呢?一连几天,我都沉溺在孤芳自赏的思维中无法自拔。不知道自己为什么会有这种令人不齿的表现,更不知道这颗定时炸弹何时会将人炸的粉身碎骨。好在儒派宗师曾老夫子“吾日三省吾身”的名言警醒了我。遂潜心自省,溯源头以…

springIoc以及注解的使用

注解 注解的定义 注解(Annotation)是一种在 Java 程序中以元数据的形式对代码进行标记和说明的机制。它可以被添加到类、方法、字段、参数等程序元素上,用于提供额外的信息和指示。 也就是说注解是一种标记 注解怎么生效呢? 通…

Element-Plus如何实现表单校验和表单重置

一&#xff1a;页面布局介绍&#xff1a; 这是我刚刚用基于vue3element-plus写好的一个部门管理的页面 基本的增删改查已经写好&#xff0c;下面我只提供页面的template和style的代码&#xff1a; template <template><el-card class"box-card"><…

静态代理IP该如何助力Facebook多账号注册运营?

在Facebook运营中&#xff0c;充分利用静态代理IP是多账号运营的关键一环。通过合理运用静态代理IP&#xff0c;不仅可以提高账号安全性&#xff0c;还能有效应对Facebook的算法和限制。以下是这些关键点&#xff0c;可以帮助你了解如何运用静态代理IP进行Facebook多账号运营&a…

BGP:04 fake-as

使用 fake-as 可以将本地真实的 AS 编号隐藏&#xff0c;其他 AS 内的对等体在指定本端对等体所在的AS 编号时&#xff0c;应该设置成这个伪AS 编号。 这是实验拓扑&#xff0c;IBGP EBGP 邻居都使用物理接口来建立 基本配置&#xff1a; R1: sys sysname R1 int loo0 ip add…

网络原理,网络通信以及网络协议

​​​​&#x1f493; 博客主页&#xff1a;从零开始的-CodeNinja之路 ⏩ 收录专栏&#xff1a;网络原理,网络通信以及网络协议 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 文章目录 网络原理概念网络通信局域网LAN广域网WAN 网络通信IP地址端口号…

第17节-高质量简历写作求职通关-投递反馈

&#xff08;点击即可收听&#xff09; 投递跟进和感谢信 如果对一家公司特别心仪&#xff0c;但是投递简历后一直得不到回复怎么办&#xff1f; 面试之后觉得自己没有表现好怎么办&#xff1f; 面试完几天了&#xff0c;依然没有得到回应怎么办&#xff1f; 这个时候你需要写一…

OkHttp完全解读

一&#xff0c;概述 OkHttp作为android非常流行的网络框架&#xff0c;笔者认为有必要剖析此框架实现原理&#xff0c;抽取并理解此框架优秀的设计模式。OkHttp有几个重要的作用&#xff0c;如桥接、缓存、连接复用等&#xff0c;本文笔者将从使用出发&#xff0c;解读源码&am…

sqli-labs靶场第七关

7、第七关 id1 --单引号报错,id1" --双引号不报错,可以判断是单引号闭合 id1) --也报错&#xff0c;尝试两个括号闭合&#xff0c;id1)) --不报错 接下来用脚本爆库 import stringimport requestsnumbers [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] letters2 list(string.ascii_…

二、Gradle 与 Idea 整合

这里写自定义目录标题 1、Groovy简介2、Groovy 安装3、创建 Groovy 项目4、Groovy 基本语法 1、Groovy简介 详细了解请参考&#xff1a;http://www.groovy-lang.org/documentation.html 2、Groovy 安装 下载后解压到本地 验证&#xff1a; groovy的安装情况 3、创建 Groo…

231. Power of Two(2 的幂)

题目描述 给你一个整数 n&#xff0c;请你判断该整数是否是 2 的幂次方。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 如果存在一个整数 x 使得 n 2 x n 2^x n2x&#xff0c;则认为 n 是 2 的幂次方。 问题分析 题目要求的是给定一个数判断…

[ESP32 IDF] wifi 的应用

目录 背景知识 wifi的基本连接使用 WiFi篇—— WiFi两种模式文章中二、WiFi 的启动&#xff08;STA 及 AP 模式&#xff09; 输出现象 通过websocket控制LED 实践验证 实验现象 背景知识 WIFI是ESP32非常重要的一个功能&#xff0c;想要使用一下IDF的API实现将ESP32连…

Golang Playground: 轻松提升你的技能

探索、实验和学习 Go 语言 Golang Playground 是一个在线工具&#xff0c;允许用户在方便且友好的环境中实验、练习和提升他们的编码技能。无论是初学者还是开发人员&#xff0c;Golang Playground 都提供了一个无需本地安装的环境&#xff0c;可以轻松编写、编译和执行 Go 代…

第四篇:怎么写express的路由(接口+请求)

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 &#x1f4d8; 引言&#xff1a; &#x1f4…