книги из ГПНТБ / Бездудный, В. Г. Техника безопасности в шахтном строительстве
.pdfназывается спиральной (рис. 49, в). Спиральная проверка позволяет обнаруживать также большой процент ошибок четной кратности, так как в этом случае смежные ошибочные разряды попадают в различные линии проверки. Если на четность символы проверяются и по строкам,
и по столбцам одновременно, то такая проверка называется перекрест ной (рис. 49, г). При перекрестной проверке кодовое расстояние d > 4.
Возможны еще более сложные проверки, которые еще больше увеличивают кодовое расстояние и сводят процент необнаруженных
Таблица 30
Удельные веса ошибок, возникающих при кодировании информации на перфокарты
|
|
Удельный |
Шифр |
Ошибка |
вес ошибки |
(в % к обще |
||
|
|
му количеству |
|
|
ошибок) |
и
12
21
22
31
32
41
42
51
52
53
61
62
71
81
Пробивка лишней перфокарты |
3,6 |
Пропуск перфокарты |
5,5 |
Пробивка лишнего числа в карте |
1,1 |
Пропуск числа |
1,9 |
Пробивка лишней цифры в числе |
2Д |
Пропуск цифры в числе |
3,7 |
Пробивка другого числа |
6,5 |
Пробивка другой цифры |
55,8 |
Сдвиг на одну колонку |
7,3 |
Сдвиг на две колонки |
1,6 |
Сдвиг более чем на две колонки |
■ 0,4 |
Перестановка чисел |
0,4 |
Перестановка соседних цифр в числе |
4,1 |
Ошибки по причине нечеткой записи в первичном документе |
2,4 |
Ошибки по причине неисправности машины |
3,6 |
' |
|
ошибок к нулю. К таким проверкам относится, например, проверка, в которой помимо контроля на четность по вертикали и горизонтали, добавляется контроль по диагонали. При этом 5, но приемная аппаратура увеличивается минимум на шесть счетчиков по модулю 2. Поэтому данный метод контроля применяется только в тех особых
170
случаях, когда аппаратурное усложнение оправдано необходимостью выполнения особо высоких требований к точности передаваемой ин формации.
Обнаружение ошибок при механизированной обработке информа ции имеет свою специфику и свои традиционные методы. Дело в том, что в настоящее время кодирование информации на машинные носители выполняют с помощью машин, имеющих ручной ввод данных. При этом операторы допускают определенные ошибки. Многолетняя ста тистика позволила систематизировать эти ошибки, как показано в
Таблица 31
Распределение ошибок по признакам «единичные» и «множественные».
Удельный вес ошибок (в % к общему количеству ошибок)
Шифр |
Ошибка |
|
11, |
12 |
Пробивка лишней карты или пропуск |
|
|
карты |
21, |
22 |
Пробивка лишнего числа или пропуск |
|
|
числа в карте |
31, |
32 |
Пробивка лишней или пропуск цифры в |
|
|
числе |
41Пробивка другого числа в результате се рийного промаха
42Единичные промахи
51, 52, 53 Сдвиги
61, 62 Перестановка цифр
71Неправильное прочтение первичного до кумента
81 Неисправность машины
Единичные |
Множест |
Особые |
венные |
||
|
|
9,09 |
_ |
2,99 |
_ |
|
|
|
_ |
5,84 |
|
|
|
|
___ |
6,5 |
_ |
55,7 |
-- . |
— |
— |
9,3 |
— |
—■ |
4,47 |
— |
2,4 |
____ |
____ |
|
|
|
3,64 |
|
|
|
“ |
|
табл. 30 и табл. 31 [1 ]. Как видно из этих таблиц, наибольшее количест во ошибок возникает, когда оператор вместо одной клавиши нажимает другую. Ошибки могут возникать и непосредственно в машине, но это будут ошибки, сходные с теми, что возникают от помех в каналах связи, и будут носить случайный характер. А ошибки «пробивка дру гого числа», «перестановка чисел», «перестановка соседних цифр в чис ле» характерны для человека. Эти ошибки, составляющие при ручном вводе данных 11% всех ошибок, весьма редко встречаются при передаче данных по каналам связи.
Известные статистические данные о характере ошибок дают воз можность упростить процесс их обнаружения. Однако в настоящее время эта статистика еще не достаточно полно используется. Наиболь шее распространение в практике обнаружения ошибок, возникающих при механизированной обработке информации, получили методы конт роля по модулю, по сумме, по произведению, по запрещенной части кодовой комбинации, на основе запрещения использования части символов.
171
Контроль по модулю заключается в том, что для обнаружения оши бок используется признак делимости, а в качестве проверочных раз рядов к кодовой комбинации дописывается разрешенный остаток от деления.
Простейшим случаем контроля по модулю является проверка на четность. В качестве проверочного разряда используется 0 или 1 в за висимости от того, четное или нечетное число единиц в кодовой комби нации. В качестве делителя следует использовать простые числа 2, 3, 5, 7, 11, 13... Запись соответствия числа заданному условию по признаку делимости имеет вид
A s s К (модуль Щ
и читается так: число А сравнимо с числом К по модулю М, т. е. при делении числа А на М в остатке окажется число К. Например, 49 == 0 (модуль 7); 50 == 1 (модуль 7); 25 == 4 (модуль 7). Передавае мые цифровые коды будут иметь соответственно вид 490; 501; 254.
Контроль по сумме и контроль по произведению могут рассматри ваться как модификации контроля по модулю. Машица автоматически суммирует цифры, затем производится деление на модуль. Если ошибки отсутствуют, в остатке должен быть 0. Для того чтобы упростить про цесс нахождения проверочного разряда, его выбирают таким, чтобы цифры информационных и проверочного разрядов давали в сумме чис ло, кратное 10 (хотя можно выбирать и любой другой модуль). Пред положим, требуется передать числа 5371, 2431, 1743. Суммы информа
ционных |
разрядов: |
5 + 3 + 7 |
+ 1 = 16; 2 + 4 + 3 + 1 = 10 и |
1 + 7 + |
4 + 3 = 15. |
До чисел, |
кратных 10, нехватает соответствен |
но четырех, ноля и пяти. Следовательно, полные кодовые комбинации: 53714, 24310 и 17435.
Недостаток метода контроля по сумме состоит в том, что ошибки, возникающие в результате перестановки цифр и составляющие, согласно табл. 31,4,47% от общего числа ошибок, остаются не обнаруженными.
Контроль по произведению является более надежным методом с точ ки зрения обнаружения ошибок. При контроле по произведению про верочный разряд находится как дополнение к сумме произведения цифр информационных разрядов на номер информационного разряда в пол ной кодовой комбинации: эта сумма должна делиться на выбранный модуль без остатка. Так, для предыдущего примера проверочные раз ряды будут выбираться следующим образом. Суммы произведений цифр информационных разрядов на номер информационного разряда в полной кодовой комбинации: 5 - 5 + 3 - 4 + 7 - 3 + 1 - 2 = 60;
2 - 5 + 4 . 4 + 3 . 3 + 1 . 2 = 3 7 и 1 . 5 + 7 - 4 + 4 . 3 + 3 . 2 = = 51; проверочные разряды: 0, 3 и 9; полные кодовые комбинации: 53710, 24313 и 17439.
Контроль по произведению дает возможность обнаруживать все единичные и многие множественные ошибки.
Недостатки метода контроля по произведению: сложность (при обработке пятизначного числа, имеющего четыре информационных
172
разряда, машина выполняет четыре операции умножения, пять опера ций сложения, одну операцию деления, одну операцию сравнения — всего 11 операций); кроме того не указывается адрес ошибки.
Контроль на основе использования принципа делимости позволяет исправлять ошибку, то есть указывает адрес ошибки, и может быть осуществлен для кодов с соотношением информационных и провероч ных разрядов, соответствующих табл. 21.
В качестве примера рассмотрим семизначный код с соотношением информационных и проверочных символов 4 : 3. Схема вычисления проверочных знаков для кода с четырьмя информационными пи тремя
Таблица 32
Схема вычисления проверочных знаков для кода с четырьмя информационными и тремя проверочными знаками
|
Информационные разряды |
|
|
Проверочные разряды |
|
|
Тысячи |
Сотни |
Десятки |
Единицы |
А |
В |
с |
|
А |
А |
А |
А |
|
— |
в |
'-- |
В |
В |
— |
в |
|
с |
С |
— |
С |
— |
— |
С |
проверочными знаками приведена в табл. 32 [1]. Значения провероч ного разряда находят следующим образом. Проверочный знак А обра зуют путем дополнения до числа, кратного выбранному модулю, суммы цифр информационного числа, стоящих в разряде сотен, десятков и единиц; В — тысяч, десятков и единиц; С — тысяч, сотен и единиц.
Например, для информационного числа |
5371 |
и модуля |
10 получим: |
Л = 3 + 7 + 1 = 11; £ = 5 + 7 + 1 = |
13 |
и С = 5 + |
3 + 1 = 9. |
Для того чтобы сумма информационных и проверочных разрядов делилась на 10, значения проверочных разрядов Должны быть: 9,7 и 1. Полная кодовая комбинация 5371971.
Адрес ошибки обнаруживают по следующему правилу: если про верочные разряды полученного числа отличаются во всех трех знаках Л, £ и С (табл. 32), то ошибка в разряде единиц; если отличие в знаках Л и £ — ошибка в разряде десятков; в Л и С — в разряде сотен; в £ и С — в разряде тысяч; если расхождение только в одном разряде, то ошибка в самом проверочном разряде. Предположим, было передано
число 5371971, а принято |
5381971. |
1-я проверка: |
3 + |
8 |
+ |
1 = |
12; |
|||
20 — 12 = |
8; Л = 8. |
2-я |
проверка: |
5 + |
8 + 1 = |
14; |
20 |
— |
14 = |
6; |
£ = 6. 3-я |
проверка: |
5 + |
3 + 1 = |
9; 10 |
— 9 = 1 ; |
С = |
1. |
Отличие |
||
в знаках Л и £ . Значит, ошибка в разряде |
десятков |
информационной |
части кода.
В случае двоичных кодов исправление ошибки свелось бы к изме нению знака в ошибочном разряде (сравните алгоритм исправления ошибки в аналогичном коде Хэмминга, тема 13). В рассматриваемом
173
случае алгоритм обнаружения ошибки значительно сложнее: Z =■ Z0U1— (К —-Кош),
где Zom — ошибочная цифра; К — правильная цифра проверочного разряда; Кош — цифра проверочного разряда, полученная в результа те контрольных проверок.
Для рассматриваемого примера правильная цифра
1 = 8 — (7 — 6) = 7
или
Z = 8 — (9 — 8) = 7.
Если Z получится отрицательным числом, то следует брать его допол нение до модуля. Если Z получается больше модуля, то от Z вычитае тся значение модуля.
Кодовая |
книга на |
100 слов |
при d —2 |
|
|
|
|
Таблица 33 |
|||
|
|
|
|
|
|
||||||
|
|
|
|
|
|
Разряд |
сотен |
|
|
|
|
Разряд |
|
|
|
|
|
|
|
|
|
|
|
десятков |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
|
|
||||||||||
0 |
|
001 |
102 |
203 |
304 |
405 |
506 |
607 |
708 |
809 |
900 |
1 |
|
012 |
113 |
214 |
315 |
416 |
517 |
618 |
719 |
810 |
911 |
2 |
|
023 |
124 |
225 |
326 |
427 |
528 |
629 |
720 |
810 |
922 |
3 |
|
034 |
135 |
236 |
337 |
438 |
539 |
630 |
731 |
832 |
933 |
4 |
|
045 |
146 |
247 |
348 |
449 |
540 |
641 |
742 |
843 |
944 |
5 |
|
056 |
157 |
258 |
359 |
450 |
551 |
652 |
753 |
854 |
955 |
6 |
|
067 |
168 |
269 |
360 |
461 |
562 |
663 |
764 |
865 |
966 |
7 |
|
078 |
179 |
270 |
371 |
472 |
573 |
674 |
775 |
876 |
977 |
8 |
|
089 |
180 |
281 |
382 |
483 |
584 |
685 |
786 |
887 |
988 |
9 |
|
090 |
191 |
292 |
393 |
494 |
595 |
696 |
797 |
898 |
999 |
Контроль по запрещенной части кодовой комбинации основан на том, что из общего числа кодов данной длины выбирается часть кодов
скодовым расстоянием d >• 2. Остальные кодовые комбинации счи таются запрещенными. Появление запрещенной комбинации говорит о наличии ошибки. Например, если пятизначный двоичный код раз делить на две части таким образом, чтобы в одной из них разрешенными были комбинации только с четным количеством единиц, а во второй —
снечетным, то получается два отдельных кода, обнаруживающих оди ночную ошибку (см. тему 13). Обнаружить ошибку элементарно: про веркой на четность.
-В случае цифровых кодов, применяемых при механизированной об работке информации, в памяти машины записывается кодовая книга — перечень разрешенных комбинаций. Каждая вновь поступившая ком бинация сравнивается с разрешенными по кодовой книге, и при отсут ствии поступившей комбинации среди разрешенных вырабатывается сигнал ошибки. В качестве примера кодовой книги с d = 2 приведена
174
табл. 33. Естественно, при помощи такой кодовой книги обнаружить адрес ошибки нельзя, так как для этого кодовое расстояние должно быть d > 3.
Кодовая книга с d = 3 изображена в табл. 34. Процесс обнаруже ния и исправления ошибки рассмотрим на следующем примере. Пред положим, в результате ошибки вместо разрешенного числа 4487 при нято число 4488. Первая проверка: Х488, если в кодовой книге (табл. 33) есть числе, оканчивающееся на 488, то ошибка в первом раз ряде. Результат проверки: такого числа нет. Вторая проверка: 4X88,
Кодовая книга на 90 слов при d = |
3 |
|
|
|
|
Таблица 34 |
||||
|
|
|
|
|
|
|||||
|
|
|
|
|
Разряд тысяч |
|
|
|
|
|
Разряд |
|
|
|
|
|
|
6 |
|
|
|
сотен |
0 |
1 |
2 |
3 |
4 |
5 |
7 |
8 |
9 |
|
0 |
0009 |
1017 |
2025 |
3033 |
4041 |
5058 |
6066 |
7074 |
8082 |
— |
1 |
0118 |
1126 |
2134 |
3142 |
415Q |
5167 |
6175 |
7183 |
8191 |
|
2 |
0227 |
1235 |
2243 |
3251 |
4269 |
5276 |
6284 |
7292 |
8200 |
— |
3 |
0336 |
1344 |
2352 |
3360 |
4378 |
5385 |
6393 |
7301 |
8319 |
— |
4 |
0445 |
1453 |
2461 |
3479 |
4487 |
5494 |
6402 |
7410 |
8428 |
— |
5 |
0554 |
1562 |
2570 |
3588 |
4596 |
5503 |
6511 |
7529 |
8537 |
— |
6 |
0663 |
1671 |
2689 |
3697 |
4605 |
5612 |
6620 |
7638 |
8646 |
|
7 |
0772 |
1780 |
2798 |
3706 |
4714 |
5721 |
6739 |
7747 |
8755 |
— |
8 |
0881 |
1899 |
2807 |
3815 |
4823 |
5830 |
6848 |
7856 |
8864 |
— |
9 |
0990 |
1908 |
2916 |
3924 |
4932 |
5949 |
6957 |
7965 |
8973 |
*— |
если в кодовой книге есть число, которое начинается на 4 и оканчивается на 88, то ошибка во втором разряде. Результат проверки: такого числа нет. Третья проверка: 44X8, если в кодовой книге есть число, начи нающееся на 44 и оканчивающееся на 8, то ошибка в третьем разряде. Результат проверки: такого числа нет. Четвертая проверка: 448Х, если в кодовой книге есть число, которое начинается на 448, то ошибка в четвертом разряде. Результат проверки: такое число есть — 4487. Вывод: ошибка в четвертом разряде, цифру следует изменить на 7.
Контроль на основе запрещния использования части символов —
единственный метод, учитывающий статистику ошибок, возникающих при механизированной обработке.
Анализ ошибок, возникающих при кодировании информации на машинные носители, вызывает следующие соображения. Наибольшее количество ошибок происходит в результате того, что оператор попадает на соседние клавиши, главным образом, по вертикали. Уменьшить вероятность таких ошибок можно, исключив из шифров соседние цифры либо видоизменив клавиатуру перфоратора. Много ошибок возникает от неправильного чтения первичного документа. Путаются цифры О и 9, 4 и 9, 4 и 7. Уменьшить вероятность таких ошибок можно, исклю чив из шифров символы 0 и 4. Большой процент ошибок возникает
175
в результате перестановки цифр. Ликвидировать эти ошибки можно путем такого построения кода, при котором все кодовые комбинации идут в возрастающей (либо в убывающей) последовательности. Много ошибок возникает от того, что в результате неисправности машины (пер форатора) часть позиций на информационном носителе остается не пробитой, а это воспринимается впоследствии как 0. Для избежания таких ошибок исключают 0 из разрешенных символов кодовых ком бинаций.
В качестве примеров в табл. 35 и 36 приведены коды, построенные по принципу запрещения части символов. В коде табл. 35 отсутствует 0,
Двузначный |
код на 45 |
слов (цифра |
0 запрещ ена) |
|
|
|
Таблица 35 |
|||
|
|
|
|
|
||||||
|
|
|
|
|
Десятки числа |
|
|
|
|
|
Единицы |
|
|
|
|
|
|
|
|
|
|
числа |
0 |
1 |
2 |
3 |
4 |
. 5 |
6 |
7 |
8 |
9 |
|
||||||||||
0 |
|
11 |
|
|
|
|
|
|
|
|
1 |
— |
22 |
|
|
|
|
|
|
|
|
2 |
— |
12 |
— |
— . |
— |
— |
— |
— |
— |
|
3 |
— |
13 |
23 |
33 |
— |
— . |
— |
— |
— |
— |
4 |
_ |
14 |
24 |
34 |
44 |
— |
_ |
_ |
— |
— |
5 |
— |
15 |
25 |
35 |
45 |
55 |
— |
— |
— |
— |
6 |
— |
16 |
26 |
36 |
46 |
56 |
66 |
— |
— |
— |
7 |
— |
17 |
27 |
37 |
47 |
57 |
67 |
77 |
— |
— |
8 |
— |
18 |
28 |
38 |
48 |
58 |
68 |
78 |
88 |
— |
9 |
|
19 |
29 |
39 |
49 |
59 |
69 |
79 |
89 |
99 |
а цифры в каждом кодовом слове следуют в возрастающем порядке. Поэтому такой код позволяет обнаруживать: все ошибки по перестанов ке; все промахи на нуль; все случаи непробивки отверстий; большин ство ошибок, обозначенных в табл. 30 и 31 под шифрами 22, 32, 51, 52, 53, 71. Код табл. 36, в котором отсутствуют цифры 0, 4, 5 и 6, кроме перечисленных ошибок, позволяет обнаруживать все промахи на соседние клавиши по вертикали (самый большой процент ошибок) и все промахи по диагонали, в которых участвуют цифры 0, 4, 5, 6.
Анализ, проведенный в работе [1], показывает, что кодом табл. 34 обнаруживается 74,9% всех ошибок, кодом табл. 35 — 37,5%, а ко дом табл. 36 — 65,6%, Коэффициенты емкости этих кодов составляют
соответственно К = |
» 0,1, К = -|§ - » 0,45 и К = |
ж 0,21. |
Как Видим, код табл. 36 имеет в два раза меньшую избыточность, чем код табл. 34, а процент обнаружения ошибок лишь на 9,3% меньше.' Однако, если учитывать специфику экономической информации, выигрыш в избыточности может оказаться еще более ощутимый. Так, например, при исключении трех видов клавиш используется 49 пози ций из 100. Двузначный код видов оплат использует только 40—45 позиций из 99 возможных (по числу видов оплат). Для такого кода
176
при исключении трех знаков помехоустойчивость значительно увели чится без введения дополнительной избыточности. То же самое можно сказать по поводу кодов балансовых счетов, статей цеховых и обще заводских расходов, групп материальных ценностей и т. д.
Сжатие технико-экономической информации при ее машинной обработке. Необходимость хранения в памяти ЭВМ огромных массивов технико-экономической информации, которые возникают в процессе
Таблица 36
Двузначный код на 21 слово (запрещены цифры 0, 4, 5, 6 и оставлены только восходящие значения цифр в числе)
ее механизированной обработки, заставляет ученых вести непрерывные поиски все более и более эффективных способов сжатия информации. Сколь бы совершенной ни была память ЭВМ, вместить в себя весь побуквенный код слов, которые составляют словари современных инфор мационно-поисковых и информационно-управляющих систем, она прак тически не может. Действительно, если взять слово «монтаж» в широко распространенном неизбыточном (т. е. в одном из кратчайших) двоич ном коде Бодо, то адрес этого слова занял бы 30 двоичных разрядов. Очевидно, что память машины, хранящей такие длинные адреса, не сможет хранить много слов, тем более словосочетаний или текстов. Кроме того, слишком длинные адреса усложняют и удорожают про цедуру поиска.
Сжатие информации представляет собой такую форму кодирования, в результате которой данному сообщению ставится в соответствие дру гое, более короткое. Аннотирование, реферирование и даже оптималь ное кодирование являются примерами сжатия информации. Однако здесь мы остановимся лишь на некоторых, наиболее характерных, способах сжатия информации непосредственно при помощи ЭВМ.
Вопросами сжатия информации машинными способами одним из первых советских ученых занялся Л. Н. Королев. Он предложил три способа сжатия:
177
1)отбрасывание разрядов слова, превышающего некоторую на перед заданную величину а;
2)деление кода на части, меньшие а хотя бы на один разряд, и сложение их по правилам двоичной арифметики. Например, исходный код 100011101011101111011, а = 9. Делим код на части < а 1000111, 0101110,1111011. Слагаем эти части:
1000111
+0101110
1111011
11101100
Сжатый код 11101100; 3) аналогичный способу 2, но сложение производится по моду
лю 2. Например, для предыдущего исходного кода
1000111
001 0 11 1 0
1111011
0010010
Сжатый код 0010010. Применение этого способа позволяет почти в два раза сократить объем машинного словаря исходных слов и разме стить сжатый код вместе со своим номером по машинному словарю в одной ячейке.
При рассмотренных способах сжатия информации возможны ва
рианты, |
когда для различных слов может быть получен один и тот же |
код, но |
вероятность этого мала. Например, для словаря из N = |
— 1100 слов при а — 30 двоичных разрядов средняя вероятность неод нозначного сжатия с использованием третьего способа равна 0,0005.
Большой практический интерес представляет собой способ по словного сжатия, предложенный К- И. Курбаковым и Р. В. Смирновым. При этом кодирование осуществляется путем преобразования кодов букв исходного слова в двоичный код его адреса. Например, слово «га зета» кодом с т = 8 (где т — длина кодовой комбинации буквы) коди-
руется так: г — 01000111; а — 11110000; з — 01100011; е — 00010111;
т — 11011000. Сжатие такого кода К. И. Курбаков и Р. В. Смирнов предлагают осуществлять путем сложения по модулю 2 с побуквенным сдвигом в каждом разряде:
|
11110000 |
а |
|
11011000 |
т |
|
00010111 |
е |
+ |
01100011 |
з |
|
11110000 |
а |
01000111 г
1001100010011
Сжатый код 1001100010011.
178
Однако сжатые коды, полученные таким способом, не всегда удо влетворяют требованиям к максимальной длине слова, записываемого в ЗУ. Допустимое количество разрядов сжатого кода является вполне определенной величиной, зависящей от способа кодирования и от ем кости ЗУ. Количество адресов, а следовательно, и количество кодов определяется из следующего соотношения:
2"макс< М , |
(104) |
где «марс — максимально допустимая длина (количество двоичных разрядов) сжатого кода; М — возможное количество адресов в ЗУ.
Рис. 50. К объяснению сжатия кодов путем побуквенного сдвига.
Если представить процесс побуквенного сдвига в общем виде, как показано на рис. 50, а, то длина сжатого кода
п = k -\-tn ,
где k — число побуквенных сдвигов; т — длина кодовой комбинации буквы.
Так как сдвигаются все буквы, кроме первой, то число сдвигов
k = L — 1,
где L — число букв в слове. Тогда п = т + (L — 1).
В русском языке наиболее длинные слова имеют 23—25 букв. Если принять Тмакс == 23 с условием осуществления побуквенного сдвига с каждым шагом ровно ца один разряд, для п я т могут быть получены следующие соотношения:
т— 6, «макс “ 28,
т= 7, «макс ~ 29,
т= 8; «макс = 30;
т= 9; «макс — 31.
Если значение « макс не удовлетворяет неравенству (104), конечные буквы слова можно складывать по модулю 2 без сдвига относительно
179