理论分享|拉格朗日对偶及KKT条件推导速学

news2024/12/24 8:36:49

目录

1 主要内容

2 问题提出

3 对偶推导

4 KKT条件


主要内容

在电力系统优化过程中,风光等分布式能源出力和负荷的不确定性(即源荷不确定性)形成了电力系统方向的研究热点,每个研究人员都试图通过自己的方法将研究推进的更深入一些,在理论研究的深层次上,离不开鲁棒优化,包括两阶段鲁棒优化、分布鲁棒优化算法等,鲁棒优化的基础知识是拉格朗日对偶和KKT条件,给大家推荐个课程——凌青老师的《凸优化》,该课程系统性讲解了凸优化的内容,课时很长,有时间的同学跟着学习一遍一定受益匪浅,本次分享拉格朗日乘子法与KKT条件推导过程以及编程心得,希望能让大家能够快速掌握该部分内容。

问题提出

  1. 上述处理有约束的问题采用构建拉格朗日函数的方式,即在原问题后加上拉格朗日乘子/影子价格与约束的乘积,上述问题是等式约束,非等式约束也适用。
  2. 大家不要简单理解为两者是等价关系,该处理方式只是原问题向拉格朗日函数转化的过程,通过后续的对偶及kkt条件才能形成等价关系。

对偶推导

  1. 上面通过对拉格朗日函数的进一步处理明确了对偶问题的最优解是原问题最优解的下界。
  2. 这里引出一下强对偶和弱对偶定义。

3.我们在模型求解过程中都希望是强对偶,那么如何确定是否是强对偶呢?

具体仿射约束在凌青的课程里有详细的讲解,由于理论用到的不多,在此不再赘述,这个理论厘清了模型中的一些问题,我们电力专业研究中所遇到的大部分模型都满足强对偶条件,线性规划和二次规划都是强对偶,唯一需要重视的是01变量的问题,含01变量的问题不满足强对偶条件,需要通过其他理论知识进行转化,如通过多阶段优化将01变量放在某个前置阶段进行分析,很多文章都是采用这种处理方式, 很多同学有疑问两阶段鲁棒优化中不确定集一般都是含有01变量的,会不会影响问题的强对偶性质,这个问题留给大家思考。

KKT条件

在文献《Solving two-stage robust optimization problems using a column-and-constraint generation method》也有关于KKT条件的表达。

上述是通过KKT条件将原问题转化为对偶问题,因为涉及非线性处理,还需要引入大M法进一步处理。

之前在求解两阶段鲁棒优化过程中采用KKT条件转化对偶问题【CCGKKT】两阶段鲁棒优化编程指引,参考代码如下所示。

子问题SP部分代码:

%设置变量
xs=sdpvar(312,1,'full');%二阶段变量
ts=sdpvar(144,1,'full');
lam=sdpvar(1728,1,'full');
v1=binvar(1728,1,'full');
v2=binvar(456,1,'full');
Z=binvar(48,1,'full');%不确定变量
%%--------------约束条件-------------
PDN1;
mm=100000;
xr=[xs;ts];
br=[Ar,zeros(1,144)]';
Qr=[Q1 P1;
    -Q1 -P1;
    zeros(528,312) -Q2;
    zeros(288,312) -Q3;
    -Q4 zeros(144,144)
    -Q5 zeros(72,144)
    -Q6 zeros(24,144)
    -Q7 zeros(72,144)
    eye(312) zeros(312,144)
    ];
