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

У меня есть объект Cobyla в проекте 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)
}

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


person Moffen    schedule 26.10.2018    source источник


Ответы (1)


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

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

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

person user7217806    schedule 23.08.2019