Специальные задачи линейного программирования: задача о назначениях, решение средствами MS Excel

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

Постановка задачи(об оптимальном закреплении исполнителей на работы). Имеется n видов работ и n исполнителей этих работ. Известна эффективность cij выполнения исполнителем i работы j. Требуется так назначить исполнителей по видам работ, чтобы суммарный эффект от назначений был максимальным.

Часто исходные данные задачи о назначениях записывают в виде таблицы (матрицы) планирования:

Работы Исполнители B1 B2 ¼ Bn Число исполнителей
A1 c11 c12 ¼ c1n
A2 c21 c22 ¼ c2n
¼ ¼ ¼ ¼ ¼ ¼
An cn1 cn2 ¼ cnn
Количество работ ¼

Составим экономико-математическую модель (задача о назначениях относится к двухиндексным задачам линейного программирования):

1) вводим переменные: , где

2) задаем целевую функцию , которая выражает суммарный эффект от назначений;

3) из условий задачи составляем ограничения:

a) каждый исполнитель должен быть назначен на работу, т.е.

;

b) на каждую работу должен быть назначен исполнитель, т.е.

.

Таким образом, модель задачи о назначениях имеет следующий вид:

Найти минимальное значение целевой функции
(11.1)
при ограничениях
, (11.2)
, (11.3)
, , . (11.4)

Замечание. Если число исполнителей m не равно числу работ n (т.е. задача является открытой), то возможно применение двух способов:

1) решение открытой задачи о назначениях сводим к решению закрытой задачи о назначениях; для этого вводим фиктивных исполнителей или фиктивные виды работ;

2) изменяем ограничения 11.2 и 11.3:

a) если число исполнителей m больше числа работ n, то

; ;

b) если число исполнителей m меньше числа работ n, то

; .