1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/pdfo-pdfo

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

PDFO: Powell's Derivative-Free Optimization solvers

Введение

PDFO (Powell's Derivative-Free Optimization solvers) — это кроссплатформенный пакет, предоставляющий интерфейсы для использования методов оптимизации без производных профессора М. Дж. Д. Пауэлла, включая UOBYQA, NEWUOA, BOBYQA, LINCOA и COBYLA. Дополнительную информацию можно найти на домашней странице PDFO и в статье PDFO.

В этом пакете используется модифицированная версия кода Фортрана Пауэлла. Исходный код Пауэлла можно найти в папке original под fsrc.

Версия Python от PDFO

Установка

Рекомендованная установка

Чтобы использовать версию Python от PDFO на Linux, Mac или Windows, вам нужен Python (версия 3.7 или выше).

Настоятельно рекомендуется установить PDFO через PyPI.

Установите pip в вашей системе, если ваша версия Python не включает его. Затем выполните следующую команду в командной оболочке (например, терминал для Linux и macOS или командная оболочка для Windows):

python3 -m pip install pdfo

Если ваш Python 3 лаунчер не python3, адаптируйте команду соответствующим образом (это может быть python на Windows, например). Если эта команда выполняется успешно, PDFO установлен. Вы можете проверить установку с помощью следующей команды:

python3 -m unittest pdfo.testpdfo

Для пользователей Anaconda PDFO также доступен через установщик conda (https://anaconda.org/conda-forge/pdfo). Однако он не управляется нами.

Альтернативная установка (с использованием исходного дистрибутива)

Альтернативно, хотя это крайне не рекомендуется, PDFO можно установить из исходного кода. Это требует установки дополнительных заголовков Python, компилятора Fortran (например, gfortran) и F2PY (предоставляется NumPy). Загрузите и распакуйте исходный код пакета или клонируйте его с GitHub или Gitee. Вы получите папку, содержащую pyproject.toml; в командной оболочке перейдите в эту папку; затем установите PDFO, выполнив следующую команду:

python3 -m pip install .

Использование

PDFO предоставляет следующие функции Python: pdfo, uobyqa, newuoa, bobyqa, lincoa, cobyla.

Функция pdfo может автоматически определить тип вашей проблемы и вызвать один из решателей Пауэлла. Остальные пять функций вызывают решатель, указанный их именами. Настоятельно рекомендуется использовать pdfo вместо... Функция pdfo предназначена для совместимости с функцией minimize, доступной в scipy.optimize. Вы можете вызывать pdfo точно так же, как и minimize, без аргументов производных (PDFO не использует производные).

Для подробного синтаксиса этих функций используйте стандартную команду help Python. Например,

from pdfo import pdfo
help(pdfo)

расскажет вам, как использовать pdfo.

Удаление

PDFO можно удалить, выполнив следующую команду в командной оболочке:

python3 -m pip uninstall pdfo

Версия PDFO для MATLAB

Предварительные требования

PDFO поддерживает MATLAB R2014a и более поздние версии. Чтобы использовать PDFO, вам необходимо сначала настроить MEX вашего MATLAB так, чтобы он мог компилировать Fortran. Настройка MEX — это проблема использования чистого MATLAB, и она не имеет ничего общего с PDFO.

Чтобы узнать, готов ли ваш MEX, запустите следующий код в MATLAB:

mex('-setup', '-v', 'fortran'); mex('-v', fullfile(matlabroot, 'extern', 'examples', 'refbook', 'timestwo.F'));

Если это завершится успешно, то ваш MEX готов. В противном случае это не так, и вы можете попробовать пакет setup_mex по адресу

https://github.com/equipez/setup_mex

Он поможет вам настроить MEX на Windows или macOS (настройка MEX тривиальна в Linux). В случае, если setup_mex не работает, вам следует обратиться к местному эксперту MATLAB или в службу технической поддержки MathWorks по поводу «как настроить MEX», что не является частью PDFO.

Установка

Скачайте и распакуйте исходный код пакета или клонируйте его с GitHub или Gitee. Вы получите папку, содержащую setup.m. Поместите эту папку в место, где вы хотите установить PDFO. В MATLAB измените каталог на эту папку и выполните следующую команду:

setup

Если эта команда выполняется успешно, PDFO установлен. Вы можете выполнить следующую команду в MATLAB, чтобы проверить установку:

testpdfo

Использование

PDFO предоставляет следующие функции MATLAB: pdfo, uobyqa, newuoa, bobyqa, lincoa, cobyla.

Функция pdfo может автоматически определять тип вашей проблемы и затем вызывать один из решателей [Поулла]. Остальные пять функций вызывают решатель, указанный их именами. Настоятельно рекомендуется использовать pdfo вместо uobyqa, newuoa и т. д.

Функция pdfo разработана для совместимости с функцией fmincon, доступной в Optimization Toolbox MATLAB. Вы можете вызвать pdfo точно так же, как вызываете fmincon. Кроме того, pdfo можно вызывать гибкими способами, которые не поддерживаются fmincon.

Для получения подробной информации об этих функциях используйте стандартную команду help MATLAB. Например,

help pdfo

расскажет вам, как использовать pdfo.

Удаление

PDFO можно удалить с помощью скрипта setup.m, выполнив следующую команду в MATLAB:

setup uninstall

Цитирование PDFO

@misc{Ragonneau_Zhang_2023,
    title        = {{PDFO}: a cross-platform package for {Powell}'s derivative-free optimization solvers},
    author       = {Ragonneau, T. M. and Zhang, Z.},
    howpublished = {arXiv:2302.13246},
    year         = 2023
}

Кроме того, методы Поулла можно цитировать следующим образом.

  • М. Дж. Д. Поулл. Метод прямой оптимизации, который моделирует целевую функцию и функцию ограничений линейной интерполяцией. В С. Гомес и Ж. П. Хеннар, редакторы, Достижения в области оптимизации и численных методов. Анализ*, страницы 51–67, Дордрехт, Нидерланды, 1994. Спрингер.

  • М. Дж. Д. Пауэлл. UOBYQA: оптимизация без ограничений с помощью квадратичной аппроксимации. Math. Program., 92:555–582, 2002.

  • М. Дж. Д. Пауэлл. Программное обеспечение NEWUOA для оптимизации без ограничений и без производных. В книге Г. Ди Пилло и М. Рома «Крупномасштабная нелинейная оптимизация», том 83 «Невыпуклая оптимизация и её приложения», страницы 255–297, Бостон, Массачусетс, США, 2006. Спрингер.

  • М. Дж. Д. Пауэлл. Алгоритм BOBYQA для ограниченной оптимизации без использования производных. Технический отчёт DAMTP 2009/NA06, факультет прикладной математики и теоретической физики, Кембриджский университет, Кембридж, Великобритания, 2009.

Замечание: LINCOA ищет наименьшее значение нелинейной функции при линейных неравенственных ограничениях без использования производных целевой функции. Пауэлл не публиковал статью, посвящённую этому алгоритму.

Благодарности

PDFO посвящён памяти покойного профессора Пауэлла с благодарностью за его вдохновение и за те сокровища, которые он оставил нам.

Мы благодарны профессору Я-сян Юаню за его постоянное поощрение и поддержку.

Разработка PDFO — долгосрочный проект, который был бы невозможен без постоянного финансирования со стороны Совета по исследовательским грантам Гонконга (реф. PolyU 253012/17P, PolyU 153054/20P и PolyU 153066/21P), Гонконгской стипендиальной программы для докторантов (реф. PF18-24698) и Политехнического университета Гонконга (PolyU), в частности факультета прикладной математики (AMA).

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Powell — оптимизатор без производных. Может решать задачи оптимизации чёрного ящика, используется для настройки гиперпараметров в машинном обучении. Подробности смотрите на главной странице проекта https://www.pdfo.net. Развернуть Свернуть
BSD-3-Clause
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/pdfo-pdfo.git
git@api.gitlife.ru:oschina-mirror/pdfo-pdfo.git
oschina-mirror
pdfo-pdfo
pdfo-pdfo
main