ЗАДАЧА О НАЗНАЧЕНИИ. ВЕНГЕРСКИЙ МЕТОД

Постановка задачи о назначении.

Найти вектор (матрицу) X=(xij, і,j=1...,n), что минимизирует целевую функцию

L(X)= c11 x11 +...+ c1n x1n +...+ cn1 xn1 +...+ cnn xnn (14.1)

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

xi1 + ... + xin = 1, i=1...,n (14.2)

x1j + ... + xnj = 1, j=1...,n (14.3)

xij = 0 или 1, і,j=1...,n (14.4)

где сіj — расходы, связанные с использованием і-го исполнителя для выполнения j-ї работы (і,j=1...,n). Элементы сіj образуют матрицу расходов C.

Задача (14.1)–(14.4) Решается венгерским методом, что основывается на том факте, что вычитание числа ai, i=1...,n, от каждого элемента і-го строки и числа bj, j=1...,n, от каждого элемента j-го столбца матрицы расходов C не изменяет множества оптимальных назначений. В этом понимании можно говорить, что указанные действия превращают матрицу расходов C в эквивалентную ей. В алгоритме, что дается ниже, матрицы, эквивалентные исходной матрице расходов C, называются просто матрицами расходов.

Алгоритм венгерского метода.

1. Отнимаем в матрице C от каждого элемента і-го строки минимальный элемент этой строки (i=1...,n).