Исследование и моделирование информационных процессов и систем. Учебное пособие
.pdf
5) Шаги 1–4 повторяются для новой матрицы, получается
следующая очередь: J3 J 4 J6 J1 , |
виды работ J 4 и J6 исключа- |
ются из матрицы: |
|
S1 |
S2 |
J 2 4 |
5 . |
J5 2 4
6)Аналогичная процедура проводится с двумя последними видами работ и, в конечном итоге, получается оптимальная оче-
редь: J3 J 4 J5 J2 J 6 J1.
7) По формулам (*) найдем Ti j :
|
Ti 1 |
Ti 2 |
||||
J3 |
|
|
1 |
4 |
|
|
|
|
|||||
J 4 |
|
|
2 |
6 |
|
|
J 2 |
|
|
4 |
10 |
|
. |
J5 |
|
|
8 |
15 |
|
|
J 6 |
|
|
11 |
16 |
|
|
J1 |
|
|
14 |
17 |
|
|
Общее время выполнения 6 работ на 2 стадиях равно Q = 17.
Графическое |
представление |
задачи |
.Джонсона |
Диаграмма Ганта. Диаграмма Ганта – тип визуального планиро- |
|||
вания задач, придуманный в США. Для построения используются |
|||
две оси: список дел |
расположен вертикально, а |
время – горизон- |
|
тально. Подобное оформление позволяет следить не только за списком задач, но и знать их последовательность, пересечение и длительность по времени выполнения. Такие диаграммы удобны, в частности, для изображения и анализа решения задачи Джонсона (рисунок).
41
Рисунок. Диаграмма Ганта для задачи примера 2.1
Для представления каждой задачи Jk используется своя горизонтальная ось, на которой отображаются состояния задачи в разные моменты времени – прохождение j-й стадии и ожидание. Например, на рисунке изображена диаграмма Ганта для задачи примера 2.2 при очерёдности прохождения задач( J1 J2 J3 J4 J5 J6 ).
На диаграмме задаче J1 соответствует самая верхняя горизонтальная ось, вторая сверху ось соответствует следующей задачеJ1 и т.д. Сплошные красные линии соответствуют времени прохождения 1-й стадии решения, пустой промежуток – состоянию ожидания, пунктирная линия – прохождению 2-й стадии. Длина каждого участка равна соответствующему отрезку времени. Момент начала каждого участка совпадает с моментом окончания отрезку аналогичного цвета на предыдущей горизонтали, либо окончания предыдущей стадии данной работы.
Эвристические приёмы приближённого решения задачи Джонсона. Для решения задачи Джонсона приn > 2 не найден эффективный алгоритм, а использование полного перебора слишком затратно по времени. Для задач большой размерности применяются различные эвристические(приближённые) алгоритмы. Можно отметить такие эвристики.
1. Жадный алгоритм. В этом алгоритме на каждом шаге выбирается такая работа, которая даёт минимальное приращение
42
значения критерия (*). Опишем более подробно. Первой в очереди ставится работа Jk1 , которая быстрее всех пройдёт все стадии,
если она будет первой в очереди. На второе место ставится работа J k 2 , которая быстрее всех пройдёт все стадии, если она будет по очереди второй после Jk1 и т.д. Время прохождения рассчи-
тывается по формулам (*). Продемонстрируем работу алгоритма для задачи примера 2.2.
Шаг 1. Для каждой работы J1 - J6 вычислим время её прохождения всех стадий, если она будет первой в очереди. Поскольку каждая работа проходит первой, то все стадии перед ней свободны, время ожидания равно0. Следовательно, время прохождения всякий раз равно сумме элементов соответствующих строк матрицы V:
J1 : 3 +1 = 4 ,
J2 : 4 + 5 = 9 ,
J3 :1+ 3 = 4 ,
J4 :1+ 2 = 3 ,
J 5: 2 + 4 = 6 ,
J6 : 3 +1 = 4 .
Минимальное время прохождения будет у работы J4, её ставим в очередь первой.
Шаг 2. Для каждой оставшейся работы{J1 - J 6}\ J 4 вычислим время её прохождения всех стадий, если она будет второй в очереди после уже выбраннойJ4. В этом случае ко времени прохождения каждой стадии добавляется ожидание освобождения стадии от прошедшей первойJ4 (напомним, первую стадию она освободила через 1 минуту после начала прохождения, а вторую – через 3 минуты). Таким образом, расчёт времени для Ji проводится по формулам:
Ti,1 = vi, 1 + max {0; 1}, Ti,2 = vi, 2 + max {Ti,1; 3 }.
43
J1 :T1,1 = (3 +1); T1,2 = (1 + 4) = 5 ,
J 2 :T2,1 = (4 +1); T2,2 = (5 + 5) =10 ,
J3 : T3,1 = (1 +1); T3,2 = (3 + 3) = 6 |
, |
|
J5 : T5,1 = (2 +1); T5,2 |
= (4 + 3) = 7 |
, |
J6 : T6,1 = (3 +1); T6,2 |
= (1 + 4) = 5 . |
|
Минимальное время прохождения будет у работы J1, её ставим в очередь второй.
Шаг 3. Для каждой оставшейся работы{J1 - J 6}\ {J 4 , J1} вычислим время её прохождения всех стадий, если она будет третьей в очереди после J4 и J1 . Расчёт времени для Ji проводится по формулам:
Ti,1 = vi, 1 + max {0; T1,1 }, Ti,2 = vi, 2 + max {Ti,1; T1,2 }.
J 2 : T2,1 = (4 + 4); T2,2 = (5 +8) =18 , J3 : T3,1 = (1 + 4); T3,2 = (3 + 5) = 8, J5 : T5,1 = (2 + 4); T5,2 = (4 + 6) = 10, J6 : T6,1 = (3 + 4); T6,2 = (1+ 7) = 8 .
Минимальное время прохождения будет у работы J3, её ставим в очередь третьей. Далее аналогично определяем, что четвёртой в очереди будет J6 с временем прохожденияT6,2 = 9, пятой – J5, T5,2 = 14, шестой – J2, T2,2 = 19. Оптимальная очередь, согласно жадному алгоритму будет J4 J1 J3 J5 J6 J2 , Qmin = 19.
2. Сведение к двухстадийной (двухфазной) задаче. Выбира-
ется пара столбцов с номерами j1 и j2. Считая, что в матрице трудоёмкости присутствуют только эти столбцы, рассчитывается оптимальная очередь эффективным алгоритмом. Далее для полученной условно-оптимальной очереди вычисляется время прохождения всех стадий уже при полной матрицеV. Различные варианты такой эвристики отличаются способом выбора пары столбцов.
44
Пример 2.3. Дана матрица V из 6 строк и 5 столбцов.
æ 6 |
14 |
10 |
15 |
7 |
ö |
|
ç |
|
12 |
13 |
16 |
17 |
÷ |
ç 6 |
÷ |
|||||
ç13 |
5 |
7 |
12 |
13 |
÷ |
|
V = ç |
|
10 |
14 |
6 |
20 |
÷ . |
ç17 |
÷ |
|||||
ç |
|
7 |
9 |
8 |
6 |
÷ |
ç19 |
÷ |
|||||
ç |
7 |
17 |
15 |
19 |
12 |
÷ |
è |
ø |
|||||
Найти приближённое решение задачи Джонсона для данной матрицы, используя двухфазную эвристику. В качестве
столбцов j1 и j2 выбрать столбцы с максимальной суммой элементов.
Вычислим сумму элементов каждого столбца матрицыV: Sum = (68; 65; 68; 76; 75). Максимальная сумма у4-го и 5-го столбцов. Их и выбираем для эвристики. Следовательно, для определения оптимальной очереди применим эффективный двухстадийный алгоритм для матрицы
æ15 |
7 ö |
|
ç |
17 |
÷ |
ç16 |
÷ |
|
) ç12 |
13 |
÷ |
V = ç |
|
÷ |
ç 6 |
20÷ . |
|
ç |
6 |
÷ |
ç 8 |
÷ |
|
ç |
12 |
÷ |
è19 |
ø |
|
В результате получаем очередь( J 4 J3 J 2 J 6 J1 J5 ). Теперь для этой очереди рассчитаем время прохождения всех стадий исходной матрицы V по формулам (*). Получим следующую матрицу T:
J 4 |
:æ17 |
27 |
41 |
47 |
67 |
ö |
|
|
ç |
|
35 |
48 |
60 |
80 |
÷ |
J 2 :ç30 |
÷ |
||||||
|
ç |
|
|
|
|
|
÷ |
T = J3 :ç |
36 |
48 |
61 |
77 |
97 |
÷ . |
|
J 6 |
:ç43 |
65 |
80 |
99 |
111÷ |
||
J1 |
ç |
49 |
79 |
90 |
114 |
|
÷ |
: ç |
121÷ |
||||||
J 5 |
ç |
68 |
86 |
99 |
122 |
|
÷ |
:è |
128ø |
||||||
45
Таким образом, приближённое оптимальное время прохождения всех стадий равноQ = 128. Для сравнения жадный алгоритм определил следующую очередь J5 J3 J1 J 4 J 2 J6 со значением критерия Q = 140. Значит, для данной задачи двухфазный эвристический алгоритм оказался эффективнее.
В другом эвристическом алгоритме номераj1 и j2 соответствуют двум столбцам, в которых присутствует максимальное число максимальных элементов матрицы V. Например, для матрицы примера 1.2 максимальный элемент равен 20, он находится только в 5-м столбце. Значит, j2 = 5. В столбцах 3 и 4 находится следующий по величине элемент – 19. Значит j1 = 1 или j1 = 4.
Алгоритм точного решения общего случая задачи
Алгоритм позволяет получить минимальное общее время
выполнения работ и заключается в |
полном |
переборе всех |
|||
возможных последовательностей. Он реализуется с помощью |
|||||
известной |
процедуры |
генерации |
всех |
перестановок, текст |
|
которой приведён в приложении 2. |
|
|
|
||
Для |
точного |
решения задачи |
Джонсона |
необходимо |
|
выполнить следующие этапы. |
|
|
|
||
1. Составить процедуру вычисления времени Tm n прохож-
дения всего набора задач при заданной очередности и произвольном количестве задач и фаз их решения.
2. Составить программу точного решения задачи Джонсона методом полного перебора для произвольного количества задач и фаз. При каждом варианте перестановок вычисляется время Tm n
прохождения всего набора задач и сравнивается с текущим оптимальным временем.
Для задачи примера2.2 число различных перестановок равно 6! =720. Это весьма небольшое количество, значит, точный алгоритм для этого примера можно применять. Точная оптимальная очередь для примера 2.3 имеет вид J2 J1 J 4 J3 J6 J5 , Qmin = 122.
Для современных компьютеров персонального класса достаточно умеренным числом перебираемых вариантов является 106 = 1 млн. Значит, для точного алгоритма приемлемой размер-
46
ностью задачи Джонсона является m = 9, число вариантов 362880. Для большего значенияm время решения будет уже слишком большим.
Приближённый алгоритм – случайный перебор. Для матриц трудоемкости не слишком большой размерности хороший, т.е. близкий к оптимальному результат получается при использовании случайного перебора очередей (упорядочений). Для генерации случайных перестановок предлагается следующий алгоритм. Пусть x1 ... xn – массив из n элементов (не обязательно
числовых), из которых надо составить заданное число M перестановок.
< Первоначальное заполнение массива x[1],..,x[n] > for (i = 1; i<=M; i++)
{for (j = n; j>=2; j– –)
{k = <Случайное целое от 1 до j)>;
x[k] « x[j];
}
< Использовать массив x[1],..,x[n] >
}
Для решения задачи Джонсона с помощью указанного алгоритма генерируется достаточно большое количество (несколько тысяч) случайных перестановок – очередей решения задач J1 - J m . Для каждой случайной очереди p1, p2 ... pm по форму-
лам (*) вычисляется значение критерия Q. В качестве решения выбирается очередь, имеющая минимальное значение критерия.
Контрольные вопросы и задания
1. Построить по диаграмме на рисунке матрицуT, соответствующую очереди ( J1 J2 J3 J4 J5 J6 ), и определить значения критерия Q для данного варианта решения.
2. Построить диаграмму Ганта для оптимальной очереди примера 2.2 и сравнить с диаграммой предыдущего задания.
47
3. Создать процедуру вычисления времени Tm n прохожде-
ния всего набора задач при заданной очередности и произвольном количестве задач и фаз их решения.
4.Создать процедуру определения оптимальной очереди двухфазной задачи Джонсона эффективным алгоритмом.
5.Создать процедуру генерации всех перестановок изm элементов по алгоритму приложения 2.
3. ПРОЦЕСС СБОРА ДАННЫХ
Съём и регистрация сигналов представляет собойпроцесс сбора данных. Он производится либо с помощью датчиков, встроенных в исследуемый объект, либо путем считывания данных с документов.
Схема процесса сбора данных при использовании датчика представлена на рис. 3.1. С объекта датчиком снимается непрерывный сигнал, который в преобразователе превращается в дискретный, а в шифраторе дискретный сигнал кодируется, например, в виде двоичного кода – последовательности из 0 и 1. Физически код представляет собой последовательность электрических импульсов, передаваемых по проводам. Полученные наборы данных собираются в накопителе– временном хранилище данных, из которого они выводятся по мере необходимости.
Рис. 3.1. Общая схема процесса сбора данных
При съёме данных с документа преобразователь уже не нужен, т.к. исходный сигнал является дискретным, а роль накопителя выполняет непосредственно компьютер, в котором данные будут храниться.
48
Существует несколько способов превращения непрерывного сигнала в дискретный, наиболее распространенные – кванто-
вание по уровню или дискретизация по времени. В обоих случаях график исходного сигнала в виде плавной непрерывной кривой заменяется ступенчатой линией. В первом способе весь диапазон значений непрерывного сигнала разбивается на несколько участков. Если величина сигнала попадает в какой-тоi-й участок, то значение квантованного сигнала принимается равным граничному или среднему значению этого участка.
При втором способе на части разбивается временной -ин тервал изменения сигнала. Значением квантованного сигнала на каждом j-м участке считается величина непрерывного сигнала в начале этого участка или в его середине.
3.1.Методы дискретизации по времени
Врезультате дискретизация исходная функцияs(t) заменя-
ется совокупностью отдельных значений s(ti). По этим значениям можно с некоторой погрешностью восстановить исходную функцию. Функцию, полученную по результатам восстановления (ап-
проксимации), будем называть воспроизводящей и обозначать
S(t).
Основная проблема, которую приходится решать при дискретизации, – как часто следует производить отсчета исходной функции, т.е. каков должен быть шаг дискретизации D ti = ti – ti–1. Оптимальной является такая дискретизация, которая обеспечивает восстановление исходного сигнала с заданной точностью при минимальном количестве выборок.
Методы дискретизации и восстановления сигнала можно классифицировать в зависимости от следующих признаков:
-регулярность отсчётов;
-критерий оценки точности дискретизации и восстановле-
ния;
- выбранные базисные функции; Регулярность отсчётов. В соответствии с этим признаком
можно выделить две основные группы методов: равномерную
49
(при Dti = Dt = const) и неравномерную дискретизацию и восстановление.
При равномерной дискретизацииDt выбирают на основе априорных сведений о характеристиках сигнала. Эти методы достаточно просты, однако из-за несоответствия априорных характеристик реальным характеристикам возможна избыточность -от счётов или потеря точности.
Среди неравномерных методов выделяют адаптивные и программируемые. В первом случае интервал меняется в зависимости от текущего значения параметров реализации сигнала. Во втором случае изменение интервалов происходит в соответствии с заранее установленной программой работы.
Критерий оценки точности. Точность оценивается на ос-
нове текущей погрешности: |
|
e(t) = s(t) – S(t). |
(3.1) |
Выбор критерия оценки точности осуществляется |
получа- |
телем информации и зависит от цели использования дискретизированного сигнала и возможности аппаратурной и/илипро граммной реализации. Оценка погрешности может производиться как для отдельных, так и для множества реализаций сигнала. Чаще других отклонение воспроизводимой функции от сигнала на интервале Dti оценивается следующими критериями.
а) Минимаксный критерий em = max |
e(t) |
® min . |
||||
tÎ[ti -1, ti ] |
|
1 |
|
òe2 (t)dt ® min . |
||
б) Среднеквадратический критерий |
e2 |
= |
|
|||
Dt |
|
|||||
|
|
|
|
Dt |
||
|
|
|
|
|
||
в) Вероятностный критерий P[ e(t) £ e0 ]³ P0 , где e0 – мак-
симальное допустимое значение погрешности, Р0 – допустимая вероятность (достоверность) того, что погрешность не превысит заданный порог.
Задачи восстановления в общем случае аналогичны задачам аппроксимации функций некоторым обобщённым многочленом вида
S (t) = åak ×jk (t) . k
50
