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

article/2025/9/25 17:26:52

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

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

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

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

目录

💥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://chatgpt.dhexx.cn/article/ADr3PTig.shtml

相关文章

【鲁棒优化笔记】以Coding入门鲁棒优化:以一个例子引入(二)-正确版

【鲁棒优化笔记】以Coding入门鲁棒优化:以一个例子引入(二) 投资组合的例子鲁棒优化模型的reformulation: 利用对偶进行reformulation利用对偶进行reformulationPython调用gurobi求解对偶reformulation后的模型 鲁棒优化模型的reformulation:…

yalmip求解鲁棒优化

使用yalmip求解鲁棒优化 前言鲁棒优化简介yalmip实操求解优化问题示例代码结果总结 前言 记录一下早期夭折的研究想法,想使用鲁棒优化(robust optimization,RO)解决整数变量的资源分配问题。目标函数和约束条件都很简单&#xff…

【鲁棒优化笔记】基于ROME编程入门鲁棒优化:以一个例子引入(一)

鲁棒优化|基于ROME编程入门鲁棒优化:以一个例子引入(上) 线性规划中的不确定性一个生产的例子MatlabROME求解 鲁棒优化简单案例:一个投资组合的例子不确定回报率鲁棒优化模型Matlab调用ROME包求解Robust Counterpart 参考文献 鲁棒…

鲁棒优化(3)-yalmip+guobi的小例子

前言 前面我们已经介绍了,连续线性模型的鲁棒对等转换全部过程,本章内容分两部分. 1.将鲁棒优化与机会约束结合,从概率的角度,选取Γ的大小,并给出一个简单易行的公式. 2.结合实例,直观的阐述鲁棒优化的过…

wildfly(JBOSS)启动报错

报错内容: 15:07:50,724 ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0013: Operation ("add") failed - address: ([("deployment" > "MESwell.ear")]) - failure description: &q…

玩转Eclipse的Wildfly安装、配置到部署

本人也是第一次玩Wildfly,也就是Jboss,有错误的地方希望大家一起指出。(Windows部署)由于Wildfly是依赖与Java的Jdk的,所以在这之前要先安装JDK哦,具体安装步骤我就不多说了,相信大家应该是已经安装好了的。 第一步:到官网下载Wildfly。官方网站:http://www.wildfly.o…

Wildfly部署drools-workbench

首先下载drools-workbench drools官网 目前的最新版本是7.73.0.Final 新版的workbench 已经不支持Tomcat部署了,需要使用wildfly部署,最新的wildfly26.1.1但是测试下来部署workbench会失败,需要下载对应版本的wildfly,如图所示当…

配置Wildfly的JDBC驱动程序

1、环境 windows10、Wildfly26.1.3、JDK8.0、mysql8.0 2、配置方式 配置Wildfly的JDBC驱动一般有两种方式 1️⃣、以module的方式安装; 2️⃣、以应用deploy的程序包方式安装; 以module方式安装,是把驱动置于应用服务器中;以…

在wildfly 21中搭建cluster集群

文章目录 简介下载软件和相关组件配置domain创建应用程序部署应用程序集群配置总结 简介 wildfly是一个非常强大的工具,我们可以轻松的使用wildfly部署应用程序,更为强大的是,wildfly可以很方便的部署cluster应用。 今天我们通过一个例子来…

WildFly配置数据库(mysql)

1.安装wildfly:地址:WildFly Downloads 这里我使用的是WildFly12 2.配置环境 我们可以通过两种方式实现配置: 2.1 我们通过xml方式配置: 第一步:创建目录 在项目文件\wildfly-12.0.0.Final\wildfly12.0.0.Final\mod…

fly.js使用

原文地址:http://www.voidcc.com/project/fly 项目信息 Fly.js 是一个基于 promise 的,轻量且强大的Javascript http 网络库 51 1,686 221 0 2018-09-06 开发语言: JavaScript 开源协议: MIT 项目代码: Github - fly 项目作者: wendux 作者主页: G…

Wildfly 10的安装、配置到部署

第一步:到官网下载Wildfly。 官方网站:http://www.wildfly.org/ 下载地址:http://wildfly.org/downloads/ 我这里下载的是10.1.0.Final这个版本,下载地址是:http://download.jboss.org/wildfly/10.1.0.Final/wildfly…

Wildfly配置Datasources

配置Datasources前,需要先配置对应的JDBC驱动,配置方法,可以参考: Wildfly配置mysql8.0的JDBC驱动 之后,配置对应的Datasources。配置方法有两种,一种是通过管理后台配置,一种是通过手工修改配…

wildfly 21的domain配置

文章目录 简介wildfly模式简介domain controller的配置Host controller的配置文件忽略域范围的资源Server groupsServers总结 简介 wildfly可以使用Standalone模式或者domain模式启动,standalone模式就很简单了,可以看做是一个单独的服务器。今天我们将…

JBoss的AS版本 Wildfly 介绍和使用

WildFly简介: wildFly是一款服务器,和tomcat一样,不过事jboss服务器的as版本罢了,相比于Jboss的EPA版本就比较繁重,所以有了这个Jboss服务器的轻便版本。至于什么时候独立出来的版本,之类的我就不给你扯淡…

FlyBird

游戏演示: 按键盘的上下键来控制小鸟上下移动,碰到管道会大量扣血,但是没有的时候会缓慢回血。 当生命值不是正数的时候,就结束游戏,按下空格可以重新开始。 我的代码如下 我的gitee地址:https://git…

使用wildfly部署项目

WildFly部署项目 一、下载 在浏览器地址栏输入https://www.wildfly.org/,打开WildFly官网,点击other versions选择版本,因为开发环境是jdk1.8,部署环境是Windows,所以这里我选择的是 “Java EE Full & Web Distribution”项…

wildfly安装及基本使用

一.wildfly在linux下的安装 1.下载地址 官网下载地址:https://www.wildfly.org/downloads/ 2.目录介绍 下载好后我们解压出来看一下目录结构: *appclient 里面是一些默认的配置、服务器日志配置等 *bin 里面就是一些可执行的脚本文件,有添…

什么是Wildfly?

WildFly 是一个 Java Enterprise Edition 全功能应用服务器,它提供了运行 Java Web 应用程序所需的所有功能。WildFly 由 Red Hat 设计和维护,正式名称为 JBoss AS。 总体而言,WildFly可以缩短开发时间,更有效地管理资源&#xff…

什么是wildfly

文章目录 什么是wildfly特点下载安装readme及启动命令启动操作总结一下具体步骤(第一版)1.配置环境变量(下载上面有)3、环境变量配好之后,需要为JBOSSt添加用户,调用dos窗口,输入命令2、启动Jboss,在dos窗口…