问题标签 [mosek]
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.
python - 如何重塑 MOSEK 中的变量
我正在尝试将用 MATLAB CVX 编写的优化代码转换为直接调用求解器 MOSEK 的 Python 代码。我的优化包括以下类型的方程:
||Ax-b|| +正则化器。
x 是一个三维变量,需要评估其最优值。我在 MATLAB 中将 A 定义为函数,如下所示:
所以,||Ax-b|| 在 MATLAB CVX 中变成
现在,当我转换为直接调用 MOSEK 的 python 时,我写道:
但是,我收到错误:
这个重塑我做错了什么?
optimization - cvxpy 整数变量 - 从解决方案中排除某些整数值
我有以下问题,我不知道 cvxpy 是否可以做我需要的。背景:我优化投资组合。在购买债券并优化每只债券的购买数量时,只能以 1,000 个单位的倍数购买每只债券。但是,大多数时候需要购买的最低件数是 10,000。这意味着我们要么根本不购买债券,要么如果我们购买它,购买的数量必须是 10,000、11,000、12,000 等等。有没有办法(似乎没有)限制整数变量可能具有的解决方案中的某些值?所以让我们假设我们有一个非负的整数变量 x。我们基本上想买 1000x 但我们知道 x 可以是 x = {0, 10, 11, 12, ...} 是否可以在不添加其他变量的情况下跳过值 1.. 9?
例如:
这个解决方案是我面临的问题的一个非常简化的版本。最终向量 final_units 可以建议像这个例子中的值,我们必须购买 5,000 单位的债券 s9,但我不能,因为我可以购买的最小值是 10,000。我知道我可以添加一个额外的整数向量来表达 OR 条件,但实际上我真正的问题远不止于此,我已经有数千个整数变量。因此,我想知道是否有一种方法可以排除 1 到 9 的值,而无需为问题添加额外的变量。谢谢
python - Mosek 不可行修复(通过 Cvxpy 接口)
我通过它的 Cvxpy 界面使用 Mosek。
我想使用 Mosek 的工具来自动修复不可行问题[0],但找不到任何求解器选项 [1] 来激活它。
请告诉相关的求解器选项。
0 - https://docs.mosek.com/9.2/capi/feas-repair.html#automatic-repair-of-infeasible-problems
1 - https://docs.mosek.com/9.2/pythonapi/parameters.html#doc-all-parameter-list
python - Mosek 不可行性报告支持的问题类型
我通过其 Cvxpy 界面使用 Commercial Mosek。专门利用其不可行报告功能来调试我的不可行问题。
虽然它对于示例 LP 问题运行得非常好,但在 MILP 问题上却失败了(即求解器日志中没有不可行性报告)。
在 Mosek [0] 的官方文档中,我找不到任何关于不可行性报告支持的问题类型的规范。
请告知不可行性报告支持的问题类型。
(或者它适用于所有问题类型?)
0 - https://docs.mosek.com/9.2/toolbox/debugging-infeas.html
python - SCS 和 MOSEK 求解器继续运行
我的应用程序使用 ECOS Solver 已经很长时间了,突然之间我们开始得到不可行的解决方案,从而导致求解器错误。在网上查看了一些堆栈和建议,我看到了对 MOSEK 和 SCS 求解器的建议。
我尝试将我的 ECOS 替换为 SCS 和 MOSEK Solvers,但我的运行永无止境。通常我的跑步会在 2 小时内结束,但在更换之后会跑 8 小时左右,而且永远不会结束。请给我建议。
下面是参数,
'solver': {'name': 'MOSEK', 'backup_name': 'SCS', 'verbose': True, 'max_iters': 3505}
请帮助
错误日志:
由于阶段故障而中止作业:阶段 6.0 中的任务 1934 失败 4 次,最近一次失败:阶段 6.0 中丢失任务 1934.3(TID 5028,ip-10-219-208-218.ec2.internal,执行程序 1):org. apache.spark.api.python.PythonException:回溯(最近一次调用最后一次):文件“envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/py_dependencies.zip/cat/tf/tf_model/model.py”,第 262 行,适合引发 SolverError cvxpy.error.SolverError
在处理上述异常的过程中,又出现了一个异常:
回溯(最后一次调用):文件“envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/miniconda/envs/project/lib/python3.6/site-packages/cvxpy/expressions/constants/constant.py”,第 243 行,位于 extremal_eig_near_ref ev = SA_eigsh(sigma) 文件“envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/miniconda/envs/project/lib/python3.6/site-packages/cvxpy/expressions/constants/constant.py”,第 238 行,在 SA_eigsh 返回 eigsh (A,k=1,sigma=sigma,return_eigenvectors=False)文件“envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/miniconda/envs/project/lib/python3.6/site-packages/scipy/sparse/linalg/eigen/arpack /arpack.py",第 1687 行,在 eigsh params.iterate() 文件中"envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/miniconda/envs/project/lib/python3.6/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.py”,第571行,在迭代self._raise_no_convergence() “envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/miniconda/envs/project/lib/python3.6/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.py”,第 377 行,在 _raise_no_convergence 提高 ArpackNoConverence (num_iter, k_ok, self.k), ev, vec) scipy.sparse.linalg.eigen.arpack.arpack.ArpackNoConvergence:ARPACK 错误 -1:没有收敛(361 次迭代,0/1 特征向量收敛)_raise_no_convergence() 文件“envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/miniconda/envs/project/lib/python3.6/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.py”,第 3 行,第 3 行ArpackNoConvergence(msg % (num_iter, k_ok, self.k), ev, vec) scipy.sparse.linalg.eigen.arpack.arpack.ArpackNoConvergence: ARPACK 错误 -1: 没有收敛(361 次迭代,0/1 特征向量收敛)_raise_no_convergence() 文件“envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/miniconda/envs/project/lib/python3.6/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.py”,第 3 行,第 3 行ArpackNoConvergence(msg % (num_iter, k_ok, self.k), ev, vec) scipy.sparse.linalg.eigen.arpack.arpack.ArpackNoConvergence: ARPACK 错误 -1: 没有收敛(361 次迭代,0/1 特征向量收敛)无收敛(361 次迭代,0/1 特征向量收敛)无收敛(361 次迭代,0/1 特征向量收敛)
在处理上述异常的过程中,又出现了一个异常:
Traceback (most recent call last): File "envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/pyspark.zip/pyspark/worker.py", line 377, in main process() File "envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/pyspark.zip /pyspark/worker.py",第 372 行,在进程中 serializer.dump_stream(func(split_index,iterator),outfile) 文件 "envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/pyspark.zip/pyspark/serializers.py",第 400 行,在 dump_stream vs = list(itertools.islice(iterator, batch)) 文件“envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/pyspark.zip/pyspark/util.py”,第 113 行,在包装器中返回 f(*args, **kwargs ) 文件 ”envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000001/py_dependencies.zip/pyspark_scripts/spark_tf_pipeline.py", line 49, in File "envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/py_dependencies.zip/cat/tf/tf_model/tf_get_from_smu_records.py", line 38 , in tf_get_from_smu_records data_points, current_date_string, params) File "envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/py_dependencies.zip/cat/tf/tf_model/tf_get_from_smu_records.py", line 24, in tf_get_outputs_from_smu_records model_output, _ = fit_model(ts_wrapper, params) File “envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/py_dependencies.zip/cat/tf/tf_model/fit_model.py”,第 13 行,在 fit_model machine_model 中。fit() File "envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/py_dependencies.zip/cat/tf/tf_model/machine_model.py", line 62, in fit self._fit() File "envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/py_dependencies. zip/cat/tf/tf_model/machine_model.py”,第 120 行,在 _fit self.model.fit() 文件“envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/py_dependencies.zip/cat/tf/tf_model/model.py”中,第 267 行,适合 self._fit(self.solver_params['backup_name']) 文件“envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/py_dependencies.zip/cat/tf/tf_model/model.py”,第 245 行,在 _fit feastol tols['feastol_inacc']) 文件 "envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/miniconda/envs/project/lib/python3.6/site-packages/cvxpy/problems/problem.py",第401行,在求解返回solve_func(self, *args, **kwargs)文件“envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/miniconda/envs/project/lib/python3.6/site-packages/cvxpy/problems/problem.py”,第818行,在_solve self、data、warm_start、verbose、kwargs)文件“envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/miniconda/envs/project/lib/python3.6/site-packages/cvxpy/reductions/solvers/solving_chain.py”,第341行,在solve_via_data solver_opts,问题File._solver_cache)envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/miniconda/envs/project/lib/python3.6/site-packages/cvxpy/reductions/solvers/conic_solvers/cvxopt_conif.py”,第162行,在solve_via_reddata中如果=self.removeant_row = s.INFEASIBLE:文件“envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/miniconda/envs/project/lib/python3.6/site-packages/cvxpy/reductions/solvers/conic_solvers/cvxopt_conif.py”,第286行remove_redundant, = extremal_eig_near_ref(gram, ref=TOL) 文件“envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/miniconda/envs/project/lib/python3.6/site-packages/cvxpy/expressions/constants/constant.py”,第 247 行, extremal_eig_near_ref ev = SA_eigsh(sigma) 文件“envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/miniconda/envs/project/lib/python3.6/site-packages/cvxpy/expressions/constants/constant.py”,第 238 行,在 SA_eigsh 返回 eigsh(A, k=1, sigma =sigma,return_eigenvectors=False)文件“envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/miniconda/envs/project/lib/python3.6/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.py”,第1687行,在 eigsh params.iterate() 文件“envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/miniconda/envs/project/lib/python3.6/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.py”中,行571,在迭代 self._raise_no_convergence() 文件中“envpath/appcache/application_1618545751422_0044/container_1618545751422_0044_02_000002/miniconda/envs/project/lib/python3.6/site-packages/scipy/sparse/linalg/eigen/arpack/arpack.py”,第 377 行,在 _raise_no_convergence num_iter, k_ok, self.k), ev, vec) scipy.sparse.linalg.eigen.arpack.arpack.ArpackNoConvergence:ARPACK 错误 -1:没有收敛(361 次迭代,0/1 特征向量收敛)
驱动程序堆栈跟踪:
optimization - Julia.JuMP 比 Python.Cvxpy 慢 15 倍吗?
我试图解决一个简单的优化问题,首先通过 Python.Cvxpy 框架,然后通过 Julia.JuMP 框架,但 Julia.JuMP 公式慢了 15 倍。
我的优化问题:
- 在 Python.Cvxpy 中:(运行时间:4 秒)
- 在 Julia.JuMP 中:(运行时间:1 分 7 秒)
固定 Julia.JuMP 代码的任何提示或技巧?
optimization - Mosek求解器中决策变量值的初始化(通过Cvxpy框架)
我们有一个优化问题,想要初始化其决策变量的值以实现快速收敛。
我们正在使用 Mosek 求解器(通过其 Cvxpy 接口)。
任何帮助表示赞赏,非常感谢!
python - mosek 可以写入 opf 格式(通过 Pyomo)吗?
我们正在 Mosek 中制定一个优化问题(通过其 Pyomo 接口)。
我们需要以opf
格式转储问题。
为了实现这一点,我们激活了iparam.opf_write_problem
[0] 求解器选项,但失败了(即没有opf
创建文件)。
最小的可重现示例:
这是 Mosek 或 Pyomo 的错误吗?
参考:
[0] https://docs.mosek.com/9.2/toolbox/parameters.html#mosek.iparam.opf_write_problem
python - Pyomo + Mosek 麻烦:系数矩阵不是半正定的
我们正在 Pyomo + Mosek(商业)中制定 QP 优化问题。
出乎意料的是,mosek 抱怨二次系数不是 PSD。
最小的可重现示例:
我们认为 Q1 是 PSD 的原因:
- 它的所有特征值都是正的
- CPLEX(商业)能够解决它
请帮忙!
optimization - Mosek 在大型 MIQCQP 上无限期运行
我们有一个大规模的 MIQCQP 问题。问题大小:
当我们使用 Mosek(通过 Cvxpy)时,它会无限期地运行(在分支和绑定逻辑中)。此外,从 mosek 日志中:BEST_INT_OBJ
并始终REL_GAP(%)
显示NA
。
由于此问题包含专有数据,因此难以共享。
是否有任何通用提示或技巧来加快问题的速度?
(奇怪的是,Gurobi 可以在一分钟内解决同样的问题)