Алгоритм Хаффмана для передачи большого объема информации на дальние расстояния | Статья в журнале «Юный ученый»

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Автор:

Научный руководитель:

Рубрика: Информатика

Опубликовано в Юный учёный №2 (16) апрель 2018 г.

Дата публикации: 14.03.2018

Статья просмотрена: 952 раза

Библиографическое описание:

Икон, А. И. Алгоритм Хаффмана для передачи большого объема информации на дальние расстояния / А. И. Икон, Л. В. Васильева. — Текст : непосредственный // Юный ученый. — 2018. — № 2 (16). — С. 92-94. — URL: https://moluch.ru/young/archive/16/1133/ (дата обращения: 19.12.2024).



 

Актуальность моей работы заключается в том, что в настоящее время, с развитием научно-технического прогресса, при многократно возросших объемах информации возникает проблема сжатия данных.

Для сжатия информации применяется кодирование. Так как при кодировании сокращается время передачи информации, а скорость передачи информации увеличивается. Применение кодирования позволяет решать целый спектр научно-технических проблем. Наиболее существенная из них это связь с дальним космосом.

А закодировать информацию можно с помощью теории графов.

На основе этой теории Дэвид Хаффман разработал свой алгоритм еще в 1952 году.

Закодировать можно любую информацию (текстовую, графическую), а в данной работе я рассмотрела кодирование только текстовой информации.

Поэтому цель работы: С помощью алгоритма Хаффмана закодировать сообщение для сжатия информации.

Отсюда следуют задачи, которые я поставила перед собой:

–                     рассмотреть основные понятия из теории графов,

–                     изучить алгоритм Хаффмана,

–                     построить кодовое дерево,

–                     закодировать информацию, вычислить коэффициент сжатия.

Я изучила теорию графов, основные понятия из теории графов: Граф — это средство для наглядного представления состава и структуры системы. Граф состоит из вершин, связанных дугами или ребрами. Я так же рассмотрела- граф, не содержащий циклов, или ациклический граф, и связный граф.

Одной из разновидностей графов является дерево.

Двоичное дерево — дерево, у которого из каждого узла выходит только две дуги.

Кодирование — это преобразование сообщений в сигнал, т. е.

Для кодирования текстовой информации я изучила алгоритм Хаффмана.

Рассмотрела процесс декодирования — процесс обратный кодированию.

Рассмотрим пример передачи информации на дальние расстояния с космической исследовательской станции. Ценность информации очень высока. Передающий абонент сильно ограничен по времени передачи данных с целью маскировки своего местоположения.

Для этого предлагаю внедрить в исследовательский космический аппарат алгоритм эффективного кодирования информации по методу Хаффмана. Тем самым получим уменьшенный объём информации

Как я это делала. Например, с космической станции надо передать сообщение: «Воды на Марсе не обнаружено». Применяю метод

1)     Посчитаю количество символов в данном сообщении, их 28

2)     Найду частоты появления (вероятности) символов и занесу их в таблицу

 

Таблица 1

 М

 а

 т

 е

 м

 и

 к

 

 -

 ц

 р

 в

 с

 х

 н

 у

 .

1_

30

6_

30

2_

30

2_

30

1_

30

2_

30

2_

30

4_

30

1_

30

2_

30

1_

30

1_

30

1_

20

1_

30

1_

30

1_

30

1_

30

 

Составлю столбцы вероятностей символов, сверху вниз от большей вероятности к меньшей, если вероятности символов совпадают, то выше ставим ту, принадлежащий к которой символ первый стоит в предложении. Две последние вероятности складываем, и ставим в конец равных ей вероятностей, проделываем это — пока не получится 1.

Составляем кодовое дерево по построенной таблице.

Рис. 1.

 

По кодовому дереву присваиваем каждому символу бинарный код.

Соединяю коды символов в единый передаваемый текст. Рассчитываю объем получившейся информации — получилось 104 бита.

Сосчитаю объем информации без кодирования, получил 224 бита. Затем нахожу коэффициент сжатия по формуле: получилось — 2 целых две тринадцатых

Вывод: алгоритм Хаффмана сжал информацию так, что скорость передачи данного текста увеличится, а время — уменьшится.

Можно произвести обратный процесс декодирования также по методу Хаффмана. Этот процесс важен принимающему информацию.

Даны частоты появления (вероятности) символов в таблице.

Составляем таблицу декодирования.

По таблице составляем кодовое дерево. С помощью высланной битовой последовательности проходим от корня к листу перемещаемся вправо если встретили 1 и влево если 0 проделываем это пока не расшифруем битовую последовательность.

Я также сравнила этот алгоритм с алгоритмом Шенона-Фано, но алгоритм Хаффмана оказался эффективнее и помехоустойчивым.

Составила сравнительную характеристику методов.

Заключение

–                     рассмотрены основные понятия из теории графов,

–                     изучен алгоритм Хаффмана,

–                     построено кодовое дерево,

–                     информация закодирована,

–                     найден коэффициент сжатия.

В моем проекте проделана процедура декодирования информации с заданными условиями.

С помощью графов решать задачи очень удобно, интересно, увлекательно. В настоящее время теория графов охватывает большой материал и активно развивается.

 

Литература:

 

  1.                Березина Л. Ю. Графы и их применение. — М.: Просвещение, 1979. — 143 с. с ил.
  2.                Камерон П., ван Линт Дж. Теория графов, теория кодирования и блок-схемы — М.:Наука, 1980, 140 стр.
  3.                Фурсов В.А. Лекции по теории информации: Учебное пособие под редакцией Н.А. Кузнецова. — Самара: Издательство Самар. гос. аэрокосм. ун-та, 2006. — 148 с.: ил.
Основные термины (генерируются автоматически): кодовое дерево, алгоритм Хаффмана, теория графов, коэффициент сжатия, кодирование, текстовая информация, метод Хаффмана, сжатие информации, частота появления, информация.


Похожие статьи

Алгоритм формирования пакетов данных для передачи по радиоканалу с использованием модифицированного байтстаффинга

Алгоритм распознавания текстовой информации на изображении с помощью ЭВМ

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

Параллельная реализация алгоритма для описания термоупругих волн в жидких кристаллах

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

Использование предварительного масштабирования для повышения качества видеопотока

Использование нейронных сетей для повышения надежности хранения данных

Применение вейвлет-преобразования для идентификации высокочастотных составляющих

Применение машины Тьюринга для реализации алгоритмов шифрования

Гибкие нейро-нечеткие системы вывода и программная реализация для решения задач аппроксимации

Похожие статьи

Алгоритм формирования пакетов данных для передачи по радиоканалу с использованием модифицированного байтстаффинга

Алгоритм распознавания текстовой информации на изображении с помощью ЭВМ

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

Параллельная реализация алгоритма для описания термоупругих волн в жидких кристаллах

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

Использование предварительного масштабирования для повышения качества видеопотока

Использование нейронных сетей для повышения надежности хранения данных

Применение вейвлет-преобразования для идентификации высокочастотных составляющих

Применение машины Тьюринга для реализации алгоритмов шифрования

Гибкие нейро-нечеткие системы вывода и программная реализация для решения задач аппроксимации

Задать вопрос