栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

CVX用户指南之几何编程模式

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

CVX用户指南之几何编程模式

几何程序(GP)是特殊的数学程序,可以使用变量的变化将其转换为凸形式。GP 的凸形式可以表示为 DCP,但 CVX 还提供了一种特殊模式,允许GP以其原生形式指定。CVX将自动执行必要的转换,计算数值解,并将结果转换回原始问题。

要使用 GP 模式,您必须使用 cvx_begin gp 或 cvx_begin GP 命令开始 CVX 规范,而不是简单地cvx_begin。例如,在示例库中gp/max_volume_box.m 找到以下代码,该代码确定受各种面积和比率约束的最大体积箱子:

cvx_begin gp
    variables w h d
    maximize( w * h * d )
    subject to
        2*(h*w+h*d) <= Awall;
        w*d <= Afloor;
        alpha <= h/w >= beta;
        gamma <= d/w <= delta;
cvx_end

如示例所示,CVX 支持使用加法、乘法、除法(如果适用)和幂来构造单项式和多项式。此外,CVX支持广义几何程序(GGP)的构造,允许使用广义多项式。有关广义几何程序参考教程‎‎。

我们强烈建议使用 Mosek 9.0 或更高版本(包括 CVX 2.2 及更高版本附带的版本)来求解几何程序。它对指数锥的原生支持确保了最佳的可靠性、准确性和速度。对于其他求解器,CVX 必须使用逐次逼近法中描述的逐次逼近技术。这意味着求解GP可能很慢,但对于中小型问题,该方法效果很好。

在本节的其余部分中,我们将介绍在 GP 模式下构造模型时应用的特定规则。

顶级规则

CVX 支持三种类型的几何程序:

  • 最小化问题,由广义多项式目标和零个或多个约束组成。
  • 最大化问题,由项式目标和零个或多个约束组成。
  • 可行性问题,由一个或多个约束组成。

    最小化和最大化之间的不对称性-特别是后者只允许单项式目标-是GP和GGP不可避免的现象。

    约束

    在几何程序中可以指定三种类型的约束:

  • 等式约束,使用 == 构造,其中两边都是单项式。
  • 小于不等式约束<= 其中左侧是广义多项式,右侧是单项式。
  • 大于不等式约束>=,其中左侧是单项式,右侧是广义多项式。

    与DCP一样,不允许使用不相等的约束;虽然严格的不等式<,>得到支持,但它们被视为非严格的不等式,因此应避免。

    表达式

    广义几何编程的基本构建成分是单项式、多项式和广义多项式。有效的单项式是

  • 一个已声明的变量;
  • 两个或多个单项式的乘积;
  • 两个单项式之比;
  • 单项式的实数幂;或
  • 调用以下具有单项式参数的函数之一:prod、cumprod、geo_mean、sqrt。

    有效的多项式是

  • 一个有效的单项式;
  • 两个或多个多项式之和;
  • 两个或多个多项式的乘积;
  • 多项式和单项式之比;
  • 多项式的正整数幂;或
  • 调用以下具有多项式参数的函数之一:sum,cumsum,mean,prod,cumprod。

    有效的广义多项式是

  • 一个有效的多项式;
  • 两个或多个广义多项式之和;
  • 两个或多个广义多项式的乘积;
  • 广义多项式和单项式之比;
  • 广义多项式的正实数幂;或
  • 调用以下具有广义多项式参数的函数之一:sum,cumsum,mean,prod,cumprod,geo_mean,sqrt,norm,sum_largest,norm_largest。

    完全可以在 CVX 中创建和操作单项式、多项式和/或广义多项式数组。例如,两个单项式矩阵的乘积产生一个矩阵,其条目是多项式(或特殊情况下是单项式)。

  • 转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/739073.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号