【凸优化】二次约束二次规划(QCQP)问题转化为二阶锥规划(SOCP)

二次约束二次规划(QCQP)问题的SOCP形式转化

1. 问题描述

1.1. QCQP的一般形式:

min ⁡ 1 2 x ⊤ Q 0 x + c ⊤ x s . t . x ⊤ Q i x + a i ⊤ x ≤ b i , i = 1 , … , m \begin{aligned} \min \quad &\frac{1}{2}\mathbf{x}^{\top}\mathbf{Q}_0\mathbf{x} + \mathbf{c}^{\top}\mathbf{x} \\ \mathrm{s.t.} \quad &\mathbf{x}^{\top}\mathbf{Q}_i\mathbf{x} + \mathbf{a}_i^{\top}\mathbf{x} \leq b_i, \; i = 1, \dots, m \end{aligned} mins.t.21xQ0x+cxxQix+aixbi,i=1,,m

其中, Q 0 ∈ S + + n \mathbf{Q}_0 \in \mathbb{S}^{n}_{++} Q0S++n(表示正定对称矩阵), c ∈ R n \mathbf{c} \in \mathbb{R}^n cRn Q i ∈ S + + n \mathbf{Q}_i \in \mathbb{S}^{n}_{++} QiS++n a i ∈ R n \mathbf{a}_i \in \mathbb{R}^n aiRn b i ∈ R ( i = 1 , … , m ) b_i \in \mathbb{R} (i = 1, \dots, m) biR(i=1,,m)

1.2. SOCP的一般形式:

min ⁡ c ⊤ x s . t . ∥ A i x + b i ∥ 2 ≤ c i ⊤ x + d i , i = 1 , … , m \begin{aligned} \min \quad &\mathbf{c}^{\top} \mathbf{x} \\ \mathrm{s.t.} \quad & \left\|\mathbf{A}_i \mathbf{x} + \mathbf{b}_i\right\|_2 \leq \mathbf{c}_i^{\top} \mathbf{x} + d_i, i = 1, \dots, m \end{aligned} mins.t.cxAix+bi2cix+di,i=1,,m

2. 目标函数的配方

QCQP的目标函数 1 2 x ⊤ Q x + c ⊤ x \frac{1}{2}\mathbf{x}^{\top}\mathbf{Qx} + \mathbf{c}^{\top}\mathbf{x} 21xQx+cx是二次的,我们可以对其进行配方。
首先由Cholesky分解将矩阵 Q \mathbf{Q} Q分解为 Q = ( Q 1 2 ) ⊤ Q 1 2 \mathbf{Q}=\left( \mathbf{Q}^{\frac{1}{2}} \right) ^{\top}\mathbf{Q}^{\frac{1}{2}} Q=(Q21)Q21

1 2 x ⊤ Q 1 2 Q 1 2 x + c ⊤ x \frac{1}{2}\mathbf{x}^{\top}\mathbf{Q}^{\frac{1}{2}}\mathbf{Q}^{\frac{1}{2}}\mathbf{x} + \mathbf{c}^{\top}\mathbf{x} 21xQ21Q21x+cx

接下来的步骤类似一元函数的配方:
1 2 x ⊤ Q 1 2 Q 1 2 x + c ⊤ x = 1 2 ( x ⊤ Q 1 2 Q 1 2 x + 2 c ⊤ x ) = 1 2 ∥ Q 1 2 x + Q − 1 2 c ∥ 2 2 − 1 2 ∥ Q − 1 2 c ∥ 2 \begin{aligned} &\frac{1}{2}\mathbf{x}^{\top}\mathbf{Q}^{\frac{1}{2}}\mathbf{Q}^{\frac{1}{2}}\mathbf{x}+\mathbf{c}^{\top}\mathbf{x} \\ =&\frac{1}{2}\left( \mathbf{x}^{\top}\mathbf{Q}^{\frac{1}{2}}\mathbf{Q}^{\frac{1}{2}}\mathbf{x}+2\mathbf{c}^{\top}\mathbf{x} \right) \\ =&\frac{1}{2}\left\| \mathbf{Q}^{\frac{1}{2}}\mathbf{x}+\mathbf{Q}^{-\frac{1}{2}}\mathbf{c} \right\| _{2}^{2}-\frac{1}{2}\left\| \mathbf{Q}^{-\frac{1}{2}}\mathbf{c} \right\| ^2 \end{aligned} ==21xQ21Q21x+cx21(xQ21Q21x+2cx)21 Q21x+Q21c 2221 Q21c 2

