问题标签 [convex-optimization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
448 浏览

python - CVXOPT L1 范数逼近 - ldB 的非法值

按照此处给出的 L1 范数近似示例,使用以下代码,

一切正常。

但是,当我将m更改为小于n时,

我收到以下错误:

我可以看到该错误是由 L1.py:180 中的以下语句引起的:

并进一步深入到 lapack.c:3651,以下语句会引发错误:

但是,当我阅读有关cvxopt.lapack.gels 的 CVXOPT 的 LAPACK 接口的文档时,它特别指出,当m小于n时,它解决了最小范数问题。

谁能解释为什么m小于n不起作用?

0 投票
1 回答
947 浏览

python - 具有 N 个变量的 CVXPY 约束

试图找出一种方法来编写一个带有 N 变量的约束,以在适合此的CVXPY上使用:

所有变量对象都被实例化并存储在一个列表中。

0 投票
0 回答
234 浏览

python - 在具有复系数的python中使用cvxopt进行凸优化

我正在尝试解决一个凸优化问题,其中系数可能很复杂。cvxopt QP 中的本机实现似乎不支持这一点。我总是收到以下错误:

TypeError: 'q' 必须是一列的 'd' 矩阵

这是示例代码。

有没有办法解决这个问题?谢谢

0 投票
1 回答
1377 浏览

python - 解决 SVM 对偶时出现 CVXPY 错误“不能将两个非常数相乘”

我正在尝试用 CVXPY 解决 SVM 对偶问题。

对偶问题的公式

下面是 Python 代码:

我收到错误:

似乎 cvxpy 不能支持内核矩阵的二次形式优化。但是,我看到有人在 Matlab 中使用 cvx 解决了本演示文稿第 13(35) 页上的相同问题:

http://users.isy.liu.se/en/rt/schon/CourseMLlund/le5.pdf

我对 cvx 很陌生。请帮我纠正这个。谢谢。

0 投票
2 回答
6205 浏览

matlab - 如何检查成本函数是凹函数还是凸函数?

自组织地图成本函数

我如何检查这个成本函数是凹的还是凸的?我还想知道这是否有一个或多个最小值。

努力;

我在上面的代码中尝试做的是获取一个随机权重值作为上述成本函数的输入,然后使用不变的样本计算这些随机输入的成本值,如果我找到多个最小成本,那么确认我的成本函数不是凸的。

我的代码与我在问题中发布的成本函数略有不同,因为我有额外的输入。作为我的实现的输出,我有针对我的样本的不同权重的成本值,现在我无法将其可视化。

0 投票
1 回答
66 浏览

matlab - 在 MATLAB 中使用可变数量的输入函数进行优化

我从以下简单的优化问题开始:

F=@(L) max(-[log(L(1)/(L(1)+1)) log(L(2)/(L(2)+1))+log(1-L(1)) log(L(3)/(L(3)+1))+log(1-L(1))+log(1-L(2))]); [L,fval]=fmincon(F,[0.5 0.5 0.5],[],[],[],[],[0;0;0],[1;1;1])

这给出了答案:L = 0.2554 0.3759 0.7785fval = 1.5925

但是,我需要可变数量的输入函数Objin max(-[Obj])。在上面的例子中,我有三个功能,即

Obj=log(L(1)/(L(1)+1)) log(L(2)/(L(2)+1))+log(1-L(1)) log(L(3)/(L(3)+1))+log(1-L(1))+log(1-L(2))

我使用以下代码生成Obj其中函数数量取决于M.

这与上面的示例完全相同Obj,但是当我将其传递Obj给以下优化函数时,它不支持。

有人可以帮我解决这个问题吗?因为M可以变化超过20个。很难手动输入所有功能。

0 投票
1 回答
1649 浏览

convex-optimization - 最小化cvxpy中的日志功能

我正在尝试使用 CVXPY 模拟精确的线搜索实验。

(cvxbook byod pg472) 在此处输入图像描述

上面的方程是我的输入目标函数。

梯度函数

使用它通过最小化目标函数来查找 t“步长”会导致错误“AddExpression”对象没有属性“log”。

我是 CVXPY 和优化的新手。如果有人可以指导如何修复错误,我将不胜感激。

谢谢

0 投票
2 回答
1731 浏览

r - 最小化受范数不等式约束的二次函数

我正在尝试解决以下不等式约束:

给定 N 个股票的时间序列数据,我试图构建一个投资组合权重向量以最小化收益的方差。

目标函数:

其中w是权重向量,\sum是协方差矩阵,e_{n}^{T}是 1 的向量,C是常数。其中第二个约束 ( \left \| w \right \|) 是不等式约束(权重的 2 范数)。

我尝试使用该nloptr()函数,但它给了我一个错误:提供的算法不正确。我不确定如何选择正确的算法,也不确定这是否是解决此不等式约束的正确方法。

只要能解决这个限制,我也愿意使用其他功能。

这是我尝试的解决方案:

0 投票
0 回答
267 浏览

java - 凸包优化 Java

我最近阅读了PEG Wiki上关于凸包技巧的文章。令人惊讶的是,在文章的最后,我读到如果我们将这些行存储在 std::set 中,我们可以实现该技巧的完全动态变体(意味着没有适用条件)。虽然我已经理解了提到的方法,但是当我尝试实现它时总是失败。
换句话说,有一个大小为 n 的数组 A,其中每个数组元素包含两个正整数 ai 和 bi。
有 Q 查询,其中每个查询可以是以下两种类型之一:

1) 给定一个正整数 x,找出max (aix + bi)从 1 到 n 的所有 i

2) 更新一些 i 的 ai 和 bi 的值。

要更新的值将按非递减顺序,即ai1>=ai2 and bi1>=bi2 for Q >= i1 > i2 >= 1.
可以通过删除前一行并添加新行来执行更新部分。我正在寻找更新和查询部分以了解 Java 中的摊销(log n)复杂性

0 投票
0 回答
1663 浏览

apache-spark - Spark中具有任意约束的线性程序?

我有一个问题可以表述为具有线性目标函数和线性等式和不等式约束的凸优化问题,但具有大量参数。我可以在合理的时间内在一台机器上解决这个问题,但需要几十万个参数,但不是我需要的几百万。

我看到 Aaron Staple/Databricks 已经在 Spark 中实现了 Matlab TFOCS 库的某些部分,但我看到的唯一示例解决了具有规范约束的无约束凸优化或线性程序(Ax = b,x >= 0,对于标量矩阵 A,标量向量 b,x 是要优化的参数向量)。但我需要解决具有任意线性等式和线性不等式约束的线性程序。

有人知道我缺少的 Spark TFOCS 中是否有可以解决我的问题的功能吗?使用可用的 Spark 工具解决此问题的其他方法?