
- •Содержание
- •6. Задачи теории расписаний
- •6.1 Предмет теории расписаний
- •6.2 Классификация задач теории расписаний
- •6.3 Целевые функции в задачах теории расписаний
- •6.4 Построения расписания в случае одного прибора и конечного числа требований
- •Задания для самостоятельной работы
- •6.5 Задача о двух станках
- •6.6 Алгоритм Джонсона решение задачи о двух станках
- •Задания для самостоятельной работы
- •7. Задача о назначениях венгерский метод решения
- •7.1 Постановка задачи. Некоторые свойства
- •7.2 Венгерский метод решения задачи о назначениях
- •Упражнения
- •Задания для самостоятельной работы
- •8. Метод ветвей и границ
- •3.1 Общая схема метода
- •Алгоритмическая схема метода
- •Упражнения
- •8.2 Задача коммивояжера. Метод ветвей и границ для решения задачи коммивояжера
- •Упражнения
- •Задания для самостоятельной работы
- •9. Оптимизация на сетях
- •9.1 Задача о кратчайшем пути
- •Алгоритм решения задачи о кратчайшем пути
- •Упражнения
- •9.2 Задача о максимальном потоке
- •Упражнения
- •Задания для самостоятельной работы
- •10. Модели управления запасами
- •10.1 Основные понятия теории управления запасами
- •10.2 Факторы, определяющие политику управления запасами
- •10.3 Экономические параметры моделей управления запасами
- •10.4 Однопродуктовые модели управления запасами при детерминированном спросе Общий случай
- •Предельные варианты
- •Упражнения
- •Задачи для самостоятельной работы
- •10.5 Классическая дискретная детерминированная задача управления запасами
- •10.6 Задача управления производством и запасами в случае сезонного спроса
- •Задачи для самостоятельной работы
- •10.7 Задача продавца газет
7.2 Венгерский метод решения задачи о назначениях
Алгоритм венгерского метода включает в себя 4 этапа.
Приведение матрицы.
Вычисление максимального числа
независимых нулей в приведенной матрице.
Получение новых нулей при
.
Отыскание n независимых нулей при
.
Рассмотрим каждый этап подробнее.
Этап 1
Матрица
порядка
называетсяприведенной,
если все ее элементы неотрицательны и,
кроме того, в каждой строке и в каждом
столбце имеются нулевые элементы.
Таким образом,
приведенная матрица
удовлетворяет двум условиям:
1.
;
2.
и
.
Для приведения
матрицы
с элементами
нужно воспользоваться эквивалентными
преобразованиями (4). При этом вначале
осуществляется приведение матрицы по
строкам (по столбцам), т.е. ищется
наименьший элемент
в каждой строке и осуществляется переход
к матрице
с элементами
.
Если матрица
оказывается неприведенной по столбцам
(по строкам), то ищется наименьший вариант
в каждом столбце и осуществляется
переход к матрице
,
элементы которой вычисляются следующим
образом:
.
Матрица
по построению является приведенной.
Пример 1. Пусть
.
Легко проверить, что
,
,
причем матрица
является приведенной.
Этап 2
При вычислении
максимального числа
независимых нулей в приведенной матрице
обычно организуют полный перебор
всевозможных вариантов. При этом
необходима воспользоваться следующим
утверждением.
Теорема 3. Максимальное число независимых нулей равно минимальному суммарному числу горизонтальных и вертикальных линий (строк и столбцов), которыми можно зачеркнуть все нулевые элементы приведенной матрицы.
Пример 2. Пусть имеется приведенная матрица
из примера 1. Все
ее нули содержат 1-ая горизонталь и 1-ая
вертикаль, следовательно, здесь
.
При решении задачи о назначениях будем проводить указанные линии, в результате чего некоторые элементы окажутся зачеркнутыми, другие — зачеркнуты дважды и остальные — незачеркнутыми.
Этап 3
Обозначим через
элемент приведенной матрицы
,
зачеркнутый
раз
на 2-м этапе, и положим
,
где минимум берется по всем
,
т.е. ищется наименьший из незачеркнутых
элементов матрицы
.
Если теперь провести пересчет элементов
матрицы
по формулам
то такие преобразования
являются следствием применения Теоремы
1. Пересчитаем элементы матрицы
из
примера 2 при
,
в итоге получим приведенную матрицу
.
Все ее нули содержат,
например, 1-ая горизонталь и три вертикали:
1-ая, 2-ая, 3-я. Следовательно, здесь
и
.
Еще один пересчет дает приведенную матрицу
.
Здесь уже
Этап 4
Отыскание
независимых нулей осуществляется
перебором всех возможных вариантов.
Удобно перебор начинать с отыскания
строк или столбцов, содержащих единственный
нулевой элемент, поскольку такой элемент
обязательно войдет в группу независимых.
Выбрав элемент
,
исключают из рассмотрения
-ю
строку и
-й
столбец, после чего переходят к отысканию
следующего единственного нулевого
элемента строки или столбца оставшейся
часть матрицы. Действуя подобным образом,
можно столкнуться со следующими двумя
ситуациями.
1. В результате
удается выбрать
независимых путей. ОСТАНОВ. Выписать
ответ.
2. На некотором
шаге все оставшиеся строки и столбцы
содержат более одного нулевого элемента.
В этом случае выбирается любой нулевой
элемент, «помечается» номер строки, из
которой выбран 0, и осуществляется
переход к выбору следующего нулевого
элемента. Если таким образом удается
выбрать все
независимых нулей, то ОСТАНОВ. Выписать
ответ. В противном случае следует
возвратиться к помеченной строке и
выбрать из нее другой нулевой элемент.
По этой схеме надо действовать до тех
пор, пока не получим
независимых нулей.
Пример
4. Взяв
матрицу
из примера 3, замечаем, что независимыми
здесь будут нули с индексами (1,5), (2,2),
(3,4), (4,3), (5,1). Это означает, что ответом в
задаче о назначениях с матрицей
из примера 1 является матрица назначения
вида
,
для которой
.
Важно отметить, что наряду с указанными
здесь будут также независимыми нули с
индексами (1,4), (2,5), (3,1), (4,3), (5,2). Следовательно,
эта задача о назначениях имеет еще один
ответ — матрицу назначений вида
,
причем
.
Ответ:
при
или
.