由于 ∥ Q − 1 2 c ∥ 2 \left\| \mathbf{Q}^{-\frac{1}{2}}\mathbf{c} \right\| ^2 Q21c 2是常数,因此最小化原目标函数等价于最小化下述二范数(注意此处没有平方):
∥ Q 1 2 x + Q − 1 2 c ∥ 2 \left\| \mathbf{Q}^{\frac{1}{2}}\mathbf{x} + \mathbf{Q}^{-\frac{1}{2}}\mathbf{c} \right\|_2 Q21x+Q21c 2

3. 约束条件的配方

类似地,我们对约束条件也进行配方处理。原始的约束条件为:
x ⊤ Q i x + a i ⊤ x ≤ b i \mathbf{x}^{\top}\mathbf{Q}_i\mathbf{x} + \mathbf{a}_i^{\top}\mathbf{x} \leq b_i xQix+aixbi

仿照上述对目标函数的配方方法,我们将其进行配方与整理,可以得到以下约束:
∥ Q i 1 2 x + Q i − 1 2 a i ∥ 2 2 ≤ a i ⊤ Q i − 1 a i + b i \left\| \mathbf{Q}_i^{\frac{1}{2}}\mathbf{x} + \mathbf{Q}_i^{-\frac{1}{2}}\mathbf{a}_i \right\|_2^2 \leq \mathbf{a}_i^{\top}\mathbf{Q}_i^{-1}\mathbf{a}_i + b_i Qi21x+Qi21ai 22aiQi1ai+bi

假设不等号右边大于等于0,那么该约束等价于
∥ Q i 1 2 x + Q i − 1 2 a i ∥ 2 ≤ a i ⊤ Q i − 1 a i + b i \left\| \mathbf{Q}_{i}^{\frac{1}{2}}\mathbf{x}+\mathbf{Q}_{i}^{-\frac{1}{2}}\mathbf{a}_i \right\| _2\le \sqrt{\mathbf{a}_{i}^{\top}\mathbf{Q}_{i}^{-1}\mathbf{a}_i+b_i} Qi21x+Qi21ai 2aiQi1ai+bi

4. 问题形式的转换

通过上述处理,我们可以将原始的QCQP问题转换为如下形式:
min ⁡ ∥ Q 1 2 x + Q − 1 2 c ∥ 2 s . t . ∥ Q i 1 2 x + Q i − 1 2 a i ∥ 2 ≤ a i ⊤ Q i − 1 a i + b i , i = 1 , … , m \begin{aligned} \min &\left\| \mathbf{Q}^{\frac{1}{2}}\mathbf{x} + \mathbf{Q}^{-\frac{1}{2}}\mathbf{c} \right\|_2 \\ \mathrm{s.t.} \quad &\left\| \mathbf{Q}_i^{\frac{1}{2}}\mathbf{x} + \mathbf{Q}_i^{-\frac{1}{2}}\mathbf{a}_i \right\|_2 \leq \sqrt{\mathbf{a}_{i}^{\top}\mathbf{Q}_{i}^{-1}\mathbf{a}_i+b_i}, \; i = 1, \dots, m \end{aligned} mins.t. Q21x+Q21c 2 Qi21x+Qi21ai 2aiQi1ai+bi ,i=1,,m

为了进一步简化问题,我们引入辅助变量 t ∈ R t \in \mathbb{R} tR,那么上述优化问题可以进一步转化为
min ⁡ t s . t . ∥ Q 1 2 x + Q − 1 2 c ∥ 2 ≤ t ∥ Q i 1 2 x + Q i − 1 2 a i ∥ 2 ≤ a i ⊤ Q i − 1 a i + b i , i = 1 , … , m \begin{aligned} \min \quad &t \\ \mathrm{s.t.} \quad &\left\| \mathbf{Q}^{\frac{1}{2}}\mathbf{x} + \mathbf{Q}^{-\frac{1}{2}}\mathbf{c} \right\|_2 \leq t \\ &\left\| \mathbf{Q}_i^{\frac{1}{2}}\mathbf{x} + \mathbf{Q}_i^{-\frac{1}{2}}\mathbf{a}_i \right\|_2 \leq \sqrt{\mathbf{a}_{i}^{\top}\mathbf{Q}_{i}^{-1}\mathbf{a}_i+b_i}, \; i = 1, \dots, m \end{aligned} mins.t.t Q21x+Q21c 2t Qi21x+Qi21ai 2aiQi1ai+bi ,i=1,,m

通过引入上述辅助变量和配方处理,我们成功地将QCQP问题转换为SOCP问题:
min ⁡ c s o c p ⊤ x s o c p s . t . ∥ A i x + b i ∥ 2 ≤ c i ⊤ x + d i , i = 1 , … , m \begin{aligned} \min \quad &\mathbf{c}_{socp}^{\top} \mathbf{x}_{socp} \\ \mathrm{s.t.} \quad & \left\|\mathbf{A}_i \mathbf{x} + \mathbf{b}_i\right\|_2 \leq \mathbf{c}_i^{\top} \mathbf{x} + d_i, i = 1, \dots, m \end{aligned} mins.t.csocpxsocpAix+bi2cix+di,i=1,,m

