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

редактировать

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

Содержание

  • 1 Связь с проблемами удовлетворения ограничений
  • 2 Общая форма
  • 3 Методы решения
    • 3.1 Ограничения равенства
      • 3.1.1 Метод подстановки
      • 3.1.2 Множитель Лагранжа
    • 3.2 Ограничения неравенства
      • 3.2.1 Линейное программирование
      • 3.2.2 Нелинейное программирование
      • 3.2.3 Квадратичное программирование
      • 3.2.4 Условия KKT
      • 3.2.5 Ветвление и граница
      • 3.2. 6 Ограничивающие функции первого выбора
        • 3.2.6.1 Поиск матрешки
      • 3.2.7 Исключение корзины
  • 4 См. Также
  • 5 Ссылки
  • 6 Дополнительная литература

Связь с проблемами удовлетворения ограничений

Задача оптимизации с ограничениями (COP) является существенным обобщением классической модели проблемы удовлетворения ограничений (CSP). COP - это CSP, который включает оптимизируемую целевую функцию. Для обработки части оптимизации используется множество алгоритмов.

Общая форма

Общая задача минимизации с ограничениями может быть записана следующим образом:

min f (x) subjecttogi (x) = ci для i = 1,…, n Ограничения равенства hj (x) ≧ dj для j = 1,…, m Ограничения неравенства {\ displaystyle {\ begin {array} {rcll} \ min ~ f (\ mathbf {x}) \\\ mathrm {subject ~ to} ~ g_ {i} (\ mathbf {x}) = c_ {i} {\ text {for}} i = 1, \ ldots, n \ quad {\ text {Ограничения равенства}} \\ ~ h_ {j } (\ mathbf {x}) \ geqq d_ {j} {\ text {for}} j = 1, \ ldots, m \ quad {\ text {Ограничения неравенства}} \ end {array}}}{\ begin {array} {rcll} \ min ~ f ({\ mathbf {x}}) \\ {\ mathrm {subject ~ to}} ~ g_ {i} ({\ mathbf {x}}) = c_ {i} {\ text {for}} i = 1, \ ldots, n \ quad {\ text {Ограничения равенства}} \\ ~ h_ {j} ({\ mathbf {x}}) \ geqq d_ {j} {\ text {for}} j = 1, \ ldots, m \ quad {\ text {Ограничения неравенства}} \ end {array}}

где gi (x) = cifori = 1,…, n {\ displaystyle g_ {i} (\ mathbf {x}) = c_ {i} ~ \ mathrm {for ~} i = 1, \ ldots, n }g_ {i} ({\ mathbf {x}}) = c_ {i} ~ {\ mathrm {for ~}} i = 1, \ ldots, n и hj (x) ≥ djforj = 1,…, m {\ displaystyle h_ {j} (\ mathbf {x}) \ geq d_ {j} ~ \ mathrm {for ~} j = 1, \ ldots, m}h_ {j} ({\ mathbf {x}}) \ geq d_ {j} ~ {\ mathrm {для ~}} j = 1, \ ldots, m - это ограничения, которые необходимо выполнить (они называются жесткими ограничениями ), и f (x) {\ displaystyle f ( \ mathbf {x})}е (\ mathbf {x}) - целевая функция, которую необходимо оптимизировать. ct к ограничениям.

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

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

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

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

Метод подстановки

Для очень простых задач, скажем, функция двух переменных с одним ограничением равенства, она Наиболее практично применять метод подстановки. Идея состоит в том, чтобы подставить ограничение в целевую функцию, чтобы создать составную функцию , которая учитывает эффект ограничения. Например, предположим, что цель состоит в том, чтобы максимизировать f (x, y) = x ⋅ y {\ displaystyle f (x, y) = x \ cdot y}{\ displaystyle f (x, y) = x \ cdot y} с учетом x + у = 10 {\ Displaystyle х + у = 10}{\ displaystyle x + y = 10} . Ограничение подразумевает y = 10 - x {\ displaystyle y = 10-x}{\ displaystyle y = 10-x} , которое можно подставить в целевую функцию для создания p (x) = x (10 - x) = 10 x - x 2 {\ displaystyle p (x) = x (10-x) = 10x-x ^ {2}}{\ displaystyle p (x) = x (10-x) = 10x -x ^ {2}} . Необходимое условие первого порядка дает ∂ p ∂ x = 10-2 x = 0 {\ displaystyle {\ frac {\ partial p} {\ partial x}} = 10-2x = 0}{\ displaystyle {\ frac {\ partial p} {\ partial x}} = 10-2x = 0 } , которое может быть решено для x = 5 {\ displaystyle x = 5}x = 5 и, следовательно, y = 10-5 = 5 {\ displaystyle y = 10-5 = 5 }{\ displaystyle y = 10-5 = 5} .

Множитель Лагранжа

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

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

С ограничениями неравенства, проблема может быть охарактеризована в терминах, условий Фрица Джона и условий Каруша – Куна – Таккера, при котором могут быть решены простые проблемы.

Линейное программирование

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

