Скачиваний:
54
Добавлен:
08.04.2015
Размер:
473.28 Кб
Скачать

8. МОДЕЛИ И ЗАДАЧИ РАСПРЕДЕЛИТЕЛЬНОГО ТИПА

8.1. Введение

Распределительные задачи, или задачи о назначениях, формулируются следующим образом. Необходимо выполнить n различных работ. Для выполнения работ можно привлечь n исполнителей. Каждый исполнитель может выполнить любую из работ за определенную плату или за определенное время. На каждую работу назначается только один исполнитель. Требуется так распределить работы между исполнителями, чтобы общие денежные затраты или суммарное время, потраченное на выполнение всех работ, были минимальны.

Исходной информацией для постановки и решения задач является таблица, с показателями эффективности назначений – cij . Это могут

быть стоимости работ, время их выполнения, индексы совместимости и другое (табл. 8.1.).

Таблица 8.1.

Исполнители

 

 

Работа

 

 

1

2

j

n

1

c11

c12

c1j

c1n

2

c21

c22

c2 j

c2n

i

ci1

ci2

cij

cin

n

cn1

cn2

cnj

cnn

Решением задачи о назначениях является набор значений переменных xij (табл. 8.2.), принимающих одно из двух значений:

xij = 1, если i-ый исполнитель назначается на j-ую работу,

xij = 0, если i-ый исполнитель не назначается на j-ую работу.

Переменные такого типа называют двоичными, булевыми, бинарными или логическими.

126

Таблица 8.2.

Исполнители

 

 

Работа

 

 

1

2

j

n

1

x11

x12

x1j

x1n

2

x21

x22

x2 j

x2n

i

xi1

xi2

xij

xin

n

xn1

xn2

xnj

xnn

В математической записи модель задачи линейного программирования о назначениях имеет вид:

n n

∑∑cij xij min i=1 j=1

n

,n.

i=1 n

xij =1, i =1,2,..., n.xij =1, j =1,2,...

j=1

xij 0, i =1,2,..., n; j =1,2,..., n .

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

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

ипотребителя (работы) равны единице.

8.2. Задача оптимального распределения бригад по объектам

Ремонтно-строительная фирма получила заказы на ремонт 5 объектов. Для выполнения работ она может привлечь 5 бригад отделочни-

127

ков. Каждая из бригад оценила объемы работ и дала следующие сроки выполнения заказов (человекодней) – табл.8.3

Таблица 8.3.

Бригада

 

 

Объект

 

 

 

1

2

3

4

5

 

 

 

 

 

 

62

 

Иванова

43

24

35

 

35

Петрова

45

21

38

58

33

Сидорова

51

29

36

61

38

Волкова

47

27

35

60

39

Козлова

48

26

37

59

39

Требуется:

1)распределить объекты между бригадами так, чтобы суммарное количество человекодней, затраченное на ремонт всех 5 объектов, было минимальным;

2)выяснить, сколько человекодней будет затрачено на ремонт всех объектов при оптимальном распределении бригад;

3)установить, какой из объектов следует поручить бригаде Волко-

ва.

Решение

Для решения задачи введем в рассмотрение переменные xij специ-

ального вида, каждая из которых будет принимать только два значения 0 или 1, а именно всякому назначению бригады на объект будет соответствовать единица, в противном случае – ноль.

1, если i ая бригада назначается на j ый объект; xij = 0 впротивномслучае.

Тогда искомый план назначений будет содержать 25 значений переменных (табл. 8.4.).

Причем, каждый столбец табл. 8.4 должен содержать только одну единицу и остальные нули, так как объект может обслуживаться только одной бригадой.

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

128

Формально задача о назначениях совпадает с транспортной моделью. При этом в качестве «стоимостей перевозок» cij в ней выступает

время (человекодни), а в качестве «объема перевозимого груза» xij

количество бригад, назначаемых на объект (либо ноль, либо единица). По аналогии с транспортной моделью можно считать, что «запас» каждой бригады состоит из количества объектов, которые ей выделяются для работы. Понятно, что такой запас для каждой бригады будет равен единице. «Заявкой» для каждого объекта является количество бригад, которые его ремонтируют. Они также равны единице для каждого из объектов – табл. 8.4.