其中:
c s o c p = [ 0 ⋯ 0 1 ] ⊤ , x s o c p = [ x t ] , A 1 = [ Q 1 2 0 0 1 ] , b 1 = Q − 1 2 c , c 1 = [ 0 ⋯ 0 1 ] ⊤ , d 1 = 0 , A i + 1 = [ Q i 1 2 0 0 1 ] , b i + 1 = Q i − 1 2 a i , c i + 1 = 0 , d i + 1 = a i ⊤ Q i − 1 a i + b i . \begin{aligned} &\mathbf{c}_{socp}=\left[ \begin{matrix} 0& \cdots& 0& 1\\ \end{matrix} \right] ^{\top}, \\ &\mathbf{x}_{socp} = \left[ \begin{array}{c} \mathbf{x} \\ t \end{array} \right] , \\ &\mathbf{A}_1=\left[ \begin{matrix} \mathbf{Q}^{\frac{1}{2}}& \mathbf{0}\\ \mathbf{0}& 1\\ \end{matrix} \right] , \mathbf{b}_1=\mathbf{Q}^{-\frac{1}{2}}\mathbf{c}, \mathbf{c}_1=\left[ \begin{matrix} 0& \cdots& 0& 1\\ \end{matrix} \right] ^{\top}, d_1=0, \\ &\mathbf{A}_{i+1}=\left[ \begin{matrix} \mathbf{Q}_{i}^{\frac{1}{2}}& \mathbf{0}\\ \mathbf{0}& 1\\ \end{matrix} \right] , \mathbf{b}_{i+1}=\mathbf{Q}_{i}^{-\frac{1}{2}}\mathbf{a}_i, \mathbf{c}_{i+1}=\mathbf{0}, d_{i+1}=\sqrt{\mathbf{a}_{i}^{\top}\mathbf{Q}_{i}^{-1}\mathbf{a}_i+b_i}. \end{aligned} csocp=[001],xsocp=[xt],A1=[Q21001],b1=Q21c,c1=[001],d1=0,Ai+1=[Qi21001],bi+1=Qi21ai,ci+1=0,di+1=aiQi1ai+bi .

更多的问题转换可见论文:https://web.stanford.edu/~boyd/papers/pdf/socp.pdf

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

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

相关文章

移除链表元素 - 力扣(LeetCode)

