Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Крохин_МР__ 080500.62 __БИ__Электрон. бизне...docx
Скачиваний:
2
Добавлен:
01.04.2025
Размер:
1.66 Mб
Скачать

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

Содержание вопросов

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

Вопросы и задания для самостоятельной работы:

1. Подготовить ответы на контрольные вопросы по теме 3.2.:

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

1.2. Задачи с неделимостями?

1.3. Комбинаторные задачи целочисленного программирования?

1.4. Задачи с разрывными целевыми функциями?

1.5.Метод Гомори: основные идеи и краткое описание алгоритма?

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

1.7. Применение метода ветвей и границ?

1.8.Некоторые оценки для задач линейного целочисленного программирования?

1.9. Частичный перебор в задачах с булевыми переменными?

1.10. Сложность целочисленного линейного программирования?

2. Тестовые задания для самостоятельного контроля уровня подготовки студентами вопросов темы 3.2.

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

А. геометрическая интерпретация задачи максимизации линейной формы;

Б. ограничения, определяющие многогранник;

В. для отыскания оптимального целочисленного решения требуются специальные методы;

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

2.2. Задачи с неделимостями:

А. наличие условий неделимости определяется физическими свойствами моделируемых объектов;

Б. «задача о ранце» гласит: сколько предметов типа весом кг нужно положить в ранец, чтобы его «полезность» , , была максимальной;

В. в других источниках под «задачей о ранце» понимают задачу, в которой является бинарной переменной (т.е. может быть только 0 или 1). Если в качестве компонент плана принять количество укладываемых предметов типа , то данную задачу можно записать в виде:

где - множество неотрицательных целых чисел.

Г. в литературе она также известна как «задача о загрузке судна» и к ней могут быть сведены многие экономические задачи.

2.3. Комбинаторные задачи целочисленного программирования:

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

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

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

при этом, по условию задачи,

Допустимыми планами служат связные маршруты, однозначно определяемые упорядоченным набором посещаемых пунктов:

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

Г. «задача коммивояжера» имеет большое количество содержательных аналогов и принимает вид целочисленной задачи линейного программирования:

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

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

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

2.4. Задачи с разрывными целевыми функциями:

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

Б. например, можно привести транспортную задачу с фиксированными доплатами;

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

где издержки на перевозку единицы груза;

фиксированная доплата за аренду транспортных средств.

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

В результате целевая функция примет вид

Здесь, если , то переменные , а при неравенства становятся несущественными, так как они справедливы для любого опорного

плана. Следовательно, конечная целевая функция эквивалентна исходной.

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

являются целочисленными, то целочисленным будет и оптимальный план.

2.5. Метод Гомори: основные идеи и краткое описание алгоритма:

А. метод, называемый «методом отсекающих плоскостей». Предназначен для решения целочисленной задачи линейного программирования в канонической форме:

Б. Предположим, что сформулированная задача является полностью целочисленной (дробный алгоритм Гомори для полностью целочисленных задач), т.е. все ее параметры, целые величины;

В. отправной точкой для решения задачи является решение ее непрерывного аналога, т.е. канонической задачи линейного программирования без учета условий целочисленности. Поэтому этот вариант решения назван «задачей с ослабленными ограничениями»;

Г. Если получаемый в результате оптимальный план содержит только целые компоненты, то мы автоматически получаем и соответствующее решение целочисленной задачи линейного программирования. В противном случае к системе ограничений задачи должно быть добавлено такое ограничение, для которого: 1) найденный нецелочисленный оптимальный план не удовлетворяет вновь добавляемому ограничению; 2) любой допустимый целочисленный план непрерывной задачи удовлетворяет вновь добавляемому

ограничению. Такое ограничение называют «правильным отсечением».

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

Добавив сформированное отсекающее ограничение к уже существующим,

мы получаем новую оптимизационную задачу, после чего вычислительный

процесс итеративно повторяется.

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

А. метод ветвей и границ широко применяется при решении задач дискретного программирования. Термин «метод ветвей и границ» является собирательным и включает в себе целое семейство методов, применяемых для решения как линейных, так и нелинейных дискретных задач, объединяемое общими принципами;

Б. Пусть поставлена задача максимизации функции на конечное множество :

где - конечное множество.

Алгоритм является итеративным и на каждой итерации происходит работа с некоторым подмножеством множества . Назовем это подмножество текущим и будем обозначать его как , где -индекс итерации. Алгоритм состоит из 0-этапа, выполняемого однократно, и стандартной итерации 1-этапа;

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

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

2.7. Применение метода ветвей и границ:

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

Б. 1-этап. Стандартная итерация алгоритма (выполняется для текущего множества ): 1) дробление (ветвление) множества . Выбирается некоторая нецелочисленная компонента плана . В оптимальном плане она должна быть целой, поэтому можно наложить ограничения В результате, разбивается на подмножества:

2) построение оценок (границ) множеств . Решаются задачи линейного программирования:

Соответствующие максимальные значения целевой функции принимаются как ее оценки на этих множествах:

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

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

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

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

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

В. влияние ошибок округления существенно усиливается по следующим причинам: 1) увеличение объема вычислений из-за многократного применения -метода; 2) возможность грубых ошибок в вычислениях при подсчете чисел типа дробных частей от округленных величин; 3) возможность принятия неправильных решений, поскольку целые числа могут быть приняты за нецелые и т.д.

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

1) целочисленности ; 2) отсечения ;

3) правильности. Для любого плана задачи выполняется неравенство ;

4) сохранения целочисленности, если среди чисел есть

отрицательные.

2.9. Частичный перебор в задачах с булевыми переменными:

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

Б. для каждой переменной определяются границы ее изменения ;

В. вместо максимума следует искать лексикографический максимум вектор ;

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

2.10. Сложность целочисленного линейного программирования:

А. отсутствие хороших характеризаций и эффективных алгоритмов проявляется в недостатке структурных результатов;

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

, где и неотрицательны и целочисленны (см. ));

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

Г. Г. Фробениус в своих лекциях время от времени упоминал задачу определения границы . Известно, что для .