У меня есть набор проблем оптимизации, написанных в AMPL и GAMS. И у меня есть алгоритм в Matlab. Как я могу решить эти проблемы с помощью алгоритма в Matlab? Я читал о интерфейсе GDXMRW для GAMS, но, как я понял, он может обмениваться данными только между Matlab & GAMS? Так будет ли необходимо выполнить все вычисления градиентов, производных и т. Д. В GAMS, а затем дать эти результаты Matlab? Может быть, кто-то знает, как соединить это?Использование MATLAB с AMPL
ответ
Вы можете подключить AMPL к MATLAB с помощью amplfunc.mex
и spamfunc.mex
, описанного в Hooking Your Solver to AMPL, page 23. Эти файлы mex доступны для скачивания с http://www.ampl.com/DOWNLOADS/solvers/examples/. Градиент можно вычислить автоматически, используя функцию amplfunc
, предоставляемую amplfunc.mex
.
Существует также интерфейс AMPL для MATLAB, разработанный TOMLAB.
Я опоздал на 3 года, но для тех, кто это читает, вы можете использовать https://www.mathworks.com/matlabcentral/fileexchange/64634-ampl-interface-to-matlab. Для AMPL проблем, я думаю, это именно то, что вы ищете.
Это дает вам интерфейс к задачам AMPL (хранится либо в nl-файлах, либо в объектах AMPL-API https://ampl.com/api/1.2.2/matlab/quick-start.html). Для нелинейных функций в вашей задаче вы можете запросить целевые значения, градиентные и hessian вычисления для любой точки. Линейные и квадратичные функции хранятся в полях amplprob ниже как массивы и матрицы MATLAB.
Типичное использование
>> amplprob = amplread('my_problem.nl')
>> % objective value of the first nonlinear objective function
>> f = nonlinobjective(amplprob,x,1)
>> % value, gradient and hessian of the first nonlinear objective function
>> [f,J,H] = nonlinobjective(amplprob,x,1)
>> % value and gradient of the second nonlinear constraint at x
>> [g, G] = nonlinconstr(amplprob,x,2);
- 1. Подключение AMPL с помощью Matlab с использованием amplfunc и spamfunc
- 2. Несколько решений с AMPL
- 3. Ошибка синтаксиса с AMPL
- 4. Кто-нибудь использует AMPL больше
- 5. AMPL Переменная Определение
- 6. SCIP с IpOpt и AMPL
- 7. Использование jQuery с Matlab
- 8. Использование SPM5 с MatLab
- 9. Набор вещей в AMPL
- 10. Ampl CPLEX решить ошибку
- 11. Реформирование примера автомобиля AMPL
- 12. отображение в AMPL
- 13. AMPL короче форма
- 14. Порядок работы в AMPL
- 15. AMPL EROR - неограниченная переменная
- 16. AMPL Оператор переменных переменных
- 17. AMPL param синтаксис
- 18. AMPL: недопустимые индексы
- 19. индексированных переменная в AMPL
- 20. AMPL не найден «минос»
- 21. AMPL: Подстрочный код
- 22. Синтаксис ограничения AMPL
- 23. коэффициенты корреляции на AMPL
- 24. AMPL Group Назначение программирования
- 25. Упорядоченный набор AMPL
- 26. Редкая матрица в AMPL
- 27. AMPL файл_журнал не работает
- 28. AMPL ошибка синтаксиса
- 29. AMPL - Экспресс суммирование с максимальной функцией
- 30. Использование glmnet с MATLAB R2016a