1. Задачи / Образцы выполненных СРС 1-12 МАТЕСО / 11 / Солнцева Светлана_СРС 11
.docФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ РОССИЙСКОЙ ФЕДЕРАЦИИ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра ОСУ
Самостоятельная работа студента №11
Задача о назначениях (выборах)
Выполнила: студентка группы 8512
Солнцева Светлана Сергеевна
Проверил: Ротарь В.Г.
ТОМСК
2004
ЗАДАНИЕ
-
Решить задачу о назначениях (выборах), используя венгерский метод и алгоритм Флада. Необходимо найти распределение (назначение) работ исполнителям, которое бы обеспечило максимальную суммарную эффективность выбора при условии, что каждая работа будет выполнена и каждый исполнитель получит работу.
-
Решить задачу, минимизируя целевую функцию.
-
Решить задачу, максимизируя целевую функцию.
-
ХОД РАБОТЫ
-
Задача в формальном виде выглядит следующим образом:
при условиях
Запишем матрицу эффективности использования каждого исполнителя на соответствующей работе Сij, используя код ФИО:
-
Работы
Исполнители
Мать
Отец
Сын
Дочь
Магазин
19 (С)
16 (О)
13 (Л)
15 (Н)
Обед
24 (Ц)
6 (Е)
3 (В)
1 (А)
Посуда
19 (С)
3 (В)
6 (Е)
20 (Т)
Уборка
13 (Л)
1 (А)
15 (Н)
1 (А)
-
Решим задачу, минимизируя целевую функцию:
Этап 1: подготовительный этап, использующий венгерский метод (алгоритм Флада):
-
Переход Сij => C´ij (ищем в каждой строке матрицы Сij минимальный элемент). Тогда коэффициент приведения матрицы , следовательно, .
-
Переход С´ij => C´´ij (ищем в каждом столбце матрицы С´ij минимальный элемент). Тогда коэффициент приведения матрицы , следовательно, .
-
Операции (1) и (2) этапа 1 обеспечили в каждой строке и в каждом столбце появление хотя бы одного ноля.
-
Найдем минимальное количество линий, вычеркивающих все ноли в матрице, оно равно 3 (количество независимых нолей также равно 3), а ранг матрицы равен 4, следовательно, не соблюдается условие оптимальности:
rСij = число независимых нолей
Так как не было соблюдено условие оптимальности, переходим к этапу 2.
|
Сij |
|
|
|
|
Cij => C'ij |
|
|
C'ij => C''ij |
|
|
Ноли |
|
|
|
|||||
|
19 |
16 |
13 |
15 |
|
6 |
3 |
0 |
2 |
|
0 |
3 |
0 |
2 |
|
0 |
|
0 |
|
|
|
24 |
6 |
3 |
1 |
|
23 |
5 |
2 |
0 |
|
17 |
5 |
2 |
0 |
|
|
|
|
0 |
|
|
19 |
3 |
6 |
20 |
|
16 |
0 |
3 |
17 |
|
10 |
0 |
3 |
17 |
|
|
0 |
|
|
|
|
13 |
1 |
15 |
1 |
|
12 |
0 |
14 |
0 |
|
6 |
0 |
14 |
0 |
|
|
0 |
|
0 |
|
|
|
|
|
|
|
(по строкам min) |
|
(по столбцам min) |
|
|
|
|
|
Этап 2: итерация венгерского метода (алгоритма Флада).
-
Среди невыделенных элементов (невыделенный элемент – не вычеркнутый линией элемент) выбираем минимальный:
Θ = 2
-
Проведем переход С’’ij (0) => С’’ij(1) :
Итерация (1) |
|
|
Ноли |
|
|
|
Сij |
|
|
|
|
||||
|
0 |
5 |
0 |
4 |
|
0 |
|
0 |
|
|
19 |
16 |
13 |
15 |
|
|
15 |
5 |
0 |
0 |
|
|
|
0 |
0 |
|
24 |
6 |
3 |
1 |
|
|
8 |
0 |
1 |
17 |
|
|
0 |
|
|
|
19 |
3 |
6 |
20 |
|
|
4 |
0 |
12 |
0 |
|
|
0 |
|
0 |
|
13 |
1 |
15 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таким образом, мы видим, что условие оптимальности выполнилось, следовательно, целевая функция при ее минимизации будет равна:
z(x) = 19 + 3 + 3 + 1 = 26 минут – минимальное время, затраченное всеми исполнителями на исполнение всех работ.
-
Решим задачу, максимизируя целевую функцию.
Этап 1: подготовительный этап, использующий венгерский метод (алгоритм Флада):
-
Переход Сij => C´ij (ищем в каждой строке матрицы Сij максимальный элемент). Тогда коэффициент приведения матрицы , следовательно, .
-
Переход С´ij => C´´ij (ищем в каждом столбце матрицы С´ij минимальный элемент). Тогда коэффициент приведения матрицы , следовательно, .
-
Операции (1) и (2) этапа 1 обеспечили в каждой строке и в каждом столбце появление хотя бы одного ноля.
-
Найдем минимальное количество линий, вычеркивающих все ноли в матрице, оно равно 4 (количество независимых нолей также равно 4), и ранг матрицы равен 4, следовательно, условие оптимальности соблюдается:
rСij = число независимых нолей
Т.к. условие оптимальности соблюдено, следовательно, итерации не нужны.
Сij |
|
|
|
|
Cij => C'ij |
|
|
C'ij => C''ij |
|
|
Ноли |
|
|
|
Сij |
|
|
|
|||||
19 |
16 |
13 |
15 |
|
0 |
3 |
6 |
4 |
|
0 |
0 |
6 |
4 |
|
0 |
0 |
|
|
|
19 |
16 |
13 |
15 |
24 |
6 |
3 |
1 |
|
0 |
18 |
21 |
23 |
|
0 |
15 |
21 |
23 |
|
0 |
|
|
|
|
24 |
6 |
3 |
1 |
19 |
3 |
6 |
20 |
|
1 |
17 |
14 |
0 |
|
1 |
14 |
14 |
0 |
|
|
|
|
0 |
|
19 |
3 |
6 |
20 |
13 |
1 |
15 |
1 |
|
2 |
14 |
0 |
14 |
|
2 |
11 |
0 |
14 |
|
|
|
0 |
|
|
13 |
1 |
15 |
1 |
|
|
|
|
|
(по строкам max) |
(по столбцам min) |
|
|
|
|
|
|
|
|
|
Следовательно, целевая функция при ее максимизации будет равна:
z(x) = 16 + 24 + 20 + 15 = 75 минут – максимальное время, затраченное всеми исполнителями на исполнение всех работ.