Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2.2.Параллельные машины.Полиномиально разрешимые задачи

.pdf
Скачиваний:
26
Добавлен:
28.03.2016
Размер:
821.33 Кб
Скачать

Полиномиально разрешимые задачи

Кратчайшее расписание с прерываниями

Псевдополином. точные алгоритмы

Суммарное взвешенное время прохождения работ

 

 

Algorithm 1 (Решения задачи P |prmp|Cmax)

Положить i 1, t 0. for j : 1 Ñ n do

назначить Jj íà Mi â t, t : t pj,

¡

if t C then i : i 1,

t : t

 

C,

назначить остаток Jj íà Mi

Теорема 1

Алгоритм 1 строит оптимальное решение задачи P |prmp|Cmax с трудоемкостью Opnq.

Тахонов Иван Иванович

Параллельные машины. Точное решение задач

 

 

Полиномиально разрешимые задачи

Кратчайшее расписание с прерываниями

Псевдополином. точные алгоритмы

Суммарное взвешенное время прохождения работ

 

 

Машины с различной производительностью

Задача Q|prmp|Cmax как задача лин. прог.:

$Cmax Ñ min;

txu

 

n

 

pj

 

 

 

 

xij

¤ Cmax

pi 1; : : : ; mq;

 

j°1

si

 

'

 

 

 

 

 

m

pj

 

 

 

 

 

 

xij

 

 

¤ Cmax

pj 1; : : : ; nq;

i°1

si

m

 

 

 

 

 

&

 

 

 

 

 

xij

1

pj 1; : : : ; nq;

'

i°1

 

 

 

xij

¥ 0

äëÿ âñåõ i è j:

Полагаем, n%¥ m. Упорядочим машины и работы: s1 ¥ s2 ¥ ¥ sm è p1 ¥ p2 ¥ ¥ pn:

Оценим C

max.

Тахонов Иван Иванович

Параллельные машины. Точное решение задач

 

 

Полиномиально разрешимые задачи

Кратчайшее расписание с прерываниями

Псевдополином. точные алгоритмы

Суммарное взвешенное время прохождения работ

 

 

C одной стороны, для любого допустимого расписания:

n

m

 

m

n

siCmax ¥ xijpj

ñ Cmax

si ¥

 

xijpj ñ

j¸1

i¸1

i¸1 j¸1

 

 

n

m

 

 

ñ Cmax ¥

