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

6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ

Лекция



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

целочисленное программирование .

Общая постановка задачи целочисленного программирования отличается от общей задачи ЛП лишь наличием дополнительного ограничения. Этим ограничением является требование целочисленности: значения всех или части переменных модели в оптимальном решении являются целыми неотрицательными числами, то есть принадлежат множеству N6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ. Если это требование распространяется на все переменные, то задачу ЦП называют полностью целочисленной задачей. Если оно относится лишь к части переменных, задача называется частично целочисленной. Задача ЛП, отличающаяся от задачи ЦП лишь отсутствие требований целочисленности, называют задачей с ослабленными ограничениями, соответствующей данной задаче ЦП.

Задача целочисленного программирования — это задача математической оптимизации или выполнимости, в которой некоторые или все переменные должны быть целыми числами . Часто термин адресуется к целочисленному линейному программированию (ЦЛП), в котором целевая функция и ограничения (за исключением требования целочисленности) линейны.

Целочисленное программирование является NP-трудной задачей. Специальный случай, 0-1 целочисленное линейное программирование, в которой переменные принимают значения 0 или 1, является одной из 21 NP-полных задач Карпа.

Каноническая и стандартная виды ЦЛП

Задача целочисленного линейного программирования в каноническом виде выражается как

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

а в стандартном виде

максимизировать 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ
при условиях 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ
6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ
и 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ

где 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ — векторы, а 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ — матрица, все элементы которых являются целыми числами. Заметьте, что, как и в случае линейного программирования, ЦЛП-задача, не находящаяся в стандартном виде, может быть приведена к стандартному виду путем исключения неравенств введением дополнительных и искусственных переменных и заменой переменных, на которые не наложено ограничение неотрицательности, двумя переменными.

Пример

6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ
Целочисленный многогранник с линейным ослаблением

Рисунок справа показывает следующую задачу.

6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ

Допустимые целые точки показаны красным и красные пунктирные линии показывают выпуклую оболочку этих точек, которая является наименьшим многоугольником, содержащим все эти точки. Синие линии вместе с координатными осями определяют многоугольник линейного ослабления, который задается неравенствами без требования целочисленности. Цель оптимизации — сдвинуть черную пунктирную линию так, чтобы она была как можно выше, но касалась многоугольника. Оптимальные решения целочисленной задачи — точки 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ и 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ, на которых целевая функция принимает значение 2. Единственное решение ослабленной (линейной) задачи — точка 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ, в которой целевая функция принимает значение 2.8. Заметим, что если мы округлим решение задачи линейного программирования до ближайших целых, решение будет недопустимо для ЦЛП.

Доказательство NP-трудности

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

Пусть 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ — неориентированный граф. Определим задачу линейного программирования следующим образом:

6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ

Если наложить требование, чтобы 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ принимали значения 0 или 1, любое допустимое решение для целочисленного программирования является подмножество вершин. Из первого ограничения следует, что по меньшей мере один конец каждого ребра включена в подмножество. Таким образом, решение дает покрытие вершин. Кроме того, если задано вершинное покрытие C, 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ можно присвоить значение 1 для любого 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ и 0 для любого 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ, что дает нам допустимое решение задачи целочисленного программирования. Отсюда мы может заключить, что при минимизации суммы 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ мы получим также минимальное вершинное покрытие .

Варианты

В смешанном целочисленном линейном программировании (СЦЛП) только для части переменных 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ требуется целочисленность, в то время как остальные переменные могут быть нецелочисленными.

В булевом программировании переменные должны принимать значения 0 или 1. Заметим, что любая ограниченная целочисленная переменная может быть выражена как комбинация булевых переменных . Например, если есть целочисленная переменная 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ, ее можно выразить через 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ булевых переменных:

6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ

Приложения

Есть две основные причины для использования целых переменных при моделировании задач линейного программирования:

  1. Целочисленные переменные представляют величины, которые могут быть исключительно целыми. Например, невозможно построить 3.7 автомобилей.
  2. Целочисленные переменные представляют решения, которые принимают значения 0 или 1.

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

Производственное планирование

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

Планирование

В этих задачах нужно обеспечить обслуживание и расписание работы транспортной сети. Об этом говорит сайт https://intellect.icu . Например, задача может состоять в расстановке автобусов или поездов по маршрутам, чтобы соблюсти расписание, а также обеспечить подвижный состав водителями. Здесь булевы переменные (т.е. принимающее значение 0 или 1) определяют, назначен ли автобус или поезд на маршрут, и назначен ли водитель на конкретный автобус/поезд.

Сети передачи данных

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

Сотовые сети

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

Методы решения задач ЛП.

