Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Квадратичное программирование кратко

Лекция



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

квадратичное программирование (англ. quadratic programming, QP) — это процесс решения задачи оптимизации специального типа, а именно — задачи оптимизации (минимизации или максимизации) квадратичной функции нескольких переменных при линейных ограничениях на эти переменные. Квадратичное программирование является частным случаем нелинейного программирования.

Квадратичное программирование (КП) - это раздел математического программирования, который занимается решением оптимизационных задач, включающих квадратичную целевую функцию и линейные или квадратичные ограничения.

Формулировка задачи

Задача квадратичного программирования с n переменными и m ограничениями можно сформулировать следующим образом .

Дано:

  • вещественный n-мерный вектор c,
  • n × n-мерная вещественная симметричная матрица Q,
  • m × n-мерная вещественная матрица A
  • вещественный m-мерный вектор b,

Целью задачи квадратичного программирования является поиск n-мерного вектора x, который

минимизирует Квадратичное программирование
при условиях Квадратичное программирование

где xT обозначает транспонированный вектор. Обозначение Axb означает, что любой элемент вектора Ax не превосходит соответствующего элемента вектора b.

Связанная задача программирования, квадратичная задача с квадратичными ограничениями имеет квадратичные ограничения на переменные.

Методы решения

Для общих значений используются различные методы, среди них

  • Метод внутренней точки
  • Метод активного набора
  • Метод обобщенного лагранжиана
  • метод сопряженных градиентов
  • Метод проекции градиента
  • Модификация симплекс-метода

В случае, когда Q является положительно определенной, задача является частным случаем более общей задачи выпуклой оптимизации.

Ограничения – равенства

Задача квадратичного программирования несколько проще, если Q является положительно определенной и все ограничения являются равенствами (нет неравенств), поскольку в этом случае можно свести задачу к решению системы линейных уравнений. Если использовать множители Лагранжа и искать экстремум лагранжиана, можно легко показать, что решение задачи

минимизировать Квадратичное программирование
при условиях Квадратичное программирование

определяется системой линейных уравнений

Квадратичное программирование

где Квадратичное программирование — множество множителей Лагранжа, которые появляются вместе с решением Квадратичное программирование.

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

Если число ограничений не равно числу переменных, можно попробовать относительно простую атаку, заменив переменные таким образом, что ограничения будут выполняться безусловно. Например, допустим, что Квадратичное программирование (переход к ненулевым значениям достаточно прост). Рассмотрим ограничения

Квадратичное программирование

Введем новый вектор Квадратичное программирование, определенный равенством

Квадратичное программирование

где Квадратичное программирование имеет размерность Квадратичное программирование минус число ограничений. Тогда

Квадратичное программирование

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

Квадратичное программирование

и решение можно будет найти, решив уравнение

Квадратичное программирование

При некоторых ограничениях на Квадратичное программирование сокращенная матрица Квадратичное программирование будет положительно определена. Можно написать вариант метода сопряженных градиентов, при котором нет необходимости явного вычисления матрицы Квадратичное программирование .

Лагранжева двойственност Двойственная задача

Двойственная задача Лагранжа для квадратичного программирования является также задачей квадратичного программирования. Чтобы это понять, остановимся на случае Квадратичное программирование с положительно определенной матрицей Q. Выпишем множители Лагранжа функции

Квадратичное программирование

Если определим (лагранжеву) двойственную функцию Квадратичное программирование как Квадратичное программирование, мы ищем нижнюю границу Квадратичное программирование, используя Квадратичное программирование и положительную определенность мaтрицы Q:

Квадратичное программирование

Следовательно, двойственна функция равна

Квадратичное программирование

и двойственной задачей Лагранжа для исходной задачи будет

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

Кроме теории двойственности Лагранжа, существуют другие двойственные пары задач (например, двойственность Вулфа ).

Сложность

Для положительно определенной матрицы Q метод эллипсоидов решает задачу за полиномиальное время . Если, с другой стороны, Q не является положительно определенной, то задача становится NP-трудной . Фактически, даже если Q имеет единственное отрицательное собственное значение, задача NP-трудна .

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

Применение

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

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

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

Из статьи мы узнали кратко, но содержательно про квадратичное программирование
создано: 2023-06-04
обновлено: 2023-06-04
132265



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


Поделиться:

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

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

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

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



Комментарии


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

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

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