L-shape 方法

L-shape 方法是求解两阶段随机规划的一种常用方法,基本思想是利用切平面将第二阶段的反馈函数线性化,在构造切平面条件时有点类似 bender’s 方法。

在这里插入图片描述
注:这个图形中黑实线 Q ( x ) \mathcal{Q}(x) Q(x) 就是下面模型中的 L ( x ) \mathscr{L}(x) L(x)

两阶段随机规划的模型可以表示为:

min ⁡ x c T x + L ( x ) s . t . A x = b x ≥ 0 \begin{aligned} &\min_x\quad &&c^Tx+\mathscr{L}(x)\\ &s.t.\\ &&&Ax=b\\ &&&x\geq 0 \end{aligned} xmins.t.cTx+L(x)Ax=bx0

其中, L ( x ) = E [ Q ( x , ξ ( ω ) ) ] \mathscr{L}(x)=\mathbb{E}[Q(x, \xi(\omega))] L(x)=E[Q(x,ξ(ω))],被称作反馈函数 (recourse function),而 Q ( x , ξ ( ω ) ) Q(x, \xi(\omega)) Q(x,ξ(ω)) 为给定 x x x ω \omega ω 时,第二段模型的最优值,即:

Q ( x , ξ ( ω ) ) = min ⁡ y q ( ω ) T y s . t . T ( ω ) x + W y = h ( ω ) y ≥ 0 \begin{aligned} &&&Q(x, \xi(\omega))=\min_y q(\omega)^Ty\\ s.t.\\ &&&T(\omega)x+Wy=h(\omega)\\ &&&y\geq 0 \end{aligned} s.t.Q(x,ξ(ω))=yminq(ω)TyT(ω)x+Wy=h(ω)y0

模型中, x x x 为第一阶段的决策变量,必须在不确定性发生之前作出决定, y y y 为第二阶段的决策变量,在不确定性发生之后作出决定。 ξ \xi ξ 为随机变量,而 ω \omega ω 为随机变量的一个具体实现值,模型中的决策变量与随机变量都可以是向量形式。

上面第二个模型中,可以看出 W W W ω \omega ω 无关,即第二阶段求解变量 y y y 的系数是一个确定值,并不是随机变量。此时,上面两个模型称作固定反馈 (fixed recourse) 的两阶段随机规划模型。因为固定反馈时,第二阶段模型 x x x 的可行域为一个闭凸集,这样就能使用很多方法求解了,否则第二阶段模型 x x x 的可行域不一定是闭凸集(为什么?目前还没搞清楚)。

假设随机变量 ξ \xi ξ 具有有限个,即 K K K 个实现值(realization),每个实现值对应的概率为 p k p_k pk,则两阶段规划的扩展模型(extensive form)可以表示为:

min ⁡ x c T x + ∑ k = 1 K p k q k T y k s . t . A x = b T k x + W y k = h k , k = 1 , … , K , x ≥ 0 , y k ≥ 0 , k = 1 , … , K . \begin{aligned} &\min_x\quad &&c^Tx+\sum_{k=1}^K p_kq_k^Ty_k\\ &s.t.\\ &&&Ax=b\\ &&&T_kx+Wy_k=h_k,\quad k=1,\dots, K,\\ &&&x\geq 0,y_k\geq 0,\quad k=1,\dots, K. \end{aligned} xmins.t.cTx+k=1KpkqkTykAx=bTkx+Wyk=hk,k=1,,K,x0,yk0,k=1,,K.

为什么叫 L-shaped 方法,是因为前两个约束条件左端的系数矩阵可以写成类似 L 的形式:

A T 1 W T 2 W ⋮ T k … … W \begin{aligned} &A\\ &T_1\quad W\\ &T_2\qquad W\\ &\vdots\\ &T_k\quad\dots\dots\qquad W \end{aligned} AT1WT2WTk……W

