Параметрическое программирование
Параметрическое программирование — это тип математической оптимизации , при котором задача оптимизации решается как функция одного или нескольких параметров . [1] Разработанный параллельно с анализом чувствительности , его самое раннее упоминание можно найти в диссертации 1952 года. [2] С тех пор произошли значительные изменения в случаях нескольких параметров, присутствия целочисленных переменных, а также нелинейностей.
Обозначения
[ редактировать ]В общем случае рассматривается следующая оптимизационная задача
где — переменная оптимизации, параметры, целевая функция и обозначаем ограничения . обозначает функцию, выходной сигнал которой является оптимальным значением целевой функции . Набор обычно называется пространством параметров.
Оптимальное значение (т.е. результат решения задачи оптимизации) получается путем вычисления функции с аргументом .
Классификация
[ редактировать ]В зависимости от характера и и есть ли в задаче оптимизации целочисленные переменные, задачи параметрического программирования подразделяются на разные подклассы:
- Если присутствует более одного параметра, т.е. , то ее часто называют задачей многопараметрического программирования. [3]
- Если присутствуют целочисленные переменные, то проблема называется задачей (много)параметрического смешанно-целочисленного программирования. [4]
- Если ограничения аффинны , то выполняется дополнительная классификация в зависимости от характера целевой функции в (много)параметрических (смешанно-целочисленных) задачах линейного, квадратичного и нелинейного программирования. Обратите внимание, что это обычно предполагает, что ограничения аффинны. [5]
Приложения
[ редактировать ]В теории управления в целом и в перерабатывающих отраслях.
[ редактировать ]Связь между параметрическим программированием и прогнозным управлением моделями для непрерывного производства , установленная в 2000 году, способствовала повышению интереса к этой теме. [6] [7] Параметрическое программирование предлагает идею о том, что задачи оптимизации можно параметризовать как функции, которые можно оценить (аналогично справочной таблице). Это, в свою очередь, позволяет реализовать алгоритмы оптимизации в оптимальных контроллерах как предварительно вычисленные (автономные) математические функции, которые в некоторых случаях могут быть проще и быстрее оцениваться, чем решение полной задачи оптимизации в режиме онлайн. Это также открывает возможность создания оптимальных контроллеров на кристаллах (MPC onchip [8] ). Однако автономная параметризация оптимальных решений сталкивается с проклятием размерности, поскольку количество возможных решений растет с увеличением размерности и количества ограничений в задаче. [ нужна ссылка ]
В программировании ЧПУ
[ редактировать ]Параметрическое программирование в контексте ЧПУ ( числового программного управления ) определяет циклы резки деталей в терминах переменных с переназначаемыми значениями, а не через жестко запрограммированные/зашитые экземпляры. Архетипически простым примером является написание программы G-кода для обработки семейства шайб : часто нет необходимости писать 15 программ для 15 членов семейства с различными диаметрами отверстий, внешними диаметрами, толщиной и материалами, когда это практически возможно. вместо этого написать 1 программу, которая вызывает различные переменные и считывает их текущие значения из таблицы присвоений. Затем программа дает команду направляющим и шпинделям станка перемещаться в различные положения с разными скоростями, соответственно, учитывая не только размеры детали (т. е. наружный, внутренний диаметр, толщину), но также даже скорости и подачи, необходимые для любого данного материала ( например, низкоуглеродистая сталь, высокоуглеродистая сталь; бронза, латунь или алюминий любой марки; любой тип; В таком программировании часто используются пользовательские макросы. [9]
Ссылки
[ редактировать ]- ^ Гал, Томас (1995). Постооптимальный анализ, параметрическое программирование и смежные темы: вырождение, многокритериальное принятие решений, избыточность (2-е изд.). Берлин: В. де Грюйтер. ISBN 978-3-11-087120-3 .
- ^ Гал, Томас; Гринберг, Харви Дж. (1997). Достижения в области анализа чувствительности и параметрического программирования . Международная серия по исследованию операций и науке управления. Том. 6. Бостон: Академическое издательство Kluwer. дои : 10.1007/978-1-4615-6103-3 . ISBN 978-0-7923-9917-9 .
- ^ Гал, Томас; Недома, Йозеф (1972). «Многопараметрическое линейное программирование». Наука управления . 18 (7): 406–422. дои : 10.1287/mnsc.18.7.406 . JSTOR 2629358 .
- ^ Дуа, Вивек; Пистикопулос, Эфстратиос Н. (октябрь 1999 г.). «Алгоритмы решения многопараметрических задач смешанно-целочисленной нелинейной оптимизации». Исследования в области промышленной и инженерной химии . 38 (10): 3976–3987. дои : 10.1021/ie980792u .
- ^ Пистикопулос, Эфстратиос Н.; Георгиадис, Майкл С.; Дуа, Вивек (2007). Теория многопараметрического программирования, алгоритмы и приложения . Вайнхайм: Wiley-VCH. дои : 10.1002/9783527631216 . ISBN 9783527316915 .
- ^ Бемпорад, Альберто; Морари, Манфред; Дуа, Вивек; Пистикопулос, Эфстратиос Н. (2000). «Явное решение прогнозного управления моделью с помощью многопараметрического квадратичного программирования». Материалы Американской конференции по контролю 2000 года . п. 872. дои : 10.1109/ACC.2000.876624 . ISBN 0-7803-5519-9 . S2CID 1068816 .
- ^ Бемпорад, Альберто; Морари, Манфред; Дуа, Вивек; Пистикопулос, Эфстратиос Н. (январь 2002 г.). «Явный линейный квадратичный регулятор для систем с ограничениями». Автоматика . 38 (1): 3–20. CiteSeerX 10.1.1.67.2946 . дои : 10.1016/S0005-1098(01)00174-1 .
- ^ MPC на кристалле — Последние достижения в области применения многопараметрического управления на основе моделей | Запросить PDF
- ^ Линч, Майк (12 мая 2023 г.). «5 причин, почему вам следует знать, как писать пользовательские макросы. Пользовательские макросы расширяют возможности программ G-кода, предоставляя пользователям возможность кодировать операции, которые ранее были невозможны» . www.mmsonline.com . Проверено 20 мая 2023 г.
{{cite web}}
: CS1 maint: постскриптум ( ссылка )