pj{

si:

 

 

j¸1

i¸1

 

С другой стороны: рассм. пример Ik с первыми (длинными) k ¤ m работами и первыми (быстрыми) k ¤ m машинами.

 

 

 

 

 

k

 

k

 

 

 

 

 

 

 

 

C

¥ C

pI

q ¥

p

{

s

:

 

 

 

 

 

max

max

k

 

 

j

 

i

 

 

 

 

 

 

 

 

 

 

 

j¸1 i¸1

 

 

 

 

 

 

 

Таким образом,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

k

 

 

n

 

m

C

 

 

 

 

pj{

si ;

 

 

 

pj{ si + :

¥ C max # max

 

 

 

 

 

max

 

k¤m 1 j¸1

 

 

 

 

 

 

 

 

 

 

 

 

i¸1

 

 

j¸1

i¸1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тахонов Иван Иванович

Параллельные машины. Точное решение задач

 

 

Полиномиально разрешимые задачи

Кратчайшее расписание с прерываниями

Псевдополином. точные алгоритмы

Суммарное взвешенное время прохождения работ

 

 

Построим расписание длины

C.

Èäåÿ:

1В каждый момент времени назначаем недовыполненные работы на машины так, чтобы работа с самым длиннымостатком выполнялась на самой быстрой машине.

2Если имеется несколько работ с одинаковым остаткомразмазываем их равномерно между несколькими машинами.

3 Приводим расписание к допустимому виду.

Введем функции pjptq кол.-во единиц Jj не обработанных к t.

Тахонов Иван Иванович

Параллельные машины. Точное решение задач

 

 

Полиномиально разрешимые задачи

Кратчайшее расписание с прерываниями

Псевдополином. точные алгоритмы

Суммарное взвешенное время прохождения работ

 

 

Algorithm 2 (Level-Algorithm äëÿ Q|prmp|Cmax)

1:Положить t 0. pjptq : pj äëÿ âñåõ j.

2:Положить J 1 tJj : pjptq ¡ 0u, M1 M

3:if J 1 H then GOTO 13

4:else

5:while J 1 H and M1 H do

6:найти J 2 J 1 работы с наибольшим pjptq;

7:r : mint|J 2|; |M1|u;

8: назначить J 2 на r самых быстрых из M1 (одновр.);

9:удалить из J 1 назначенные работы;

10:удалить из M1 занятые машины.

s ¡ t : в s заверш. одна из работ 11: Положить t : min " или в s у некот. работ выравн. pjpsq *

12: GOTO 2.

13: Привести расписание к допустимому виду.

Тахонов Иван Иванович

Параллельные машины. Точное решение задач

 

 

Полиномиально разрешимые задачи

Кратчайшее расписание с прерываниями

Псевдополином. точные алгоритмы

Суммарное взвешенное время прохождения работ

 

 

Пример

m 4, s p7; 6; 5; 4q

n 5, p p20; 19; 10; 6; 2q

 

20

;

39

;

49

;

54

;

56

3

C max

7

13

18

22

22 (

t

 

 

 

 

3

 

 

 

 

2

 

 

 

p1(t)

1

 

 

 

p(t)

0

6 p3(t) 10

13

 

19 20

p5(t)2 p4(t)

p2(t)

M1

 

 

J1

 

 

J1 J2

 

 

M1

 

 

J1

 

 

 

J2

 

 

M2

 

 

J2

 

 

 

 

M2

 

 

J2

 

 

 

J1

 

 

M3

 

 

J3

 

 

J3

 

 

 

 

M3

 

 

J3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

M4

 

 

J4

 

 

J4 J5

 

 

 

 

M4

 

 

J4

J5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

1

 

 

2

 

3

 

 

0

 

 

1

 

 

2

 

 

3

 

 

 

 

 

 

 

 

Тахонов Иван Иванович

Параллельные машины. Точное решение задач

 

 

Полиномиально разрешимые задачи

Кратчайшее расписание с прерываниями

Псевдополином. точные алгоритмы

Суммарное взвешенное время прохождения работ

 

 

Теорема 2

Алгоритм 2 строит решение Q|prmp|Cmax ñ òðóä. Opmn2q.

Доказательство. Заметим, что расписание , где в rt1; t2s J1; : : : ; Jk вып. одновр. на M1; : : : ; Mr, всегда можно преобр. к допуст. виду. Разобьем rt1; t2s на k интервалов один. длины и назначим работы:

Íà M1: J1 Ñ J2 Ñ : : : Jk,

Íà M2: J2 Ñ J3 Ñ : : : Jk Ñ J1,

... и так далее с циклическим сдвигом.

Т.к. по построению k ¥ r, фрагменты каждой работы вып. на всех машинах в различных интервалах. Кроме того, в новом расписании

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

некоторые из фрагментов работ завершаются в t2.

То есть, получено допустимое расписание той же длины.

Тахонов Иван Иванович

Параллельные машины. Точное решение задач

 

 

Полиномиально разрешимые задачи

Кратчайшее расписание с прерываниями

Псевдополином. точные алгоритмы

Суммарное взвешенное время прохождения работ

 

 

Таким образом, алгоритм корректен.

Исходное блочное расписании:

содержит не более n блоков, строится за Opn2q.

в каждом блоке ¤ n работ, вып. ¤ m машинах. Следовательно, допуст. расп. строится за Opmn2q.

Покажем, что алг. строит расп. длины

C (то есть, опт.). Обозначим fi время освобождения Mi (i ¤ m). Очевидно,

Cmax f1 ¥ f2 ¥ ¥ fm:

Тахонов Иван Иванович

Параллельные машины. Точное решение задач

 

 

Полиномиально разрешимые задачи

Кратчайшее расписание с прерываниями

Псевдополином. точные алгоритмы

Суммарное взвешенное время прохождения работ

 

 

Случай 1. Все машины освобождаются одновременно: fi Cmax @i

Тогда

n

m

 

 

 

C ¤ Cmax ° pj{ ° si ¤ C:

 

j 1

i 1

Случай 2. f1 f2 fk ¡ fk 1 для некоторого k Заметим, что p1ptq ¥ p2ptq ¥ ¥ pnptq äëÿ âñåõ t P r0; Cmaxs.

Пусть в Cmax íà Mk заверш. Jj (возможно, в блоке). Тогда D" ¡ 0:

p1pfk "q ¥ p2pfk "q ¥ ¥ pjpfk "q ¡ 0:

Т.о., все предш. работы также заверш. в fk Cmax íà M1; : : : ; Mk.

Кроме того, в fk 1 ìàø. Mk 1 свободна, хотя есть незав. работы. Следовательно, этих работ k. Т.е., последними заверш. J1; : : : ; Jk.

Эти работы вып. на M1; : : : ; Mk с t 0, других работ на машинах не было (иначе они тоже заверш. бы в fk).

Следовательно,

k

k

 

 

 

C ¤ Cmax fk ° pj{ ° si ¤ C:

 

j 1

i 1

 

Тахонов Иван Иванович

Параллельные машины. Точное решение задач

 

 

Полиномиально разрешимые задачи

Кратчайшее расписание с прерываниями

Псевдополином. точные алгоритмы

Суммарное взвешенное время прохождения работ

 

 

Замечание 1

Алгоритм 2 c трудоемкостью Opmn2q строит расписание, в котором до n2pm 1q прерываний.

Gonzalez, Sahni предложили алгоритм трудоемкости

Opn m ln nq с не более, чем 2pm 1q прерываниями.

[Gonzalez T., Sahni S. Preemptive Scheduling of Uniform Processor Systems // J. of the Association for Computing Machinery, Vol.25, No.1, 1978]

Тахонов Иван Иванович

Параллельные машины. Точное решение задач