
- •Оглавление
- •Раздел 1. Методические указания по подготовке к лабораторным занятиям 6
- •Раздел 2. Методические указания по выполнению запланированных видов самостоятельной работы студентов 109
- •Раздел 3. Методические указания по подготовке 114
- •Раздел 1. Методические указания по подготовке к лабораторным занятиям
- •1.1. Организация самостоятельной работы студентов по подготовке к лабораторным занятиям
- •1.2. Содержание лабораторных занятий
- •Раздел 1: Введение в исследование операций. «Исследование операций» как наука и искусство
- •Тема 1.1. Искусство моделирования и этапы исследования операций.
- •Тема 1.2. Задача линейного программирования и ее графическое решение.
- •Тема 1.3. Задача линейного программирования как задача распределения ресурсов.
- •Раздел 2: Задачи многокритериального программирования. Линейное программирование
- •Тема 2.1. Задачи математического программирования.
- •Тема 2.2. Критерии оптимальности в задачах математического программирования.
- •Тема 2.3. Решение задач линейного программирования
- •Раздел 3: Исследование операций и искусство организационного управления
- •Тема 3.1. Линейное программирование: алгебраический метод решения. Модифицированный симплекс-метод. Определение двойственной задачи. Транспортная модель, сетевая модель.
- •Тема 3.2. Целочисленное линейное программирование. Методы решения задач целочисленного программирования. Метод ветвей и границ.
- •Тема 3.3. Динамическое программирование. Примеры моделей динамического программирования.
- •Раздел 4: Вероятностные модели. Введение
- •Тема 4.1. Основы теории вероятностей. Теория игр и принятие решений. Принятие решений в условиях неопределенности.
- •Тема 4.2. Календарное планирование и управление запасами
- •Тема 4.3. Теория массового обслуживания. Системы массового обслуживания с приоритетами
- •Тема 4.4. Имитационное моделирование. Моделирование как эксперимент. Метод Монте-Карло
- •Раздел 5: Нелинейное программирование
- •Тема 5.1. Методы нелинейного программирования без ограничений
- •Тема 5.2. Методы нелинейного программирования при наличии ограничений
- •Тема 5.3. Процедуры минимизации при наличии ограничений: методы штрафных функций
- •Тема 5.4. Теория катастроф. Общая задача нечеткого математического программирования
- •Раздел 2. Методические указания по выполнению запланированных видов самостоятельной работы студентов
- •2.1. Методические указания по выполнению расчетно-графической работы
- •2.1.1. Задания для выполнения расчетно-графической работы
- •2.1.2. Порядок выбора варианта расчетно-графической работы
- •2.1.3. Указания на сроки выполнения и защиты расчетно-графической работы
- •2.1.4. Требования к структуре и содержанию расчетно-графических работ
- •2.1.5. Критерии оценки расчетно-графической работы
- •2.1.6. Требования к форме представления результатов, оформлению титульного листа и текста расчетно-графической работы
- •2.1.7. Дополнительное обеспечение
- •Раздел 3. Методические указания по подготовке к промежуточной аттестации
- •3.1. Список вопросов для подготовки к зачету
- •3.2. Общие положения проведения зачета
- •Приложение 1
- •Приложение 2
- •Расчетно-графическая работа
Тема 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. Сложность целочисленного линейного программирования:
А. отсутствие хороших характеризаций и эффективных алгоритмов проявляется в недостатке структурных результатов;
Б. перечисление
решений: Эйлером было замечено, что
число неотрицательных целочисленных
решений системы линейных уравнений
равно коэффициенту при
в разложении производящей функции
,
где
и
неотрицательны
и целочисленны (см.
));
В. задача Фробениуса.
Известно, что для любых положительных
взаимно простых целых чисел
существует
такое наименьшее целое число
,
что уравнение
имеет
неотрицательное целочисленное решение
для
любого
;
Г. Г. Фробениус в
своих лекциях время от времени упоминал
задачу определения границы
.
Известно, что
для
.