Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мет-3.doc
Скачиваний:
24
Добавлен:
26.04.2019
Размер:
1.86 Mб
Скачать

3.4. Решение задачи о назначениях алгоритмом Куна

Рассмотрим задачу о назначениях с матрицей производительностей P:

J(i)/R(i)

R 1

R 2

R 3

R 4

R 5

J 1

12

9

10

3

8

J 2

6

6

2

2

9

J 3

6

8

10

11

9

J 4

6

3

4

1

1

J 5

11

1

10

9

12

Здесь R (i) - работы, J(i) - исполнители, i=1,2,3,4,5.

Элемент матрицы p(i,j) - означает производительность исполнителя J(i) по работе R(i).

Алгоритм Куна работает следующим образом.

Найдем максимальные элементы в матрице P и присвоим двойственным переменным y(i) и z(i) следующие значения:

y’(1)=12, y’(2)=9, y’(3)=11, y’(4)=6, y’(5)=12;

z’(1)=0, z’(2)=0, z’(3)=0, z’(4)=0, z’(5)=0.

Перейдем к простейшей задаче о назначениях с матрицей производительностей Q:

R(1)

R(2)

R(3)

R(4)

R(5)

J(1)

1’

0

0

0

0

J(2)

0

0

0

0

1’

J(3)

0

0

0

1’

0

J(4)

1

0

0

0

0

J(5)

0

0

0

0

1

Решаем простейшую задачу о назначениях с матрицей Q.

Для чего назначаем исполнителей по работам в соответствии с матрицей (пока это возможно). Получаем следующие назначения:

Исполнителя J(1) назначаем на работу R(1), исполнителя J(2) на работу R(5), исполнителя J(3) на работу R(4). Других назначений больше сделать не удается.

Первый исполнитель, не назначенный на работу J(4) может выполнять лишь работу R(1). На работу R(1) назначен исполнитель J(1). Исполнитель J(1) больше никакие работы выполнять не может.