203. 移除链表元素 - 力扣(LeetCode) /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* removeElements(struct ListNode* head, int val) {struct ListNode* cur hea…

ubuntu c++ nginx ffmpeg 推流海康摄像头视频

环境:Ubuntu18.04 使用到的库:nginx,ffmpeg 外设:海康任一款摄像头,分辨率:1280*720 Ubuntu c 海康sdk获取原始码流,使用ffmpeg编码推流到nginx服务器,使用vlc即可拉到rtmp图像&a…

别再只知道埋头苦学python了!!学了python后月入1w不在话下,不准你还不知道!!!

在Python接单的过程中,掌握一些技巧、注意相关事项以及选择合适的接单平台是非常重要的 一、Python接单要注意哪些 报酬问题:在接单前,务必明确客户所说的报酬是税前还是税后,以避免后期产生纠纷。时间管理:不要与客户…

Nginx 如何处理 WebSocket 连接?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会! 文章目录 Nginx 如何处理 WebSocket 连接?一、WebSocket 连接简介二、Nginx 处理 WebSocket 连接的基本原理三、配置 Nginx 支持 WebSocket 连接四、Nginx 中的…

【启明智显分享】甲醛检测仪HMI方案:ESP32-S3方案4.3寸触摸串口屏,RS485、WIFI/蓝牙可选

今年,“串串房”一词频繁引发广大网友关注。“串串房”,也被称为“陷阱房”“贩子房”——炒房客以低价收购旧房子或者毛坯房,用极度节省成本的方式对房子进行装修,之后作为精修房高价租售,因甲醛等有害物质含量极高&a…

LeetCode-day23-3098. 求出所有子序列的能量和

LeetCode-day23-3098. 求出所有子序列的能量和 题目描述示例示例1:示例2:示例3: 思路代码 题目描述 给你一个长度为 n 的整数数组 nums 和一个 正 整数 k 。 一个 子序列的 能量 定义为子序列中 任意 两个元素的差值绝对值的 最小值 。 请…

“从爱好者到职业画师:一位AI绘画践行者的赚钱实战秘籍“

🎨 【引子:AI绘画:艺术与科技的交汇】 在数字化浪潮席卷全球的今天,人工智能技术以其颠覆性的力量,正悄然改写着艺术创作的传统版图。当AI与绘画碰撞交融,诞生出一种全新的艺术形式——AI绘画。它不仅是科…

别只盯着苹果了,华为Mate70也有AI技术,听说效果让人直接惊呼

随着人工智能技术的不断进步,智能手机行业也迎来了前所未有的变革。苹果、三星等国际知名手机厂商纷纷在新品发布会上重点展示其手机的AI技术,而华为作为中国科技的领军企业,其在AI领域的成就同样不容小觑。 华为Mate系列作为其旗舰系列&…

科研绘图系列:R语言组合热图和散点图

介绍 热图展示参与者的属性,散点图表示样本的时间跨度。 加载R包 library(tidyverse) library(ComplexHeatmap) library(circlize) library(cowplot)导入数据 数据可从以下链接下载(画图所需要的所有数据): 百度云盘链接: https://pan.baidu.com/s/1iEE9seTLdrrC3WDHJy…

计算机网络基础:3.DNS服务器、域名分类

一、DNS服务器 DNS服务器在网络中的作用类似于餐厅中的“顾客座位对照表”,它帮助前台(路由器)将顾客(用户)的请求转发到正确的餐桌(目标设备)。 (1)概念与原理 DNS的基本概念 DNS&…

ansible的role用法

目录 目录结构介绍案例 目录结构介绍 可以通可以通过使用 ansible-galaxy 命令再当前目录自动生成 role 的基本目录结构。 myrole为文件名(角色名) ansible-galaxy init myrole如果没有安装Ansible Galaxy,你可以使用以下命令安装&#xff…

Gson的基本使用:解析Json格式数据 序列化与反序列化

目录 一,Gson和Json 1,Gson 2,Json 3,Gson处理对象的几个重要点 4,序列化和反序列化 二,Gson的使用 1,Gson的创建 2,简单对象序列化 3,对象序列化,格…

C++学习笔记-友元函数的定义与使用

一、引言 在C中,友元函数(Friend Function)是一个独特而强大的特性,它打破了类的封装性,允许一个或多个非成员函数访问类的私有(private)和保护(protected)成员。尽管这…

Springboot+Maven多模块项目开发

SpringbootMaven多模块项目开发 前言示例项目建设Parent项目Common模块ModuleOne模块特别说明 参考: 前言 1.多模块项目的好处: 代码复用 一个后端项目的entity、dao、service代码需要用到前端服务,还需要用到后台管理,通过多模…

Wordpress安装到win10(2024年7月)

目录 1.wordpress介绍 2下载应用 2.1.wordpress 2.2XAMPP 2.3 PHPmyadmin 3.配置应用 3.1XAMPP进程 3.2 文件配置 3.3 phpmyadmin配置 4.配置网页 4.1 数据库创建 4.2 安装wordpress 5.进入面板 6.总结 1.wordpress介绍 WordPress是一个开源内容管理系统&#xff0…

Java台球厅助教教练预约上门到店系统源码

🎱一杆在手,天下我有!台球助教教练预约系统,让球技飙升不是梦🚀 🎯【开篇:台球爱好者的福音来啦!】🎯 还在为找不到合适的台球教练而烦恼吗?或是想要在家就…

Django Nginx + uWSGI 安装配置

Django Nginx + uWSGI 安装配置 本文将详细介绍如何在Linux服务器上安装和配置Django、Nginx和uWSGI。这些技术通常一起使用来部署高性能的Django应用程序。我们将分步骤进行,确保您能够顺利地完成整个过程。 1. 安装Python和pip 在开始之前,请确保您的系统上安装了Python…

【C#学习笔记】数组

在C#中,数组是一种数据结构,用于存储一系列相同类型的元素。数组在C#中非常常见,因为它们提供了高效的数据存储和访问方式。下面,我将从基础概念到高级用法,为您详细解释C#中的数组。 基础概念 定义: 数组…

抽象代数精解【4】

文章目录 子群难点与例子中心化子与正规化子定义性质与正规化子的关系应用 det概述两个矩阵乘积的行列式等于这两个矩阵行列式的乘积 参考文献 子群 难点与例子 在 z 10 中,令 H { 2 ˉ , 4 ˉ , 6 ˉ , 8 ˉ } , 证明: H 中关于剩余类的乘法构成群&am…

社交圈子聊天交友系统搭建社交app开发:陌生交友发布动态圈子单聊打招呼群聊app介绍

系统概述 社交圈子部天交友系统是一个集成即时通讯、社区互动、用户管理等功能的在线社交平台。它支持用户创建个人资料,加入兴趣围子,通过文字、图片、语音、视频等多种方式进行交流,满足用户在不同场景下的社交需求 核心功能 -,…