Наивный путь решения задачи ЦЛП — просто игнорировать ограничение целочисленности на переменные x, решить соответствующую задачу ЛП (которая называется линейным ослаблением ограничений задачи ЦЛП), а затем округлить компоненты решения полученной задачи. Однако полученное решение может оказаться не только не оптимальным, оно может оказаться даже недопустимым, то есть некоторые ограничения могут быть нарушены.

На первый взгляд естественным методом решения задачи ЦП является метод округления, реализация которого состоит из двух этапов. На первом этапе находят оптимальное решение задачи ЛП с ослабленными ограничениями. На втором этапе значения переменных в оптимальном решении X*, не являющиеся целыми, округляют так, чтобы получить допустимое решение X** с целочисленными значениями.

Состоятелен ли такой метод?

Пример. Рассмотрим полностью целочисленную задачу:

x1 + 1,5x26 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ max

2x1 + 4x2 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ 17, 10x1 + 4x2 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ45

x1, x26 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ 0, x1, x2 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ N6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ.

Задача ЛП с ослабленными ограничениями получается снятием ограничений

x1, x2 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границN6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ. Ее оптимальное решение может быть получено графическим методом.

6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ

Оптимальное решение достигается в точке А. Целевая функция равна при этом f=7,25. Оптимальное решение X*=(7/2, 5/2)Т. По методу округления примем X**=(3, 2) Т. Значение целевой функции при этом равно 6. Однако на самом деле оптимальное решение Xo=(2, 3) Т, а fопт=6,5.

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

Рассмотрим метод, известный как метод отсечений.

Рассмотрим целочисленную задачу.

6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ

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

а) оно содержит все точки множества G, удовлетворяющие требованию целочисленности;

б) оно является выпуклым множеством;

в) координаты всех его крайних точек удовлетворяют требованиям целочисленности.

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

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

Наиболее известным комбинаторным методом является метод ветвей и границ . Он начинается с решением задачи ЛП с ослабленными ограничениями. Если оптимальное решение X* (точка B) не удовлетворяет требованию целочисленности, то из множества G выделяют два пересекающихся выпуклых подмножества K1 иK2, содержащих все допустимые решения из G, удовлетворяющие требованию целочисленности, но не содержащие X*. Этим задача ЦП заменяется совокупностью двух эквивалентных ей (в смысле оптимального решения Xo G) задач с множествами допустимых решений K1 и K2, т.к. Xo 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границK1 или Xo 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границK2.

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

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

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

Элемент 3. В результате анализа решения ослабленной задачи принимается решение, относящееся к задаче – истоку:

а) исключить ее из рассмотрения;

б) заменить одной порожденной задачей, выбранной по определенному правилу;

в) заменить системой порожденных задач.

Использование полной унимодулярности

Хотя, в общем случае, целочисленность решения ослабленной задачи не гарантирована, если ЦЛП имеет вид 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ при условиях 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ, где 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ и 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ имеют в качестве элементов целых чисел и 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ является вполне унимодулярной, тогда любое базисное допустимое решение будет целочисленным. Следовательно, решение, которое дает симплекс-метод, будет заведомо целочисленным . Чтобы показать, что любое базисное решение такой задачи целочисленно, пусть 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ — произвольное допустимое решение. Поскольку 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ допустимо, мы знаем, что 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ. Пусть 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ — элементы, соответствующие базисным столбцам базисного решения 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ. По определению базиса существует некоторая квадратная подматрица 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ матрицы 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ с линейно независимыми столбцами, такая, что 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ.

Поскольку столбцы 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ линейно независимы и матрица 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ квадратная, матрица 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ неособенная, а потому при предположениях, что 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ унимодулярна, выполняется 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ. Поскольку 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ не является особенной, матрица обратима, а потому 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ. По определению, 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ. Здесь 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ означает союзную матрицу для 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ и она целочисленна, поскольку 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ целочисленна. Таким образом,

6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ целочисленна

6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ целочисленен

6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ Любое базисное допустимое решение целочисленно.

Таким образом, если матрица 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ ЦЛП вполне унимодулярна, вместо решения задачи ЦЛП можно использовать линейное ослабление задачи, которое даст целочисленное решение.

Точные алгоритмы

Если матрица 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ не является вполне унимодулярной, существует ряд алгоритмов, решающих задачу целочисленного линейного программирования точно. Один из классов таких алгоритмов — методы секущих плоскостей (методы Гомори), которые работают путем решения ослабленной линейной задачи с последующим добавлением линейных ограничений, которые отсекают нецелочисленное решение задачи без отсечения целочисленных допустимых решений.