L-shape 方法的基本步骤是:

  • 给定第一阶段求解变量 x x x 的一个初始值,带入到第二阶段的模型进行求解
  • 若有可行解,根据第二阶段的对偶值,计算出最优性切平面约束(optimality cut)添加到第一阶段的模型中
  • 若无可行解,根据另外一个构造的线性规划模型(以后补充)求出可行性约束(feasibility cut)添加到第一阶段模型中
  • 求解第一阶段模型,返回第一步
  • 循环以上过程,直到达到一定的迭代终止条件

未完待续。。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

为什么要用线程池?

线程池是一种管理和复用线程资源的机制,它由一个线程池管理器和一组工作线程组成。线程池管理器负责创建和销毁线程池,以及管理线程池中的工作线程。工作线程则负责执行具体的任务。 线程池的主要作用是管理和复用线程资源,避免了线程的频繁…

IOS开发指南之自定义TableViewCell使用

演示效果: 1.自定义TableViewCell创建 File->new->File... 在iOS模板中选择Empty来创建一个空的XIB文件,然后点击下一步 输入XIB文件名Cell,然后点击Create创建 创建XIB文件成功后如下: 同时按钮Shift+command+L弹出库,然后输入 table筛选,选择Table View Cell 拖到下…

LSP:里氏替换原则

系列文章目录 C高性能优化编程系列 深入理解设计原则系列 深入理解设计模式系列 高级C并发线程编程 LSP:里氏替换原则 系列文章目录1、里氏替换原则的定义和解读2、里氏替换原则可以用于哪些设计模式中?3、如何使用里氏替换原则来降低代码耦合度&#…

ChatGPT原理简介

承接上文GPT前2代版本简介 GPT3的基本思想 GPT2没有引起多大轰动,真正改变NLP格局的是第三代版本。 GPT3训练的数据包罗万象,上通天文下知地理,所以它会胡说八道,会说的贼离谱,比如让你穿越到唐代跟李白对诗,不在一…

windows里怎么杀死一个进程?

我们可以使用 taskkill 命令,可以使用该工具按照进程 ID (PID) 或映像名称终止任务。 显示帮助消息: taskkill /?参数列表: /S:system:指定要连接的远程系统。/U:[domain\]user:指定应该在哪…

第五篇:强化学习基础之马尔科夫决策过程

你好,我是zhenguo(郭震) 今天总结强化学习第五篇:马尔科夫决策过程 基础 马尔科夫决策过程(MDP)是强化学习的基础之一。下面统一称为:MDP MDP提供了描述序贯决策问题的数学框架。 它将决策问题建模为: 状态…

7种PCB走线方式

01电源布局布线相关 数字电路很多时候需要的电流是不连续的,所以对一些高速器件就会产生浪涌电流。 如果电源走线很长,则由于浪涌电流的存在进而会导致高频噪声,而此高频噪声会引入到其他信号中去。 而在高速电路中必然会存在寄生电感和寄…

STM32G4 比较器COMPx(寄存器开发)

目录 1. 特性1.1 框图1.2 比较器输入信号SEL1.3 比较器滞回选择HYST1.4 比较器的输出1.5 LOCK机制 2. 编程2.1 初始化步骤2.2 举例 STM内部的比较器是模拟量的比较器,其与APB2时钟同步,在RCC时钟控制器中没有COMx时钟使能标志位,其时钟的使能…

RTOS专栏(一) —— rt-thread简单介绍和qemu使用

本期主题: 简单介绍rt-thread介绍qemu和rt-thread怎么配合使用qemu的简单例子 rt-thread & qemu 1.rt-thread介绍2.qemu介绍3.搭建rt-thread和qemu开发环境4.简单例子 1.rt-thread介绍 RT-Thread 是一款完全由国内团队开发维护的嵌入式实时操作系统&#xff0…

JAVA POI excel 添加下拉字典的方式与案例 以及图文详解及个人理解

