Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лр9)Метод ветвей и границ решения ЗЦЛП.doc
Скачиваний:
8
Добавлен:
30.08.2019
Размер:
558.59 Кб
Скачать

10

Методические указания к лабораторной работе № 9

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

  1. Цель работы

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

  1. Метод ветвей и границ решения задач целочисленного линейного программирования

2.1. Постановка задачи целочисленного линейного программирования

Задача линейного программирования, переменные которой могут принимать только целые значения, является задачей целочисленного линейного программирования:

где ; xj - переменные, aij, bi, cj - константы.

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

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

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

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

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

  2. Методы отсечения.

  3. Методы динамического программирования.

Здесь будет рассмотрен метод из первой группы.

2.2. Метод ветвей и границ. Общая схема

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

Пусть существует некоторая функция f(X), экстремум которой (например, максимум) необходимо найти при некоторой системе ограничений.

Этой системой определяется ОДП задачи - обозначим ее G. Пусть некоторым способом мы можем определить верхнюю границу функции на этой области 0, т.е. 0 f(X), X G.

Затем проверяют, не существует ли какой-нибудь очевидный способ нахождения точки X0, для которой f(X0)= 0. Если он есть, то искомый максимум найден.

Если такого способа нет, то множество G разбивают на подмножества G1 и G2 и для каждого из них находят верхнюю границу 1 и 2 (при этом 0 1 и 0 2). Далее оптимальный план ищут в наиболее перспективном множестве, т.е. в том, которому соответствует наибольшая оценка.

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

Если попытка найти Х: f(X) = k удалась, то это будет оптимальный план для всего исходного множества G (поскольку для остальных подмножеств верхние границы заведомо меньше).

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

Этот метод всегда сходится, если мы имеем дело с ограниченной дискретной областью.

Чтобы конкретизировать метод ветвей и границ, необходимо установить:

  1. алгоритм поиска границ ;

  2. алгоритм разбиения множества на части;

  3. алгоритм поиска Х, реализующего границу ;

  4. установить сходимость.