Оптимизация (математика): различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
орфография
 
(не показано 8 промежуточных версий 8 участников)
Строка 2: Строка 2:
'''Оптимизация''' (в [[Математика|математике]], [[Информатика|информатике]] и [[Исследование операций|исследовании операций]]) — это [[задача]] нахождения [[экстремум]]а (минимума или максимума) [[Целевая функция|целевой функции]] в некоторой области [[Конечномерное пространство|конечномерного векторного пространства]], ограниченной набором [[Линейная функция|линейных]] и/или нелинейных [[Равенство (математика)|равенств]] и/или [[Неравенство|неравенств]].
'''Оптимизация''' (в [[Математика|математике]], [[Информатика|информатике]] и [[Исследование операций|исследовании операций]]) — это [[задача]] нахождения [[экстремум]]а (минимума или максимума) [[Целевая функция|целевой функции]] в некоторой области [[Конечномерное пространство|конечномерного векторного пространства]], ограниченной набором [[Линейная функция|линейных]] и/или нелинейных [[Равенство (математика)|равенств]] и/или [[Неравенство|неравенств]].


[[Файл:Max paraboloid.svg|right|thumb| Граф [[параболоид]]а описанного функцией ''z'' = f(''x'', ''y'') = −(''x''² + ''y''²) + 4. Глобальный [[Экстремум|максимум]] от (''x, y, z'') = (0, 0, 4) обозначен синей точкой]]
[[Файл:Max paraboloid.svg|right|thumb| [[параболоид]]а описанного функцией ''z'' = f(''x'', ''y'') = −(''x''² + ''y''²) + 4. Глобальный [[Экстремум|максимум]] от (''x, y, z'') = (0, 0, 4) обозначен синей точкой]]


[[Файл:Nelder-Mead Simionescu.gif|thumb|Поиск минимума Нелдера-Мида [[Тестовая функция для оптимизации|Функции оптимизации]]. Симплексные вершины упорядочиваются по их значению, при этом 1 имеет наименьшее (лучшее) значение.]]
[[Файл:Nelder-Mead Simionescu.gif|thumb|Поиск минимума Нелдера-Мида [[Тестовая функция для оптимизации|Функции оптимизации]]. Симплексные вершины упорядочиваются по их значению, при этом 1 имеет наименьшее (лучшее) значение.]]
Строка 8: Строка 8:
Теорию и методы решения задачи оптимизации изучает '''''математическое программирование'''''.
Теорию и методы решения задачи оптимизации изучает '''''математическое программирование'''''.