场景 原有的Excel 某一个 sheet 页中某些列需要添加指定的字典下拉,而这些字典的值又是确认的。 有两种思路: 一、如果给定的下拉字典值是确定的而且关联原有列的位置也不会变,那么这些数据可以固定写死在代码中,也是最简单的一…

北邮22信通:利用BF算法解决实际问题:题目实战(超详解)设计函数 char *locatesubstr(char *str1,char *str2)

北邮22信通一枚~ 跟随课程进度每周更新数据结构与算法的代码和文章 持续关注作者 解锁更多邮苑信通专属代码~ 获取更多文章 请访问专栏~ 北邮22信通_青山如墨雨如画的博客-CSDN博客 目录 题干描述 解析 1.string库函数 2.使用KMP算法思想 注解1 注解2 注解3 题…

学懂缓存雪崩,缓存击穿,缓存穿透仅需一篇,基于Redis讲解

在了解缓存雪崩、击穿、穿透这三个问题前,我们需要知道为什么我们需要缓存。在了解这三个问题后,我们也必须知道使用Redis时,如何解决这些问题。 所以我将按照"为什么我们需要缓存"、"什么是缓存雪崩、击穿、穿透"、&qu…

​字创未来 方正字库第十二届“方正奖”设计大赛正式来袭

传承汉字文化精髓,方正字库在字体行业不断探索深耕。方正字库一直致力于弘扬中华汉字文化,不断促进行业字体设计创新发展。于2001年在行业最艰难的时候,怀揣着对字体设计未来的美好向往,首届“北大方正奖”印刷字体设计大赛&#…

家政服务预约APP的系统设计与实现

摘 要:针对家政行业蓬勃发展,老套的家政服务方式已经跟不上互联网时代的步伐这个问题。基于Android移动平台的分析和设计过程、C/S模式、Eclipse平台,采用Java语言进行开发设计,设计了基于MVC架构的实现方案。安卓客户端与服务器…

Flume系列:Flume通道拓扑结构

目录 Apache Hadoop生态-目录汇总-持续更新 1: 基础架构 2:简单串联 3:复制(Replicating)和多路复用(Multiplexing) 4:负载均衡和故障转移 5:聚合 Apache Hadoop生态-目录汇总-持续更新 系统环境:centos7 Java环境…

IDEA 创建 Springmvc 项目

一、概述 在18年的时候就开始接触 SpringBoot ,然后就一直在使用它。众所周知 SpringBoot 内嵌 Tomcat,后续再也没有单独新建过Web 项目。作为IDEA 的用户,总想要用它来建一个Web 项目自己跑一跑,但建项目不是我最终目的~~ &…

好用的自动化框架-Allure

概述 报告主要包含总览、类别、测试套件、图表、时间刻度、功能、包等7大部分,支持自定义诸多信息,包括附件添加、缺陷链接、案例链接、测试步骤、Epic、Feature、Story、Title、案例级别等,相当强大。 allure与pytest的结合使用可以呈现完…

ProtoBuf 语法(一)

系列文章 ProtoBuf 语法(二) ProtoBuf 语法(三) 文章目录 前言一、字段规则二、消息类型的定义与使用2.1 定义2.2 使用 三、enum 类型3.1 定义规则3.2 注意事项 四、any 类型4.1 类型说明4.2 类型使用 五、oneof 类型六、map 类型…

【Vue】二:Vue核心处理---计算属性 监视属性

文章目录 1.计算属性示例2. 监听属性3.补充 1.计算属性示例 实际上计算属性与methods中定义方法基本上没有什么区别,只是计算属性基于响应式依赖缓存,只要数据没有发生改变,计算属性从缓存中取值,只有当数据发送改变,才…

安卓中集成高德地图

安卓中集成高德地图 1.高德地图的优缺点 高德开放平台 | 高德地图API 高德地图优点: 1、领先的地图渲染技术:性能提升10倍,所占空间降低80%,比传统地图软件节省流量超过90% 2、专业在线导航功能&#x…