библиотека математической оптимизации для Java — бесплатная или рекомендации с открытым исходным кодом?[закрыто]

StackOverflow https://stackoverflow.com/questions/143020

Вопрос

Кто-нибудь знает о такой библиотеке, которая выполняет математическую оптимизацию (линейное программирование, выпуклая оптимизация или более общие типы задач)?Я ищу что-то вроде MATLAB, но с возможностью решения более крупных задач.Должен ли я писать свои собственные реализации или покупать один из этих коммерческих продуктов (CPLEX и тому подобное)?

Это было полезно?

Решение

Хороший ответ зависит от того, что вы подразумеваете под "выпуклым" и "более общим", если вы пытаетесь решить большие или сложные задачи линейной или выпукло-квадратичной оптимизации (особенно с дискретным компонентом для них), тогда трудно победить основных коммерческих решателей, гуроби, сложный и Тире если только деньги не являются для вас большой проблемой.Все они имеют чистые интерфейсы JNI и доступны на большинстве основных платформ.

Тот Самый монета-или проект имеет несколько оптимизаторов и имеет проект для интерфейса JNI.Это абсолютно бесплатно (ЭПЛ лицензия), но потребуется больше работы по настройке и, вероятно, это не даст вам такой же производительности.

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

Существует инструмент линейной оптимизации под названием lpsolve ( решить ).Он написан на C (я думаю), но поставляется с оболочкой Java / JNI (API не очень OO, но он выполняет свою работу).Он довольно прост в использовании, и в течение последнего года он работал довольно успешно и стабильно в действующей системе.

Вы можете попробовать Оптимизатор JOptimizer, с открытым исходным кодом и подходит для общих задач выпуклой оптимизации (линейное программирование, квадратичное программирование, qcqp, коническое программирование, полуопределенное программирование и т. Д

ОптаПланнер (Java, с открытым исходным кодом, ASL) может обрабатывать большие проблемы и не имеет ограничений типа ограничения (таких как линейный или выпуклый).

Возможно, вы захотите взглянуть на Наука, это выглядит довольно завершенным.(Математические структуры, решение задач линейной алгебры и т.д.)

IPOPT имеет интерфейс для Java.Возможно, вы также сможете адаптировать язык моделирования APMonitor для Java.Я разрабатываю эту платформу, поэтому буду рад поработать с кем-нибудь, если они захотят создать новый интерфейс для Java.В нем уже есть Python API и интерфейс MATLAB и включает в себя решатели, такие как IPOPT, APOPT, BPOPT и другие, которые могут обрабатывать крупномасштабные системы.

Загляни в УСИЛЕНИЕ.Базовая версия бесплатна, но для более серьезных задач она стоит денег.Вы не платите за знание языка;вы платите за решателей.Также возможно загрузить ваш код и запустить его на их серверах.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top