Jump to content

Релаксация линейного программирования

(Перенаправлено с разрыва в целостности )
(Общая) целочисленная программа и ее LP-релаксация

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

Например, в программе с целочисленными значениями 0–1 все ограничения имеют вид

.

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

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

Рассмотрим задачу покрытия множеств , релаксация которой методом линейного программирования была впервые рассмотрена Ловасом в 1975 году. [1] В этой задаче на вход дается семейство множеств F = { S 0 , S 1 , ...}; задача состоит в том, чтобы найти подсемейство с как можно меньшим количеством множеств, имеющее тот же союз , что и F .

Чтобы сформулировать это как целочисленную программу 0–1, сформируйте индикаторную переменную x i для каждого набора , Si которая принимает значение 1, когда Si . принадлежит выбранному подсемейству, и 0, когда оно не принадлежит Тогда допустимое покрытие можно описать присвоением значений индикаторным переменным, удовлетворяющим ограничениям

(то есть допускаются только указанные значения индикаторной переменной) и для каждого элемента e j объединения F ,

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

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

В качестве конкретного примера задачи о покрытии множества рассмотрим случай F = {{ a , b }, { b , c }, { a , c }}. Существует три оптимальных покрытия набора, каждый из которых включает в себя два из трех заданных наборов. Таким образом, оптимальное значение целевой функции соответствующей целочисленной программы 0–1 равно 2 — числу множеств в оптимальных покрытиях. Однако существует дробное решение, в котором каждому набору присвоен вес 1/2 и для которого общее значение целевой функции равно 3/2. Таким образом, в этом примере расслабление линейного программирования имеет значение, отличное от значения неослабленной целочисленной программы 0–1.

Качество решения спокойных и оригинальных программ

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

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

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

В примере задачи о покрытии множества, описанной выше, в которой релаксация имеет оптимальное значение решения 3/2, мы можем сделать вывод, что оптимальное значение решения нерасслабленной целочисленной программы как минимум столь же велико. Поскольку задача покрытия множеств имеет целочисленные значения решения (количество множеств, выбранных в подсемействе), оптимальное качество решения должно быть не меньше следующего большего целого числа, 2. Таким образом, в этом случае, несмотря на наличие другого Если получить значение неослабленной задачи, то релаксация линейного программирования дает нам точную нижнюю границу качества решения исходной задачи.

Аппроксимация и разрыв целостности

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

Релаксация линейного программирования — стандартный метод разработки алгоритмов аппроксимации для сложных задач оптимизации. В этом приложении важным понятием является разрыв целочисленности , максимальное соотношение между качеством решения целочисленной программы и ее релаксацией. В случае задачи минимизации, если действительный минимум (минимум целочисленной задачи) равен , а расслабленный минимум (минимум релаксации линейного программирования) равен , то разрыв целостности этого экземпляра равен . В задаче максимизации дробь переворачивается. Разрыв целостности всегда равен 1. В приведенном выше примере экземпляр F = {{ a , b }, { b , c }, { a , c }} показывает разрыв целостности 4/3.

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

Для задачи покрытия множества Ловас доказал, что разрыв целочисленности для экземпляра с n элементами равен H n , n- й номеру гармоники . Релаксацию линейного программирования для этой задачи можно превратить в приближенное решение исходного экземпляра покрытия нерасслабленного множества с помощью техники рандомизированного округления . [2] Учитывая дробное покрытие, в котором каждое множество имеет Si вес wi , случайным образом выберите значение каждой индикаторной переменной x i 0–1 , равное 1 с вероятностью w i × (ln n +1), и 0 в противном случае. Тогда любой элемент e j имеет вероятность остаться непокрытым менее 1/( e × n ), поэтому с постоянной вероятностью все элементы покрыты. Покрытие, созданное этим методом, с высокой вероятностью имеет общий размер (1+o(1))(ln n ) W , где W — полный вес дробного решения. Таким образом, этот метод приводит к алгоритму рандомизированной аппроксимации, который находит покрытие множества в пределах логарифмического коэффициента оптимума. Как показал Янг в 1995 году [3] как случайная часть этого алгоритма, так и необходимость построения явного решения релаксации линейного программирования могут быть устранены с помощью метода условных вероятностей , что приводит к детерминированному жадному алгоритму покрытия множества, известному еще Ловасу, который многократно выбирает множество охватывающее максимально возможное количество оставшихся непокрытых элементов. Этот жадный алгоритм аппроксимирует покрытие множества с точностью до того же коэффициента H n , который Ловас доказал как разрыв целочисленности для покрытия множества. Существуют веские основания с точки зрения теории сложности полагать, что ни один алгоритм аппроксимации с полиномиальным временем не может достичь значительно лучшего коэффициента аппроксимации. [4]

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

