Оптимизация с ограничениями (Khmnbn[genx v kijguncyunxbn)
Оптимизация с ограничениями — это процесс оптимизации целевой функции с учётом некоторых ограничений[англ.] с некоторыми переменными. Целевая функция является функцией потерь, энергетической функцией, которая минимизируется, функцией вознаграждения, или функцией полезности, которая максимизируется.
Связь с задачами удовлетворения ограничений
[править | править код]Задача оптимизации с ограничениями является сильным обобщением классической задачи удовлетворения ограничений[1]. Задача оптимизации с ограничениями является задачей удовлетворения ограничений, в которой добавлена целевая функция, требующая оптимизации.
Общая форма
[править | править код]Общая задача минимизации с ограничениями можно записать следующим образом:
где для и для являются ограничениями, которые должны выполняться (они называются жёсткими ограничениями[англ.]), а является целевой функцией, которую нужно оптимизировать при ограничениях.
В некоторых задачах целевая функция, фактически, равна сумме функций цены, каждая из которых штрафует за выход на точку, в которой мягкие ограничения[англ.] (ограничения, которые предпочтительны, но не обязательно должны выполняться) нарушаются.
Методы решения
[править | править код]Многие алгоритмы оптимизации без ограничений могут быть применены в случае присутствия ограничений, часто путём использования метода штрафов. Однако, шаги поиска, предпринимаемые в методах без ограничений, могут оказаться неприемлемыми для задач с ограничениями, приводящими к потере сходимости. Этот эффект называют эффектом Маратоса[2].
Ограничения-равенства
[править | править код]Метод подстановки
[править | править код]Для очень простых задач, скажем, для функции от двух переменных с единственным линейным ограничением (равенством), наиболее практичным подходом является применение подстановки[3]. Идея заключается в подстановке ограничения в целевую функцию для создания композиции функций, которая включает эффект ограничения. Например, представим, что целью является максимизация функции при условии . Из условия следует, что , и мы можем подставить выражение справа вместо в целевую функцию, что нам даст . Необходимое условие экстремума даёт равенство , которое можно решить и получить , а тогда, соответственно, .
Множитель Лагранжа
[править | править код]Если задача имеет лишь ограничения-равенства, может быть использован метод множителей Лагранжа для преобразования задачи в задачу без ограничений, в которой число переменных равно исходному числу переменных плюс исходное число ограничений. Альтернативно, если все все ограничения являются равенствами и все линейны, они могут быть решены относительно некоторых переменных в терминах других (одни переменные могут быть выражены через другие), а затем подставлены в целевую функцию, получая задачу без ограничений с меньшим числом переменных.
Ограничения-неравенства
[править | править код]С ограничениями-неравенствами задача может быть описана в терминах геометрических условий оптимальности, условий Фрица Джона[англ.] и условий Каруша — Куна — Таккера, при которых могут быть решены простые задачи.
Линейное программирование
[править | править код]Если целевая функция и все жёсткие ограничения линейны и некоторые из жёстких ограничений являются неравенствами, то задача является задачей линейного программирования. Задача может быть решена симплекс-методом, который обычно работает за полиномиальное от размера задачи время (но эта скорость не гарантирована) или методами внутренней точки, которые гарантированно работают за полиномиальное время.
Нелинейное программирование
[править | править код]Если целевая функция или некоторые из ограничений нелинейны, а некоторые из ограничений являются неравенствами , то задача является задачей нелинейного программирования.
Квадратичное программирование
[править | править код]Если все жёсткие ограничения линейны и некоторые из них являются неравенствами, но целевая функция квадратична, то задача является задачей квадратичного программирования. Это один из типов нелинейного программирования. Эту задачу можно решать за полиномиальное время методом эллипсоидов, если целевая функция выпукла. В противном случае задача может оказаться NP трудной.
ККТ условия
[править | править код]В случае неравенств ККТ подход для нелинейного программирования обобщает метод множителей Лагранжа. Он может быть применён при условии дифференцируемости и выпуклости.
Метод ветвей и границ
[править | править код]Задачи оптимизации с ограничениями могут быть решены методом ветвей и границ. Это алгоритмы перебора, запоминающие цену лучшего решения, найденного при выполнении и использующий её для отсечения ветвей поиска. Более точно, когда алгоритм находит частичное решение, которое нельзя расширить до образования решения с лучшей ценой, чем запомненная цена, алгоритм возвращается вместо попыток расширить решение.
При предположении, что цену следует минимизировать, эффективность этих алгоритмов зависит от того, как вычисляется цена , которая может быть получена при расширении частичного решения. Если алгоритм возвращается при поиске, часть возможных вариантов поиска пропускается. Чем ниже оценочная цена, тем лучше работает алгоритм, поскольку при низкой оценке мы более вероятно найдём решение лучше, чем уже встретили.
С другой стороны, эта оценочная цена не может быть ниже фактической цены, которая может быть получена путём расширения решения, так как в противном случае алгоритм может выполнить возврат, хотя решение в ветви может быть лучше, чем найденное ранее. Как результат, алгоритму требуется верхняя граница цены, которую можно получить при расширении частичного решения, и эта верхняя граница должна быть как можно меньше.
Вариант этого подхода, называемый методом Хансена, использует интервальные методы[4]. Метод по умолчанию реализует прямоугольные ограничения.
Выбор ограничивающих функций
[править | править код]Одним из способов получения этой верхней границы для частичного решения является рассмотрение каждого мягкого ограничения отдельно. Для каждого мягкого ограничения предполагается максимальное возможное значение для неназначенных переменных. Сумма этих значений является верхним значением, поскольку мягкие ограничения не могут принимать большие значения. Это потому, что максимальные значения могут получиться в результате вычисления в различных точках – мягкое ограничение может принимать максимальное значение в точке , в то время как другое ограничение будет максимальным в точке .
Поиск матрёшки
[править | править код]Этот метод[5] работает с помощью алгоритма ветвей и границ на задачах, где равно числу переменных. Каждая такая задач является подзадачей, полученной путём исключения последовательности переменных из исходной задачи вместе с ограничениями, содержащими их. После того, как задача на переменных решена, её оптимальная цена может быть использована как верхняя граница для решения остальных задач,
В частности, оценка решения для неназначенных переменных добавляется к оценке, полученной из назначенных переменных. Виртуально, это соответствует игнорированию назначенных переменных и решению задачи на неназначенных. Более точно, цена мягких ограничений, содержащих как назначенные, так и неназначенные переменные, оценивается так же, как выше (или с помощью любого другого метода). Цена мягких ограничений, содержащих только неназначенные переменные оценивается с помощью оптимального решения соответствующей задачи, которая уже известна в этой точке.
Имеется сходство между поиском матрёшки и динамическим программированием. Подобно динамическому программированию поиск матрёшки решает подзадачи для решения основной задачи. Однако, в то время как динамическое программирование прямо комбинирует результаты, полученные при решении подзадачи, чтобы получить решение основной задачи, поиск матрёшки использует их только как границы в течение поиска.
Сегментное исключение
[править | править код]Алгоритм сегментного исключения[англ.] может быть приспособлен для оптимизации с ограничениями. Заданная переменная может быть удалена из задачи заменой всех мягких ограничений, её содержащих, новым мягким ограничением. Цена этого нового ограничения вычисляется в предположении максимального значения для всех удаляемых переменных. Формально, если является удаляемой переменной, то являются мягкими ограничениями, её содержащими, и являютс их переменными, за исключением , новое ограничение определяется как:
Сегментное исключение работает с произвольным упорядочением переменных. Любая переменная ассоциирована с набором ограничений, который все ограничения, имеющие более высокий порядок. Сегментное исключение работает с последней переменной к первой. Для каждой переменной все ограничения сегмента заменяются как описано выше для исключения переменной. Результирующее ограничение затем помещается в подходящий набор.
См. также
[править | править код]- Метод наименьших квадратов с ограничениями[англ.]
- Распределённая оптимизация в ограничениях[англ.]
- Удовлетворение ограничений
- Программирование в ограничениях
- Целочисленное программирование
- Метод штрафов
Примечания
[править | править код]- ↑ Rossi, van Beek, Walsh, 2006, с. 3–12.
- ↑ Sun, Yua, 2010, с. 541.
- ↑ Prosser, 1993, с. 338–346.
- ↑ Leader, 2004.
- ↑ Verfaillie, Lemaître, Schiex, 1996.
Литература
[править | править код]- Gérard Verfaillie, Michel Lemaître, Thomas Schiex. Russian doll search for solving constraint optimization problems // AAAI/IAAI. — 1996. — Т. 1..
- Wenyu Sun, Ya-Xiang Yua. Optimization Theory and Methods: Nonlinear Programming. — Springer, 2010. — ISBN 978-1441937650.
- Mike Prosser. Constrained Optimization by Substitution // Basic Mathematics for Economists. — New York: Routledge, 1993. — ISBN 0-415-08424-5.
- Jeffery J. Leader. Numerical Analysis and Scientific Computation. — Addison Wesley, 2004. — ISBN 0-201-73499-0.
Литература для дальнейшего чтения
[править | править код]- Dimitri P. Constrained Optimization and Lagrange Multiplier Methods. — New York: Academic Press, 1982. — ISBN 0-12-093480-9.
- Francesca Rossi, Peter van Beek, Toby Walsh. Chapter 1 – Introduction. — Elsevier, 2006. — Т. 2. — С. 3–12. — (Handbook of Constraint Programming). — doi:10.1016/s1574-6526(06)80005-2.
- Rina Dechter. Constraint Processing. — Morgan Kaufmann, 2003. — ISBN 1-55860-890-7.
На эту статью не ссылаются другие статьи Википедии. |
Для улучшения этой статьи желательно:
|