
- •Теория информационных процессов и систем Теоретические материалы для самостоятельной работы
- •Кафедра "Информационные технологии"
- •Содержание
- •Основные задачи теории информационных систем
- •1.1. Макропроектирование и микропроектирование
- •1.2. Объект и субъект.
- •2. Основные понятия и свойства системы
- •2.1. Определение системы
- •2.2. Связь объекта с внешней средой
- •2.2.1. Внешняя среда.
- •2.2.2. Кибернетическая модель объекта.
- •2.2.3. Классификация входов и выходов объекта.
- •2.2.4. Выделение системы.
- •2.3. Основные понятия строения и функционирования информационных систем
- •2.3.1. Свойство.
- •2.3.2. Элемент.
- •3. Виды информационных систем
- •3.1 Классификация информационных систем
- •Технические, экономические, социальные, биологические и др. Системы.
- •Детерминированные и стохастические системы
- •Открытые и закрытые системы
- •3.2. Классификация систем по сложности
- •Сложность системы.
- •Взаимосвязь и взаимодействие между элементами в бс.
- •Закономерности систем
- •4.1. Закономерности взаимодействия части и целого
- •4.1.1. Целостность (эмерджентность)
- •4.1.2. Аддитивность
- •Прогрессирующая изоляция и прогрессирующая систематизация
- •4.1.2. Закономерности иерархической упорядоченности систем Интегративность
- •Коммуникативность
- •Эквифинальность
- •Закон необходимого разнообразия
- •Закономерность осуществимости и потенциальной эффективности систем
- •Закономерность целеобразования
- •Системный подход и системный анализ
- •5. Принципы построения иерархических информационных систем.
- •5.1. Виды и формы представления структур
- •5.2. Формализация иерархических понятий
- •5.2.1.Координация
- •5.2.2. Декомпозиция
- •5.2.3.Агрегация
- •6. Методы и модели описания информационных систем
- •6.1. Качественные методы описания систем
- •6.1.1. Эвристические методы решения творческих задач
- •6.1. Организация мозгового штурма
- •6.2. Критерии оценки идей
- •6.1.2.Методы типа сценариев.
- •6.1.3. Метод «дерева целей»
- •6.3. Дерево целей
- •6.1.4. Методы экспертных оценок.
- •6.1.5. Мажоритарная система выбора
- •А) Различные правила голосования
- •Б) Парадоксы голосования
- •6.1.6. Морфологические методы
- •6.2. Количественные методы описания систем.
- •6.3. Человеко – машиннные системы
- •6.3.1. Экспертные системы
- •6.3.2. Системы поддежки принятия решенй (сппр)
- •Основные виды сппр
- •7. Моделирование систем
- •7.1. Определение, структура, характеристики моделей
- •7.2. Соответствие между моделью и действительностью:
- •7.3. Классификация моделей по их назначению
- •7.4. Основные принципы моделирования
- •7.5. Классификация видов моделирования систем
- •8. Кибернетический подход к описанию ис.
- •8.1 Управление как процесс.
- •Штриховой линией выделена система управления (су), выполняющая функцию реализации целей управления z*, формируемых субъектом.
- •8.2 Системы управления (су) и сложный объект управления.
- •9. Динамическое описание ис
- •9.1. Модели ис в терминах «вход-выход»
- •9.2 Операторы переходов и выходов детерминированной ис без последствий
- •9.3 Детерминированные ис без последствий с входными сигналами двух классов.
- •9.4. Детерминированные ис с последствиями.
- •Стохастические системы.
- •Сигналы в системах (в разработке)
- •11. Информационные аспекты изучения систем
- •11.1. Энтропия, как мера степени неопределенности состояния физической системы
- •Энтропия сложной системы
- •Энтропия и информация
- •. Задача кодирования сообщений. Код Шеннона-Фено
- •Пропускная способность канала без помех.
- •. Пропускная способность канала с помехами.
- •Литература
. Задача кодирования сообщений. Код Шеннона-Фено
При передаче сообщений по линиям связи всегда приходиться пользоваться тем или иным кодом, т.е. представлением сообщения в виде ряда сигналов. Примером кода может служить принятая в телеграфии для передачи словесных сообщений азбука Морзе.
Вообще кодированием называется отображение состояния одной физической системы с помощью состояния некоторой другой. Например, при телефонном разговоре звуковые сигналы кодируются в виде электромагнитных колебаний, а затем снова декодируются, превращаясь в звуковой сигнал на другом конце линии. Наиболее простым случаем кодирования является случай, когда обе системы Х и Y (отображаемая и отображающая) имеют конечное число возможных состояний.
Рассмотрим простейшие случаи кодирования. Пусть имеется некоторая система Х (например, буква русского алфавита), которая может случайным образом принять одно из состояний . Мы хотим отобразить ее (закодировать) с помощью другой системы Y, возможные состояния которой . Если m<n (число состояний системы Y меньше числа состояний системы Х), то нельзя каждое состояние системы Х закодировать с помощью одного единственного состояния системы Y. В таких случаях одно состояние системы Х приходится отображать с помощью определенной комбинации (последовательности) состояний системы Y. Так, в азбуке Морзе буквы отображаются различными комбинациями символов точка и тире.
Коды различаются по числу элементарных символов (сигналов). Так, код с двумя элементарными символами (0 и 1) называется двоичным.
Одно и тоже сообщение можно закодировать различными способами. Оптимальным считается такой код, при котором на передачу сообщения заданной длины будет затрачено минимальное количество элементарных символов.
Рассмотрим задачу: закодировать двоичным кодом буквы русского алфавита (с помощью комбинации элементарных символов 0 и 1), чтобы среднее число этих символов на букву текста было минимальным.
Рассмотрим 32 буквы
русской азбуки: а,
б,
…, э,
ю,
я
плюс промежуток между словами, который
будем обозначать « - ». если, как принято
в телеграфии, не различать буквы
и ъ,
ь
(это не приводит к разночтениям), то
получится 32 буквы: а,
б,
…, ш,
щ,
(ъ,ь),
ы,
…, я,
«-».
Если эти 32 символа априори равновероятны, то информация, приходящая на одну букву составит
а 00000
б 00001
…………
я 11110
«-» 11111
Возникает вопрос, является ли этот код оптимальным и нельзя ли составить другой код, в котором на одну букву будет в среднем приходиться меньше элементарных символов.
Действительно, в нашем коде на изображение каждой буквы - часто встречающихся «а», «е», «о» или редко встречающихся «щ», «э», «ф» - тратится одно и то же число элементарных символов. Очевидно, разумнее было бы, чтобы часто встречающиеся буквы были закодированы меньшим количеством символов, а реже встречающиеся – большим.
Чтобы составить такой код нужно знать частоты букв в русском тексте. Эти частоты приведены в табл.11.1 в порядке убывания частот.
Таблица 11.1
Вероятности р для букв русского языка
Буква |
Вероят- ность |
Буква |
Вероят- ность |
Буква |
Вероят- ность |
Буква |
Вероят- ность |
« –» |
0,145 |
р |
0,041 |
я |
0,019 |
х |
0,009 |
о |
0,095 |
в |
0,039 |
ы |
0,016 |
ж |
0,008 |
е |
0,074 |
л |
0,036 |
з |
0,015 |
ю |
0,007 |
а |
0,064 |
к |
0,029 |
ъ, ь |
0,015 |
ш |
0,006 |
и |
0,064 |
м |
0,026 |
б |
0,015 |
ц |
0,004 |
т |
0,056 |
д |
0,026 |
г |
0,014 |
щ |
0,003 |
н |
0,056 |
п |
0,024 |
ч |
0,013 |
э |
0,003 |
с |
0,047 |
у |
0,021 |
й |
0,01 |
ф |
0,002 |
Пользуясь этой таблицей можно составить наиболее экономичный код, известный под названием «кода Шеннона-Фено». Идея его состоит в том, что кодируемые символы разделяются на две приблизительно равновероятное группы: для первой группы символов на первом месте ставим 0, для второй группы 1. далее каждая группа снова делится на две приблизительно равновероятные подгруппы: для символов первой подгруппы на втором месте ставится 0; для второй подгруппы 1 и т.д.
Для первых шести букв от «-» до «т» сумма частот равна 0,498. Для всех остальных букв от «н» до «ф» приходится приблизительно такая же вероятность 0,502. Первые шесть букв (от «-» до «т») будут иметь на первом месте 0. остальные буквы (от «н» до «ф») будут иметь на первом месте 1. Далее снова разделим первую группу на две приблизительно равновероятные подгруппы:
от «-» до «о» (0,240)
и от «е» до «т» (0,258).
Для всех букв первой подгруппы на втором месте поставим 0, а второй подгруппы - 1.
Процесс будем продолжать до тех пор, пока в каждом подразделении не останется ровно одна буква, которая и будет закодирована определенным двоичным числом.
Механизм построения кода представлен в табл.11.2, а сам код в табл.11.3.
Таблица 11.2
Механизм построения кода
Таблица 11.3
Возможный двоичный код для букв
русского языка
-
Буква
Двоичное число
Буква
Двоичное число
Буква
Двоичное число
«-»
000
к
10111
ч
111100
о
001
м
11000
й
1111010
е
0100
д
110010
х
1111011
а
0101
п
110011
ж
1111100
и
0110
у
110100
ю
1111101
т
0111
я
110110
ш
11111100
н
1000
ы
110111
ц
11111101
с
1001
з
111000
щ
11111110
р
10100
ъ, ь
111001
э
111111110
в
10101
б
111010
ф
111111111
л
10110
г
111011
С помощью последней таблицы можно закодировать и декодировать любое сообщение.
Пример. Запишем двоичным кодом фразу: «Теория»
0110100001101000110110110.
Отметим, что при таком кодировании нет необходимости отделять друг от друга буквы специальным знаком, так как и без этого декодирование выполняется однозначно. Однако любая ошибка при кодировании (случайное перепутывание знаков 0 и 1) при таком коде губительна, т.к. декодирование всего следующего за ошибкой текста становится невозможным.
Проверим, является ли составленный код оптимальным. Найдем среднюю информацию, содержащуюся в одной букве передаваемого текста, т.е. энтропию на одну букву
,
- любая буква
где
-
вероятность того, что буква примет
определенное состояние
«-», о, е, …, ф.
(дв.
ед. на букву текста).
По таблицам 11.1 и 11.3 определяем среднее число элементарных символов на одну букву
.
Деля
на
,
получим информацию на один элементарный
символ
(дв.
ед.).
Таким образом, информация на один символ близка к своему верхнему пределу 1, а выбранный код близок к оптимальному.
Более экономичный код можно построить, если кодировать не каждую букву в отдельности, а целые блоки из букв.
Если кодировать слова двумя буквами: аа, аб, ав, … , яя, то всего может быть закодировано
,
что даст
.
Для большей гибкости языка можно применять трехбуквенное кодирование слова, что даст
,
т.е. очень большой словарь, дающий
.
Если кодируемые блоки расположить в порядке убывания частот, как буквы в табл.11.1, а двоичное кодирование осуществлять по тому принципу, то можно получить более оптимальный код.
В ряде случаев оказывается разумным кодировать даже не блоки, а целые осмысленные куски текста. Например, для разгрузки телеграфа в предпраздничные дни целесообразно кодировать условными номерами целые стандартные тексты, например: «Поздравляю новым годом желаю здоровья».
+