
- •28. Свойства логических операций
- •Примеры и контрпримеры
- •Построение днф Алгоритм построения днф
- •Пример построения днф
- •Переход от днф к сднф
- •Примеры и контрпримеры
- •Построение кнф Алгоритм построения кнф
- •Пример построения кнф
- •Переход от кнф к скнф
- •Предпосылки
- •Cуществование и единственность представления
- •Метод треугольника
- •Трёхзначные логики
- •Четырёхзначные логики
- •Конечнозначные логики
- •Бесконечнозначные логики
- •37. Перестановочный шифр
- •Пример (шифр Древней Спарты)
- •Шифры простой замены
- •Примеры шифров простой замены Шифр Атбаш
- •Шифр с использованием кодового слова
- •Безопасность шифров простой замены
- •Омофоническая замена
- •Примеры омофонических шифров Номенклатор
- •Великий Шифр Россиньоля
- •Книжный шифр
- •Криптоанализ
- •Математическая модель
- •Префиксные коды
- •40. Необходимые и достаточные условия существования префиксного кода с заданными длинами кодовых слов. Неравенство Крафта
- •41. Оптимальное кодирование, свойства оптимальных кодов, построение оптимальных кодов методом Хафмена
- •42. Передача данных и кодирование информации
- •Коды обнаружения и исправления ошибок
- •43. Коды обнаружения и исправления ошибок
- •Блоковые коды
- •Линейные коды общего вида
- •Минимальное расстояние и корректирующая способность
- •Коды Хемминга — простейшие линейные коды с минимальным расстоянием 3, то есть способные исправить одну ошибку. Код Хемминга может быть представлен в таком виде, что синдром
- •Общий метод декодирования линейных кодов
- •Линейные циклические коды
- •Порождающий (генераторный) полином
- •Коды crc
- •Преимущества и недостатки свёрточных кодов
- •Каскадное кодирование. Итеративное декодирование
- •Примеры
- •Свойства
- •История
- •Систематические коды
- •Самоконтролирующиеся коды
- •Самокорректирующиеся коды
- •Литература
- •Код Хемминга
- •Алгоритм
- •Другие способы описания
- •Детерминированность
- •Автоматы и регулярные языки
- •Специализированные языки программирования
- •Разработка моделей с использованием конечных автоматов
- •Принцип построения
- •Способы получения минимальной формы
- •Граф переходов
- •Матрица переходов
- •Свойства минимальной формы
- •Термины
- •Порождающие грамматики
- •Типы грамматик
- •Применение
- •Пример — арифметические выражения
- •Аналитические грамматики
- •Классификация грамматик
- •Классификация языков
- •8.2. Устранение эпсилон-правил
- •8.3. Нормальная форма Хомского
Метод треугольника
Метод треугольника позволяет преобразовать таблицу истинности в полином Жегалкина путём построения вспомогательной треугольной таблицы в соответствии со следующими правилами:
Строится полная таблица истинности, в которой строки идут в порядке возрастания двоичных кодов от 000…00 до 111…11.
Строится вспомогательная треугольная таблица, в которой первый столбец совпадает со столбцом значений функции в таблице истинности.
Ячейка в каждом последующем столбце получается путём суммирования по модулю 2 двух ячеек предыдущего столбца — стоящей в той же строке и строкой ниже.
Столбцы вспомогательной таблицы нумеруются двоичными кодами в том же порядке, что и строки таблицы истинности.
Каждому двоичному коду ставится в соответствие один из членов полинома Жегалкина в зависимости от позиций кода, в которых стоят единицы. Например, ячейке 111 соответствует член ABC, ячейке 101 — член AC, ячейке 010 — член B, ячейке 000 — член 1 и т. д.
Если в верхней строке какого-либо столбца стоит единица, то соответствующий член присутствует в полиноме Жегалкина.
35. Многозначные логики — тип формальной логики, в которой допускается более двух истинностных значений для высказываний. Первую систему многозначной логики предложил польский философ Ян Лукасевич в 1920 году[1]. В настоящее время существует очень много других систем многозначной логики, которые в свою очередь могут быть сгруппированы по классам. Важнейшими из таких классов являются частичные логики и нечёткие логики.
Трёхзначные логики
Трёхзначная логика была исторически первой многозначной логикой, и является простейшим расширением двузначной логики. Перечень истинностных значений трёхзначной логики помимо «истинно» и «ложно» включает также третье значение, которое как правило трактуется как «неопределено», «неизвестно» или «ошибочно». В последнем случае логику обычно называют частичной.
В трёхзначной логике естественно не соблюдается закон исключённого третьего. Вместе с тем, важным свойством трёхзначных логик, отражающим их адекватность, является то, что все они представляют собой расширения классической двузначной логики. То есть, в предположении, что интерпретируемые символы не принимают третьего истинностного значения, семантика формул в трёхзначной логике такая же, как и в двузначной.
Четырёхзначные логики
Логика ложности FL4.[2] Паранепротиворечивая логика.[3]
Конечнозначные логики
Конечнозначные логики (другое название — 'k'-значные) являются обобщением двузначной логики в том, что функция в ней может принимать не два значения (0 и 1), а значения от 0 до k−1. Существенным отличием 'k'-значной логики от двузначной является тот факт, что на данный момент не существует полного описания замкнутых классов при k>2. В двузначной логике напротив существует полное описание системы замкнутых классов, предложенное Эмилем Постом в 1940 году.
Существуют следующие переобозначения для функций конъюнкции и дизъюнкции:
A∧B = min(A,B)
A∨B = max(A,B)
Бесконечнозначные логики
Бесконечнозначную логику можно ввести следующим образом:
истинностное значение находится в отрезке действительных чисел от 0 до 1;
отрицание определяется как: ¬A = 1−A;
конъюнкция определяется как: A∧B = min(A, B);
дизъюнкция определяется как: A∨B = max(A, B).
36. Теория кодирования информации является одним из разделов теоретической информатики. К основным задачам, решаемым в данном разделе, необходимо отнести следующие:
разработка принципов наиболее экономичного кодирования информации;
согласование параметров передаваемой информации с особенностями канала связи;
разработка приемов, обеспечивающих надежность передачи информации по каналам связи, т.е. отсутствие потерь информации.
Две последние задачи связаны с процессами передачи информации. Первая же задача – кодирование информации – касается не только передачи, но и обработки, и хранения информации, т.е. охватывает широкий круг проблем; частным их решением будет представление информации в компьютере. С обсуждения этих вопросов и начнем освоение теории кодирования.
Как отмечалось при рассмотрении исходных понятий информатики, для представления дискретной информации используется некоторый алфавит. Однако однозначное соответствие между информацией и алфавитом отсутствует. Другими словами, одна и та же информация может быть представлена посредством различных алфавитов. В связи с такой возможностью возникает проблема перехода от одного алфавита к другому, причем, такое преобразование не должно приводить к потере информации. Условимся называть алфавит, с помощью которого представляется информация до преобразования, первичным; алфавит конечного представления – вторичным.
Введем ряд с определений:
Код – (1) правило, описывающее соответствие знаков или их сочетаний одного алфавита знакам или их сочетаниям другого алфавита; - (2) знаки вторичного алфавита, используемые для представления знаков или их сочетаний первичного алфавита.
Кодирование – перевод информации, представленной посредством первичного алфавита, в последовательность кодов.
Декодирование - операция, обратная кодированию, т.е. восстановление информации в первичном алфавите по полученной последовательности кодов.
Операции кодирования и декодирования называются обратимыми, если их последовательное применение обеспечивает возврат к исходной информации без каких-либо ее потерь.
Примером обратимого кодирования является представление знаков в телеграфном коде и их восстановление после передачи. Примером кодирования необратимого может служить перевод с одного естественного языка на другой – обратный перевод, вообще говоря, не восстанавливает исходного текста. Безусловно, для практических задач, связанных со знаковым представлением информации, возможность восстановления информации по ее коду является необходимым условием применения кода, поэтому в дальнейшем изложении ограничим себя рассмотрением только обратимого кодирования.
Таким образом, кодирование предшествует передаче и хранению информации. При этом, как указывалось ранее, хранение связано с фиксацией некоторого состояния носителя информации, а передача – с изменением состояния с течением времени (т.е. процессом). Эти состояния или сигналы будем называть элементарными сигналами – именно их совокупность и составляет вторичный алфавит.
Не обсуждая технических сторон передачи и хранения сообщения (т.е. того, каким образом фактически реализованы передача-прием последовательности сигналов или фиксация состояний), попробуем дать математическую постановку задачи кодирования.
Пусть первичный алфавит A содержит N знаков со средней информацией на знак, определенной с учетом вероятностей их появления, I1(A) (нижний индекс отражает то обстоятельство, что рассматривается первое приближение, а верхний индекс в скобках указывает алфавит). Вторичный алфавит B пусть содержит M знаков со средней информационной емкостью I1(A). Пусть также исходное сообщение, представленное в первичном алфавите, содержит n знаков, а закодированное сообщение – m знаков. Если исходное сообщение содержит I(A) информации, а закодированное – I(B), то условие обратимости кодирования, т.е. неисчезновения информации при кодировании, очевидно, может быть записано следующим образом:
I(A)
I(B),
смысл которого в том, что операция обратимого кодирования может увеличить количество формальной информации в сообщении, но не может его уменьшить. Однако каждая из величин в данном неравенстве может быть заменена произведением числа знаков на среднюю информационную емкость знака, т.е.:
Отношение m/n, очевидно, характеризует среднее число знаков вторичного алфавита, которое приходится использовать для кодирования одного знака первичного алфавита – будем называть его длиной кода или длиной кодовой цепочки и обозначим K(B) (верхний индекс указывает алфавит кодов).
В частном случае, когда появление любых знаков вторичного алфавита равновероятно, согласно формуле Хартли I1(B)=log2M, и тогда
(1)
По аналогии с величиной R, характеризующей избыточность языка, можно ввести относительную избыточность кода (Q):
(2)
Данная величина показывает, насколько операция кодирования увеличила длину исходного сообщения. Очевидно, чем меньше Q (т.е. чем ближе она к 0 или, что то же, I(B) ближе к I(A)), тем более выгодным оказывается код и более эффективной операция кодирования. Выгодность кодирования при передаче и хранении – это экономический фактор, поскольку более эффективный код позволяет затратить на передачу сообщения меньше энергии, а также времени и, соответственно, меньше занимать линию связи; при хранении используется меньше площади поверхности (объема) носителя. При этом следует сознавать, что выгодность кода не идентична временнóй выгодности всей цепочки кодирование – передача – декодирование; возможна ситуация, когда за использование эффективного кода при передаче придется расплачиваться тем, что операции кодирования и декодирования будут занимать больше времени и иных ресурсов (например, места в памяти технического устройства, если эти операции производятся с его помощью).
Выражение (1) пока следует воспринимать как соотношение оценочного характера, из которого неясно, в какой степени при кодировании возможно приближение к равенству его правой и левой частей. По этой причине для теории связи важнейшее значение имеют две теоремы, доказанные Шенноном. Первая – ее мы сейчас рассмотрим – затрагивает ситуацию с кодированием при передаче сообщения по линии связи, в которой отсутствуют помехи, искажающие информацию. Вторая теорема относится к реальным линиям связи с помехами.