问题标签 [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.
cplex - CPLEX 障碍方法迭代限制
我正在尝试解决 CPLEX 上的非凸二次优化问题,将最优目标设置为 2。尝试使用不同的数据集时,我观察到障碍法在第 500 次迭代时停止。我检查了设置,它设置为一个非常大的数字。这是巧合还是我应该更改任何其他设置?
我也有这个问题的凸二次版本,带有二进制变量。但是,CPLEX 无法在数小时内找到改进的解决方案,因此我终止了运行。对此的任何调整建议也值得赞赏。注:该问题是设施布局优化问题
提前致谢。
python - 如何使用 pyomo multistart 定义“可执行”求解器路径
我有一个非线性最小化问题,显然是非凸性的。我将 Pyomo 框架用于能源系统运行优化模型,其中需要在连续几个小时内评估一次配置的优化模型(我在开始时创建优化问题,为特定系统定义变量、约束和目标函数,然后我试图解决这个为“模拟”时间框架(例如,给定年份中的每个小时)创建的设置,只改变能源需求参数,......最小化运营成本)。我注意到在一些随机的时间里找不到最佳值。在大多数这些失败的情况下,我得到“达到最大迭代次数”,有时是“恢复失败”的结果。
为了克服这个问题,我想使用 Pyomo “pyo.Solverfactory('multistart').solve(model)
),默认情况下使用 IPOPT 求解器。我以前也一直在使用它,但后来我有了语法:
pyo.Solverfactory('ipopt', executable=...ipopt.exe)
在这个使用 multistart 的新案例中,虽然我无法为 IPOPT 求解器定义可执行文件。您能帮我解决这个问题吗?(...或建议替代 multistart 以克服非凸最小化的起点问题)
到目前为止,我已经尝试过:
pyo.Solverfactory('multistart', executable=...ipopt.exe).solve(model)
pyo.Solverfactory('multistart').solve(model, solver='ipopt', executable=...ipopt.exe)
非常感谢!
pyomo - Pyomo 可以使用 Gurobi 解决非凸 MIQCP(双线性问题)吗?
我想对包含相当多的双线性项的优化问题进行建模。因此,我想利用 Gurobi 9.0 的功能来解决双线性问题。显然,我可以使用 GurobiPy API。但是,我可能想比较其他求解器(如 BARON)。所以,我想知道是否可以使用 Pyomo 来制定问题,然后使用 Gurobi 解决它?会不会有什么问题?
machine-learning - 当我们添加多项式特征时,损失函数是否变得非凸?
当我们在多项式回归、逻辑回归、支持向量机的情况下使用多项式特征时,损失函数是否变得非凸?
optimization - CPLEX:错误 5002 目标不是凸的 -> 问题可以通过最优目标 3 解决到全局最优 ->
我在 CPLEX Optimization Studio 上收到此错误。该问题是一个简单的二次问题,具有一个等式和两个不等式约束。
.mod 代码如下所示(未使用 .dat):
python - python中的多项式目标规划(PGP)优化示例
为了解决 Python 中的线性或二次规划问题,我们经常求助于scipy.optimize.minimize
,它提供了一个启发式平台来设计优化问题。
谁能向我推荐python中多项式目标编程(PGP)的示例?PGP用于解决多目标非凸优化问题。首先,任何科学问题都可以。
convex-optimization - 如何判断函数是非凸的还是凸的
例如:(6-z)(x1+x2+x3)<40。z 是一个正整数变量。x1,x2 和 x3 都是实变量。那么如何判断函数是凸函数还是非凸函数。
geometry - Sweep Line Polygon triangulation: How to find edge left to current vertex?
I'm currently writing an y-monotone sweep line algorithm to triangulate non-convex polygons. The first step to achieve this is to make the polygon y-monotone.
Pseudocode of MakeMonotone
from the book "Computation Geometry by Mark de Berg" (https://archive.org/details/computationalgeo00berg):
Now to my question:
In that book and all other websites I found, there is no explanation how to exactly sort the edges in the mentioned "binary search tree T". The only thing mentioned in the referenced book is "The left-to-right order of the leaves of T corresponds to the left-to-right order of the edges". But by what properties/attributes the edges are ordered in that tree? It's also unclear to me, how exactly an edge should be represented in the binary tree (start point? end point? combination of both?).
My most naive approach would be to find out for all edges in T the intersection with the sweep and line and the calculate which of them is closest to the current verex. But given that in every book/university slides, the inner working of T is not explained further, it must be way easier.
The binary search tree should support the following operations:
- insert a new edge
- find edge to the left of the vertex currently on the sweep line
- remove an edge