
- •1. Введение
- •2. Информатика
- •Предмет и основные понятия информатики
- •Понятие информации и её свойства
- •Классификация информации
- •1) По способам восприятия
- •3) По предназначению
- •Свойства информации
- •Объективность
- •Достоверность
- •Полнота
- •Понятие количества информации
- •Тема 1. Информация и информационные процессы
- •1.1. Информация. Информационные объекты различных видов
- •1.2. Виды и свойства информации
- •1.3. Основные информационные процессы. Хранение, передача и обработка информации
- •Информационная энтропия
- •Формальные определения
- •Определение по Шеннону
- •Определение с помощью собственной информации
- •Свойства
- •Математические свойства
- •Эффективность
- •Вариации и обобщения
- •Условная энтропия
- •Взаимная энтропия
- •История
- •Алгоритм Шеннона — Фано
- •Основные сведения
- •Основные этапы
- •Алгоритм вычисления кодов Шеннона — Фано
- •Пример кодового дерева
- •Информация
- •История понятия
- •Классификация информации
- •Значение термина в различных областях знания Философия
- •В информатике
- •Системология
- •В физике
- •В математике
- •В теории управления
- •В кибернетике
- •Информация в материальном мире
- •Информация в живой природе
- •Информация в человеческом обществе
- •Хранение информации
- •Передача информации
- •Обработка информации
- •Информация в науке
- •Теория информации
- •Теория алгоритмов
- •Теория автоматов
- •Семиотика
- •Дезинформация
- •1. Введение
- •Способы кодирования информации.
- •Теорема Шеннона — Хартли
- •Утверждение теоремы
- •История развития
- •Критерий Найквиста
- •Формула Хартли Теоремы Шеннона для канала с шумами
- •Теорема Шеннона — Хартли
- •Значение теоремы Пропускная способность канала и формула Хартли
- •1. Передача информации. Информационные каналы
- •2. Характеристики информационного канала
- •3. Абстрактный алфавит
- •4. Кодирование и декодирование
- •5. Понятие о теоремах Шеннона
- •6. Международные системы байтового кодирования
- •7. Кодирование информации
- •7.1. Двоичное кодирование текстовой информации
- •7.2. Кодирование графической информации
- •7.2.1. Кодирование растровых изображений
- •7.2.2. Кодирование векторных изображений.
- •7.3. Двоичное кодирование звука
- •Алгоритм
- •История термина
- •Определения алгоритма Неформальное определение
- •Формальное определение
- •Машина Тьюринга
- •Рекурсивные функции
- •Нормальный алгоритм Маркова
- •Стохастические алгоритмы
- •Другие формализации
- •Формальные свойства алгоритмов
- •Виды алгоритмов
- •Нумерация алгоритмов
- •Алгоритмически неразрешимые задачи
- •Анализ алгоритмов Доказательства корректности
- •Время работы
- •Наличие исходных данных и некоторого результата
- •Представление алгоритмов
- •Эффективность алгоритмов
- •1.1. Sadt-модели
- •1.2. Модель отвечает на вопросы
- •1.3. Модель имеет единственный субъект
- •1.4. У модели может быть только одна точка зрения
- •1.5. Модели как взаимосвязанные наборы диаграмм
- •1.6. Резюме
- •Классификация моделей
- •1) Классификация моделей по области использования:
- •2) Классификация моделей по фактору времени:
- •1.3.1. Основные признаки систем
- •Система
- •Различные определения
- •Свойства систем Связанные с целями и функциями
- •Связанные со структурой
- •Связанные с ресурсами и особенностями взаимодействия со средой
- •Классификации систем Ранги систем
- •Термодинамическая классификация
- •Другие классификации
- •Закон необходимости разнообразия (закон Эшби)
Нормальный алгоритм Маркова
Нормальный алгоритм Маркова — это система последовательных применений подстановок, которые реализуют определенные процедуры получения новых слов из базовых, построенных из символов некоторого алфавита. Как и машина Тьюринга, нормальные алгоритмы не выполняют самих вычислений: они лишь выполняют преобразование слов путем замены букв по заданным правилам[7].
Нормально вычисляемой называют функцию, которую можно реализовать нормальным алгоритмом. То есть, алгоритмом, который каждое слово из множества допустимых данных функции превращает в ее исходные значения[8]..
Создатель теории нормальных алгоритмов А. А. Марков выдвинул гипотезу, которая получила название принцип нормализации Маркова:
|
Для нахождения значений функции, заданной в некотором алфавите, тогда и только тогда существует некоторый алгоритм, когда функция нормально исчисляемая. |
|
Подобно тезисам Тьюринга и Черча, принцип нормализации Маркова не может быть доказан математическими средствами.
Стохастические алгоритмы
Однако, приведенное выше формальное определение алгоритма в некоторых случаях может быть слишком строгим. Иногда возникает потребность в использовании случайных величин[9]. Алгоритм, работа которого определяется не только исходными данными, но и значениями, полученными из генератора случайных чисел, называют стохастическим (или рандомизированным, от англ. randomized algorithm)[10]. Формально, такие алгоритмы нельзя называть алгоритмами, поскольку существует вероятность (близкая к нулю), что они не остановятся. Однако, стохастические алгоритмы часто бывают эффективнее детерминированных, а в отдельных случаях — единственным способом решить задачу[9].
На практике вместо генератора случайных чисел используют генератор псевдослучайных чисел.
Однако следует отличать стохастические алгоритмы и методы, которые дают с высокой вероятностью правильный результат. В отличие от метода, алгоритм дает корректные результаты даже после продолжительной работы.
Некоторые исследователи допускают возможность того, что стохастический алгоритм даст с некоторой заранее известной вероятностью неправильный результат. Тогда стохастические алгоритмы можно разделить на два типа[11]:
-
алгоритмы типа Лас-Вегас всегда дают корректный результат, но время их работы определено.
-
алгоритмы типа Монте-Карло, в отличие от предыдущих, могут давать неправильные результаты с известной вероятностью (их часто называют методами Монте-Карло).
Другие формализации
Для некоторых задач названные выше формализации могут затруднять поиск решений и осуществление исследований. Для преодоления препятствий были разработаны как модификации «классических» схем, так и созданы новые модели алгоритма. В частности, можно назвать:
-
многоленточная и недетерминированная машины Тьюринга;
-
регистровая и РАМ машина — прототип современных компьютеров и виртуальных машин;
-
конечные и клеточные автоматы
и другие.
Формальные свойства алгоритмов
Различные определения алгоритма в явной или неявной форме содержат следующий ряд общих требований:
-
Дискретность — алгоритм должен представлять процесс решения задачи как последовательное выполнение некоторых простых шагов. При этом для выполнения каждого шага алгоритма требуется конечный отрезок времени, то есть преобразование исходных данных в результат осуществляется во времени дискретно.
-
Детерминированность (определённость). В каждый момент времени следующий шаг работы однозначно определяется состоянием системы. Таким образом, алгоритм выдаёт один и тот же результат (ответ) для одних и тех же исходных данных. В современной трактовке у разных реализаций одного и того же алгоритма должен быть изоморфный граф. С другой стороны, существуют вероятностные алгоритмы, в которых следующий шаг работы зависит от текущего состояния системы и генерируемого случайного числа. Однако при включении метода генерации случайных чисел в список «исходных данных», вероятностный алгоритм становится подвидом обычного.
-
Понятность — алгоритм для исполнителя должен включать только те команды, которые ему (исполнителю) доступны, которые входят в его систему команд.
-
Завершаемость (конечность) — при корректно заданных исходных данных алгоритм должен завершать работу и выдавать результат за конечное число шагов.[источник не указан 364 дня] С другой стороны, вероятностный алгоритм может и никогда не выдать результат, но вероятность этого равна 0.
-
Массовость (универсальность). Алгоритм должен быть применим к разным наборам исходных данных.
-
Результативность — завершение алгоритма определёнными результатами.
-
Алгоритм содержит ошибки, если приводит к получению неправильных результатов либо не даёт результатов вовсе.
-
Алгоритм не содержит ошибок, если он даёт правильные результаты для любых допустимых исходных данных.