'''Математическое программирование''' — это область математики, разрабатывающая теорию, численные методы решения многомерных задач с ограничениями.<ref>Источник: [http://elib.altstu.ru Алтайская краевая универсальная научная библиотека им. В. Я. Шишкова (АКУНБ)]. Методы оптимизации: Учеб. пособие. Бразовская Н. В.; Алтайский государственный технический университет им. И. И. Ползунова, [Центр дистанц. обучения].-Барнаул: Изд-во АлтГТУ, 2000, 120 с. — УДК/ББК 22.183.4 Б871</ref>
'''Математическое программирование''' — это математики, теорию, численные методы решения многомерных задач с ограничениями.<ref>Источник: [http://elib.altstu.ru Алтайская краевая универсальная научная библиотека им. В. Я. Шишкова (АКУНБ)]. Методы оптимизации: Учеб. пособие. Бразовская Н. В.; Алтайский государственный технический университет им. И. И. Ползунова, [Центр дистанц. обучения].-Барнаул: Изд-во АлтГТУ, 2000, 120 с. — УДК/ББК 22.183.4 Б871</ref>


== Постановка задачи оптимизации ==
== Постановка задачи оптимизации ==
В процессе [[Проектирование|проектирования]] ставится обычно задача определения наилучших, в некотором смысле, структуры или значений [[Параметр (техника)|параметров]] объектов. Такая задача называется оптимизационной. Если оптимизация связана с расчётом [[Оптимальное решение|оптимальных значений]] параметров при заданной структуре объекта, то она называется ''параметрической оптимизацией''. Задача выбора оптимальной структуры является ''структурной оптимизацией''.
В процессе [[Проектирование|проектирования]] ставится обычно задача определения , в некотором смысле, структуры или значений [[Параметр (техника)|параметров]] объектов. Такая задача называется оптимизационной. Если оптимизация связана с расчётом [[Оптимальное решение|оптимальных значений]] параметров при заданной структуре объекта, то она называется ''параметрической оптимизацией''. Задача выбора оптимальной структуры является ''структурной оптимизацией''.


Стандартная математическая задача оптимизации формулируется таким образом. Среди элементов χ, образующих множества Χ, найти такой элемент χ<sup>*</sup>, который доставляет минимальное значение f(χ<sup>*</sup>) заданной функции f(χ). Для того, чтобы корректно поставить задачу оптимизации, необходимо задать:
Стандартная математическая задача оптимизации формулируется таким образом. Среди элементов χ, образующих множества Χ, найти такой элемент χ<sup>*</sup>, который доставляет минимальное значение f(χ<sup>*</sup>) заданной функции f(χ). Для того, чтобы корректно поставить задачу оптимизации, необходимо задать:
Строка 72: Строка 72:
** Отбрасываем те связи объекта оптимизации с внешним миром, которые не могут сильно повлиять на результат оптимизации, а, точнее, те, без которых решение упрощается
** Отбрасываем те связи объекта оптимизации с внешним миром, которые не могут сильно повлиять на результат оптимизации, а, точнее, те, без которых решение упрощается
* Выбор управляемых переменных
* Выбор управляемых переменных
** «Замораживаем» значения некоторых переменных (неуправляемые переменные). Другие оставляем принимать любые значения из области допустимых решений (управляемые переменные)
** «Замораживаем» значения некоторых переменных (неуправляемые переменные). Другие оставляем принимать любые значения из области допустимых решений (управляемые переменные)
* Определение ограничений на управляемые переменные
* Определение ограничений на управляемые переменные
** … (равенства и/или неравенства)
** … (равенства и/или неравенства)
Строка 116: Строка 116:
* {{книга|автор=Корн Г., Корн Т.|заглавие=Справочник по математике для научных работников и инженеров|место=М.|издательство=Наука|год=1970|страницы=575—576}}
* {{книга|автор=Корн Г., Корн Т.|заглавие=Справочник по математике для научных работников и инженеров|место=М.|издательство=Наука|год=1970|страницы=575—576}}
* {{книга|автор=Коршунов Ю. М., Коршунов Ю. М.|заглавие=Математические основы кибернетики|место=М.|издательство=[[Энергоатомиздат]]|год=1972}}
* {{книга|автор=Коршунов Ю. М., Коршунов Ю. М.|заглавие=Математические основы кибернетики|место=М.|издательство=[[Энергоатомиздат]]|год=1972}}
* ''[[Лотов, Александр Владимирович|Лотов А. В.]], Поспелова И. И.'' [http://www.ccas.ru/mmes/mmeda/Lotov&Posp.pdf Конспект лекций по теории и методам многокритериальной оптимизации.] Учеб. пос. М., 2005. 127 с.
* ''[[Лотов, Александр Владимирович|Лотов А. В.]], Поспелова И. И.'' [http://www.ccas.ru/mmes/mmeda/Lotov&Posp.pdf Конспект лекций по теории и методам многокритериальной оптимизации.] Учеб. пос. М., 2005. 127 с.
* {{книга|автор=Максимов Ю. А., Филлиповская Е. А.|заглавие=Алгоритмы решения задач нелинейного программирования|место=М.|издательство=МИФИ|год=1982}}
* {{книга|автор=Максимов Ю. А., Филлиповская Е. А.|заглавие=Алгоритмы решения задач нелинейного программирования|место=М.|издательство=МИФИ|год=1982}}
* {{книга|автор=Максимов Ю. А.|заглавие=Алгоритмы линейного и дискретного программирования|место=М.|издательство=МИФИ|год=1980}}
* {{книга|автор=Максимов Ю. А.|заглавие=Алгоритмы линейного и дискретного программирования|место=М.|издательство=МИФИ|год=1980}}
* {{книга|заглавие=Математическое программирование|оригинал=экспресс-курс|автор=Плотников А. Д.|isbn=985-475-186-4|страницы=171|год=2006}}
* {{книга|заглавие=Математическое программирование|оригинал=экспресс-курс|автор=Плотников А. Д.|isbn=985-475-186-4|страницы=171|год=2006}}
* {{книга|автор=Растригин Л. А.|заглавие=Статистические методы поиска|место=М.|год=1968}}
* {{книга|автор=Растригин Л. А.|заглавие=Статистические методы поиска|место=М.|год=1968}}
* ''Сергеев Я. Д., Квасов Д. Е.'' [http://www.studentlibrary.ru/book/ISBN9785922110327.html Диагональные методы глобальной оптимизации]. — М.: ФИЗМАТЛИТ, 2008. 341с.
* ''Сергеев Я. Д., Квасов Д. Е.'' [http://www.studentlibrary.ru/book/ISBN9785922110327.html Диагональные методы глобальной оптимизации]. — М.: ФИЗМАТЛИТ, 2008. 341с.
* {{книга|заглавие=Введение в исследование операций|оригинал=Operations Research: An Introduction|автор=Хемди А. Таха.|isbn=0-13-032374-8|страницы=912|год=2007|издание=8 изд|место=М.|издательство=[[Вильямс (издательство)|Вильямс]]}}
* {{книга|заглавие=Введение в исследование операций|оригинал=Operations Research: An Introduction|автор=Хемди А. Таха.|isbn=0-13-032374-8|страницы=912|год=2007|издание=8 изд|место=М.|издательство=[[Вильямс (издательство)|Вильямс]]}}
* {{книга|автор=Кини Р. Л., Райфа Х.|заглавие=Принятие решений при многих критериях: предпочтения и замещения|место=М.|издательство=Радио и связь|год=1981|страниц=560}}
* {{книга|автор=Кини Р. Л., Райфа Х.|заглавие=Принятие решений при многих критериях: предпочтения и замещения|место=М.|издательство=Радио и связь|год=1981|страниц=560}}
Строка 163: Строка 163:
* {{книга|автор=Реклейтис Г., Рейвиндран А., Рэгсдел К.|заглавие=Оптимизация в технике|место=М.|издательство=Мир|год=1986|страниц=400}}
* {{книга|автор=Реклейтис Г., Рейвиндран А., Рэгсдел К.|заглавие=Оптимизация в технике|место=М.|издательство=Мир|год=1986|страниц=400}}
* {{книга | автор = Романовский И. В. | заглавие = Алгоритмы решения экстремальных задач | место = М. | издательство = Наука | год = 1977 | страниц = 352 |тираж= 16000 | isbn = | ref = Романовский}}
* {{книга | автор = Романовский И. В. | заглавие = Алгоритмы решения экстремальных задач | место = М. | издательство = Наука | год = 1977 | страниц = 352 |тираж= 16000 | isbn = | ref = Романовский}}
* ''[[Умнов, Александр Евгеньевич|Умнов А.Е.]], Умнов Е.А.'' [http://www.umnov.ru/Kurs-Paramprog.pdf Параметрические задачи в математическом программировании] (pdf)
* ''[[Умнов, Александр Евгеньевич|Умнов А.Е.]], Умнов Е.А.'' [http://www.umnov.ru/Kurs-Paramprog.pdf Параметрические задачи в математическом программировании] (pdf)
* ''[[Хохлюк, Виталий Иванович|Хохлюк В. И.]]'' [http://math.nsc.ru/LBRT/u1/hohl/book.pdf Параллельные алгоритмы целочисленной оптимизации.] Курс лекций. Новосибирск, 2007.
* ''[[Хохлюк, Виталий Иванович|Хохлюк В. И.]]'' [http://math.nsc.ru/LBRT/u1/hohl/book.pdf Параллельные алгоритмы целочисленной оптимизации.] Курс лекций. Новосибирск, 2007.
* ''Хохлюк В. И.'' [http://math.nsc.ru/LBRT/u1/hohl/maket.pdf Методы дискретной оптимизации.] Учебное пособие. НГУ, 2013. 154 с.
* ''Хохлюк В. И.'' [http://math.nsc.ru/LBRT/u1/hohl/maket.pdf Методы дискретной оптимизации.] Учебное пособие. НГУ, 2013. 154 с.


== Ссылки ==
== Ссылки ==

Текущая версия от 16:17, 5 января 2024

Оптимизацияматематике, информатике и исследовании операций) — это задача нахождения экстремума (минимума или максимума) целевой функции в некоторой области конечномерного векторного пространства, ограниченной набором линейных и/или нелинейных равенств и/или неравенств.

График параболоида описанного функцией z = f(x, y) = −(x² + y²) + 4. Глобальный максимум от (x, y, z) = (0, 0, 4) обозначен синей точкой
Поиск минимума Нелдера-Мида Функции оптимизации. Симплексные вершины упорядочиваются по их значению, при этом 1 имеет наименьшее (лучшее) значение.

Теорию и методы решения задачи оптимизации изучает математическое программирование.

Математическое программирование — это раздел математики, разрабатывающий теорию, численные методы решения многомерных задач оптимизации с ограничениями.[1]

Постановка задачи оптимизации

[править | править код]

В процессе проектирования ставится обычно задача определения наилучшей, в некотором смысле, структуры или наилучших значений параметров объектов. Такая задача называется оптимизационной. Если оптимизация связана с расчётом оптимальных значений параметров при заданной структуре объекта, то она называется параметрической оптимизацией. Задача выбора оптимальной структуры является структурной оптимизацией.

Стандартная математическая задача оптимизации формулируется таким образом. Среди элементов χ, образующих множества Χ, найти такой элемент χ*, который доставляет минимальное значение f(χ*) заданной функции f(χ). Для того, чтобы корректно поставить задачу оптимизации, необходимо задать:

  1. Допустимое множество — множество ;
  2. Целевую функцию — отображение ;
  3. Критерий поиска (max или min).

Тогда решить задачу означает одно из:

  1. Показать, что .
  2. Показать, что целевая функция не ограничена снизу.
  3. Найти .
  4. Если , то найти .

Если минимизируемая функция не является выпуклой, то часто ограничиваются поиском локальных минимумов и максимумов: точек таких, что всюду в некоторой их окрестности для минимума и для максимума.

Если допустимое множество , то такая задача называется задачей безусловной оптимизации, в противном случае — задачей условной оптимизации.

Классификация методов оптимизации

[править | править код]

Общая запись задач оптимизации задаёт большое разнообразие их классов. От класса задачи зависит подбор метода (эффективность её решения). Классификацию задач определяют: целевая функция и допустимая область (задаётся системой неравенств и равенств или более сложным алгоритмом).[2]

Методы оптимизации классифицируют в соответствии с задачами оптимизации:

  • Локальные методы: сходятся к какому-нибудь локальному экстремуму целевой функции. В случае унимодальной целевой функции, этот экстремум единственен, и будет глобальным максимумом/минимумом.
  • Глобальные методы: имеют дело с многоэкстремальными целевыми функциями. При глобальном поиске основной задачей является выявление тенденций глобального поведения целевой функции.

Существующие в настоящее время методы поиска можно разбить на три большие группы:

  1. детерминированные;
  2. случайные (стохастические);
  3. комбинированные.

По критерию размерности допустимого множества, методы оптимизации делят на методы одномерной оптимизации и методы многомерной оптимизации.

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

По требованиям к гладкости и наличию у целевой функции частных производных, их также можно разделить на:

  • прямые методы, требующие только вычислений целевой функции в точках приближений;
  • методы первого порядка: требуют вычисления первых частных производных функции;
  • методы второго порядка: требуют вычисления вторых частных производных, то есть гессиана целевой функции.

Помимо того, оптимизационные методы делятся на следующие группы:

В зависимости от природы множества X задачи математического программирования классифицируются как:

Кроме того, разделами математического программирования являются параметрическое программирование, динамическое программирование и стохастическое программирование.

Математическое программирование используется при решении оптимизационных задач исследования операций.

Способ нахождения экстремума полностью определяется классом задачи. Но перед тем, как получить математическую модель, нужно выполнит�� 4 этапа моделирования:

  • Определение границ системы оптимизации
    • Отбрасываем те связи объекта оптимизации с внешним миром, которые не могут сильно повлиять на результат оптимизации, а, точнее, те, без которых решение упрощается
  • Выбор управляемых переменных
    • «Замораживаем» значения некоторых переменных (неуправляемые переменные). Другие оставляем принимать любые значения из области допустимых решений (управляемые переменные)
  • Определение ограничений на управляемые переменные
    • … (равенства и/или неравенства)
  • Выбор числового критерия оптимизации (например, показателя эффективности)
    • Создаём целевую функцию

Задачи линейного программирования были первыми подробно изученными задачами поиска экстремума функций при наличии ограничений типа неравенств. В 1820 году Фурье и затем в 1947 году Джордж Данциг предложил метод направленного перебора смежных вершин в направлении возрастания целевой функции — симплекс-метод, ставший основным при решении задач линейного программирования.

Присутствие в названии дисциплины термина «программирование» объясняется тем, что первые исследования и первые приложения линейных оптимизационных задач были в сфере экономики, так как в английском языке слово «programming» означает планирование, составление планов или программ. Вполне естественно, что терминология отражает тесную связь, существующую между математической постановкой задачи и её экономической интерпретацией (изучение оптимальной экономической программы). Термин «линейное программирование» был предложен Дж. Данцигом в 1949 году для изучения теоретических и алгоритмических задач, связанных с оптимизацией линейных функций при линейных ограничениях.

Поэтому наименование «математическое программирование» связано с тем, что целью решения задач является выбор оптимальной программы действий.

Выделение класса экстремальных задач, определяемых линейным функционалом на множестве, задаваемом линейными ограничениями, следует отнести к 1930-м годам. Одними из первых, исследовавшими в общей форме задачи линейного программирования, были: Джон фон Нейман — математик и физик, доказавший основную теорему о матричных играх и изучивший экономическую модель, носящую его имя, и Л. В. Канторович — советский академик, лауреат Нобелевской премии (1975), сформулировавший ряд задач линейного программирования и предложивший в 1939 году метод их решения (метод разрешающих множителей), незначительно отличающийся от симплекс-метода.

В 1931 году венгерский математик Б. Эгервари рассмотрел математическую постановку и решил задачу линейного программирования, имеющую название «проблема выбора», метод решения получил название «венгерского метода».

Л. В. Канторович и М. К. Гавурин в 1949 году разработали метод потенциалов, который применяется при решении транспортных задач. В последующих работах Л. В. Канторовича, В. С. Немчинова, В. В. Новожилова, А. Л. Лурье, А. Брудно, А. Г. Аганбегяна, Д. Б. Юдина, Е. Г. Гольштейна и других математиков и экономистов получили дальнейшее развитие как математическая теория линейного и нелинейного программирования, так и приложение её методов к исследованию различных экономических проблем.

Методам линейного программирования посвящено много работ зарубежных учёных. В 1941 году Ф. Л. Хитчкок поставил транспортную задачу. Основной метод решения задач линейного программирования — симплекс-метод — был опубликован в 1949 году Дж. Данцигом. Дальнейшее развитие методы линейного и нелинейного программирования получили в работах Г. Куна, А. Таккера, Гасса (Saul I. Gass), Чарнеса (A. Charnes), Била (E. M. Beale) и др.

Одновременно с развитием линейного программирования большое внимание уделялось задачам нелинейного программирования, в которых либо целевая функция, либо ограничения, либо то и другое нелинейны. В 1951 году была опубликована работа Г. Куна и А. Таккера, в которой приведены необходимые и достаточные условия оптимальности для решения задач нелинейного программирования. Эта работа послужила основой для последующих исследований в этой области.

Начиная с 1955 года опубликовано много работ, посвященных квадратическому программированию (работы Била, Баранкина и Р. Дорфмана, Франка (M. Frank) и Ф. Вулфа[англ.], Г. Марковица и др.). В работах Денниса (J. B. Dennis), Розена (J. B. Rosen) и Зонтендейка (G. Zontendijk) разработаны градиентные методы решения задач нелинейного программирования.

В настоящее время для эффективного применения методов математического программирования и решения задач на компьютерах разработаны алгебраические языки моделирования, представителями которыми являются AMPL и LINGO.

Примечания

[править | править код]
  1. Источник: Алтайская краевая универсальная научная библиотека им. В. Я. Шишкова (АКУНБ) Архивная копия от 5 марта 2022 на Wayback Machine. Методы оптимизации: Учеб. пособие. Бразовская Н. В.; Алтайский государственный технический университет им. И. И. Ползунова, [Центр дистанц. обучения].-Барнаул: Изд-во АлтГТУ, 2000, 120 с. — УДК/ББК 22.183.4 Б871
  2. Поиск оптимума: компьютер расширяет возможности. — М.: Наука, 1989. — С. 14. — ISBN 5-02-006737-7.

Литература

[править | править код]