Таблица 8.4.

Бригада

 

 

Объект

 

 

«Запасы»

1

2

3

4

5

 

 

Иванова

x11

x12

x13

x14

x15

1

Петрова

x21

x22

x23

x24

x25

1

Сидорова

x31

x32

x33

x34

x35

1

Волкова

x41

x42

x43

x44

x45

1

Козлова

x51

x52

x53

x54

x55

1

«Заявки»

1

1

1

1

1

 

 

 

 

 

 

 

 

С учетом особенностей введенных переменных (ноль или единица) целевая функция - суммарное количество человекодней, затраченное на ремонт всех объектов, можно вычислить по формуле

Z = 43 x11 +24 x12 +35 x13 +62 x14 +35 x15 +

+45 x21 +21 x22

+38 x23 +58 x24

+33 x25

+

(8.1)

+

 

+

..............................

 

+48 x51 +26 x52 +37 x53 +59 x54 +39 x55.

Ограничения, связанные с тем, что каждая из бригад может ремонтировать только один объект, математически можно записать следующим образом («баланс запасов»)

129

x11 +x12 +x13 +x14 +x15 =1,

 

 

+x22

+x23 +x24 +x25 =1,

 

x21

(8.2)

 

 

 

M

 

 

 

 

+x52

+x53 +x54 +x55 =1.

 

x51

 

Ограничения, связанные с тем, что за каждым объектом закрепляется только одна бригада, можно записать следующим образом («баланс заявок»)

x11 +x

21 +x31 +x41 +x51 =1,

 

 

 

 

 

 

 

 

 

 

 

x12 +x22 +x32 +x42 +x52 =1,

(8.3)

 

 

 

 

 

 

 

 

 

M

 

 

 

 

 

 

 

 

 

x +x

25

+x

35

+x

45

+x

55

=1.

 

15

 

 

 

 

 

Все искомые переменные неотрицательны

 

 

xij 0,

i =1,2,...,5;

j =1,2,...,5.

(8.4)

Таким образом, исходная задача о назначениях полностью соответствует транспортной модели замкнутого типа – необходимо минимизировать целевую функцию (8.1) при условии, что на переменные наложены ограничения (8.2) – (8.4).

В задаче о назначениях, также как и в замкнутой транспортной модели,

число поставщиков (бригад) равно числу потребителей (объектов);

выполнено условие баланса (запас равен заявкам);

все ограничения записаны в виде равенств;

коэффициенты при неизвестных в системе ограничений равны

единице.

Для решения задач распределительного типа, к числу которых относится и рассматриваемая, целесообразно использовать транспортные алгоритмы. Поиск решения в Excel автоматически «распознаёт» такие задачи и использует для решения соответствующие вычислительные алгоритмы, которые значительно более эффективны, чем симплекс метод. Это обстоятельство играет важную роль, особенно для задач большой размерности.

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

130

это условие в виде отдельного ограничения не требуется. В теории линейного программирования доказано [4, 5, 10], что в силу особенностей системы ограничений таких задач, при целочисленности правых частей ограничений (у нас они равны единице), все искомые переменные xij «автоматически» будут иметь «двоичную» природу, т.е.

окажутся равными нулю или единице.

Решение задачи в Excel показано на рис. 8.1 – 8.3.

Рис. 8.1. Табличное представление модели в Excel.

Рис. 8.2. Окно «Поиска решения»

131

Рис. 8.3. Найденный «Поиском решения» оптимальный план назначений.

Ответы

1. Оптимальное распределение бригад по объектам приведено в табл. 8.5.

Таблица 8.5.

Бригада

 

 

Объект

 

 

1

2

3

4

5

 

 

 

 

 

 

 

Иванова

1

 

 

 

 

Петрова

 

1

 

 

 

Сидорова

 

 

 

 

1

Волкова

 

 

1

 

 

Козлова

 

 

 