Gr=[G1;-G1;-G2;-G3;-G4;-G5;-G6-T6*Z;-G7;zeros(312,1)];
cons2=[];
%-----------问题约束----------
cons2=[cons2,Qr*xr>=Gr];%公式16
cons2=[cons2,Qr'*lam<=br];%公式17
cons2=[cons2,Qr*xr-Gr<=mm.*(1-v1),lam<=mm.*v1];%公式18 大M
cons2=[cons2,br-Qr'*lam<=mm.*(1-v2),xr<=mm.*v2];%公式19 大M
cons2=[cons2,lam>=0];
%不确定变量约束
T1=[eye(24) eye(24)];
cons2=[cons2,T1*Z<=1];
% cons2=[cons2,sum(Z)<=8];

fsp=br'*xr+Ap*Z+Ccur*sum(Aw);  %原问题目标函数

有兴趣的同学可以将KKT条件和强对偶转化方式进行对比,进一步研究两种方法异同和各自优势。

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

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

相关文章

Kubernetes 部署DolphinScheduler 创建租户失败

创建租户 报错创建租户失败。后台日志如下 源代码跟踪 org.apache.dolphinscheduler.api.service.impl.TenantServiceImpl / if hdfs startup if (PropertyUtils.getResUploadStartupState()) {createTenantDirIfNotExists(tenantCode); }需要将 resource.storage.type 置为…

【LeetCode: 2811. 判断是否能拆分数组】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

js加密解决方案1:在AutoJS中实现Promise的必要性、好处与缺点

AutoJS是一款强大的Android自动化工具&#xff0c;可以帮助用户编写脚本来实现手机自动化操作。然而&#xff0c;它的加密代码只支持ES5语法&#xff0c;不支持许多ES6的新特性&#xff0c;如Promise等功能。如果想在ES5语法环境中使用ES6的一些新特性&#xff0c;就需要自己实…

LeetCode--HOT100题(30)

目录 题目描述&#xff1a;24. 两两交换链表中的节点&#xff08;中等&#xff09;题目接口解题思路代码 PS: 题目描述&#xff1a;24. 两两交换链表中的节点&#xff08;中等&#xff09; 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节…

二分查找理论Binary Search代码实现及P1102 A-B 数对

二分查找 在一个1&#xff5e;n的递增序列中&#xff0c;怎么用二分查找数字x的下标&#xff1f; 在一个没用重复元素的递增序列中&#xff0c;用二分查找的方法最多需要查找log(n)次&#xff0c;也就是在一个区间内l&#xff5e;r不断的选取中间下标(mid)&#xff0c;直到mi…

maven如何建立JavaWeb项目并连接数据库,验证登录

这里是建立建立web项目&#xff1a;Maven如何创建Java web项目&#xff08;纯干货版&#xff09;&#xff01;&#xff01;&#xff01;_明天更新的博客-CSDN博客 我们主要演示如何连接数据库验证登录。 1.在webapp目录下创建我们的登录页面&#xff1a;index.jsp 还需要再…

生信豆芽菜-单基因与免疫浸润的关系

网址&#xff1a;http://www.sxdyc.com/panCancerImmuInfil 该工具主要用于查看单基因在泛癌中与免疫细胞评分的相关性 提交后等待运行成功即可&#xff0c;还可以关注&#xff1a;豆芽数据分析

Modbus工业RFID设备在自动化生产线中的应用

传统半自动化生产线在运作的过程&#xff0c;因为技工的熟练程度&#xff0c;专业素养的不同&#xff0c;在制造过程中过多的人为干预&#xff0c;工厂将很难对每条生产线的产能进行标准化管理和优化。如果半自动化生产线系统是通过前道工序的作业结果和检测结果来决定产品在下…

MySQL事务隔离级别、锁机制、三大范式

目录 一、事务 1.概念 2.事务的特性 3.并发带来的问题 4.事务的隔离级别 二、锁机制 1.什么是锁 2.MySQL锁分类 3.乐观悲观锁 4.共享排它锁 5.意向锁 6.粒度锁 三、三大范式 1.第一范式 2.第二范式 3.第三范式 一、事务 1.概念 事务是逻辑上的一组操作&#xf…

XXL-JOB任务调度平台的安装使用教程(保姆级教程)

首先从GitHub上面将项目clone下来。 GitHub地址&#xff1a;https://gitee.com/xuxueli0323/xxl-job.git 下载好之后&#xff0c;然后通过IDEA打开&#xff0c;将Maven编译好后项目结构如下 在数据库中运行这个SQL文件 &#xff0c;将基础表创建出来。就可以得到左边图中那些表…

P12-Retentive NetWork-RetNet挑战Transformer

论文地址:https://arxiv.org/abs/2307.08621 目录 Abstract 一.Introduction 二.Retentive Networks 2.1Retention 2.2Gated Multi-Scale Retention 2.3Overall Architecture of Retention Networks 2.4Relation to and Differences from Previous Methods 三.Experime…

并发编程的艺术-“程”:探索进程、线程、协程、纤程与管程

一、并发中的程 在计算机科学领域&#xff0c;处理多任务和并发执行是一项重要的挑战。为了解决这个问题&#xff0c;出现了多种并发模型和概念&#xff0c;包括进程、线程、协程、纤程和管程。本文将深入探讨这些并发概念&#xff0c;帮助读者理解它们的原理、特点和应用场景…

ABeam×Startup丨德硕管理咨询(深圳)创新研究团队前往灵境至维·既明科技进行拜访交流

近日&#xff0c;德硕管理咨询&#xff08;深圳&#xff09;&#xff08;以下简称“ABeam-SZ”&#xff09;创新研究团队一行前往灵境至维既明科技有限公司&#xff08;以下简称“灵境至维”&#xff09;进行拜访交流&#xff0c;探讨线上虚拟空间的商业模式。 现场合影 &…

PMP备考指南来啦!

第一步&#xff1a;通读教材&#xff0c;了解学习内容 在正式开始课程的学习前&#xff0c;可以先快速简单地阅览一遍教材&#xff08;PMBOK&#xff09;&#xff0c;在较短的时间内知道自己将要学习的是什么内容&#xff1b;同时可以标记出难理解的知识点。这样做有以下两个好…

CHATGPT源码简介与使用指南

CHATGPT源码的基本介绍 CHATGPT源码备受关注&#xff0c;它是一款基于人工智能的聊天机器人&#xff0c;旨在帮助开发者快速搭建自己的聊天机器人&#xff0c;无需编写代码。下面是对CHATGPT搭建源码的详细介绍。 CHATGPT源码的构建和功能 CHATGPT源码是基于Google的自然语言…

【实用干货】3个技巧 - 教你怎么提取公众号封面图!

平时刷公众号的时候遇到自己喜欢的封面&#xff0c;怎么撸过来呢&#xff1f;小埋教大家几个比较实用的方法。 1.135编辑器提取 也是小埋酱经常用的工具&#xff0c;因为平时码字的时候是用的135&#xff0c;所以用起来比较方便&#xff0c;不光光是公众号、视频、音频、视频号…

【腾讯云 TDSQL-C Serverless 产品体验】 使用 Python 向 TDSQL-C 添加读取数据 实现词云图

文章目录 前言学到什么?准备工作申请TDSQL数据库1. 点击登录腾讯云2. 点击立即选购 ,如下图所示3. 选购页面中的数据库配置选项如下4. 基础信息5. 配置完成后点击 右下角的立即购买即可6. 点击立即购买后会有弹窗如下, 再次点击7. 购买完成后 , 会出现弹窗 , 点击前往管理页面…

SD卡相关资料

STM32429I-EVAL1 正点原子 ALIENTEK探索者STM32F4、ALIENTEK战舰STM32F1 V3 野火 野火STM32F103-V2霸道 中科蓝汛 AB5322B QFN32内部软开关蓝牙音箱

ppt怎么转pdf文件?这几种方法搞定

ppt怎么转pdf文件&#xff1f;将ppt转为pdf可以让你更方便地分享你的演示文稿&#xff0c;无论你的观众使用的是什么设备或操作系统&#xff0c;他们都可以轻松地查看你的演示文稿。此外&#xff0c;将ppt转为pdf还可以防止其他人修改你的文稿&#xff0c;保证了你的演示文稿的…

Vue-打印组件页面

场景: 需要将页面的局部信息打印出来&#xff0c;只在前端实现&#xff0c;不要占用后端的资源。经过百度经验&#xff0c;决定使用 print-js和html2canvas组件。 1. 下载包 npm install print-js --save npm install --save html2canvas 2. 组件内引用 <script>impo…