Ветви и границы для точных решений

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

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

Если некоторые переменные в оптимальном решении имеют дробные значения, мы можем запустить процесс типа ветвей и границ , в котором мы рекурсивно решаем подзадачи, в которых значения некоторых дробных переменных фиксированы либо равными нулю, либо единице. На каждом этапе алгоритма этого типа мы рассматриваем подзадачу исходной целочисленной программы 0–1, в которой некоторым переменным присвоены значения: 0 или 1, а остальные переменные по-прежнему могут принимать любое значение. ценить. В подзадаче i пусть V i обозначает набор оставшихся переменных. Процесс начинается с рассмотрения подзадачи, в которой значения переменных не были присвоены и в которой V 0 — это весь набор переменных исходной задачи. Затем для каждой подзадачи i он выполняет следующие шаги.

  1. Вычислите оптимальное решение релаксации линейного программирования текущей подзадачи. То есть для каждой переменной x j в Vi должно быть равно 0 или 1, на ослабленное ограничение, согласно которому оно должно мы заменяем ограничение, согласно которому x j находиться в интервале [0,1]; однако переменные, которым уже присвоены значения, не ослабляются.
  2. Если смягченное решение текущей подзадачи хуже, чем лучшее целочисленное решение, найденное на данный момент, вернитесь из этой ветви рекурсивного поиска.
  3. Если в расслабленном решении все переменные установлены на 0 или 1, проверьте его на соответствие лучшему целочисленному решению, найденному на данный момент, и сохраните любое из двух решений, которое является лучшим.
  4. В противном случае пусть x j будет любой переменной, которой в расслабленном решении присвоено дробное значение. Сформируйте две подзадачи: в одной x j установлено значение 0, а в другой — x j установлено значение 1; в обеих подзадачах все еще используются существующие присвоения значений некоторым переменным, поэтому набор оставшихся переменных становится V i \ { x j }. Рекурсивно выполните поиск обеих подзадач.

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

Метод плоскости разреза

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

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

Метод секущей плоскости для решения целочисленных программ 0–1, впервые представленный для задачи коммивояжера Данцигом, Фулкерсоном и Джонсоном в 1954 году. [5] и обобщен на другие целочисленные программы Гомори в 1958 году: [6] использует преимущества этой множественности возможных релаксаций, находя последовательность релаксаций, которые более жестко ограничивают пространство решений, пока в конечном итоге не будет получено целочисленное решение. Этот метод начинается с любого ослабления заданной программы и находит оптимальное решение с помощью решателя линейного программирования. Если решение присваивает целочисленные значения всем переменным, это также является оптимальным решением неослабленной задачи. В противном случае обнаруживается дополнительное линейное ограничение ( секущая плоскость или разрез ), которое отделяет полученное дробное решение от выпуклой оболочки целочисленных решений, и метод повторяется для этой новой задачи с более жесткими ограничениями.

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

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

См. также

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: b08f19d92282842369609a7cf17eee25__1699631940
URL1:https://arc.ask3.ru/arc/aa/b0/25/b08f19d92282842369609a7cf17eee25.html
Заголовок, (Title) документа по адресу, URL1:
Linear programming relaxation - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)