Получили замкнутую систему множеств: множество исполнителей {J(1), J(4} и множество работ {R(1)} (ни один исполнитель из множества {J(1), J(4}не может выполнять ни одной работы, кроме работ множества {R(1)}).

Изменяем значения двойственных переменных:

y’(1)=12-1=11, y’(4)=6-1=5.

z’(1)=0+1=1.

Строим матрицу Q’ простейшей задачи о назначениях с элементами:

q’(i,j)=1, если y’(i)+z’(j)=p(i,j).

В нашем случае предыдущая матрица Q не изменится.

Повторяем схему назначений и изменения значений двойственных переменных. Получим:

y’(1)=11-1=10, y’(4)=5-1=4.

z’(1)=1+1=2.

Строим матрицу Q’ простейшей задачи о назначениях с элементами:

q’(i,j)=1, если y’(i)+z’(j)=p(i,j).

R(1)

R(2)

R(3)

R(4)

R(5)

J(1)

1’

0

1

0

0

J(2)

0

0

0

0

1’

J(3)

0

0

0

1’

0

J(4)

1

0

1’

0

0

J(5)

0

0

0

0

1

Решаем простейшую задачу о назначениях с матрицей Q’.

Для чего назначаем исполнителей по работам в соответствии с матрицей (пока это возможно). Получаем следующие назначения:

Исполнителя J(1) назначаем на работу R(1), исполнителя J(2) на работу R(5), исполнителя J(3) на работу R(4). Исполнителя J(4) на работу R(3). Других назначений больше сделать не удается.

Не назначенным оказался исполнитель J(5).

Он может выполнять лишь работу R(5). Работа R(5) назначена исполнителю J(2). Исполнитель J(2) может выполнять лишь работу R(5).

Получили замкнутую систему множеств: множество исполнителей {J(2), J(5} и множество работ {R(5)}.

Изменяем значения двойственных переменных:

y’(2)=9-1=8, y’(5)=12-1=11.

z’(5)=0+1=1.

Строим матрицу Q’ простейшей задачи о назначениях с элементами:

q’(i,j)=1, если y’(i)+z’(j)=p(i,j).

Так как предыдущая матрица Q’ не изменилась, повторяем схему назначения и изменения двойственных переменных:

y’(2)=8-1=7, y’(5)=11-1=10.

z’(5)=1+1=2.

Строим матрицу Q’ простейшей задачи о назначениях с элементами:

q’(i,j)=1, если y’(i)+z’(j)=p(i,j).

R(1)

R(2)

R(3)

R(4)

R(5)

J(1)

1’

0

1

0

0

J(2)

0

0

0

0

1’

J(3)

0

0

0

1’

0

J(4)

1

0

1’

0

0

J(5)

0

0

1

0

1

Решаем простейшую задачу о назначениях с матрицей Q’.

Для чего назначаем исполнителей по работам в соответствии с матрицей (пока это возможно). Получаем следующие назначения:

Исполнителя J(1) назначаем на работу R(1), исполнителя J(2) на работу R(5), исполнителя J(3) на работу R(4). Исполнителя J(4) на работу R(3). Других назначений больше сделать не удается.

Не назначенным оказался исполнитель J(5).

Он может выполнять работы R(5) и R(3). Работа R(5) назначена исполнителю J(2), работа R(3) исполнителю J(4). Исполнитель J(2) может выполнять лишь работу R(5) , исполнитель J(4) кроме работы R(3) может еще выполнять работу R(1). Работа R(1) назначена исполнителю J(1). Исполнитель J(1) может выполнять лишь работы R(1) и R(3). Получили систему независимых множеств: {J(1), J(2), J(4), J(5)} и {R(1), R(3), R(5)}.

Изменяем значения двойственных переменных:

y’(1)=10-1=9, y’(2)=7-1=6, y’(4)=4-1=3, y’(5)=10-1=9.

z’(1)=2+1=3, z’(3)=0+1=1, z’(5)=2+1=3.

Строим матрицу Q’ простейшей задачи о назначениях с элементами:

q’(i,j)=1, если y’(i)+z’(j)=p(i,j).

R(1)

R(2)

R(3)

R(4)

R(5)

J(1)

1’

1

1

0

0

J(2)

0

1

0

0

1’

J(3)

0

0

0

1’

0

J(4)

1

1

1’

0

0

J(5)

0

0

1

0

1

Решаем простейшую задачу о назначениях с матрицей Q’.

Для чего назначаем исполнителей по работам в соответствии с матрицей (пока это возможно). Получаем следующие назначения:

Исполнителя J(1) назначаем на работу R(1), исполнителя J(2) на работу R(5), исполнителя J(3) на работу R(4). Исполнителя J(4) на работу R(3). Других назначений больше сделать не удается.

Не назначенный исполнитель J(5) может выполнять работы R(3) и R(5).

Работа R(3) назначена исполнителю J(4), работа R(5) назначена исполнителю J(2).

Исполнитель J(4) может выполнять еще работы R(1) и R(2). Исполнитель J(2) никаких новых работ выполнять не может. Работа R(1) назначена исполнителю J(1), а работа R(2) оказывается свободной, т.е. существует переназначение исполнителей по работам, в котором исполнитель J(5) получит для выполнения работу. Это переназначение имеет вид:

исполнитель J(4) вместо работы R(3) назначается на работу R(2), а исполнитель J(5) назначается на работу R(3).

Получили решение исходной задачи о назначениях:

x’(1,1)=1, x’(2,5)=1, x’(3,4)=1, x’(4, 2)=1, x’(5,3)=1,

остальные переменные равны нулю. Значение оптимума задачи F(X’)=12+9+11+3+10=45.

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

исполнитель J(1) назначен на работу R(1),

исполнитель J(2) назначен на работу R(5),

исполнитель J(3) назначен на работу R(4),

исполнитель J(4) назначен на работу R(2),

исполнитель J(5) назначен на работу R(3).

Суммарная производительность от таких назначений составляет 45 единиц.

Решить задачи о назначениях алгоритмом Куна.

Задача 4.1.

J(i)/R(i)

R 1

R 2

R 3

R 4

R 5

J 1

6

10

10

3

8

J 2

6

6

12

2

9

J 3

6

8

10

11

9

J 4

6

3

4

1

1

J 5

11

1

10

9

12

Задача 4.2.

J(i)/R(i)

R 1

R 2

R 3

R 4

R 5

J 1

7

9

10

3

8

J 2

6

6

9

2

7

J 3

6

11

10

11

9

J 4

6

3

4

1

1

J 5

11

1

13

9

12

Задача 4.3.

J(i)/R(i)

R 1

R 2

R 3

R 4

R 5

J 1

12

9

10

3

8

J 2

8

6

2

2

6

J 3

6

8

10

11

9

J 4

6

6

4

1

1

J 5

11

1

10

9

12

Задача 4.4.

J(i)/R(i)

R 1

R 2

R 3

R 4

R 5

J 1

12

9

10

3

11

J 2

6

6

2

2

9

J 3

6

8

10

11

9

J 4

6

3

4

1

7

J 5

12

1

10

9

12

Задача 4.5.

J(i)/R(i)

R 1

R 2

R 3

R 4

R 5

J 1

4

9

10

3

8

J 2

6

6

12

2

9

J 3

6

8

11

10

9

J 4

6

3

4

1

1

J 5

11

1

10

9

12

Задача 4.6.

J(i)/R(i)

R 1

R 2

R 3

R 4

R 5

J 1

10

9

10

3

12

J 2

6

6

2

2

9

J 3

6

8

10

7

11

J 4

6

3

4

1

1

J 5

12

1

10

9

12

Задача 4.7.

J(i)/R(i)

R 1

R 2

R 3

R 4

R 5

J 1

6

9

10

3

8

J 2

6

6

2

2

9

J 3

6

8

11

9

9

J 4

6

3

7

1

1

J 5

11

1

10

9

12

Задача 4.8.

J(i)/R(i)

R 1

R 2

R 3

R 4

R 5

J 1

10

13

10

3

8

J 2

6

6

2

2

9

J 3

6

8

10

11

9

J 4

6

7

4

1

1

J 5

12

1

10

9

9

Задача 4.9.

J(i)/R(i)

R 1

R 2

R 3

R 4

R 5

J 1

7

9

10

3

8

J 2

6

6

2

2

9

J 3

6

8

12

11

9

J 4

6

3

4

1

1

J 5

11

1

12

9

9

Задача 4.10.

J(i)/R(i)

R 1

R 2

R 3

R 4

R 5

J 1

8

9

10

3

8

J 2

9

6

2

2

6

J 3

6

8

10

11

9

J 4

6

3

4

1

1

J 5

12

1

10

9

8