Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / doc92 / Курсовая работа(1).doc
Скачиваний:
56
Добавлен:
03.08.2013
Размер:
287.23 Кб
Скачать
    1. Основная характеристика алгоритмов сжатия

Коэффициент сжатия— основная характеристика алгоритма сжатия. Она определяется как отношение объёма сжатых данных к объёму исходных несжатых, то есть:

(1)

где — коэффициент сжатия,— объём сжатых, а— объём исходных данных.

Таким образом, чем меньше коэффициент сжатия, тем эффективнее алгоритм. Следует отметить:

  1. если , то алгоритм не производит сжатия, то есть выходное сообщение оказывается по объёму равным входному;

  2. если , то алгоритм порождает сообщение большего размера, нежели несжатое, то есть, совершает «вредную» работу.

Ситуация где вполне возможна при сжатии. Принципиально невозможно получить алгоритм сжатия без потерь, который при любых данных образовывал бы на выходе данные меньшей или равной длины. Обоснование этого факта заключается в том, что поскольку число различных сообщений длинойбит составляет ровно, число различных сообщений с длиной меньшей или равной(при наличии хотя бы одного сообщения меньшей длины) будет меньше. Это значит, что невозможно однозначно сопоставить все исходные сообщения сжатым: либо некоторые исходные сообщения не будут иметь сжатого представления, либо нескольким исходным сообщениям будет соответствовать одно и то же сжатое, а значит, их нельзя отличить.

  1. Краткий анализ фреймворков

    1. Краткий анализ фреймворков

У современным web-разработчиков есть огромный выбор множества инструментов для создания различных интернет-ресурсов иweb-приложений. Перед реализацией тестирующего приложения необходимо сначала определиться, с помощью какого из фреймворков следует реализовать данный проект:Grails,HamletsJSF,RichFaces,Spring,Stripes,Struts,Tapesty,Wicked,JBoss, и пр. В результате было выбрано три наиболее популярных и поддерживаемых на данный момент фреймворка:JSF,Spring,Struts.

Далее необходимо рассмотреть каждый из фреймворков отдельно.

JSFявляется частьюJavaEE. Несмотря на то, что для данного инструмента существует множество книг, он лёгок в изучении и создаватьUIс его помощью довольно просто, следует учесть, что настройка свойств безопасности может быть довольно сложной и что в процессе реализации будет генерироваться большое количество ненужного текста наHTMLстранице, из-за чего довольно сложно будет контролировать её точное содержание.

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

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

    1. Заключение анализа

  1. Реализация страницы входа в систему

    1. Постановка задачи для реализации алгоритма Шеннона-Фано

  • Закодировать данные произвольного объёма, содержащие произвольное, но не превышающее 23, количество символов, находящиеся в файле “input.txt”, закодированную информацию вывести отобразить в окне программы.

  • Вывести информацию о коэффициенте сжатия, таблицу частот, а так же полученные с помощью алгоритма Шеннона-Фано коды символов.

    1. Пример работы программы

Рис 1.1. Окно программы для ввода данных

На Рис.1 изображено вкладка программы, на которой пользователь вводит текст, составленный из алфавита до 20 символов. Как только текст введён в поле Input, нужно нажать кнопкуEncrypt, после чего программа, применив к вводимым данным алгоритм Шеннона-Фано, выдаст результат.

Чтобы посмотреть какие коды сопоставлены тем или иным символам, нужно перейти на вкладку Results(Рис 1.2).

Рис 21.2. Вкладка статистических данных

    1. Анализ работы программы

Проведём анализ работы программы с помощью следующих тестов:

Рис. 2.1. Равномерно распределённые данные

В данном случае получим следующий результат: k = 0,878462, что говорит о малой эффективности алгоритма с точки зрения сжатия информации.

Рис. 2.2. Данные с различными частотами

В случае, когда частоты символов различны: k= 0,816465.

Рис 2.3. В исходных данных один из символов встречается чаще, чем все остальные вместе взятые.

На этих данныхалгоритм работает довольно эффективно: k = 0.6.

Рис. 2.4 Данные с символами из неполного алфавита.

В данном случае мы получили k= 0,392941.

Из данных результатов можно сделать вывод, что алгоритм Шеннона-Фано работает достаточно хорошо только в случаях, когда в тексте не встречаются некоторые символы из заданного алфавита или когда один из символов встречается чаще, чем все осатальные вместе взятые.

Соседние файлы в папке doc92