Другой класс алгоритмов — варианты метода ветвей и границ. Например, метод ветвей и отсечений[en], комбинирующий метод ветвей и границ с методами секущих плоскостей. Методы ветвей и границ имеют ряд преимуществ перед алгоритмами, использующими исключительно отсекающие плоскости. Одно из преимуществ — алгоритм можно завершить рано, как только хотя бы одно допустимое целочисленное решение найдено, хотя и не оптимальное. Кроме того, решение ослабленной линейной задачи может быть использовано для оценки, насколько далеко полученное от оптимального. Наконец, методы ветвей и границ можно использовать, чтобы получить несколько оптимальных решений.

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

Эвристические методы

Поскольку задачи целочисленного линейного программирования NP-трудны, многие задачи трудноразрешимы, так что приходится использовать эвристические методы. Например, может быть использован поиск с запретами . Для использования поиска с запретами для решения задачи ЦЛП шаг алгоритма можно определить как увеличение или уменьшение целочисленной переменной, в то время как остальные целочисленные переменные остаются неизменными. Затем находится решение для переменных, на которых ограничение целочисленности не наложено. Для хранения предыдущих попыток может использоваться кратковременная память, в то время как более долговременная память может состоять из значений целочисленных переменных, для которых получены бо́льшие значения целевой функции (в предположении задачи максимизации). Наконец, долгая память может быть использована для поиска целочисленных значений, которые еще не пробовали.

Другие эвристические методы, которые могут быть применены для решения ЦЛП

  • Восхождение по выпуклой поверхности[en]
  • Алгоритм имитации отжига
  • Пассивная поисковая оптимизация
  • Муравьиный алгоритм
  • Нейронная сеть Хопфилда

Есть также некоторые другие, зависящие от задачи эвристические методы, такие как k-opt эвристика для задачи коммивояжера. Заметим, что недостатком эвристических методов является то, что в случае неудачи поиска решения метод не определяет, произошло это вследствие отсутствия допустимого решения, или просто алгоритм его найти не может. Далее обычно невозможно определить, насколько близко к оптимальному полученное этим методом решение.

метод отсекающих плоскостей ( метод гомори ).

Метод разработан Р. Гомори в 1957- 1958 гг. МОП относится к методам отсечений и называется методом правильных отсечений.

Пример. Пусть необходимо найти решение полностью целочисленной задачи:

2x1 + x2 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границmax

0,75x1 + 1,5x2 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ 4,8 (1)

x1, x2 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ0, x1, x26 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ N6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ.

Пусть есть некоторая задача ЛП:

6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ

с ограничениями:

6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ , i= 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ (2)

xj6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ 0, j= 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ (3)

с целочисленными ограничениями:

xj6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ N6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ, j= 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ (4)

Целой частью вещественного числа а называется наибольшее целое число [a], не превышающее а. Дробная часть а есть число {a}=a – [a].

Метод Гомори состоит в следующем. Пусть решена ослабленная задача (1) – (3) и на последней итерации получена система:

x1 1m+1xm+1+…+ α1nxn1,

x2 2m+1xm+1+…+ α2nxn2, (5)

. . . . . . . . . . . . . .

xm nm+1xm+1+…+ αmnxnm

т.е. решение задачи есть

1,…, βm, 0, …,0) (6)

Предположим, что это решение не удовлетворяет условию целочисленности (4), т.е. некоторое βi, i=1,…, m, нецелое.

Добавим к системе (6), которая эквивалентна системе (2) ограничение:

{ βi } - 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ (7)

Строка i называется производящей. Это ограничение отсекает от исходного многогранника решений оптимальную точку (β1,…, βm, 0, …,0), не затрагивая ни одной из целочисленных точек множества.

Покажем, что допустимое целочисленное решение удовлетворяет соотношению (7). Из системы (5) мы имеем:

xi+6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ, или xi+6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ

Пусть x=(x1, …,xn) – целочисленное допустимое решение. Тогда левая часть последнего выражения целочисленна, т.е. целочисленным является и значение:

i} - 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ

Тогда, если бы соотношение (7), не выполнялось, т.е. выполнялось бы:

{ βi } -6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ ,

то в силу того, что 0 {βi}<1 , 0{αik}<1, xk 0, должно было бы выполняться соотношение:

{ βi } - ,6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ

а это противоречит целочисленности {βi} -6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ .

Теперь проверим условие отсечения. Т.к. для оптимального решения { βi }>0, xi=0, i=m+1, …,n, т.е. это решение действительно не удовлетворяет (7).

Итак, если к (6) или к (2) – что равносильно – добавить ограничение (7) и решить задачу (1) – (3) и (7), то получим решение, отличное от (β1,…, βm, 0, …,0), которое тоже может оказаться нецелочисленным. Это потребует добавления новых ограничений вида (7). Если при этом каждый раз индекс i в ограничениях (7) выбирать так, чтобы это был индекс первый по порядку переменной с нецелочисленным значением, допустимое множество задачи (1) – (3) ограниченно и не пусто, значит алгоритм Гомори конечен, т.е. заканчивается за конечное число шагов решением целочисленной задачи.

