Оптимизация и математическое программирование кратко

Лекция



Potemkin Monkey Jungle Adventure

Game: Perform tasks and rest cool.11 people play!

Play game

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

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

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

Математическое программирование - это область математики, разрабатывающая теорию, численные методы решения многомерных задач с ограничениями. В отличие от классической математики, математическое программирование занимается математическими методами решения задач нахождения наилучших вариантов из всех возможных.

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

Существует несколько разновидностей математического программирования, включая линейное программирование (ЛП), целочисленное программирование (ЦП), нелинейное программирование (НЛП), динамическое программирование (ДП), квадратичное программирование (КП) и другие.

Важными компонентами оптимизационных задач являются:

  1. Целевая функция: функция, которую необходимо минимизировать или максимизировать. Целевая функция зависит от переменных, которые оптимизируются.

  2. Ограничения: условия, которым должны удовлетворять переменные. Ограничения могут быть линейными или нелинейными и могут определяться равенствами или неравенствами.

  3. Переменные: значения, которые требуется оптимизировать. В линейном программировании переменные являются непрерывными, в то время как в целочисленном программировании они ограничены целочисленными значениями.

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

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

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

Potemkin Monkey Jungle Adventure

Game: Perform tasks and rest cool.11 people play!

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

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

Тогда решить задачу Оптимизация и математическое программирование означает одно из:

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

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

Potemkin Monkey Jungle Adventure

Game: Perform tasks and rest cool.11 people play!

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

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

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

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

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

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

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

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

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

  • Задачи оптимизации, в которых целевая функция Оптимизация и математическое программирование и ограничения Оптимизация и математическое программирование являются линейными функциями, разрешаются так называемыми методами линейного программирования.
  • В противном случае имеют дело с задачей нелинейного программирования и применяют соответствующие методы. В свою очередь из них выделяют две частные задачи:
    • если Оптимизация и математическое программирование и Оптимизация и математическое программирование — выпуклые функции, то такую задачу называют задачей выпуклого программирования;
    • если Оптимизация и математическое программирование, то имеют дело с задачей целочисленного (дискретного) программирования.

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

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

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

  • аналитические методы (например, метод множителей Лагранжа и условия Каруша-Куна-Таккера);
  • численные методы;
  • графические методы.
Potemkin Monkey Jungle Adventure

Game: Perform tasks and rest cool.11 people play!

Play game

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

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

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

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

Potemkin Monkey Jungle Adventure

Game: Perform tasks and rest cool.11 people play!

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

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

История

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

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

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

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

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

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

Potemkin Monkey Jungle Adventure

Game: Perform tasks and rest cool.11 people play!

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

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

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

Применение

Potemkin Monkey Jungle Adventure

Game: Perform tasks and rest cool.11 people play!

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

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

Вау!! 😲 Ты еще не читал? Это зря!

А как ты думаешь, при улучшении оптимизация, будет лучше нам? Надеюсь, что теперь ты понял что такое оптимизация, математическое программирование и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Математическое программирование

создано: 2014-08-21
обновлено: 2023-06-04
338



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Математическое программирование

Термины: Математическое программирование