3.2. Основные понятия теории алгоритмов
В этой книге алгоритмы обсуждаются в разных главах и в двух различных аспектах. Первый аспект - теоретический, и его обсуждению посвящен данный раздел, а второй - прагматический, тесно связанный с программированием, и излагается в седьмой главе.
Теория алгоритмов - раздел математики, изучающий общие свойства алгоритмов. Понятие <алгоритм> сформировалось в математике в 20-х годах XX в. Началом систематической разработки теории алгоритмов можно считать 1936 г. и связывают это начало с публикацией работы А.А. Черча.
Под алгоритмом всегда (и до возникновения строгой теории) понималась процедура, которая позволяла путем выполнения последовательности элементарных шагов получать однозначный результат (независящий от того, кто именно выполнял эти шаги) или за конечное число шагов прийти к выводу о том, что решения не существует.
Конечно же это нестрогое определение понятия алгоритма и именно попытки сформулировать такое понятие привели к возникновению теории алгоритмов. Причиной развития этой теории были внутренние проблемы математики и лишь с возникновением и развитием вычислительной техники и смежных наук выяснилось, что в основе этих наук должна лежать теория алгоритмов. Так стало очевидным прикладное значение новой науки.
В основе формализации понятия <алгоритм> лежит идея построения алгоритмической модели. Составляющими такой модели должны быть конкретный набор элементарных шагов, способы определения следующего шага и т.д. От модели также требуется простота и универсальность. Требование простоты важно для того, чтобы выделить действительно необходимые элементы и свойства алгоритма и облегчить доказательства общих утверждений об этих свойствах. Универсальность необходима для того, чтобы модель позволяла описать любой алгоритм.
Результатами теоретических исследований явились три основных класса арифметических моделей.
Первый класс моделей основан на арифметизации алгоритмов. Предполагается, что любые данные можно закодировать числами, и как следствие - всякое их преобразование становится в этом случае арифметическим вычислением, алгоритмом в таких моделях есть вычисление значения некоторой числовой функции, а его элементарные шаги - арифметические операции. Последовательность шагов определяется двумя способами. Первый способ - суперпозиция, т.е. подстановка функции в функцию, а второй - рекурсия, т.е. определение значения функции через <ранее> вычисленные значения этой же функции. Функции, которые можно построить из целых чисел и арифметических операций с помощью суперпозиций и рекурсивных определений, называются рекурсивными функциями.
Второй класс моделей порожден следующей идеей. Для того чтобы алгоритм понимался однозначно, а его каждый шаг считался элементарным и выполнимым, он должен быть представлен так, чтобы его могла выполнять машина, к которой предъявляются уже упомянутые требования простоты и универсальности. Одной из таких машин явилась абстрактная машина Тьюринга. Машина Тьюринга состоит из трех частей: ленты, головки и управляющего устройства (УУ). Лента бесконечна в обе стороны и разбита на ячейки. В каждой ячейке может быть записан только один символ.
Отсутствие символа в ячейке обозначается специальным <пустым> символом < >. Головка всегда располагается над некоторой ячейкой ленты. Она может читать и писать символы, стирать их и перемещаться вдоль ленты. Число возможных символов конечно, и образуют алфавит машины А={а1, ... , аm}. Головка в каждый такт работы машины находится в одном из состояний. Множество таких состоянии конечно Q={q1, ... , qn} и среди них выделяют начальное q1 и конечное qz состояния.
Элементарный шаг машины Тьюринга состоит из следующих действий:
головка считывает символ, записанный в ячейке, над которой она находится;
считанный символ аk и текущее состояние головки qj, однозначно определяют новое состояние qi новый записываемый символ аl и перемещение головки dp (которое может иметь значение на ячейку влево, на ячейку вправо, остаться на месте).
Устройство управления хранит и выполняет команды машины вида qjak qialdp.
Конкретную машину Тьюринга (и алгоритм соответственно) можно задать, перечислив элементы А, Q и команды машины.
Полное состояние машины Тьюринга называется конфигурацией и включает в себя состояние головки, состояние ленты (слово, записанное за ней) и положение головки на ленте. Конфигурация описывается тройкой а1qа2, где q - текущее состояние головки, а1 слово слева, а а2 - слово справа от головки (включая символ, над которым находится головка).
Перед началом работы на пустую ленту записывается исходное слово а конечной длины, головка устанавливается над первым его символом и, как следствие, начальной конфигурацией является q1a.
Третий класс моделей алгоритмов очень близок к предыдущему, но не оперирует конкретными машинными механизмами. Наиболее известная алгоритмическая модель этого типа - нормальные алгоритмы Маркова.
Для нормального алгоритма задается алфавит, над которым он работает, конечное множество допустимых подстановок и порядок их применения. Если в качестве алфавита взять алфавит русского языка, в качестве множества подстановок (1) ЯУ (2) ЛУ (3) СМ (4) Вб (5) РТ (6) ТР! (7) Ох (8) На, то, используя правила 1-3:
1) проверить возможность подстановок в порядке возрастания их номеров, и если она возможна (левая часть подстановки обнаружена в исходном слове), произвести подстановку (заменив левую часть на правую);
2) если в примененной подстановке имеется символ <!>, то преобразования прекращаются, а если нет, то текущее состояние становится исходным и весь процесс начинается заново;
3) если ни одна подстановка не применима, то процесс преобразования завершен, можно обнаружить, что по заданному алгоритму исходное слово <слон> превращается в слово <муха> по следующей цепочке: <слон><суон><муон><мухн><муха>.
В теории алгоритмов строго доказано, что по своим возможностям преобразования нормальные алгоритмы эквивалентны
машине Тьюринга и другим моделям, уточняющим понятия алгоритма.
Появление точного понятия алгоритма позволило сформулировать алгоритмически не разрешимые проблемы, т.е. задачи для решения которых невозможно построить алгоритм. Задача называется алгоритмически неразрешимой, если не существует машины Тьюринга (или рекурсивной функции, или нормального алгоритма Маркова), которая ее решает. Например, неразрешимой оказалась проблема распознавания эквивалентности алгоритмов: нельзя построить алгоритм, который по любым двум алгоритмам (программам) выяснял бы, вычисляют они одну и ту же функцию или нет. Знание основных неразрешимостей теории алгоритмов необходимо для специалиста по информатике. Оно предостережет его от увлечения глобальными прожектами всеобщей алгоритмизации точно так же, как знание основных законов физики предостерегает от попыток создания вечного двигателя.
- Глава 4 информационные ресурсы и информатизация общества 64
- Раздел II прикладная информатика 82
- Глава 5. Общая характеристика процессов сбора, передачи, обработки и хранения информации 82
- Глава 6. Технические средства реализации информационных процессов 105
- Глава 11 глобальная информационная сеть internet 222
- Глава 12 искусственный интеллект 270
- Глава 13 экспертные системы 297
- Острейковский в.А. Информатика
- Введение
- Раздел I теоретическая информатика глава 1 основные понятия и определения информатики
- 1.1. Терминология информатики
- 1.2. Объект информатики
- 1.3. Предметная область информатики как науки
- 1.4. Краткая история развития информатики
- Контрольные вопросы
- Глава 2 информатика как наука
- 2.1. Категории информатики
- 2.2. Аксиоматика информатики
- 2.3. Виды и свойства информации
- Контрольные вопросы
- Глава 3. Математические основы информатики
- 3.1. Методы и модели оценки количества информации
- 3.2. Основные понятия теории алгоритмов
- 3.3. Системы счисления
- 3.3.1. Позиционные системы счисления
- 3.3.2. Двоичная система счисления
- 3.3.3. Другие позиционные системы счисления
- 3.3.4. Смешанные системы счисления
- 3.3.5. Перевод чисел из одной системы счисления в другую
- 3.4. Формы представления и преобразования информации
- 3.4.1. Числовая система эвм. Представление целых чисел без знака и со знаком
- 3.4.2. Индикаторы переноса и переполнения
- 3.4.3. Представление символьной информации в эвм
- 3.4.4. Форматы данных
- Контрольные вопросы, упражнения и задачи
- Глава 4 информационные ресурсы и информатизация общества
- 4.1. Особенности информационного ресурса
- 4.2. Формы и виды информационных ресурсов
- 4.3. Информатизация общества
- 4.3.1. Сущность и цели информатизации
- 4.3.2. Создание информационных структур
- 4.3.3. Формирование индустрии информатики
- 4.3.4. Развитие интеллектуального и информационного рынков
- 4.4. Перспективы перехода к информационному обществу
- Контрольные вопросы
- Раздел II прикладная информатика глава 5. Общая характеристика процессов сбора, передачи, обработки и хранения информации
- 5.1. Восприятие информации
- 5.2. Сбор информации
- 5.3. Передача информации
- 5.4. Обработка информации
- Контрольные вопросы
- Глава 6. Технические средства реализации информационных процессов
- 6.1. Определение и принципы организации информационных процессов в вычислительных устройствах
- 6.2. Функционирование эвм с шинной организацией
- 6.3. Функционирование эвм с канальной организацией
- 6.4. Информационная модель эвм
- 6.5. Основные команды эвм
- 6.6. Персональные эвм
- 6.6.1. Общие сведения о пэвм и их классификация
- 6.6.2. Структурная схема пэвм
- 6.6.3. Внешние устройства пэвм
- 6.6.4. Внешние запоминающие устройства пэвм
- 6.6.5. Печатающие устройства пэвм
- 6.6.6. Перспективы развития пэвм
- 6.7. Вычислительные системы
- 6.8. Поколения вычислительных средств
- Контрольные вопросы, упражнения и задачи
- Глава 7 алгоритмизация и программирование
- 7.1. Определение алгоритма
- 7.2. Методы разработки алгоритма
- 7.2.1. Метод частных целей
- 7.2.2. Метод подъема
- 7.3. Программирование с отходом назад
- 7.4. Алгоритмы ветвей и границ
- 7.5. Жизненный цикл программного обеспечения
- Контрольные вопросы, упражнения и задачи
- Раздел III элементы информационных технологий глава 8 базы и банки данных
- 8.1. Автоматизированные банки данных
- 8.2. Модели данных
- 8.3. Схема функционирования субд
- 8.4. Организация поиска данных
- 8.5. Администратор базы данных
- Контрольные вопросы
- Глава 9 пакеты прикладных программ
- 9.1. Классификация ппп
- 9.2. Проблемно-ориентированные ппп
- 9.4. Интегрированные ппп
- 9.4. Пакеты прикладных программ для решения научно-технических задач
- 9.5. Библиотеки стандартных программ
- Контрольные вопросы
- Глава 10 вычислительные сети
- 10.1. Принципы построения и классификация вычислительных сетей
- 10.2. Способы коммутации и передачи данных
- 10.3. Программное обеспечение вычислительных сетей
- 10.4. Локальные вычислительные сети
- 10.4.1. Классификация лвс
- 10.4.2. Организация обмена информацией в лвс
- 10.4.3. Методы доступа в лвс
- 10.4.4. Модели взаимодействия в лвс
- 10.5. Обеспечение безопасности информации в вычислительных сетях
- Контрольные вопросы
- Глава 11 глобальная информационная сеть internet
- 11.1. Краткая характеристика основных информационных ресурсов internet
- 11.2. Принципы функционирования internet
- 11.2.1. Иерархия протоколов internet
- 11.2.3. Спецификация универсального адреса информационного ресурса в internet
- 11.3. Технология world wide web (www)
- 11.3.1. Общая характеристика www
- 11.3.2. Программы-клиенты www
- 11.3.3. Стратегия поиска информации в сети
- 11.3.4. Язык гипертекстовой разметки web-документов html
- 11.3.5. Поисковые машины www
- 11.4. Электронная почта в internet
- 11.5. Технологии доступа к ресурсам internet, отличные от www
- 11.5.1. Удаленный доступ к ресурсам сети telnet
- 11.5.2. Обмен файлами по протоколу ftp. Служба архивов ftp
- Контрольные вопросы
- Глава 12 искусственный интеллект
- 12.1. Направление исследований в области искусственного интеллекта
- 12.2. Машинный интеллект и робототехника
- 12.3. Интеллектуальные роботы
- 12.4. Моделирование биологических систем
- 12.5. Эвристическое программирование и моделирование
- 12.6. Система знаний
- 12.7. Модели представления знаний
- 12.7.1. Логическая модель представления знаний
- 12.7.2. Сетевая модель представления знаний
- 12.7.3. Фреймовая модель представления знаний
- 12.7.4. Продукционная модель представления знаний
- Контрольные вопросы
- Глава 13 экспертные системы
- 13.1. Общая характеристика эс
- 13.2. Структура и режимы использования эс
- 13.3. Классификация инструментальных средств эс
- 13.4. Организация знаний в эс
- 13.5. Отличие эс от традиционных программ
- 13.6. Виды эс
- 13.7. Типы задач, решаемых эс
- Контрольные вопросы
- Приложение 3 глоссарий экспертных систем