Несмотря на то, что метод Гомори – надежное решение для задач ЦП, его практическое применение нецелесообразно, если исходная задача имеет большую размерность.

Иллюстрация метода Гомори.

Z=7x1+10x2,

-x1+3x2 6,

7x1+x235,

x1, x2 0, x1, x2 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ N6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ.

6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ

6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ

6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ

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

Метод ветвей и границ.

Впервые его предложили Ленд и Дойч в 1960г. затем усовершенствовали Литтл, Мурти, Суни, Кэрол.

Рассмотрим следующую целочисленную задачу ЛП:

z=5x1+4x2 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границmax

x1+x26 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ 5

10x1+6x2 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ45

x1,x2 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ0, 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ

Соответствующая ослабленная задача ЛП имеет решение: x1=3.75, x2=1.25, z=23.75

6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ

Оптимальное решение задачи ЛП0 (обозначим ее так) не удовлетворяет условию целочисленности.

Метод ветвей и границ изменяет пространство решений задачи ЛП так, что в конечном счете образуется оптимальное решение задачи ЦП. Для этого сначала выбирается одна из целочисленных переменных, значение которой в оптимальном решении ЛП0 не является целочисленным. Например, выбирая x1(=3.75), замечаем, что область 31<4 пространства допустимых решений задачи ЛП0 не содержит целочисленных значений x1, и следовательно ее можно исключить из рассмотрения как бесперспективную. Это эквивалентно замене исходной задачи ЛП0 двумя новыми задачами ЛП1 и ЛП2:

Пространство допустимых решений ЛП1=Пространство допустимых решений ЛП0+(x16 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ 3),

Пространство допустимых решений ЛП2=Пространство допустимых решений ЛП0+(x1 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ4).

6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ

Все допустимые решения задачи ЦП остались, задачи ЛП1 и ЛП2 «не потеряют» ни одного решения.

Новые ограничения (x1 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ3) и (x1 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ4) взаимно исключаемы, так что задачи ЛП1 и ЛП2 нужно рассматривать как независимые. Дихотомизация задач ЛП - основа концепции ветвления в методе ветвей и границ. В этом случае x1 называется переменной ветвления.

6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ

Оптимальное решение находится либо в ПДЗ задачи ЛП1, либо задачи ЛП2. Следовательно обе задачи должны быть решены.

Решаем ЛП1:

z=5x1+4x2 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границmax

x1+x26 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ 5

10x1+6x2 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ45

x16 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ3

x1,x2 6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ0

Решение: x1=3, x2=2, z=23.

Оптимальное решение задачи ЛП1 удовлетворяет условию целочисленности переменных x1 и x2 . В этом случае говорят, что задача ЛП1 прозондирована. Это значит, что задача ЛП1 не должна больше зондироваться, она не может содержать лучшего решения задачи ЦП, чем уже есть.

Пока мы можем сказать, что z=23 – нижняя граница.

Теперь переходим к задаче ЛП2. Так как в задаче ЛП0 оптимальное значение z=23,75 и все ее коэффициенты целые числа, невозможно получить целочисленное решение в задаче ЛП2. Задачу ЛП2 отбрасываем и считаем ее прозондированной.

Реализация метода ветвей и границ завершена. Оптимальное решение: x1=3, x2=2, z=23.

Остались без ответа два вопроса:

1) Можно ли было в задаче ЛП0 выбрать переменную x2 в качестве переменной ветвления вместо x1?

2) Можно ли было сначала решить задачу ЛП2 вместо ЛП1?

Оба ответа положительные, но дальнейший ход решения может отличаться. Если решать задачу ЛП2, то получим такую схему:

6 Целочисленное программирование. Метод отсекающих плоскостей (метод Гомори). Метод ветвей и границ

Последовательность подзадач наихудшая. Пример указывает на основную слабость метода ветвей и границ: как выбирать переменную ветвления и как выбирать следующую подзадачу? На этот счет нет строгой теории.

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

  • Метод наименьших квадратов с ограничениями
  • Методы оптимизации
  • Метод золотого сечения
  • Дихотомия
  • Метод парабол
  • Перебор по сетке
  • Метод равномерного блочного поиска
  • Метод Фибоначчи
  • Троичный поиск
  • Метод Пиявского
  • Метод Стронгина

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

создано: 2015-06-12
обновлено: 2021-01-10
133336



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


Поделиться:

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

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

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

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



Комментарии


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

Математические методы исследования операций .Теория игр и расписаний.

Термины: Математические методы исследования операций .Теория игр и расписаний.