- •Министерство образования Российской Федерации
- •Подготовлено и издается по заказу института Инфо
- •Глава I. Информатизация общества.
- •1.2 Информатизация общества
- •1.3 Об информационной культуре
- •1.4 Информационный потенциал общества
- •1.5 Рынок информационных продуктов и услуг
- •1.6 Правовое регулирование на информационном рынке
- •1.7 Информатика — предмет и задачи
- •Глава II информация и ее свойства
- •2.1 Информация и данные
- •Н. Винер. Кибернетика
- •2.2. Классификация и кодирование информации
- •2.3 Система кодирования
- •2.4 Кодирование данных двоичным кодом
- •Кодирование текстовых данных
- •Основные структуры данных
- •27 Сорокин Сергей Семенович
- •Иерархические структуры данных
- •Упорядочение структур данных
- •Глава III. Файловая системы.
- •3.1. Файлы и файловая структура
- •Единицы измерения данных
- •Единицы хранения данных
- •3.2. Организация файловой системы
- •3.3. Обслуживание файловой структуры
- •Создание и именование файлов
- •3.4 Создание каталогов (папок)
- •Копирование и перемещение файлов
- •Глава IV информационно-логические основы построения компьютеров
- •4.1 Логические основы построения пк
- •4.2 Программное управление эвм
- •4.3. Последовательные модели вычислителей (машины Тьюринга)
- •4.4. Параллельные модели вычислителей (однородные структуры)
- •Глава V компьютерные сети
- •5.1. Компьютерные сети
- •Сетевые службы.
- •5.3. Интернет. Основные понятия
- •5.4 Подключение к Интернету Основные понятия
- •Установка модема
- •Глава VI базы данных
- •6.1. Основные понятия баз данных
- •Структура простейшей базы данных
- •Свойства полей базы данных
- •Типы данных
- •6.2 Безопасность баз данных
- •6.3. Проектирование баз данных
- •Глава VII сжатие данных
- •7.1. Теоретические основы сжатия данных
- •7.2 Алгоритмы обратимых методов сжатия
- •Синтетические алгоритмы
- •7.3. Программные средства сжатия данных
- •Глава VIII компьютерная безопасность
- •8.1 Понятие компьютерной безопасности
- •Компьютерные вирусы
- •8.2 Методы защиты от компьютерных вирусов
- •Средства антивирусной защиты
- •8.3 Защита информации в Интернете
- •8.4 Понятие о несимметричном шифровании информации
- •Принцип достаточности защиты
- •Глава IX программирование для эвм
- •9.1. Языки программирования
- •9.2 Обзор языков программирования высокого уровня
- •9.3 Системы программирования
- •9.4 Архитектура программных систем
- •9.5 Структурное программирование
- •Глава X. Объединение нескольких компьютеров
- •10.1 Топология физических связей
- •10.2 Организация совместного использования линий связи
- •10.3 Адресация компьютеров
- •10.4 Ethernet — пример стандартного построения сетей
4.3. Последовательные модели вычислителей (машины Тьюринга)
В основу любого поведения принято закладывать понятие алгоритм описывающего на естественном или искусственном языках порядок выполнения элементарных операций (шагов) для достижения той или иной цели (решение математической задачи, стратегия в игре, построение некоторой модели и т.д.)- Каждый человек постоянно в жизни сталкивается с необходимостью создания различного рода планов (алгоритм для достижения конкретно поставленных целей, при этом не имея значения, как он это делает и осознает ли сам данный аспект своего поведения. Однако именно в случае его вычислительной деятельности эй момент осознается человеком наиболее четко и наглядно по той при чине, что она представляет собой наиболее формализованный процесс. До 30-х годов 20 веке понятие алгоритма, описывающего тот ил иной вычислительный процесс, носило сугубо интуитивный характер, имевший скорее методологическое, чем математическое значение. Основными чертами интуитивного понятия алгоритма были: дискретность, детерминированность, элементарность шагов, направленность и массовость [97—100]. Такое положение в математике было вполне допустимым, пока дело касалось задач, имеющих положительное решение, когда указание четко определенных правил получения искомого решения задачи вполне можно было считать алгоритмом ее решения. Совершенно иначе обстоит дело в том случае, когда задача или класс задач могут и не иметь решения. В этом случае требуется строго формализованное понятие алгоритма, чтобы иметь возможность доказать его отсутствие и избежать двусмысленностей. Такое понятие было определено в середине 30-х голов 20 века в двух эквивалентных формулировках: на основе рекурсивных функций (Д. Гильберт, К. Гедель, А. Черч, С. Клини) и абстрактных автоматов (А. Тьюринг, Э. Пост). В настоящее время теория алгоритмов и математическая логика образуют фундаментальную основу современной ВТ, позволяющую решать любые алгоритмически описанные задачи. Остановимся на первой формулировке понятия алгоритма, не вникая детально в тонкие вопросы теории рекурсивных функций [97, 100].
Для алгоритмических проблем типичной является задача существования алгоритма для вычисления значений числовой функции Y=F(x1, x2, ...,хп), зависящей от целочисленных значений ее xj-аргументов (j=1, ..., п). Числовые функции, значения которых можно вычислять посредством некоторого алгоритма, будем называть вычислимыми. Так как понятие алгоритма в данной формулировке интуитивно, то понятие вычислимых функций также оказывается интуитивным. Понятие частично рекурсивной функции — одно из центральных понятий теории алгоритмов: (1) каждая частично рекурсивная функция вычислима и (2) функции, вычислимые посредством известных на сегодня алгоритмов, являются частично рекурсивными. Данное положение лежит в основе общепринятой гипотезы, известной как тезис Черча (в окончательной формулировке его правильнее было бы называть тезисом Черча-Клини), впервые сформулированной А. Черчем в 1936 г.: Класс вычислимых частичных числовых функций совпадает с классом всех частично рекурсивных функций. Тезис Черча дает алгоритмическую интерпретацию понятия частично рекурсивных функций и достаточен для придания необходимой строгости формулировкам алгоритмических проблем, позволяя в ряде случаев получать доказательства их алгоритмической неразрешимости. В силу тезиса Черча вопрос о вычислимости функции эквивалентен вопросу о ее рекурсивности, которая устанавливается на основе строгих математических понятий и доказательств. Из него, в частности, вытекает весьма интересное следствие — любая сколь угодно сложная числовая функция может быть получена из простейших функций (1) путем применения простых операций суперпозиции, примитивной рекурсии и минимизации, хотя это может оказаться, само по себе, достаточно сложной задачей. Однако на основе рекурсивных функций мы получаем лишь одно из возможных уточнений понятия алгоритма, при котором понятие вычислимых функций является по отношению к нему первичным.
Прямое определение понятия алгоритма было сделано впервые и независимо А. Тьюрингом и Э. Постом в 1936 г. и почти одновременно с представленными выше подходами Черча-Клини. Их подход базируется на определении специальных абстрактных автоматов (машин). Любому мыслимому алгоритму соответствует подходящий абстрактный автомат, его реализующий. Машина Тьюринга (МТ) является важным инструментом исследований в современной теории алгоритмов и вычислимости, тогда как машина Поста (МП) практически не используется. Это можно объяснить тем обстоятельством, что МП проще МТ по своим выразительным средствам и ее использование более громоздко и менее обозримо. В первую очередь, именно конструкция МТ в абстрактной форме предвосхитила многие основные принципы современных ЭВМ, которые, вероятно, оказали существенное влияние и на работы Джон фон Неймана по созданию первых ЭВМ и его идеи в этом направлении.
Понятие машины Тьюринга (МТ) достаточно прозрачно и состоит в следующем. Классическая МТ состоит из трех компонент (рис.4.1):
КА
Сканирующая головка
… … Sj-p
…
Sj-p Sj
Sj+1
…
…
Внешняя лента
Рис.4.1.
(1) Бесконечная в обе стороны лента разбита на ячейки, содержащие строго по одному символу из некоторого конечного алфавита S={ , S1, S2, … , Sn } называемого внешним алфавитом МТ. Внешний алфавит содержит специальный - символ, идентифицирующий пустую ячейку ленты. Словом, записанным на ленте, будем полагать ориентированную слева направо конфигурацию всех состояний ячеек; рассматриваться будет только множество всех конечных слов, т.е. слов имеющих конечное число вхождений символов sk (A
=1, ..., п), не нарушая общности, внешнюю ленту можно полагать и конечной, но с возможностью при необходимости подстраивания пустых ячеек слева и справа. Ленту можно рассматривать в качестве внешней памяти МТ, а ее ячейки можно для удобства тем или иным способом перенумеровывать.
(2) Конечный автомат (КА) машины представляет собой устройство, находящееся в каждый дискретный момент времени Т=0, 1, 2, 3, .. в некотором состоянии из конечного множества Q={q0, q1 q2, … , qт), где q0 -состояние определяет останов МТ. При этом множества S и Q не имеют общих символов, т.е. S∩Q=0, где 0 — пустое множество. КА наделен внутренней (оперативной) памятью, содержащей программу работы МТ, и устройством управления (УУ), обеспечивающим механизм выполнения всех допустимых машиной операций. Множество Q символов называется внутренним алфавитом МТ; в дальнейшем МТ с внешним S и внутренним Q алфавитами будем обозначать как МТqs; #S=s и #Q=q, где #А — мощность (количество элементов) произвольного А-множества.
(3) Сканирующая головка (СГ) за единичный момент времени (такт машины) может сдвигаться вправо/влево на одну ячейку ленты и изменять состояние сканируемой ею ячейки; СГ может оставаться и неподвижной любое число тактов машины.
Работа МТqs происходит в дискретные моменты времени и управляется УУ конечного автомата: в зависимости от внутреннего q-состояния и s-состояния сканируемой ячейки внешней ленты производится в общем случае изменение обоих состояний и сдвиг сканирующей головки. Если на некотором шаге КА переходит в q0 -состояние, то МТqs переходит в заключительное состояние и останавливается, завершая вычисление.
Не затрагивая принципиальных аспектов теории машин Тьюринга, можно отметить существование универсальных машин Тьюринга, способных моделировать любую конкретную МТqs. Более того, доказано существование универсальных МТ с бинарным Sq={0,1} внешним алфавитом и машин, чья минимальная сложность SL=s x q определяется наилучшим на сегодня значением SL=4x7=28 (включая заключительное q0 -состояние КА). Таким образом, столь просто и прозрачно устроенный и функционирующий абстрактный автомат, как МТ, способен реализовать сколь угодно сложный алгоритм в нашем современном понимании.
Являясь абстрактной моделью реальных ЭВМ, МТ определяют их вычислительные возможности — вычислимость частично рекурсивных функций, тем самым давая ответ на вопрос о возможностях современной цифровой ВТ. Иными словами, на сегодня теоретически не существует алгоритма в нашем понимании, который не мог бы быть реализован средствами современной ВТ. С практической же точки зрения данное утверждение не выглядит столь убедительным. Например, существуют целочисленные функции, вычисление значений которых требует сколь угодно больших виртуальной памяти (оперативной и внешней) и времени вычислений. Типичным примером таких задач является вычисление п-го члена последовательности однозначно определенных
сумм (ПООС) для сколь угодно большого n-значения. Единственным алгоритмом для получения n-го члена такой ПООС является наличие информации о всех предыдущих членах последовательности. Поэтому, для каждой конкретной ЭВМ существует такое целое n>0, для которого вычисление п-го члена ПООС требует увеличения основных ресурсов ЭВМ. В этом смысле ни одна ЭВМ не
частично рекурсивной функции, т.е. для нее существует класс нерешаемых задач при условии неизменности ее ресурсов (в первую очередь памяти). Универсальность ЭВМ носит сугубо потенциальный характер, ибо любая ЭВМ является конечным автоматом (хоть и с очень большим числом внутренних состояний), имеющим ряд ограничений на вычислимость.»Таким образом, бесконечность внешней памяти МТ принципиальна расширяет возможности абстрактных МТ-вычислителей.
Каковы же общие черты формальной МТ-модели вычислений n реальной современной ЭВМ? Подобно МТ-модели в ЭВМ можно выделить элементарные неделимые единицы информации — соответственно символы S-алфавита и двоичный алфавит. Подобно nepвой ЭВМ располагает конечным множеством команд, лежащих в основе реализации и выполнения каждого алгоритма; подобно МТ-модели ЭВМ функционирует дискретно (потактно) под управлением программы, хранящейся в оперативной памяти. Устройство управления МТ-модели по назначению в общих чертах аналогично УУ ЭВМ. Отметим, что ЭВМ имеют относительно МT-моделей существенно более сложную организацию и широкий набор более крупных команд (т.е. относительно вторых обладает существенной избыточностью), что позволяет эффективно и выразительно представлять разнообразные алгоритмы решаемых задач. Более того, в предположении о возможности наращивания памяти в необходимых объемах каждая ЭВМ может моделировать любую МТ являясь потенциально универсальной. В этом смысле термин универсальная ЭВМ теряет определенный идентифицирующий смысл и его использование при классификации ЭВМ в строгом понимании корректно. Более приемлемым и обоснованным следует признать классификацию ЭВМ по сферам и видам применения, о чем будет идти речь ниже.
В теоретических и прикладных разделах вычислительных наук наряду с рассмотренной выше классической МТ-моделью используется ряд других формальных моделей вычислителей, в той или иной мере близких к первой и эквивалентных ей по вычислительным возможностям: многоленточные и многоголовочные МТ, МТ с 2- и 3-мерными лентами, системы продукций Поста, нормальные алгоритмы Маркова, А-алгоритмы, операторные алгоритмы Ван Хао и др. В частности, многоголовочные МТ представляют хорошую формальную модель параллельной обработки информации в терминах мультипроцессорных систем, а А-алгоритмы оказываются весьма полезными по ряду биологически мотивированных соображений, связанных с исследованием процессовых формальных теорий для моделирования биологии развития [4]. Наконец, несложно погрузить имитатор любой МТ в программную среду современных ЭВМ, демонстрируя ее работу и универсальную вычислимость ЭВМ при условии возможности неограниченного наращивания ресурсов памяти. Таким образом, результаты теории формальных МТ-вычислителей носят не только гносеологический характер, но и позволяют получать доказательства невозможности тех или иных алгоритмов (носящих практический характер), что позволяет глубже проникнуть в суть самого понятия алгоритма в нашем современном его понимании. Теория абстрактных вычислителей на основе МТ-машин в настоящее время развита достаточно хорошо.