问题标签 [non-convex]
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.
indexing - Q1 is not convex error while using decision variable in index
In my model, first I calculate the number of ports in which ship drop the cargo
Then I want to use this number as the index of "t",in the form of
I'm faced with
error:5002 q1 is not convex
How I can solve this problem?
python - skimage或python中一般物体凹度的度量
我有一个代码,在某些时候我得到一组二维二进制 numpy 数组来表示主要是椭圆和圆的对象(细胞核)
我需要一个关于边缘有多粗糙(锯齿状)的度量。病理学文献中有核轮廓指数:周长/ sqrt(面积)这是有效的,但在我们的例子中,我们特别需要看看周长有多“粗糙”。椭圆和圆形的核轮廓指数是不同的,即使它们都有光滑的边缘。在我们的例子中,一个带有粗糙边缘的圆比一个带有光滑边缘的椭圆更重要。
我考虑过使用此处解释的凸包:我认为在这种情况下,对于许多小凹度(这对我们来说是重要的情况)和一个主要的凹度(这不是那么重要)来说,度量是否相同,就像图片中一样以下。
我也尝试过openCV,但是我发现很难从数学上理解那里实际发生的事情,它看起来非常像skimage凸面外壳,我更愿意坚持使用skimage
python - 神秘优化器的不收敛
我正在尝试优化功能objective
。
full_constr_data
由 6 类目标组成,每个目标按年份划分,每年由基于项目的数据表示。因此,我通过functionfull_constr_data
的参数对项目进行加权,例如意味着“目标 #0,年份 #2,项目 #3 的加权结果存储在变量中。x
objective
full_constr_data[0][2][3] * x[3]
x[3]
full_constr_data_weighted
下一步是对full_constr_data_weighted
. 例如,将目标 #0、第 2 年的所有项目相加:
full_constr_data_weighted[0][2][0] + full_constr_data_weighted[0][2][1] + ... + full_constr_data_weighted[0][2][n]
其中'n' - 项目总数。数据存储在变量中full_sum
。
之后,我正在计算概率。我从变量中取分位数,constr_mod
并根据该值计算超过分位数的概率。constr_mod
并且full_sum
具有完全相同的结构,但是对于每个目标 # 和接下来的一年 #constr_mode
包含一个值,同时full_sum
具有值向量(分布)。计算出的概率存储到变量my_prob
中。
最后,我总结了my_prob
. 我必须优化这个总和:使其尽可能大(注意return
语句中的减号)。
优化问题有一个不等式约束:obj
加权向量的总和x
应大于 1000。解释obj
为每个项目的 NPV。
我使用diffev2
from package mystic
。
变量full_constr_data
, constr_mod
, pen_mult
,obj
存储在my_data.spydata file
:通过 Google Drive 下载
不幸的是,优化没有收敛:
有什么建议可以解决这个非凸问题吗?
optimization - 哪个求解器可以求解具有二次非凸等式约束的分数线性(成本函数)?
首先,我是优化的菜鸟。我有以下问题:
我有优化vector x=(x1, x2, x3, x4, x5, x6)
。成本函数为:
min. (x3+x4)/x6
约束是:
我最大的问题是为这个问题找到一个合适的解决方案。我已经找到了 Boyd 的分数线性规划的概念:https ://web.stanford.edu/~boyd/cvxbook/bv_cvxslides.pdf (4-20)
但是,它需要线性约束。我还发现了解决二次等式约束问题的启发式方法:https ://pdfs.semanticscholar.org/6008/57c54df025e732238425cf55f55997b4a67c.pdf https://web.stanford.edu/~boyd/papers/pdf/qcqp.pdf
但是,我认为它们不适合将它们与线性分数规划结合起来。
如果有人能提到这个问题的任何解决方案,我会很高兴。
最好的问候狮子座
我试图对不同随机点周围的约束进行线性化,并以最低的成本获得结果。但是,该解不能满足二次等式约束。
optimization - 无法在起点评估约束
我正在将 MINLP 与 NEOS 求解器一起使用,我的问题是非凸的,我明白了
这是什么意思,我该如何解决?
python-3.x - 如何在 Mystic 中应用不等式约束
我正在尝试使用 Mystic 最大化受不平等约束的目标,但我正在努力了解如何应用惩罚约束。这个问题是非凸的,涉及最大化目标,其中只有一个变量会改变 (x)。我正在尝试 Mystic,因为我听说它有利于大规模优化,并且 x 是一个包含数百万个项目(大小 N)的一维数组。
存在三个由数字 a、b 和 c 组成的一维数组,它们都有 N 个值(a 和 b 中的值在 0-1 之间)。x 中的每一项都将大于 >= 0
我已经看到了使用generate_penalty
andgenerate_constraint
函数的示例,并认为我可以使用以下方法实现约束,但没有成功:
一般来说,任何关于如何应用惩罚约束的建议或使用 Mystic 的建议都会受到赞赏。Github 上有很多例子,但很难看出哪一个适合借鉴。我已经使用 SLSQP 实现了 Scipy 最小化的解决方案,但它在所需的规模上太慢了。
optimization - 在 Pytorch 中执行优化时如何对变量应用边界?
我正在尝试使用 Pytorch 进行非凸优化,试图最大化我的目标(因此在 SGD 中最小化)。我想绑定我的因变量 x > 0,并且我的 x 值的总和小于 1000。
我认为我已经以斜坡惩罚的形式正确实施了惩罚,但我正在努力解决 x 变量的边界问题。在 Pytorch 中,您可以使用设置边界,clamp
但在这种情况下似乎不合适。我认为这是因为 optim 需要在引擎盖下释放渐变。完整的工作示例:
任何关于如何强加边界的建议都将受到赞赏,无论是使用钳位还是其他方式。或者一般建议使用 Pytorch 进行非凸优化。这是我正在解决的问题的一个更简单且按比例缩小的版本,因此如果可能的话,我试图找到一个轻量级的解决方案。我正在考虑使用一种解决方法,例如使用指数函数转换 x 变量,但是您必须缩放函数以避免正值变为无限,并且我希望能够设置约束具有一定的灵活性。
optimization - 支持复杂变量的优化建模语言
我正在寻找支持复杂变量(具有实部和虚部的变量)和非线性问题的 Python 优化建模库,例如 CVXPY 和 Pyomo。CVXPY 支持复变量,但不支持约束的非线性函数。另一方面,Pyomo 可以支持非线性问题,但不支持复变量。
总之:我正在研究一个带有一些复杂变量的大规模非线性和非凸优化问题,我正在寻找类似 cvxpy 来解决这些类型的问题。
有什么建议么!谢谢
optimization - 外罚函数法
我正在尝试实现一种外部惩罚函数方法来最小化以下问题。
最小 f(x)=100*(x(2)-x(1)^2)^2+(1-x(1))^2
st, x(1)+2x(2)<=1
2x(1)+x(2)=1
首先,我找到了最小的 using fmincon
,答案是x
:array([ 0.4149, 0.1701])
和f(x)=0.34
.
然后我试图使用我的外部惩罚函数方法的实现来找到最小值。我正在使用这个惩罚函数:
F(x,a)=f(x)+a*(x(1)+2*x(2)-1)^2+a*(2*x(1)+x(2)-1)^ 2
与起点x_0=[1,1]
, a=10
(在每次迭代中 a= a^2) ,这给了我x
:array([ 0.3333, 0.3333])
和f(x)=5.3
.
我的实施中的错误在哪里?谢谢。