
- •Система счисления— это способ записи чисел с помощью заданного набора специальных знаков (цифр).
- •В двоичной системе, использующей только две цифры – 0 и 1, продвижение 0 означает замену его на 1, а продвижение 1 – замену её на 0.
- •Основные позиционные системы счисления
- •Вся информация (данные) представлена в виде двоичных кодов. Правила перевода чисел из одной системы счисления в другую
- •Перевод восьмиричных и шестнадцатиричных чисел в двоичную систему счисления и обратно.
- •Перевод целого числа из десятичной системы в любую другую позиционную систему счисления.
- •средствами десятичной арифметики.
- •Сложение
- •Умножение
- •Основные определения теории кодирования.
- •Помехоустойчивость. Восстановление информации в канале с шумом
- •Понятие о криптографических методах защиты информации
- •Интерфейсы внешних запоминающих устройств IBM PC
- •Принципы управления
- •Локальные вычислительные сети (ЛВС) – объединяют находящиеся недалеко друг от друга компьютеры в пределах одной комнаты, здания, рядом стоящие здания.
- •Преимущества и причины создания и использования компьютерных сетей
- •Аппаратное обеспечение локальных сетей
- •Программное обеспечение локальных сетей
52. Основные задачи теории кодирования. Кодирование и декодирование. Теоремы Шеннона. Методы восстановления информации в канале с шумом. Коды Хэмминга. Понятие о компьютерной криптографии. Сложность алгоритма. Классы сложности алгоритмов. NP задачи.
Теория кодирования информации является одним из разделов теоретической информатики. К основным задачам, решаемым в данном разделе, необходимо отнести следующие:
∙разработка принципов наиболее экономичного кодирования информации;
∙согласование параметров передаваемой информации с особенностями канала связи;
∙разработка приемов, обеспечивающих надежность передачи информации по каналам связи, т.е. отсутствие потерь информации.
Две последние задачи связаны с процессами передачи информации. Первая же задача – кодирование информации – касается не только передачи, но и обработки, и хранения информации, т.е. охватывает широкий круг проблем; частным их решением будет представление информации в компьютере.
Основные определения теории кодирования.
Код – (1) правило, описывающее соответствие знаков или их сочетаний одного алфавита знакам или их сочетаниям другого алфавита; - (2) знаки вторичного алфавита, используемые для представления знаков или их сочетаний первичного алфавита. Кодирование – перевод информации, представленной посредством первичного алфавита, в последовательность кодов.
Декодирование - операция, обратная кодированию, т.е.
19
восстановление информации в первичном алфавите по полученной последовательности кодов.
Операции кодирования и декодирования называются обратимыми, если их последовательное применение обеспечивает возврат к исходной информации без какихлибо ее потерь. Примером обратимого кодирования является представление знаков в телеграфном коде и их восстановление после передачи. Примером кодирования необратимого может служить перевод с одного естественного языка на другой – обратный перевод, вообще говоря, не восстанавливает исходного текста. Безусловно, для практических задач, связанных со знаковым представлением информации, возможность восстановления информации по ее коду является необходимым условием применения кода, поэтому в дальнейшем изложении ограничим себя рассмотрением только обратимого кодирования. Таким образом, кодирование предшествует передаче и хранению информации. При этом, как указывалось ранее, хранение связано с фиксацией некоторого состояния носителя информации, а передача – с изменением состояния
с течением времени (т.е. процессом). |
|
||
Рассмотрим |
первую |
теорему |
Шеннона. |
Первая теорема Шеннона о передаче информации, которая называется также основной теоремой о кодировании при отсутствии помех, формулируется следующим образом:
При отсутствии помех передачи всегда возможен такой вариант кодирования сообщения, при котором среднее число знаков кода, приходящихся на один знак кодируемого алфавита, будет сколь угодно близко к отношению средних информаций на знак первичного и вторичного алфавитов.
Используя понятие избыточности кода, можно дать более короткую формулировку теоремы:
20
При отсутствии помех передачи всегда возможен такой вариант кодирования сообщения, при котором избыточность кода будет сколь угодно близкой к нулю.
Стоит упомянуть также о существовании второй теоремы Шеннона, ее существенное отличие состоит в том, что она предполагается для реального канала передачи информации, т.е. для канала с шумом.
Помехоустойчивость. Восстановление информации в канале с шумом
При передаче данных (по сетям и внутри компьютера) возможны ошибки. Между тем ошибка даже в одном двоичном разряде может полностью исказить передаваемый текст, если это программа или сжатый по Хафмену текст. Для уменьшения числа ошибок информацию часто передают
сдополнительными проверочными данными -
контрольными суммами. Самый простой вариант контрольной суммы используется при передаче отдельных байтов. В записи байта выделяется один специальный разряд, бит четности - в некоторых случаях это восьмой бит , но чаще девятый, специально добавляемый в аппаратуре и невидимый для пользователя. При каждой передаче байта внутри компьютера передаются 9 битов, и четность передаваемого байта контролируется. Наряду с этим контролем, встроенным в аппаратуру предусмотрены разнообразные системы контроля в программных средствах передачи и обработки информации. Например, пр передаче информации с системе электронной почты и в Интернет предусматриваются контрольные суммы у каждого передаваемого пакета. Сейчас контрольное суммирование используется и для распознавания заражения компьютера вирусами - у зараженных программ изменяется контрольная сумма. Очень прост и нагляден код Хемминга, который позволяет найти ошибку в последовательности битов при условии, что
21

ошибок не больше одной. Рассмотрим этот способ кодирования. Если требуется передать n битов, а передается N, где N>=n, битов, то для возможности обнаружения ошибки нужно, чтобы в передаваемом тексте, кроме n битов основного текста, хватало места для распознавания одной из N+1 возможностей положения места ошибки (нулевая возможность - текст передан без ошибок). Таким образом , 2^N-n>=N+1. Видно, что необходимое приращение числа контрольных битов зависит от длины кодовой последовательности: N-n приблизительно равно Log2N. Вот таблица, показывающая максимальное значение n для некоторых значений N-n:
N-n 2
3
4
5
6
7
8
9
n1 4 11 26 57 120 247 502
Покажем, что при достаточном добавлении битов можно сделать очень простой код, обнаруживающий один онибочный бит. Пусть задано некоторое n и N выбрано так, что выполнено приведенное неравентсво. передаваемые биты нумеруются от 1 до N и, зарезервировав номера 1, 2, 3, 4, 8, и т.д. (степени числа 2), все остальные места сопоставим местам в исходной последовательности. Сформируем матрицу контрольного суммирования, составленную из 0 и 1, в этой матрице N столбцов и N-n строк, каждый j- столбец содержит двоичное представление числа j. Эта матрица будет умножаться на передаваемый вектор. Выберем значения в резервных столбцах так, чтобы все компоненты вектора-произведения равнялись 0 по модулю 2. Сформированный таким образом вектор передается по каналам связи и при получении умножается на ту же матрицу. Вектор остатков от деления его компонент на 2 может рассматриваться как двоичное разложение некоторого целого числа k. Если оно равно 0, информация передана без
22