Установка ограничений в accord.net (это должно быть легко?)

У меня есть объект Кобыла в проекте VB (который также может быть 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)
}

Кто-нибудь может предположить, почему ограничения не соблюдаются? Я думаю, это будет легко.

0
0
94
1

Ответы 1

Убедитесь, что код выхода cobyla (свойство состояния [2]) - CobylaStatus.Success, чтобы убедиться, что решение действительно. По словам Андерса Густафссона, нет никаких гарантий, что ограничения соблюдены [1].

[1] Решатель Accord.net Cobyla возвращает успех, когда нет реальных решений

[2] http://accord-framework.net/docs/html/T_Accord_Math_Optimization_Cobyla.htm

Другие вопросы по теме