Лекция
Привет, Вы узнаете о том , что такое квадратичное программирование , Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое квадратичное программирование , настоятельно рекомендую прочитать все из категории Математическое программирование.
квадратичное программирование (англ. quadratic programming, QP) — это процесс решения задачи оптимизации специального типа, а именно — задачи оптимизации (минимизации или максимизации) квадратичной функции нескольких переменных при линейных ограничениях на эти переменные. Квадратичное программирование является частным случаем нелинейного программирования.
Квадратичное программирование (КП) - это раздел математического программирования, который занимается решением оптимизационных задач, включающих квадратичную целевую функцию и линейные или квадратичные ограничения.
Задача квадратичного программирования с n переменными и m ограничениями можно сформулировать следующим образом .
Дано:
Целью задачи квадратичного программирования является поиск n-мерного вектора x, который
| минимизирует | |
| при условиях | |
где xT обозначает транспонированный вектор. Обозначение Ax ≤ b означает, что любой элемент вектора Ax не превосходит соответствующего элемента вектора b.
Связанная задача программирования, квадратичная задача с квадратичными ограничениями имеет квадратичные ограничения на переменные.
Для общих значений используются различные методы, среди них
В случае, когда Q является положительно определенной, задача является частным случаем более общей задачи выпуклой оптимизации.
Задача квадратичного программирования несколько проще, если Q является положительно определенной и все ограничения являются равенствами (нет неравенств), поскольку в этом случае можно свести задачу к решению системы линейных уравнений. Если использовать множители Лагранжа и искать экстремум лагранжиана, можно легко показать, что решение задачи
| минимизировать | |
| при условиях | |
определяется системой линейных уравнений
где — множество множителей Лагранжа, которые появляются вместе с решением
.
Самый легкий способ решить эту систему — решить ее прямыми методами (например, с помощью LU-разложения, очень удобного для небольших задач). Об этом говорит сайт https://intellect.icu . Для больших задач возникают некоторые необычные трудности, наиболее заметные, когда задача не положительно определена (даже если положительно определена), что делает потенциально очень трудно найти хороший математический подход и существует много подходов, зависящих от задачи .
Если число ограничений не равно числу переменных, можно попробовать относительно простую атаку, заменив переменные таким образом, что ограничения будут выполняться безусловно. Например, допустим, что (переход к ненулевым значениям достаточно прост). Рассмотрим ограничения
Введем новый вектор , определенный равенством
где имеет размерность
минус число ограничений. Тогда
и если матрица выбрана так, что
, равенства в ограничениях будут выполняться всегда. Поиск матрицы
подразумевает нахождение ядра матрицы
, что более или менее просто, в зависимости от структуры матрицы
. Подставляя новый вектор в исходные условия, получаем квадратичную задачу без ограничений:
и решение можно будет найти, решив уравнение
При некоторых ограничениях на сокращенная матрица
будет положительно определена. Можно написать вариант метода сопряженных градиентов, при котором нет необходимости явного вычисления матрицы
.
Двойственная задача Лагранжа для квадратичного программирования является также задачей квадратичного программирования. Чтобы это понять, остановимся на случае с положительно определенной матрицей Q. Выпишем множители Лагранжа функции
Если определим (лагранжеву) двойственную функцию как
, мы ищем нижнюю границу
, используя
и положительную определенность мaтрицы Q:
Следовательно, двойственна функция равна
и двойственной задачей Лагранжа для исходной задачи будет
| минимизировать | |
| при условиях | |
Кроме теории двойственности Лагранжа, существуют другие двойственные пары задач (например, двойственность Вулфа ).
Для положительно определенной матрицы Q метод эллипсоидов решает задачу за полиномиальное время . Если, с другой стороны, Q не является положительно определенной, то задача становится NP-трудной . Фактически, даже если Q имеет единственное отрицательное собственное значение, задача NP-трудна .
Квадратичное программирование находит значения переменных x, которые минимизируют или максимизируют квадратичную целевую функцию, при соблюдении всех ограничений. Решение квадратичной оптимизационной задачи может быть получено с использованием различных методов, включая метод активных множителей, метод внутренней точки, метод последовательного квадратичного программирования и другие.
Квадратичное программирование широко используется во многих областях, включая финансы, инженерное проектирование, экономику, статистику, управление производством и другие, где необходимо решить задачу оптимизации с квадратичными функциями и линейными или квадратичными ограничениями.
Исследование, описанное в статье про квадратичное программирование , подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое квадратичное программирование и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Математическое программирование
Из статьи мы узнали кратко, но содержательно про квадратичное программирование
Комментарии