vb.net - 在 Accord.net 中设置约束(这应该很容易?)
问题描述
我在 VB 项目中有一个Cobyla对象(可以很容易地是 C#),用于解决 7 个变量的问题。每个变量都有自己的约束。我正在设置这样的约束,但没有遵循约束。
Dim mesaConstraints As NonlinearConstraint() =
{' Make sure all variables follow their constraints
New NonlinearConstraint(7, Function(mesaVar) mesaVar(0) >= min0),
New NonlinearConstraint(7, Function(mesaVar) mesaVar(1) >= min1),
New NonlinearConstraint(7, Function(mesaVar) mesaVar(2) >= min2),
New NonlinearConstraint(7, Function(mesaVar) mesaVar(3) >= min3),
New NonlinearConstraint(7, Function(mesaVar) mesaVar(4) >= min4),
New NonlinearConstraint(7, Function(mesaVar) mesaVar(5) >= min5),
New NonlinearConstraint(7, Function(mesaVar) mesaVar(6) >= min6),
New NonlinearConstraint(7, Function(mesaVar) mesaVar(0) <= max0),
New NonlinearConstraint(7, Function(mesaVar) mesaVar(1) <= max1),
New NonlinearConstraint(7, Function(mesaVar) mesaVar(2) <= max2),
New NonlinearConstraint(7, Function(mesaVar) mesaVar(3) <= max3),
New NonlinearConstraint(7, Function(mesaVar) mesaVar(4) <= max4),
New NonlinearConstraint(7, Function(mesaVar) mesaVar(5) <= max5),
New NonlinearConstraint(7, Function(mesaVar) mesaVar(6) <= max6)
}
有没有人能够建议为什么不遵循这些限制?我认为这很容易。
解决方案
确保检查 cobyla 退出代码(状态属性 [2])是 CobylaStatus.Success 以确保解决方案有效。根据 Anders Gustafsson 的说法,不能保证满足约束条件 [1]。
[1] Accord.net Cobyla 求解器在没有可行解时返回成功
[2] http://accord-framework.net/docs/html/T_Accord_Math_Optimization_Cobyla.htm
推荐阅读
- python-3.x - 当我使用回车时,为什么我的 Python 程序没有打印到 nohup 日志文件?
- java - Java littleproxy mitm:获取响应正文
- mysql - 从 dbdiagram.io 导出 mysql 代码并尝试在 phpmyadmin 中导入模式文件会出错
- laravel - 在输入 Laravel 7 中嵌入 youtube 视频
- dialogflow-es - 自动化 PDF 流程图以创建聊天机器人
- html - 根据需要使购物车设计移动兼容
- ios - 找到一个 tableView 单元格 superView
- php - 无法登录我被要求编辑的网站管理员
- c# - 我无法让相互排斥的按键工作
- reactjs - 如何使用酶为 onClick 功能添加新测试?