
- •50. Представление информации в эвм. Арифметические и логические основы эвм.
- •Логический элемент и-не
- •Представление информации в эвм
- •Системы счисления и формы представления чисел
- •Представление чисел с плавающей точкой.
- •51. Системы счисления. Правила перевода чисел из одной системы в другую. Выполнение арифметических операций в различных системах счисления.
- •Система счисления— это способ записи чисел с помощью заданного набора специальных знаков (цифр).
- •В двоичной системе, использующей только две цифры – 0 и 1, продвижение 0 означает замену его на 1, а продвижение 1 – замену её на 0.
- •Основные позиционные системы счисления
- •Вся информация (данные) представлена в виде двоичных кодов. Правила перевода чисел из одной системы счисления в другую
- •Перевод восьмиричных и шестнадцатиричных чисел в двоичную систему счисления и обратно.
- •Перевод целого числа из десятичной системы в любую другую позиционную систему счисления.
- •Пеpевод числа из двоичной (восьмеpичной, шестнадцатеpичной) системы в десятичную.
- •Основные определения теории кодирования.
- •Помехоустойчивость. Восстановление информации в канале с шумом
- •Понятие о криптографических методах защиты информации
- •54/ Принципы построения и архитектура пэвм. Информационно-логические основы эвм. Основы языка Ассемблер.
- •55. Структурная и функциональная схема персонального компьютера. Назначение, виды и характеристики центральных устройств пэвм.
- •56.Управление внешними устройствами. Назначение, виды и характеристики внешних устройств пэвм.
- •Интерфейсы внешних запоминающих устройств ibm pc
- •Принципы управления
- •57. Локальные компьютерные сети. Принципы организации и функционирования. Стандартизация в области компьютерных сетей. Основные сетевые архитектуры ( Ethernet, ArcNet, TokenRing).
- •Локальные вычислительные сети (лвс) – объединяют находящиеся недалеко друг от друга компьютеры в пределах одной комнаты, здания, рядом стоящие здания.
- •Преимущества и причины создания и использования компьютерных сетей
- •4. Смешанная топология.
- •Аппаратное обеспечение локальных сетей
- •Программное обеспечение локальных сетей
- •58. Глобальные компьютерные сети. Принципы организации и функционирования сети Internet. Основные сервисы Internet.
- •59. Язык html. Структура html-документа. Основные элементы языка html. Язык JavaScript и его использование в html-документах. Другие средства web-программирования.
- •60.Основы мультимедиа технологий. Работа с различными видами информации в мультимедиа системах. Программные и технические средства мультимедиа систем. Применение мультимедиа-технологий в образовании.
Понятие о криптографических методах защиты информации
Криптография – это наука об использовании математики для зашифрования и расшифрования данных. Криптография позволяет хранить важную информацию или передавать её по ненадёжным каналам связи (таким как Интернет) так, что она не может быть прочитана никем, кроме легитивного получателя.
В то время как криптография – это наука о защите данных, криптоанализ – это наука об анализировании и взломе криптографированных коммуникаций. Классический криптоанализ предствляет собой смесь аналитики, математических и статистических расчётов, а также спокойствия, решительности и удачи. Криптоаналитиков также называют взломщиками.
Криптографический алгоритм, или шифр, – это математическая формула, описывающая процессы зашифрования и расшифрования. Чтобы зашифровать открытый текст, криптоалгоритм работает в сочетании с ключом – словом, числом или фразой. Одно и то же сообщение одним алгоритмом, но разными ключами будет преобразовываться в разный шифртекст. Защищённость шифртекста целиком зависит от двух вещей: стойкости криптоалгоритма и секретности ключа.
Ключ – это некоторая величина, которая, работая в сочетании с криптоалгоритмом, производит определённый шифртекст. Ключи, как правило, – это очень большие числа. Размер ключа измеряется в битах. В асимметричной криптографии, чем больше ключ, тем защищённей полученный шифртекст.
Обычная криптография
В традиционной криптографии, также называемой шифрованием тайным, или симметричным, ключом, один и тот же ключ используется как для зашифрования, так и для расшифрования данных. Data Encryption Standart (DES) – пример симметричного алгоритма, широко применявшегося на Западе с 70-х годов в банковской и коммерческой сферах. В настоящее время его сменяет Advanced Encryption Standard (AES).
Шифр Цезаря
Крайне простой пример симметричного шифрования – это подстановочный шифр. Подстановочный шифр заменяет каждую часть информации другой информацией. Чаще всего это достигается смещением букв алфавита. Допустим, если мы решим зашифровать слово «SECRET», используя ключ Цезаря, равный 3, то сдвинем латинский алфавит так, чтобы он начинался с третьей буквы (D). Итак, беря исходный вариант ABCDEFGHIJKLMNOPQRSTUVWXYZ, и смещая всё на 3, получаем DEFGHIJKLMNOPQRSTUVWXYZABC, где D=A, E=B, F=C, и т.д. Используя эту схему, открытый текст «SECRET» превращается в «VHFUHW». Чтобы кто-то мог восстановить исходный текст, вы сообщаете ему, что ключ – 3.
Симметричное шифрование и управление ключами
Симметричное шифрование имеет ряд преимуществ. Первое – скорость криптографических операций. Оно особенно полезно для шифрования данных, которые остаются у вас. Однако, симметричное шифрование, применяемое само по себе как средство защиты пересылаемых ценных данных, может оказаться весьма затратным просто из-за сложности передачи тайного ключа. Для установления криптографированной связи с помощью симметричного алгоритма, отправителю и получателю нужно предварительно согласовать ключ и держать его в тайне. Если они находятся в географически удалённых местах, то должны прибегнуть к помощи доверенного посредника, например, надёжного курьера, чтобы избежать компрометации ключа в ходе транспортировки. Злоумышленник, перехвативший ключ в пути, сможет позднее читать, изменять и подделывать любую информацию, зашифрованную или заверенную этим ключом. Глобальная проблема симметричных шифров (от Кольца-декодера капитана Миднайта до DES и AES) состоит в сложности управления ключами: как вы доставите ключ получателю без риска, что его перехватят?
Криптография с открытым ключом
Проблема управления ключами была решена криптографией с открытым, или асимметричным, ключом, концепция которой была предложена Уитфилдом Диффи и Мартином Хеллманом в 1975 году. Криптография с открытым ключом – это асимметричная схема, в которой применяются пары ключей: открытый (public key), который зашифровывает данные, и соответствующий ему закрытый (private key), который их расшифровывает. Вы распространяете свой открытый ключ по всему свету, в то время как закрытый держите в тайне. Любой человек с копией вашего открытого ключа может зашифровать информацию, которую только вы сможете прочитать. Кто угодно. Даже люди, с которыми вы прежде никогда не встречались. Хотя ключевая пара математически связана, вычисление закрытого ключа из открытого в практическом плане невыполнимо. Каждый, у кого есть ваш открытый ключ, сможет зашифровать данные, но не сможет их расшифровать. Только человек, обладающим соответствующим закрытым ключом может расшифровать информацию.
Стойкость зашифрованной информации (криптографическая стойкость, или просто стойкость) зависит от возможности несанкционированного чтения данных. Существует два типа стойкости: теортическая (математическая) и практическая. Эти концепции были предложены в классической работе Шеннона (Shannon, 1949). Термин "практическая стойкость" не означает, что определение не является математически строгим. Стойкость обоих типов стойкости в следующем. Теоретическая стойкость основана на факте, что криптосистема моделируется некоторым формальным объектом, и для этой модели формулируются определенные условия невозможности раскола криптосистемы посторонним лицом. Обычно полагается, что доступная злоумышленнику информация должна быть недостаточной для определения открытого текста, даже если информация о криптосистеме несекретна. В качестве меры практической стойкости мы принимаем работу, т.е. число операций или временную сложность определения открытой информации посторонним лицом, либо средние значения этих характеристик над множеством всех открытых текстов. В этом случае цель состоит в получении максимальной сложности задачи несанкционированного дешифрования.
Алгоритм относится к основным понятиям математики, а потому не имеет точного определения. Часто это понятие формулируют так: «точное предписание о порядке выполнения действий из заданного фиксированного множества для решения всех задач заданного класса».
Сложность алгоритма
В области интересов компьютерных наук попадают только те задачи, которые могут быть решены с помощью машин. Решение подобных задач формулируются как алгоритмы. Поэтому сложность задачи определяется свойствами алгоритма, позволяющего найти её решение. Точнее говоря, сложность простейшего алгоритма решения некоторой задачи определяет сложность этой задачи.
Будем считать задачу простой, если она имеет простое решение, а сложной будем называть такую задачу для которой простого решения не существует.
Чтобы прийти к заключению, что некоторая задача является сложной, необходимо доказать, что для неё не существует простых решений.
Как можно измерить сложность алгоритма?
Термин сложность алгоритма может трактоваться по-разному. Сложность может определяться количеством принятых решений и разветвлений алгоритма. Однако это не отражает понятия сложности с точки зрения машины. Машина может выполнять самый запутанный набор инструкций с той же лёгкостью, что и серию последовательно расположенных команд.
Следовательно, данная интерпретация оценивает скорее уровень сложности, с которым приходится сталкиваться при разработке алгоритма, а не уровень сложности алгоритма самого по себе.
Трактовка, более точно отражающая сложность алгоритма, может быть получена при анализе свойств алгоритмов с машинной точки зрения. Т.е. сложность измеряется в терминах необходимого для его выполнения времени, которое в свою очередь пропорционально количеству действий, совершаемых машиной(количество действий не равно числу инструкций записанных в тексте программы) Данный подход связан со временем, затрачиваемым машиной на её решение, а не с объектом программы, представляющей это решение. Задача считается сложной, если все её существующие решения требуют больших затрат времени. Данное понятие сложности обычно называют временной сложностью.
Классы сложности алгоритмов: полиномиальные и неполиномиальные алгоритмы Полиномиальные алгоритмы.
Предположим, что f (n) u g (n) – это математические выражения. Тогда утверждение, что функция g (n) ограничивает функцию f (n), означает, что при возрастании аргумента n значение функции f (n) непременно окажется больше значения функции g (n) и будет оставаться большим при дальнейшем возрастании аргумента n. Другими словами, выражение «функция g (n) ограничивает функцию f (n)» означает, что график функции f (n)
для больших значений n находится над графиком функции g (n).
Будем говорить, что задача относится к полиномиальному типу, если она принадлежит классу O (f (n))=const*f(n), где функция f (n) либо сама является полиномом, либо ограничивается некоторым полиномом а const – произвольная константа. Совокупность всех задач полиномиального типа традиционно обозначается как Р. Утверждение о том , что задача относится к полиномиальному типу, связано со временем, необходимым на её решение. Задача, принадлежащая к Р может быть решена за полиномиальное время, или же , то же самое, имеет полиномиальное временное решение.
Неполиномиальные алгоритмы.
Определение принадлежности задачи к множеству Р является достаточно важным моментом в программировании. Поскольку это тесно связано с существованием практического решения задачи. Задачи не принадлежащие к множеству Р, являются неполиномиальными. Такие задачи характеризуются крайне высоким временем выполнения даже при обработке умеренного объёма входных данных.
Принято говорить, что алгоритм, сложность которого определяется показательной или экспоненциальной функцией, требует экспоненциального времени выполнения.
Теоретически разрешимые, но не принадлежащие к множеству Р задачи имеют столь огромную временною сложность. свидетельствует о том, что с практической точки зрения они являются неразрешимыми. В то же время задачи, имеющие практическое решение, относят к множеству Р. Таким образом, определение границ множества Р можно считать важным направлением исследований в области компьютерных наук.
НП-задачи.
Задача не имеющая детерминированное решение с полиномиальным затраченным временем, называется недетерминированной полиномиальной задачей, или НП-задачей. Для обозначения множества НП – задач обычно употребляется обозначение NP. Все задачи множества Р также принадлежат и множеству NP, поскольку к любому алгоритму можно добавить недетерминированную команду, не нарушив при этом его функционирования. Вопрос о принадлежности NP - задач множеству Р остаётся открытым, пример задача коммивояжёра. Можно считать, что это наиболее известная проблема из числа ещё не решённых в современной теории вычислительных систем. Её успешное решение может иметь значительные последствия.
Пример НП - задачи.
Рассмотрим задачу коммивояжера, заключающуюся в том, что он должен посетить всех покупателей, проживающих в различных городах, не превысив при этом установленной сметы. Таким образом, данная задача сводится к нахождению пути, суммарная протяжённость которого не превысит определённой величины.
Традиционное решение данной задачи заключается в систематическом рассмотрении возможных путей, сравнении их протяжённости с некоторым пределом, пока не будет найден приемлемый вариант или не будут рассмотрены все возможности.
Данный подход не имеет полиномиального временного решения следовательно, данное решение задачи коммивояжёра является непрактичным, особенно если необходимо посетить много городов.
Для решения этой задачи за разумное время необходимо найти более быстрый алгоритм. Мы можем получить последовательность задач которая не будет являться алгоритмом в техническом смысле. Говорят, что подобные команды недетерминированы, поэтому мы будем называть такой «алгоритм» недетерминированным алгоритмом. Но время, необходимое на выполнение недетерминированного алгоритма ограниченно кокой-то полиномиальной функцией. При использовании недетерминированного алгоритма появляется возможность решения задачи коммивояжёра за полиномиальное время.
Полнота класса НП-задач.
Попытки разрешения вопроса о тождественности множеств Р и NP привели к открытию класса задач, принадлежащих множеству NP и известных как полные НП – задачи. Эти задачи имеют следующую особенность: из их полиномиального временного решения могут быть выведены полиномиальные временные решения всех задач, принадлежащих множеству NP. Поэтому если может быть найден алгоритм для решения одной из полных NP – задач за полиномиальное время, то данный алгоритм может быть расширен для решения любой NP – задачи за полиномиальное время. А значит, множество NP окажется тождественным множеству Р. Задача коммивояжёра относится именно к классу полных НП – задач.
53.Информация и её виды. Дискретная и непрерывная информация. Измерение информации. Вероятностный и объёмный подход к измерению информации. Формулы Шеннона и Хартли. Сжатие информации. Основные алгоритмы сжатия информации.
Информация, ее виды и свойства
Ранее мы неоднократно употребляли термин «информация», никак его при этом не раскрывая.
Понятие информация является одним из фундаментальных в современной науке вообще и базовым для изучаемой нами информатики. Информацию наряду с веществом и энергией рассматривают в качестве важнейшей сущности мира, в котором мы живем. Однако, если задаться целью формально определить понятие «информация», то сделать это будет чрезвычайно сложно. Аналогичными «неопределяемыми» понятиями, например, в математике является «точка» или «прямая». Так, можно сделать некоторые утверждения, связанные с этими математическими понятиями, но сами они не могут быть определены с помощью более элементарных понятий.
В простейшем бытовом понимании с термином «информация» обычно ассоциируются некоторые сведения, данные, знания и т.п. Информация передается в виде сообщений, определяющих форму и представление передаваемой информации. Примерами сообщений являются музыкальное произведение; телепередача; команды регулировщика на перекрестке; текст, распечатанный на принтере; данные, полученные в результате работы составленной вами программы и т.д. При этом предполагается, что имеются «источник информации» и «получатель информации».
Непрерывная и дискретная информация
Чтобы сообщение было передано от источника к получателю, необходима некоторая материальная субстанция - носитель информации. Сообщение, передаваемое с помощью носителя, назовем сигналом. В общем случае сигнал - это изменяющийся во времени физический процесс. Такой процесс может содержать различные характеристики (например, при передаче электрических сигналов могут изменяться напряжение и сила тока). Та из характеристик, которая используется для представления сообщений, называется параметром сигнала.
В случае когда параметр сигнала принимает последовательное во времени конечное число значений (при этом все они могут быть пронумерованы), сигнал называется дискретным, а сообщение, передаваемое с помощью таких сигналов -дискретным сообщением. Информация, передаваемая источником, в этом случае также называется дискретной. Если же источник вырабатывает непрерывное сообщение (соответственно параметр сигнала - непрерывная функция от времени), соответствующая информация называется непрерывной. Пример дискретного сообщения - процесс чтения книги, информация в которой представлена текстом, т.е. дискретной последовательностью отдельных значков (букв). Примером непрерывного сообщения служит человеческая речь, передаваемая модулированной звуковой волной; параметром сигнала в этом случае является давление, создаваемое этой волной в точке нахождения приемника - человеческого уха.
Непрерывное сообщение может быть представлено непрерывной функцией, заданной на некотором отрезке [а, Ь]. Непрерывное сообщение можно преобразовать в дискретное (такая процедура называется дискретизацией). Для этого из бесконечного множества значений этой функции (параметра сигнала) выбирается их определенное число, которое приближенно может характеризовать остальные значения. Один из способов такого выбора состоит в следующем. Область определения функции разбивается точками Х\, хг, ... х„ на отрезки равной длины и на каждом из этих отрезков значение функции принимается постоянным и равным, например, среднему значению на этом отрезке; полученная на этом этапе функция называется в математике ступенчатой. Следующий шаг - проецирование значений «ступенек» на ось значений функции (ось ординат). Полученная таким образом последовательность значений функции y1, у2, … у, является дискретным представлением непрерывной функции, точность которого можно неограниченно улучшать путем уменьшения длин отрезков разбиения области значений аргумента.
Таким образом, любое сообщение может быть представлено как дискретное, иначе говоря последовательностью знаков некоторого алфавита.
Международные системы байтового кодирования
В силу безусловного приоритета двоичной системы счисления при внутреннем представлении информации в компьютере кодирование «внешних» символов основывается на сопоставлении каждому из них определенной группы двоичных знаков. При этом из технических соображений и из соображений удобства кодирования-декодирования следует пользоваться равномерными кодами, т.е. двоичными группами равной длины.
Попробуем подсчитать
наиболее короткую длину такой комбинации
с точки зрения человека, заинтересованного
в использовании лишь одного естественного
алфавита - скажем, английского: 26 букв
следует умножить на 2 (прописные и
строчные) - итого 52; 10 цифр, будем считать,
10 знаков препинания; 10 разделительных
знаков (три вида скобок, пробел и др.),
знаки привычных математических действий,
несколько специальных символов (типа
#, $, & и др.) - итого - 100. Точный подсчет
здесь не нужен, поскольку нам предстоит
решить простейшую задачу: имея, скажем,
равномерный код из групп по N
двоичных
знаков, сколько можно образовать разных
кодовых комбинаций. Ответ очевиден: .
Итак, при N=6
К = 64 -явно мало,
при N
= 7 К
= 128 -вполне
достаточно.
Однако, для кодирования нескольких (хотя бы двух) естественных алфавитов (плюс все отмеченные выше знаки) и этого недостаточно. Минимально достаточное значение N в этом случае 8; имея 256 комбинаций двоичных символов, вполне можно решить указанную задачу. Поскольку 8 двоичных символов составляют 1 байт, то говорят о системах «байтового» кодирования.
Выводы, касающиеся статистической меры количества информации Шеннона
После получения сообщения получатель приобретает такое количество информации, которое равно энтропии полученного сообщения.
Если известно, что данное событие наверняка произойдет или не произойдет, его энтропия минимальна и равна 0.
Энтропия максимальна, если ожидаемые события могут произойти с равной вероятностью.
Количество информации, получаемое при приеме равновероятных сообщений, максимально и равно количеству информации по Хартли.
Энтропия сложного события, состоящего из нескольких независимых событий, равна сумме энтропий этих событий.
Энтропия сложного события, состоящего из нескольких зависимых событий, равна не сумме энтропий этих событий и может быть найдена с использованием матрицы взаимных вероятностей получения всевозможных комбинаций этих сообщений.
Избыточность сообщения
Как отмечалось, энтропия максимальна, если вероятности сообщений или символов, из которых они составлены, одинаковы. Такие сообщения несут максимально возможную информацию. Если же сообщение имеет меньшую энтропию, количество находящейся в нем информации падает, а поскольку размер сообщения может оставаться прежним, говорят о его избыточности.
Различают 2 вида избыточности – абсолютную и относительную.
Абсолютная избыточность Dabs находится в виде разности между максимально возможной Hmax и действительной энтропией H сообщения:
Dabs = Hmax ─ H .
Относительная избыточность D находится как отношение абсолютной избыточности Dabs к максимальной энтропии Hmax.
Избыточность иногда вредна, а иногда полезна. Ее вредность заключается в том, что она обуславливает увеличение объема передаваемых сообщений, что излишне загружает каналы связи, увеличивает необходимый для их хранения размер запоминающих устройств. С другой стороны, избыточность, если ею правильно распорядиться, может быть использована для увеличения надежности передачи и хранения информации.
Аддитивная мера (мера Хартли)
Аддитивную меру можно рассматривать как более удобную для ряда применений комбинаторную меру. Наши интуитивные представления об информации предполагают, чтобы количество информации увеличивалось приблизительно объему сообщения и объему используемого при этом алфавита. Ни геометрическая, ни комбинаторная меры этим свойством не обладают. Геометрическая мера вообще не учитывает свойства алфавита, объем же информации в случае комбинаторной меры растет не прямо пропорционально размеру сообщения, а по закону геометрической прогрессии. Например, если сообщение представлено не одной, а двумя перфокартами ─ число возможных комбинаций возрастет в 2800 раз и станет равным 21600.
В 1929 году Хартли была предложена аддитивная мера. Словом аддитивность (суммируемость) здесь подчеркивается важное свойство этой меры, заключающееся в том, что измеренное при ее помощи количество информации в совокупности нескольких сообщений равно сумме количеств информации в каждом из сообщений в отдельности.
Количество информации по Хартли измеряется в битах (binary digit) и вычисляется как двоичный логарифм от числа состояний в котором может находиться сообщение или его источник.
Вернемся к нашему примеру с перфокартой. Каждая позиция на поверхности перфокарты может находиться в двух состояниях ─ с отверстием и без него. Таких позиций 800. Следовательно перфокарта может находиться в 2800 состояниях. Количество информации по Хартли в этом случае равно Ih =log22800=800 бит.
Две перфокарты будут иметь в совокупности 21600 состояний, что соответствует 1600 битам информации, т.е. количество информации по Хартли в двух перфокартах 2 два раза больше, чем в одной. Это соответствует принципу аддитивности (сложения).
Пример оценки количества информации при помощи статистической меры Шеннона
Рассмотрим оцифрованное телевизионное изображение с параметрами:
количество строк в кадре Nстр=400;
количество столбцов в кадре Nстолб=600;
число градаций яркости Ярк = 27=128;
число градаций цвета Цвет =214=16384;
количество кадров за 1 сек Кадр = 25.
При таких параметрах количество информации по Хартли Ih равно:
Ih = Nстр* Nстолб * Кадр * log2(Ярк*Цвет) = 126 000 000 бит/сек.
Таким образом, за 1 сек. через телеэкран может быть передано максимум 126 миллионов бит. Но на самом деле передается намного меньше. Оценка количества информации с использованием меры Хартли соответствует оценке мерой Шеннона только в случае равных вероятностей передачи в каждой точке изображения значения любой яркости и любого цвета. Причем яркость и цвет каждой точки должны быть статистически независимыми друг от друга. Внешне это выглядит как экран с зернистым изображением. Такое изображение мы видим, когда телеприемник настроен на канал, по которому не ведется вещание, например поздней ночью или ранним утром.
Известно, что через зрение человек не может воспринимать более 50-100 бит/сек. Следовательно, реальное изображение несет в себе намного меньше информации. Действительно, точки реального изображения сильно связаны между собой и составленное из них изображение совсем не похоже на случайную смесь разноцветных и разноярких точек. Следовательно, телесигнал обладает очень большой избыточностью.
Коды, которые сжимают и восстанавливают информацию
Исторически в рамках теории кодирования развивались криптография, теория самовосстанавливающих кодов и теория алгоритмов сжатия информации.
Алгоритмы сжатия информации
Алгоритмы сжатия информации делятся на алгоритмы с потерей информации и без потери информации.
алгоритмы с потерей информации не дают возможность декодирования. К таким относятся технологии: JPEG, MPEG, некоторые технологии звукового кодирования.
алгоритмы без потери информации: данные алгоритмы могут сжать не более теоретического предела, вычисленного по вероятностному подходу, то есть это алгоритм, который удаляет избыточность кодировки.
Известны три основных подхода:
RLE – учет повторяющихся последовательностей;
KWE – создание таблицы-словаря с кодировкой повторяющихся слов;
Хаффмана – метод неравномерного кода – чем чаще встречается знак, тем короче его код.
Подход RLE
В этом случае необходимо искать элементы, которые повторяются подряд, тогда их можно заменить на образец элемента и число повторений.
Данный алгоритм очень удобен для векторной графики, но не очень для сжатия текстовой информации. Архиваторы, построенные по этому принципу, одну информацию сжимают хорошо, а другую плохо. Его используют отдельно в графике и для общего вида файлов, только для части алгоритма.
Подход KWE
Если дан текст, то в нем можно найти либо повторяющиеся слова, либо по крайней мере корни слов. В данном случае алгоритм предполагает составить динамические слова, то есть размер меняется.
Динамический словарь содержит информацию наподобие кодовой таблицы ЭВМ, то есть код – образец слова. Коды подбираются так, чтобы их нельзя было спутать с другими частями текста. Обычным стандартом такого архиватора является двухбайтовая кодировка. Двухбайтовые числа называются тугены. 2 байта обеспечивают размер словаря до 256000 слов. Используют двухбайтовые тугены и соответствующий словарь.
Алгоритм состоит в том, что мы сканируем информацию и находим конструкции, желательно большого размера. В результате находятся повторяющиеся слова и запоминаются динамические слова трех и более букв. Слова из двух букв смысла кодировать не имеет. Найденные слова удаляются из текста и заменяются кодом из словаря.
Данный алгоритм наиболее удобен для текстов. Однако его можно использовать для произвольного двоичного кода. Но в нем надо искать одинаковые комбинации из 20 и более бит. Однако в этом случае качество кодирования снижается.
Подход Хаффмана
Попытки создать оптимальный неравномерный код начинается с азбуки Морзе (код неравномерный, если объем кодировки для разных знаков различный).
Основная идея неравномерного кода – если буква встречается чаще, то код её должен быть короче. Такими оптимизированными неравномерными кодами занимались так же Шеннон и Фано.
Хаффман предложил строить коды по типу бинарного дерева. Он исходил из того, что кодировать придется в двоичном коде через 0 и 1, поэтому он предложил разместить буквы какого-то текста в порядке убывания его частоты или вероятности (частота – количество букв в тексте; вероятность – отношение количества данной буквы к общему количеству букв).
Подход Хаффмана хорош тем, что получаем неравномерный код в соответствии с частотами каждой буквы.
Доказана теорема: данный код является оптимальным, то есть любой другой неравномерный код не может сжать информацию более, чем данный.
Данный принцип позволяет строить в двоичной системе координат коды для алфавитов, число букв которых не есть степень двойки.
Алгоритм Хаффмана легко реализуется в ЭВМ и воспроизводится. Образуется в результате кодирования дерево, выражается в качестве табличного соответствия и прилагается к сжатому документу. Это самый быстрый алгоритм.
Если заданы произвольные бытовые данные, то размер буквы можно устанавливать самому. Наибольшую эффективность на практике оказывают буквы размером 18-20 бит.
Слишком короткие буквы (по битам) встречаются очень часто, но степень сжатия будет невысока, слишком длинные буквы (более 3 байт) фактически приближается к алгоритму KWE, так как буквы встречаются все меньше и меньше. Значит, есть некий оптимальный выбор длины буквы.
Как можно убедиться алгоритмы RLE и KWE они дополняют друг друга, поэтому их комбинируют.
Алгоритм Лемпеля–Зива (LZ), или Лемпеля–Зива–Уэлча (LZW).
Это еще одна схема сжатия, основанная на сведении к минимуму избыточности кодирования. Вместо кодирования каждого отдельного символа LZ-алгоритм кодирует часто встречающиеся символьные последовательности. Например, можно заменить краткими кодами слова "который" "так же", "там", оставляя имена собственные и другие слова, встречающиеся один раз, незакодированными. Программа, реализующая LZ-алгоритм, просматривает файл, содержащий текст, символы или байты графической информации, и выполняет статистический анализ для построения своей кодовой таблицы.
Если заменить 60–70 % текста символами, длина кода которых составляет менее половины первоначальной длины, можно достигнуть сжатия приблизительно в 50 %. При попытке применить этот алгоритм к исполняемым файлам получаются менее впечатляющие результаты (от 10 до 20 % сжатия), так как избыточность кода, создаваемого компиляторами, значительно меньше избыточности текста на естественном языке. Файлы баз данных – еще один трудный случай: записи, содержащие имена, адреса и номера телефонов, редко повторяются, а поэтому плохо поддаются сжатию.
Именно алгоритмы Лемпеля-Зива лежат в основе наиболее известных архиваторов: zip, arj, rar.
Сжатие ведется до тех пор пока имеет смысл записывать это сжатие.
Таким образом, для реального сжатия информации используются комбинированные методы с целью оптимизации для любого варианта информации.
Обозначим N – количество равновероятных событий (неопределенность), i – количество информации в сообщении о том, что произошло одно из N событий.
Ранее решали задачи, используя показательное уравнение.
Тогда эти величины связаны формулой 2i =N, i=log2N – формула Хартли.
Количество информации в сообщении об одном из N равновероятных событий.
N |
i |
N |
i |
N |
i |
N |
i |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
0,00000 1,00000 1,58496 2,00000 2,32193 2,58496 2,80735 3,00000 3,16993 3,32193 3,45943 3,58496 3,70044 3,80735 3,90689 4,00000 |
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
4,08746 4,16993 4,24793 4,32193 4,39232 4,45943 4,52356 4,58496 4,64386 4,70044 4,75489 4,80735 4,85798 4,90689 4,95420 5,00000 |
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
5,04439 5,08746 5,12928 5,16993 5,20945 5,24793 5,28540 5,32193 5,35755 5,39232 5,42626 5,45943 5,49185 5,52356 5,55459 5,58496 |
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
5,61471 5,64386 5,67243 5,70044 5,72792 5,75489 5,78136 5,80735 5,83289 5,85798 5,88264 5,90689 5,93074 5,95420 5,97728 6,00000 |
Используя вероятностный подход, мы должны учитывать смысл сообщения. Как же реализовать подсчет количества информации с помощью технических устройств, не связывая количество информации с содержанием сообщения?
Для этих целей служит алфавитный подход. Алфавитом будем называть все множество используемых в языке символов. Полное число символов называют мощностью алфавита.
Мощность алфавита русских букв равна 54.
Понятно, что в каждой очередной позиции текста может появиться любой из N символов. Каждый символ несет i бит информации. Тогда из уравнения 2i =N
i=5,755 бит – столько информации несет 1 бит русского текста.
Задача. Подсчитаем количество информации на одной странице русскоязычного текста объемом 3000 знаков. Объем информации равен 5,755х3000=17256 бит.
Правило: количество информации в символьном сообщении равно Kxi, где K– число символов в сообщении, а i – информационный вес символа, определяемый по формуле Хартли.
Равновероятные и взаимно независимые события в реальной жизни встречаются довольно редко.
Во всех разговорных языках одни буквы встречаются чаще, другие - гораздо реже. Исследования говорят, что на 1000 букв приходится следующее число повторений:
В русском языке::
О 110, Е 87, А 75 , И 75, Т 65 …
Кроме того, вероятность появления отдельных букв зависит от того, какие буквы им предшествуют. Так, в русском языке после гласной не может следовать мягкий знак, не могут стоять четыре гласные подряд и так далее. Любой разговорный язык имеет свои особенности и закономерности. Поэтому количество
информации в сообщениях, построенных из символов любого разговорного языка, нельзя точно оценивать по формуле Хартли.
Общая оценка количества информации, названная вероятностной мерой, была разработана американским инженером-связистом и ученым Клодом Шенноном в 1948 г в известных работах по теории информации. С этого времени началось интенсивное развитие теории информации вообще и углубленное исследование вопроса об измерении ее количества в системах телекоммуникации в частности.
Формула Шеннона I =- ∑ pi log2 pi , где i=1...N
Здесь: I - количество информации, получаемое в результате проведения опыта; N - общее количество исходов в опыте; pi - вероятность i-го исхода. Если вероятности всех исходов в опыте равны p1 = p2 = . . . = pn = 1/N (бросание монеты, игрального кубика, вытаскивание карты из колоды и т.п.), то формула Шеннона превращается в формулу Хартли (1928 г.): I = log2N.
Сообщение о том, что произошло одно из событий, содержит количество информации
i= - log2 pi(*).
Задача1. В классе находится 32 ученика и учитель решил спросить одного из них. Сколько информации содержится в сообщении учителя о том, кого именно он решил спросить?
Решение:
Считаем, что любого ученика учитель может вызвать с одинаковой вероятностью. Тогда по формуле Хартли (N=32) имеем: i=log232=5 бит.