Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pustovoitov_logistica_methodichka.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
5.58 Mб
Скачать

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

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

В общем виде задача о назначении работников на работ представлена в виде табл. 1.25.

Таблица 1.25 – Общий вид задачи о назначениях

Работы

1

2

Работники

1

1

2

1

1

1

1

1

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

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

1.4.1. Венгерский метод

Для представления этого метода используем два примера.

Пример 1.10

Организация, которая занимается перевозками, владеет тремя грузовыми автомобилями, которым необходимо выполнить капитальный ремонт. Заведующий гаражом обратился к трем мастерам, которые независимо оценили стоимости работ по каждому автомобилю. Результаты опроса (в тыс. грн.) представлены в табл. 1.26.

Таблица 1.26 – Результаты опроса работодателя

N п/п

Авто 1

Авто 2

Авто 3

Мастер 1

15

10

9

Мастер 2

9

15

10

Мастер 3

10

12

8

Основываясь на этой информации, работодателю необходимо распределить работы между мастерами с минимальными (денежными) потерями.

Решим эту задачу о назначениях венгерским методом.

Этап 1. В исходной матрице стоимостей определим в каждой строке минимальную стоимость и отнимем ее от других элементов строки.

Этап 2. В матрице, полученной на первом этапе, найдем в каждом столбце минимальную стоимость и отнимем ее от других элементов столбца.

Этап 3. Оптимальным назначениям будут соответствовать нулевые элементы, полученные на предыдущем этапе.

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

Таблица 1.27 – Определение минимальных стоимостей по строкам

N п/п

Авто 1

Авто 2

Авто 3

Минимум по строкам

Мастер 1

15

10

9

Мастер 2

9

15

10

Мастер 3

10

12

8

Теперь вычтем минимальные стоимости из элементов соответствующих строк, и в результате получим следующую матрицу.

Таблица 1.28 – Определение минимальных стоимостей по столбцам

N п/п

Авто 1

Авто 2

Авто 3

Мастер 1

6

1

0

Мастер 2

0

6

1

Мастер 3

2

4

0

Минимум по столбцам

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

Таблица 1.29 – приведение таблицы 1.28

N п/п

Стрижка газона

Уборка гаража

Мойка машины

1

6

0

0

2

0

5

1

3

2

3

0

В последней матрице подчеркнутые нулевые элементы определяют оптимальное решение: Первый мастер будет ремонтировать вторую машину, второй мастер – первую, а третьему достанется третья машина. Эти работы обойдутся работодателю в 9+10+8=27 тыс. грн. Отметим, что эта сумма всегда равна

тыс. грн.

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

Пример 1.11

Предположим, что в примере 1.10 представлено четыре мастера и четыре автомобиля. Таблица 1.30 соответствует матрице стоимостей для этой задачи (данные представлены в тыс. грн.).

Таблица 1.30 – Начальные данные примера 1.11

Автомобили

1

2

3

4

Мастера

1

1

4

6

3

2

9

7

10

9

3

4

5

11

7

4

8

7

8

5

Применение первого и второго этапов алгоритма к исходной матрице (при этом , , , , , , и ) приводит к следующей матрице (табл. 1.31).

Таблица 1.31 – Приведение таблицы 1.30

Автомобили

1

2

3

4

Мастера

1

0

3

2

2

2

2

0

0

2

3

0

1

4

3

4

3

2

0

0

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

Этап 2.1. Если после выполнения первого и второго этапов описанного алгоритма не получено допустимое решение, необходимо выполнить следующие действия.

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

б) Необходимо найти наименьший невычеркнутый элемент и вычесть его из остальных невычеркнутых элементов и затем прибавить к элементам, стоящим на пересечении прямых, проведенных на предыдущем этапе.

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

В задаче рассматриваемого примера выполнение этапа 2.1 требует проведения трех прямых и приводит к табл. 1.32.

Таблица 1.32 – Вычеркивание строк

Автомобили

1

2

3

4

Мастера

1

0

3

2

2

2

2

0

0

2

3

0

1

4

3

4

3

2

0

0

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

Таблица 1.33 – Приведение таблицы 1.32

Автомобили

1

2

3

4

Мастера

1

0

2

1

1

2

3

0

0

2

3

0

0

3

2

4

4

2

0

0

Оптимальное решение, показанное в таблице подчеркнутыми нулями, предлагает первому мастеру отдать первый автомобиль, второму — третий автомобиль, третьему — второй и четвертому — четвертый. Соответствующее значение целевой функции равно 1+10+5+5=21 тыс. грн. Такое же значение можно получить путем суммирования значений и значения элемента, наименьшего среди всех невычеркнутых: (1+7+4+5)+(0+0+3+0)+(1)=21 тыс. долл.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]