Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
эммм_пособие2.doc
Скачиваний:
102
Добавлен:
12.08.2019
Размер:
5.67 Mб
Скачать

Задача о назначениях (зн).

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

Возможные применения задачи о назначениях:

Ресурсы

Объекты

Критерии эффективности

рабочие

рабочие места

время

грузовые автомобили

маршруты

затраты

станки

участки

объем переработанной продукции

экипажи

рейсы

время простоя

коммивояжер

города

товарооборот

Матрица стоимостей С имеет вид , где - затраты, связанные с назначением i-го ресурса на j-й объект, , где n – число объектов или ресурсов.

Обозначим

Решение задачи может быть записано в виде .

Допустимое решение называется назначением. Оно строится путем выбора ровно одного элемента в каждой строке матрицы и ровно одно элемента в каждом столбце этой матрицы.

Э лементы матрицы С, соответствующие элементам матрицы Х, будем отмечать кружками: .

Математическая постановка задачи о назначениях: min при ограничениях , , .

Алгоритм решения задачи о назначениях.

Задача о назначениях является частным случаем транспортной задачи, в которой , поэтому ее можно решать алгоритмами ТЗ.

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

  • преобразование строк и столбцов матрицы;

  • определение назначения;

  • модификация преобразованной матрицы.

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

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

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

Если после проведения 3-го шага оптимальное решение не достигнуто, то процедуру проведения прямых следует повторять до тех пор, пока не будет получено оптимальное решение.

Пример. Фирма, имеющая 4 склада, получила 4 заказа, которые необходимо доставить различным потребителям. Складские помещения каждой базы имеют вполне достаточное количество, товара, чтобы выполнить любой один из этих заказов. Расстояние между базой и каждым потребителем приведены в матрице: . Как следует распределить заказы по базам, чтобы общая дальность транспортировки была минимальной?

Решение.

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

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

3 -й шаг: Вычеркиваем столбец 1, строку 3, строку 2 (или столбец 2): . Значение минимального невычеркнутого элемента равно 2. вычитаем его из всех невычеркнутых элементов и, складывая его со всеми элементами, расположенными на пересечении 2-х линий, получим: . Итак, . Ответ: первый заказ направляем на 3-ю базу, второй заказ – на 2-ю базу, третий заказ – на 4-ю базу, четвертый заказ – на 1-ю базу. Стоимость назначения: 9+4+11+4=28 ден. ед.