我是一名计算机科学专业的学生。我需要帮助来解决受约束的归一化二次函数。我熟悉通过提供对称矩阵和向量作为 quadprog matlab 函数的输入来使用 matlab 求解二次约束优化函数。现在,我遇到了另一种形式的二次函数,描述如下:
在哪里是参数向量。是参数的对称正矩阵。 .意思是 . 我不知道如何处理这样的功能。我可以将归一化二次函数重写为二次函数吗?是否有任何教程,任何描述解决此类问题的不同数学步骤的链接,以便进行必要的实施?
谢谢。
我是一名计算机科学专业的学生。我需要帮助来解决受约束的归一化二次函数。我熟悉通过提供对称矩阵和向量作为 quadprog matlab 函数的输入来使用 matlab 求解二次约束优化函数。现在,我遇到了另一种形式的二次函数,描述如下:
在哪里是参数向量。是参数的对称正矩阵。 .意思是 . 我不知道如何处理这样的功能。我可以将归一化二次函数重写为二次函数吗?是否有任何教程,任何描述解决此类问题的不同数学步骤的链接,以便进行必要的实施?
谢谢。
Boyd 和 Vandenberghe 的教科书 Convex Optimization 是一个很好的起点。我强烈建议您获取一份副本(作者在网上发布了一个免费的 .pdf 文件,因此不会花费您任何费用,而且剑桥大学出版社的精装版价格相当合理。)
从 Cholesky 分解您的对称和正定矩阵开始作为
然后把你的问题写成
在哪里
和
.
引入辅助变量,并将问题写为
受制于
在这一点上,你有一个线性目标函数和变量中的一堆线性等式和不等式约束,,, 和. 此外,约束确保和.
唯一困难的部分是双曲线约束
.
自从, 这可以写成
.
凸优化的一个聪明技巧(这是 Boyd 和 Vandenberghe 书中的一个练习)是这个双曲约束可以写成二阶锥约束
至此,您已经有了一个标准的二阶锥规划问题,可以通过各种求解器来求解。
MATLAB 中用于凸优化的 CVX 包可以使用其“quad_over_lin”函数自动为您重新制定。