当前位置: 首页 > news >正文

【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

2.1 CCGKKT

2.2  CCGSD

2.3  SPKKT

2.4 SDSP

2.5 MP 

🎉3 文献来源

🌈4 Python代码及文章


💥1 概述

文献来源:

 本文提出了一种求解两阶段鲁棒优化问题的列约束生成算法。与现有的bender式切割平面方法相比,圆柱和约束生成算法是一个通用的过程,具有统一的方法来处理最优性和可行性。对两阶段鲁棒位置-运输问题的计算研究表明,该算法的执行速度快了一个数量级。

原文摘要:

In this paper, we present a column-and-constraint generation algorithm to solve two-stage robust optimization problems. Compared with existing Benders-style cutting plane methods, the column-and- constraint generation algorithm is a general procedure with a unified approach to deal with optimality and feasibility. A computational study on a two-stage robust location-transportation problem shows that it performs an order of magnitude faster.

鲁棒优化(RO)[4 - 6,12,9,10]是近年来处理数据不确定性的一种优化方法。因为它的导出是为了对冲输入数据中的任何扰动,所以(单级)反渗透模型的解往往过于保守。为了解决这一问题,引入并研究了两阶段反渗透(以及更通用的多级反渗透),也称为鲁棒可调或可适应优化,其中第二阶段问题是在第一阶段决策做出并揭示不确定性之后对决策建模。由于建模能力的提高,两级反渗透已经成为一种流行的决策工具。应用包括网络/运输问题[1,16,13],投资组合优化[17]和电力系统调度问题[21,15,8]。

然而,两级反渗透模型的计算非常困难。

如[3]所示,即使是一个简单的两级RO问题也可能是np困难的。为了克服计算负担,研究了两种求解策略。第一种是使用近似算法,这种算法假设第二阶段的决策是不确定性的简单函数,例如仿射函数;参见[7]中的示例。第二类算法寻求按照Benders分解方法推导精确解,即利用第二阶段决策问题的对偶解逐步构造第一阶段决策的值函数[19,21,8,15,13]。我们称之为本德斯-对偶切割平面算法。

在[21]中,我们采用不同的切割平面策略来解决风力供应不确定的电力系统调度问题。该策略不使用第二阶段决策问题的对偶解来创建约束;相反,它在确定的场景的原始空间中动态地生成约束与资源决策变量,这与宾德斯-双过程背后的哲学非常不同。因此,它在[21]中被表示为原始切割算法,但实际上它是一个列-约束生成过程。在这项研究中,我们开发并提出了这个求解程序,在一个通用的设置和基准的弯曲双切割平面程序。

在列-约束生成过程中,生成的变量和约束与两阶段随机规划模型中的变量和约束非常相似。此外,当不确定性集是离散的和有限的,通过枚举集中每个场景的变量和约束,可以构造一个等效的整体优化公式[17]。然而,据我们所知,除了[21]中的工作外,还没有报道过在切割平面过程中使用这些变量和约束来解决两级RO问题的算法。这是该切割平面算法在一般设置中的第一次介绍,并首次从理论上和系统地比较了其与bender -dual切割平面方法的性能。

📚2 运行结果

2.1 CCGKKT

2.2  CCGSD

2.3  SPKKT

2.4 SDSP

2.5 MP 

🎉3 文献来源

部分理论来源于网络,如有侵权请联系删除。

🌈4 Python代码及文章

http://www.lryc.cn/news/59709.html

相关文章:

  • 百度暑期实习 C++ 一面
  • 计算机网络第一章(概述)【湖科大教书匠】
  • 【JS】vis.js使用之vis-timeline使用攻略,vis-timeline在vue3中实现时间轴、甘特图
  • 机器学习——数据处理
  • 多种文字翻译软件-翻译常用软件
  • Baumer工业相机堡盟工业相机如何通过BGAPI SDK将相机图像数据用二进制的方式保存到本地(C++)
  • JavaScript模块的导出和导入之export和module.exports的区别
  • 基于朴素贝叶斯分类器的钞票真伪识别模型
  • 【Python】【进阶篇】二十二、Python爬虫的BS4解析库
  • UDS统一诊断服务【五】诊断仪在线0X3E服务
  • 我的创作纪念日:Unity CEO表示生成式AI将是Unity近期发展重点,发布神秘影片预告
  • 秩亏自由网平差的直接解法
  • 大数据开发必备面试题Spark篇合集
  • C ++匿名函数:揭开C++ Lambda表达式的神秘面纱
  • AOP使用场景记录总结(缓慢补充更新中)
  • FPGA基于XDMA实现PCIE X4的HDMI视频采集 提供工程源码和QT上位机程序和技术支持
  • ArcGIS、ENVI、InVEST、FRAGSTATS等多技术融合提升环境、生态、水文、土地、土壤、农业、大气等领域的数据分析
  • 怎么找回回收站里已经删除的文件
  • Spring Boot、Cloud、Alibaba 版本说明
  • 软件测试入门第一步:编写测试报告
  • 【Vue】vue中的路由导航守卫(路由的生命周期)
  • NumPy 基础知识 :6~10
  • 实现vue的条件渲染
  • 第四章 word2vec 的高速化
  • 【四】3D Object Model之创建Creation——clear_object_model_3d()/copy_object_model_3d()算子
  • 第三十一章 配置镜像 - 删除镜像成员时删除镜像数据库属性
  • 自动写作ai-自动写作神器
  • P1368 【模板】最小表示法(SAM 求最小循环移位)
  • 投票感知器参数学习算法
  • Hyper-v下安装CentOS-Stream-9