#r #optimization #programming-languages #lua
#r #оптимизация #языки программирования #lua
Вопрос:
В настоящее время я ищу альтернативу lua для языков программирования R; функция optim(), если кто-нибудь знает, как с этим справиться?
Ответ №1:
http://numlua.luaforge.net / выглядит интересно, но, похоже, не имеет минимизации. Наиболее многообещающим направлением, по-видимому, является оболочка Lua для GSL, которая включает в себя множество алгоритмов многомерной минимизации.
С производными — BFGS ( method="BFGS"
in optim
) и два метода сопряженных градиентов (Флетчера-Ривза и Полака-Рибьера), которые являются двумя из трех вариантов, доступных для method="CG"
in optim
. Без производных — симплекс Нелдера-Мида ( method="Nelder-Mead"
, используемый по умолчанию в optim
).
Более конкретно, смотрите здесь документацию по оболочке Lua, касающуюся минимизации.
Я согласен с @Zack в том, что вы должны попытаться использовать существующие реализации, если это вообще возможно, и что вам может понадобиться немного больше базовых знаний, чтобы знать, какие алгоритмы будут полезны для ваших конкретных проблем…
Комментарии:
1. Тогда все готово, при условии, что оболочка, на которую я указываю выше, работает так, как рекламируется.
Ответ №2:
Реализация R optim
фактически не написана на R. Если вы введете «optim» без круглых скобок в командной строке, это выведет определение функции, и вы можете видеть, что после некоторой проверки ошибок и перетасовки аргументов она вызывает .Internal
подпрограмму (закодированную на C и / или Fortran) для выполнения всей реальной работы.
Итак, вам лучше всего найти библиотеку C для математической оптимизации — извините, у меня нет рекомендаций — и перенести это в Lua. Я сомневаюсь, что кто-либо написал для этого код на родном языке Lua, и я бы не рекомендовал пытаться закодировать его самостоятельно; эффективное выполнение математической оптимизации по-прежнему является активной областью фундаментальных исследований, и лучшие на данный момент алгоритмы решительно нетривиальны для реализации.