Нелинейное программирование

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

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

Если все жесткие ограничения являются линейными, а некоторые - неравенствами, но целевая функция квадратична, проблема представляет собой задачу квадратичного программирования. Это один из видов нелинейного программирования. Ее все еще можно решить за полиномиальное время с помощью метода эллипсоидов , если целевая функция выпуклая ; в противном случае проблема может заключаться в NP hard.

условиях KKT

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

.

Ветвление и граница

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

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

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

Вариант этого подхода, называемый методом Хансена, использует интервальные методы. Он по своей сути реализует прямоугольные ограничения.

Ограничивающие функции первого выбора

Один из способов оценки этой верхней границы для частичного решения - рассмотреть каждое мягкое ограничение отдельно. Для каждого мягкого ограничения предполагается максимально возможное значение для любого присвоения неназначенным переменным. Сумма этих значений является верхней границей, поскольку мягкие ограничения не могут принимать более высокое значение. Это точно, потому что максимальные значения мягких ограничений могут быть получены из разных оценок: мягкое ограничение может быть максимальным для x = a {\ displaystyle x = a}x = a , в то время как другое ограничение является максимальным для x = b {\ displaystyle x = b}{\ displaystyle x = b} .

Поиск матрешки

Этот метод запускает алгоритм ветвей и границ для n {\ displaystyle n}n задач, где n {\ displaystyle n}n - количество переменных. Каждая такая задача - это подзадача, полученная путем удаления последовательности переменных x 1,…, xi {\ displaystyle x_ {1}, \ ldots, x_ {i}}x_ {1}, \ ldots, x_ {i} из исходной задачи вместе с с содержащими их ограничениями. После решения задачи о переменных xi + 1,…, xn {\ displaystyle x_ {i + 1}, \ ldots, x_ {n}}х _ {{я + 1}}, \ ldots, x_ {n} ее оптимальную стоимость можно использовать в качестве верхняя граница при решении других задач,

В частности, оценка стоимости решения, имеющего xi + 1,…, xn {\ displaystyle x_ {i + 1}, \ ldots, x_ {n }}х _ {{я + 1}}, \ ldots, x_ {n} в качестве неназначенных переменных добавляется к стоимости, полученной из оцененных переменных. Фактически, это соответствует игнорированию оцененных переменных и решению проблемы с неназначенными, за исключением того, что последняя проблема уже решена. Точнее, стоимость мягких ограничений, содержащих как присвоенные, так и неназначенные переменные, оценивается, как указано выше (или с использованием любого другого метода); стоимость мягких ограничений, содержащих только неназначенные переменные, вместо этого оценивается с использованием оптимального решения соответствующей задачи, которое уже известно на данный момент.

Существует сходство между методом поиска русской куклы и динамическим программированием. Подобно динамическому программированию, Russian Doll Search решает подзадачи для решения всей проблемы. Но в то время как динамическое программирование напрямую комбинирует результаты, полученные по подзадачам, чтобы получить результат всей задачи, Russian Doll Search использует их только как границы во время поиска.

Исключение сегмента

Алгоритм исключения сегмента можно адаптировать для оптимизации ограничений. Данную переменную действительно можно удалить из проблемы, заменив все мягкие ограничения, содержащие ее, новым мягким ограничением. Стоимость этого нового ограничения вычисляется с учетом максимального значения для каждого значения удаленной переменной. Формально, если x {\ displaystyle x}x - это переменная, которую нужно удалить, C 1,…, C n {\ displaystyle C_ {1}, \ ldots, C_ {n} }C_ {1}, \ ldots, C_ {n} - мягкие ограничения, содержащие его, а y 1,…, ym {\ displaystyle y_ {1}, \ ldots, y_ {m}}y_ {1}, \ ldots, y_ {m} - их переменные, кроме x {\ displaystyle x}x , новое мягкое ограничение определяется следующим образом:

C (y 1 = a 1,…, yn = an) = max a ∑ i C i (x = a, y 1 = a 1,…, yn = an). {\ Displaystyle C (y_ {1} = a_ {1}, \ ldots, y_ {n} = a_ {n}) = \ max _ {a} \ sum _ {i} C_ {i} (x = a, y_ {1} = a_ {1}, \ ldots, y_ {n} = a_ {n}).}{\ displaystyle C (y_ {1} = a_ {1}, \ ldots, y_ {n} = a_ {n}) = \ max _ {a} \ sum _ {i } C_ {i} (x = a, y_ {1} = a_ {1}, \ ldots, y_ {n} = a_ {n}).}

Удаление сегмента работает с (произвольным) порядком переменных. Каждая переменная связана с набором ограничений; сегмент переменной содержит все ограничения, у которых переменная имеет наибольшее значение в порядке. Исключение ведра переходим от последней переменной к первой. Для каждой переменной все ограничения корзины заменяются, как указано выше, чтобы удалить переменную. Полученное ограничение затем помещается в соответствующий сегмент.

См. Также

Ссылки

Дополнительная литература

Последняя правка сделана 2021-05-15 10:38:35
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте