Использование JaCop в Java для оптимизации функции
Я пытаюсь использовать библиотеку JaCoP в Java для оптимизации, но у меня есть некоторые проблемы с переводом моих функций.
У меня есть куча переменных, скажем: от x1 до xn, и у меня есть функция, использующая их для вывода оценки максимального правдоподобия (хотя это может быть просто любая функция, использующая аргументы этих тезисов).
Я знаю, как установить ограничения на переменные, такие как x1+..+xn
Я не публикую сейчас какой-либо код, поскольку единственное, что я могу сделать, это установить простые ограничения для моих начальных переменных, как описано здесь. Я буду обновлять этот вопрос, как я поправляюсь с JaCoP.
Если бы кто-нибудь мог дать мне толчок в правильном направлении, как установить такое условие, это было бы оценено.
Спасибо
[РЕДАКТИРОВАТЬ]
Ну, я обманул... Так как Rcaller ранее был установлен в моих проектах Java, я буду использовать R для вычисления моих моделей максимального правдоподобия с ограничениями. Я был побежден Якопом. R гораздо более интуитивно понятен (с математической точки зрения), и, поскольку Rcaller довольно хорошо "общается" с Java, я вполне удовлетворен результатом.
1 ответ
Это красиво спрятано, но есть пример, содержащий функцию стоимости.
Так что IIUIC вам нужно что-то вроде
IntVar cost = new IntVar(store, "cost", 0, 1000);
net.setCostVariable(cost);
Если у вас нет переменной стоимости, просто создайте ее и используйте ограничения, чтобы cost == a_function(x1,..,xn)
, Если вы хотите увеличить, переверните знак.