1

 

2.При оптимальном распределении бригад для ремонта всех объектов потребуется 196 человекодней.

3.Бригаде Волкова следует поручить объект № 3.

132

8.3. Задача оптимального распределения рабочих по операциям

Мастер цеха должен назначить на сборку изделия, требующую выполнения шести различных операций, шесть рабочих. В силу разной квалификации рабочие затрачивают на выполнение операций различное время. Результаты их тестирования приведены в табл. 8.6. Следует также учесть, что рабочие 3, 4 не умеют выполнять операцию № 2, а рабочий 6 не может выполнять операцию № 6.

Каким образом оптимально распределить рабочих по операциям, чтобы суммарное время, затрачиваемое на сборку изделия, было минимальным?

Таблица 8.6.

Рабочие

 

 

Операции

 

 

1

2

3

4

5

6

1

23

6

7

12

6

12

2

8

16

11

6

12

11

3

6

 

9

8

16

23

4

11

 

18

15

15

12

5

12

17

12

11

7

15

6

4

12

11

8

17

 

Решение

Обозначим через cij время (минут), которое i-ый рабочий затрачи-

вает на выполнение j-ой операции (табл. 8.6). Учесть невозможность выполнения операций рабочими 3,4,6 можно, придав неразумно большие значения времени выполнения соответствующих операций, например, положив c32 , c42 , c66 , равными 100. Такой прием заведо-

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

Введем в рассмотрение переменные xij , каждая из которых при-

нимает только два значения 0 или 1, а именно:

1, если i ый рабочий назначается на j юоперацию; xij = 0 впротивномслучае.

Тогда всякому назначению рабочего на операцию будет соответствовать единица, в противном случае – ноль.

133

Искомое решение задачи о назначениях – это набор из 36 значений для переменных (табл. 8.7.), каждая из которых должна быть равна либо нулю, либо единице.

Таблица 8.7.

Рабочие

 

 

Операции

 

 

1

2

3

4

5

6

1

x11

x12

x13

x14

x15

x16

2

x21

x22

x23

x24

x25

x26

3

x31

x32

x33

x34

x35

x36

4

x41

x42

x43

x44

x45

x46

5

x51

x52

x53

x54

x55

x56

6

x61

x62

x63

x64

x65

x66

Подсчитаем суммарное время, которое будет потрачено на выполнение всех работ

Z = 23 x11 +6 x12 +... +6 x15 +12 x16 +

 

 

+8 x21 +16 x22 +... +12 x25 +11 x26

+

(8.5)

+

+

 

+4 x61 +12 x62 +... +17 x65 +100 x66.

Вкаждой строке табл. 8.7. может находиться не более одного назначения. Поэтому сумма переменных xij для каждой i-ой строки

также должна быть равной 1

x11 +x12 +... +x15 +x16 =1,

 

 

+x22

+... +x25 +x26

=1,

 

x21

(8.6)

M

 

 

 

 

 

 

 

 

+x62

+... +x65 +x65

=1.

 

x61

 

Каждую операцию обязательно нужно выполнить, но назначать на нее более одного рабочего нельзя. Следовательно, каждый столбец будет содержать только одну единицу и остальные нули. Поэтом сумма xij для каждого j-го столбца табл. 8.7. также должна быть равна 1,

следовательно

134

x11 +x

21 +... +x51 +x61 =1,

 

 

+x22

+... +x52

+x62

=1,

 

x12

(8.7)

M

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

+x

26

+... +x

56

+x

66

=1.

 

16

 

 

 

 

 

Все искомые переменные неотрицательны

 

 

xij 0,

i =1,2,...,6;

j =1,2,...,6 .

(8.8)

В итоге исходная задача о назначениях также сведена к транспортной модели замкнутого типа – необходимо минимизировать целевую функцию (8.5) при условии, что на переменные наложены ограниче-

ния (8.6) – (8.8).

Решение задачи в Excel показано на рис. 8.4 – 8.6.

Рис. 8.4. Табличное представление модели (8.5)-(8.8) в Excel.

135