
- •Учебное пособие
- •Оглавление
- •2. Элементы линейной алгебры 21
- •3. Линейное программирование 48
- •4. Теория двойственности в линейном программировании 98
- •5. Целочисленные модели исследования операций 137
- •6. Экономические задачи, сводящиеся к транспортной модели 160
- •Введение в исследование операций
- •1.1 Основные определения
- •Этапы исследования операций
- •Домашнее задание №1
- •2. Элементы линейной алгебры
- •2.1. Алгебра матриц
- •2.1.1. Виды матриц
- •2.1.2. Действия над матрицами
- •Домашнее задание №2
- •2.2. Вычисление определителей
- •Домашнее задание №3
- •2.3. Решение систем алгебраических уравнений
- •2.3.1. Основные понятия и определения
- •2.3.2. Формулы крамера и метод обратной матрицы
- •2.3.3. Метод жордана-гаусса
- •Домашнее задание №5
- •2.4. Векторное пространство
- •2.4.2. Размерность и базис векторного пространства
- •Домашнее задание №6
- •2.5. Решение задач линейной алгебры с помощью ms excel
- •3. Линейное программирование
- •3.1. Постановки задачи линейного программирования
- •3.1.1. Общая постановка задачи линейного программирования
- •3.1.2. Основная задача линейного программирования
- •3.1.3. Каноническая задача линейного программирования
- •3.2. Графический метод решения злп
- •Домашнее задание №7
- •Домашнее задание №8
- •3.3. Анализ решения (модели) на чувствительность
- •Домашнее задание №9
- •3.4. Решение линейных моделей симплекс-методом.
- •Переход от одной к-матрицы злп к другой к-матрице
- •Алгоритм симплекс-метода
- •Домашнее задание №10
- •3.4. Двойственный симплекс-метод (р-метод)
- •Определение р-матрицы злп
- •Условия перехода от одной р-матрицы злп к другой
- •Алгоритм р-метода
- •Решение задач р-методом
- •Домашнее задание №11
- •Домашнее задание №12
- •3.5. Решение злп двухэтапным симплекс-методом
- •Первый этап - решение вспомогательной задачи
- •Второй этап - решение исходной задачи
- •Домашнее задание №13
- •4. Теория двойственности в линейном программировании
- •4.1. Определение и экономический смысл двойственной злп
- •4.2. Основные положения теории двойственности
- •Получение оптимального плана двойственной задачи на основании теоремы 4
- •На первой итерации получен оптимальный план злп (4.24).
- •4.3. Решение злп с помощью Ms Excel
- •4.4. Анализ решения злп на основе отчетов ms excel
- •5. Целочисленные модели исследования операций
- •5.1. Метод ветвей и границ решения целочисленных задач линейного программирования (цзлп)
- •X1, х2 0, целые.
- •Подробное описание метода
- •5.2. Задача коммивояжера
- •Применение метода ветвей и границ для решения задачи коммивояжера
- •Ветвление
- •Построение редуцированных матриц и и вычисление оценок снизу
- •Формирование списка кандидатов на ветвление
- •6. Экономические задачи, сводящиеся к транспортной модели
- •6.1.Транспортная задача линейного программирования
- •Методы составления первоначальных опорных планов
- •Метод потенциалов решения транспортной задачи
- •Проверка выполнения условия оптимальности для незанятых клеток
- •Выбор клетки, в которую необходимо поместить перевозку
- •Построение цикла и определение величины перераспределения груза
- •Проверка нового плана на оптимальность
- •Определение оптимального плана транспортных задач, имеющих некоторые усложнения в их постановке
- •6.2.Экономические задачи, сводящиеся к транспортной модели
- •Оптимальное распределение оборудования
- •Формирование оптимального штата фирмы
- •Задача календарного планирования производства
- •Модель без дефицита
- •Модель с дефицитом
- •6.3.Задача о назначениях
- •Венгерский алгоритм
- •Оптимальное исследование рынка
- •Оптимальное использование торговых агентов
5.2. Задача коммивояжера
Имеется n городов, пронумерованных числами 1, 2,..., n. Для любой пары городов (i, j) задано расстояние (время, путевые расходы) C(i,j) 0 между ними. Поэтому в общем случае C(i, j) C(j, i). Коммивояжер, выезжая из какого-либо города, должен посетить все города по одному разу и вернуться в исходный город. Необходимо определить такую последовательность объезда городов, при которой длина маршрута была бы минимальной.
Другая интерпретация этой задачи связана с минимизацией времени переналадок при обработке на одном станке партии из n различных деталей. Здесь C(i, j) – время переналадки при переходе от обработки детали i к обработке детали j. Требуется найти последовательность обработки деталей, минимизирующую общее время переналадок.
Для
записи постановки задачи в терминах
целочисленного линейного программирования
определим переменные следующим образом:
= 1, если коммивояжер переезжает и i-го
города в j-й;
,
в противном случае. Тогда задача
заключается в отыскании значений
переменных
,
удовлетворяющих следующим соотношениям:
(5.15)
при условиях
(въезд
в город j); (5.16)
(выезд
из города i); (5.17)
(i
j); (5.18)
xij
= {0,1},
,
целые, i
= 1, ..., m,
j
= 1, ..., n. (5.19)
Ограничения (5.18) требуют, чтобы маршрут образовывал контур.
Применение метода ветвей и границ для решения задачи коммивояжера
Допустимый маршрут х представим как множество упорядоченных пар городов:
х
=
.
Каждый допустимый маршрут представляет собой цикл, проходя по которому коммивояжер посещает каждый город ровно один раз и возвращается в исходный город. Каждая упорядоченная пара (i, j) является дугой маршрута. Длина F(х) маршрута х равна сумме соответствующих элементов C(i, j). Заметим, что множество всех допустимых маршрутов X содержит (n-1)! элементов.
Обозначим
через
матрицу
расстояний. Чтобы запретить переезды
вида (i,i)
положим C(i,
i) = +∞ (i
= 1,…, n).
Пусть
.
Тогда
– редуцированная матрица.
Пусть
d(X)
=
– сумма констант редуцирования.
Тогда
для любого маршрута
F(х)
=
=
=
+ d(X)
≥ d(X)
(5.20)
Неравенство (5.20) показывает, что d(X) является оценкой снизу для множества Х. Кроме того, после редукции длины всех маршрутов уменьшаются на одну и ту же величину d(X) и, следовательно, оптимальный маршрут, найденный с использованием редуцированной матрицы, оптимален и для исходной задачи.
Ветвление
Процесс ветвления можно представить в виде дерева, каждая вершина которого соответствует некоторому множеству маршрутов, являющемуся подмножеством множества Х. При этом начальная вершина соответствует множеству всех маршрутов Х (см. рис. 5.1.).
Рис. 5.1. Ветвление
На
каждом шаге из числа кандидатов на
ветвление выбирается множество Х1
с наименьшей оценкой. Оно разветвляется
на два подмножества
и
.
Подмножество
состоит из всех маршрутов множества Х1
содержащих некоторую выбранную на
данном шаге дугу (r, s), подмножество
,
– из всех маршрутов множества Х1,
не содержащих дуги (r,s).
Ребро
дерева, соединяющее вершины Х1
и
,
помечается (r, s), а ребро дерева, соединяющее
Х1
и
помечается
.
Пусть
–
редуцированная матрица, соответствующая
вершине Х1.
Опишем способ выбора дуги (r, s). Он основан
на стремлении сделать оценку
поменьше, а оценку
– больше, для того, чтобы увеличить
вероятность выбора для дальнейшего
ветвления множества
.
Стремление к уменьшению
приводит к выбору такой дуги (,),
для которой
(,) = 0, (5.21)
поскольку все маршруты множества содержат дугу (,). Стремление же увеличить приводит к выбору среди дуг, удовлетворяющих условию (5.21), той дуги, для которой значение функции
максимально, т.е.:
Смысл
введения функции
состоит в том, что величина
является оценкой снизу для длины любого
маршрута из Х1,
не содержащего дуги (,),
так как величина
выражает дополнительное расстояние,
которое коммивояжер проезжает в случае,
когда в маршрут не включена дуга (,).