
- •Вопросы к государственному междисциплинарному экзамену по специальности
- •230201.65 «Информационные системы в технике и технологиях»
- •Информатика
- •1. Представления информации в вычислительных системах. Позиционные и непозиционные системы исчисления.
- •2. Представление чисел с фиксированной и плавающей запятой. Операции над числами с плавающей запятой.
- •3. Алгебраическое представление двоичных чисел. Прямой, дополнительный и обратный коды.
- •4. Арифметические операции в двоичной системе счисления.
- •5. Восьмеричная, шестнадцатеричная и двоично–десятичные системы счисления.
- •Перевод чисел из двоичной системы в шестнадцатеричную
- •6. Логические основы построения компьютера.
- •7. Элементы алгебры логики. Выполнение логических операций на компьютере.
- •8.Логический синтез вычислительных схем.
- •9. Общие принципы построения персональных компьютеров.
- •10. Структурная схема и основные компоненты персонального компьютера.
- •11. Функциональная и структурная организация компьютера Общие принципы функциональной и структурной организации эвм
- •12. Основные типы вычислительных процессов.
- •13. Основные принципы и приемы процедурного программирования.
- •14. Основные принципы и приемы объектно-ориентированного программирования.
- •15. Структурное программирование. Принцип локализации имен. Модульное построение программ.
- •16. Понятие рекурсии. Прямая и косвенная рекурсии.
- •17. Структура типов данных языков программирования.
- •18. Распределение памяти под объекты программы. Статическая и динамическая память.
- •19. Списковые динамические структуры. Стеки. Деки. Очереди. Бинарные деревья.
- •Прикладное программирование
- •1С: Предприятие как проблемно-ориентированная прикладная система. Подсистемы и компоненты среды 1с: Предприятие.
- •Понятие конфигурации 1с: Предприятия. Типы данных. Иерархия объектов. Агрегатные и подчиненные объекты. Типы значений объектов конфигурации.
- •Виды программных модулей 1с: Предприятия. Понятие контекста. Глобальный контекст задачи и локальный контекст модуля.
- •Справочники, документы и журналы документов среды 1с: Предприятие.
- •Подсистема «Оперативный учет» среды 1с: Предприятие. Понятие регистра. Виды регистров.
- •Точка актуальности итогов в среде 1с: Предприятие и ее связь с последовательностями и движениями регистров.
- •Запросы к данным в среде 1с: Предприятие.
- •Подсистема «Расчет» среды 1с: Предприятие. Понятие вида расчета. Журналы расчетов.
- •Подсистема «Управление распределенной информационной базой» среды 1с: Предприятие.
- •Администрирование в среде 1с: Предприятие. Пользовательские интерфейсы и права пользователя.
- •Информационные основы обработки данных
- •Базы данных и системы управления базами данных. Роль и место банков данных в информационных системах.
- •Уровни представления данных: концептуальный, логический, физический.
- •Понятие модели данных. Иерархическая, сетевая, реляционная модели данных, их типы структур, основные операции и ограничения.
- •Основные понятия реляционной модели данных: отношение, экземпляр, атрибут. Объектные и связные отношения. Операции над отношениями.
- •Нормализация отношений в реляционной базе данных. Нормальные формы.
- •Инфологическое проектирование базы данных.
- •Программная реализация бд и субд.
- •Глава 2. Разработка базы данных по рынку бытовой химии.
- •Эксплуатация системы: наполнение базы данных реальными данными, поддержание
- •Пользователи банков данных. Преимущества централизованного управления данными. Архитектура банка данных.
- •Строение пакета субд. Компиляция и интерпретация программ.
- •Многопользовательские системы. Файл-серверная и клиент-серверная технологии. Трехзвенная архитектура.
- •2. Файл-серверная архитектура программы.
- •Операционные системы
- •1.Принципы построения операционных систем (ос), вычислительный процесс и его реализация с помощью ос; основные функции ос.
- •4.Сетевые ос и протоколы передачи информации, организация управления доступом и защиты ресурсов ос
- •5.Основные механизмы безопасности: средства и методы аутентификации в ос, модели разграничения доступа, организация и использование средств аудита; администрирование ос.
- •6.Классификация вычислительных сетей. Одноранговая сеть. Сети с централизованным управлением.
- •7.Сетевые компоненты ос семейства Windows. Сетевые протоколы. Сетевые клиенты.
- •Организация общего доступа к сетевому ресурсу.
- •Принципы управления ресурсами в операционной системе; управление вычислительными процессами, вводом-выводом, реальной памятью; управление виртуальной памятью. Управление процессами
- •Функции базовой подсистемы ввода-вывода
- •Физическая организация памяти компьютера
- •Функции системы управления памятью
- •Простейшие схемы управления памятью
- •Понятие виртуальной памяти
- •11.Состояния процессов, наследование ресурсов, тупиковые ситуации, обработка исключений, сохранение и восстановление процессов
- •12.Операции над процессами. Pcb и контекст процесса. Одноразовые операции. Многоразовые операции. Переключения контекста.
- •13.Планирование заданий пользователей. Критерии планирования и требования к алгоритмам. Вытесняющее и невытесняющее планирование.
- •Взаимодействие процессов в ос, синхронизация процессов, обмен сообщениями. Взаимодействие процессов
- •Средства межпроцессного взаимодействия
- •Динамические, последовательные и параллельные структуры программ. Логическая организация механизма передачи информации. Нити исполнения.
- •Информационные сети
- •1. Типы вычислительных сетей.
- •2. Стандартизация в компьютерных сетях. Понятие протокола и интерфейса.
- •Сетевые интерфейсы:
- •3. Эталонная модель взаимодействия открытых систем – osi. Графическое представление модели.
- •Взаимодействие уровней
- •4. Прохождение запроса между двумя узлами сети.
- •5. Функции и сетевые задачи уровней модели osi. Прикладной уровень (Application layer)
- •Уровень представления (Presentation layer)
- •Сеансовый уровень (Session layer)
- •Транспортный уровень (Transport layer)
- •Сетевой уровень (Network layer)
- •Канальный уровень (Data Link layer)
- •Физический уровень (Physical layer)
- •6. Сетевые топологии.
- •7. Строение сетей Ethernet. Домен коллизий в сетях Ethernet.
- •8. Повторители. Мосты. Концентраторы. Коммутаторы. Маршрутизаторы. Повторитель
- •Различия между коммутаторами и мостами
- •9. Сети Token Ring. Метод доступа к разделяемой среде для сетей Token Ring .
- •10. Технология Fast Ethernet.
- •11. Технология Gigabit Ethernet.
- •12. Технология 100 vg-AnyLan. Суть метода доступа - приоритетные требования в технологии 100 vg-AnyLan.
- •13. Технология fddi. Особенности метода доступа fddi.
- •14. Задачи сетевого уровня открытых систем osi. Понятие «Подсеть», «Сеть» и «Составная сеть».
- •15. Многоуровневая структура стека tcp/ip. Уровень межсетевого взаимодействия, основной (транспортный) уровень, прикладной уровень, уровень сетевых интерфейсов.
- •Физический уровень
- •Канальный уровень
- •Сетевой уровень
- •Транспортный уровень
- •Прикладной уровень
- •16. Механизм гнезд и мультиплексирование соединений.
- •17. Типы адресов стека tcp/ip. Локальные адреса. Ip – адреса. Символьные доменные имена.
- •Корпоративные информационные системы
- •Структура корпоративной ис. Функциональные компоненты кис. Классификация кис.
- •Структура корпораций и предприятий; архитектура, эксплуатация и сопровождение информационных систем ис.
- •Понятие и структура erp – системы. Пример erp – систем.
- •Понятие и структура olap – системы. Архитектура olap – приложений.
- •Понятие гиперкуба. Метки. Иерахии и уровни. Срезы гиперкуба.
- •Операции манипулирования данными в гиперкубе. Агрегация данных в гиперкубе.
- •Разреженный гиперкуб данных. Бинарное представление гиперкуба данных. Выборка данных из гиперкуба.
- •Карта заполненности гиперкуба данных. Одномерная, двумерная и трехмерная проекции карты. Организация доступа к данным в гиперкубе. Агрегация разреженного гиперкуба данных.
- •Многомерное хранение данных. Сравнение оперативных и аналитических ис. Концепция хранилища данных.
- •Компоненты хранилища данных. Проблемы интеграции данных в информационном хранилище. Реализация хранилищ данных. Витрины данных.
- •Понятие Data Mining. Приложения Data Mining.
- •Разведочный анализ данных и его методы. Типы закономерностей, используемых Data Mining.
- •Классификация систем Data Mining.Нейронные сети в Data Mining.
- •Виды команд сетевых субд. Виды блокировки файлов и записей. Обработка ошибок сетевыми приложениями. Тестирование сетевого приложения.
- •Буферизация редактирования данных. Обновление данных с использованием буферизации. Работа с транзакциями.
- •Основные понятия web-технологий.
- •Сервисы Интернет.
- •Электронная почта
- •Списки рассылки
- •Система гипермедиа www
- •Сервисы irc, icq и т.П.
- •3. Служба dns Отображение символьных адресов на ip-адреса: служба dns
- •Серверные языки программирования
- •Технологии Java. Особенности версий jdk.
- •Виды Java-приложений.
- •Принципы ооп в Java-технологиях.
- •Обзор операторов языка программирования Java.
- •Обработка исключений в Java.
- •Событийные модели в Java.
- •Программирование Java-апплетов
- •Принципы программирования оконных приложений на Java.
- •Элементы web-дизайна. Основные понятия, влияющие факторы.
- •Системы навигации сайта.
- •Понятие хостинга
- •1. Типы и преобразование данных в клиентских сценариях.
- •2. Типы данных в php-приложениях
- •3. Типы данных в Java-приложениях.
- •4. Валидаторы в web-приложениях. Разновидности.
- •5. Клиентские валидаторы в web-приложениях.
- •6. Серверные валидаторы в web-приложениях.
- •7. Основные понятия языков разметки. Формы.
- •8. Технология css.
- •9. Организация взаимодействия страниц во фреймовой структуре.
- •10. Плавающие фреймы (iFrame) на web-страницах
- •11. Понятие о серверных сценариях web-приложений.
- •Организация авторизованного доступа в web-приложениях.
- •Сессионные переменные в web-приложениях.
- •Представление о стеке протоколов tcp/ip.
- •Интегрированные среды разработки web-приложений.
- •Модель "клиент-сервер" для web-приложений.
- •Клиентские сценарии web-приложений.
- •Обработка событий в клиентских сценариях web-приложений.
- •Программирование типовых функциональных блоков серверных сценариев php-web-приложений.
- •9.Организация взаимодействия серверных сценариев с субд с использованием php и MySql.
- •Обзор среды разработки Java-приложений на примере NetBeans.
- •Этапы разработки Java-приложений в среде NetBeans.
- •Структура справочной системы Java. Утилита javadoc.
- •3. Основные понятия теории графов, граф, подграф, сеть, дерево, связность. Операции над графами, их свойства.
- •4. Нахождение минимального и максимального пути, задача о максимальном потоке.
- •5. Основные понятия логики высказываний, методы представления логических функций, логические операции, их свойства, конъюнктивные и дизъюнктивные нормальные формы.
- •Элементарные функции алгебры логики
- •Фал одного аргумента
- •Инверсия
- •Конъюнкция
- •Дизъюнкция
- •Логическая равнозначность
- •Импликация
- •Эквивалентности
- •Сложение по mod 2
- •Правило де Моргана
- •Понятие функциональной полноты фал
- •Минимизация фал и ограничения при ее рассмотрении
- •Понятие покрытия
- •Метод минимизации фал по Квайну
- •6. Общезначимость, противоречивость, выводимость, теоремы о выводимости, метод резолюций для логики высказываний.
- •Метод резолюций для логики высказываний
- •7. Основные понятия логики предикатов первого порядка, кванторы, предваренные нормальные формы, избавление от кванторов.
- •8. Выводимость в логике предикатов первого порядка, унифицирующие подстановки, метод резолюций для логики предикатов первого порядка. Метод резолюций для логики предикатов первого порядка
- •9. Основные понятия теории автоматов, виды автоматов, методы представления автоматов, абстрактный и структурный автомат. Метод синтеза автоматов по граф-схеме алгоритма.
- •10. Понятие модели, алгоритмический и функциональный подходы к моделированию. Виды моделей, виды математических моделей, основные этапы моделирования.
- •1. Основные понятия и определения теории надежности.
- •2. Математическая модель функционирования информационных систем
- •3.Способы описания надежности функционирования информационных систем.
- •Методы анализа надежности. Топологический метод анализа надежности.
- •Анализ надежности восстанавливаемых систем.
- •Факторы, влияющие на надежность информационных систем.
- •Классический метод оптимизации судовых систем. Метод множителей Лагранжа.
- •Градиентные методы оптимизации судовых систем.
- •Оптимизация судовых систем на основе симплексных методов с постоянным и переменным шагами.
- •Оптимизация судовых систем на основе метода деформированного многогранника.
- •Оптимизация судовых систем на основе метода скользящего допуска.
- •Задачи многокритериальной оптимизации. Выбор оптимальных решений на основе безусловного и условного критериев качества.
- •Формирование критериев качества на основе экспертных оценок. Методы ранга, парных сравнений и непосредственной оценки.
- •Определение полиномиальных моделей судовых систем на основе метода наименьших квадратов. Система нормальных уравнений.
- •Матричная форма системы нормальных уравнений. Информационная матрица.
- •Исследование судовых систем на основе полного факторного эксперимента.
- •Исследование судовых систем на основе планов второго порядка.
- •Исследование судовых систем на основе планов третьего порядка.
- •Ранжирование параметров судовых систем на основе дробного факторного эксперимента.
- •Ранжирование параметров судовых систем на основе метода случайного баланса.
- •Определение программной системы.
- •Аксиоматика сложных систем.
- •Методология программирования: каскадная, итерационная, спиральная.
- •4. Основные задачи поддержки процесса разработки программных систем: методическая, организационная, инструментальная, кадровая, технологическая.
- •5. Стратегии «направленности» разработки программных систем: «сверху вниз», «снизу вверх», «изнутри к границам», «от границ внутрь».
- •6. Основные понятия программного обеспечения. Классификация программного обеспечения.
- •7. Повышение надежности программного обеспечения введением избыточности: информационной, программной, временной.
- •8. Принципы и методы разработки надежного программного обеспечения: предупреждения, обнаружения, исправление ошибок, обеспечение устойчивости к ошибкам.
- •9. Основные определения, связанные с обнаружением и исправлением ошибок: тестирование, доказательство, контроль, испытание, аттестация, отладка.
- •10. Структурное или модульное программирование. Стиль разработки, правила написания программ.
- •11. Преобразование неструктурированных алгоритмов к структурному виду: дублирование блоков, введение переменной состояния.
- •12. Понятия модульности, связанности, сцепления.
9. Основные понятия теории автоматов, виды автоматов, методы представления автоматов, абстрактный и структурный автомат. Метод синтеза автоматов по граф-схеме алгоритма.
Конечный автомат "в чистом виде" - это математическая модель устройства с конечной памятью, преобразующего дискретную информацию. Конечный автомат является одним из важнейших видов управляющих систем. Содержательно конечный автомат можно охарактеризовать как устройство, имеющее входной и выходной каналы и находящееся в каждый из моментов дискретного времени, называемых тактовыми моментами, в одном из состояний. По входному каналу в каждый тактовый момент в устройство поступают сигналы a - буквы входного алфавита A; в те же моменты по выходному каналу устройство выдает сигналы b - буквы выходного алфавита B, причем b определяется состоянием s из алфавита состояний S и буквой a; внутреннее состояние s' в следующий тактовый момент также определяется состоянием s и буквой a из предыдущего момента. Таким образом, для некоторых функций и имеет место
b = ( a, s), s' = ( a, s);
эти функции называются соответственно выходной и переходной функциями; они определяют закон ╚ переработки╩ слов в алфавите A, подаваемых побуквенно на входной канал устройства при условии задания начального состояния устройства.
Для конечных автоматов предполагается конечность алфавитов A, S, B. Если считать указанную ╚переработку╩ слов главной характеристикой устройства, то его можно отождествить с набором (A, S, B, , ), который и называют конечным автоматом. Для этой формы описания конечного автомата характерно отношение исследователя к устройству как внешнего наблюдателя. Само задание конечного автомата называется при этом абстрактным конечным автоматом. В случае когда устройство рассматривается с учетом того, что оно собрано по некоторым композиционным правилам из абстрактных конечных автоматов, приходят к понятию структурного конечного автомата, который в итоге также реализует некоторый абстрактный конечный автомат.
Автомат "вообще" (от греческого - самодействующий) - управляющая система, являющаяся конечным автоматом или некоторой его модификацией, полученной путем изменения его компонент или функционирования. Основное понятие - конечный автомат - возникло в середине 20 века в связи с попытками описать на математическом языке функционирование нервных систем, универсальных вычислительных машин и других реальных автоматов. Характерной особенностью такого описания является дискретность соответствующих математических моделей и конечность областей значений их параметров, что приводит к понятию конечного автомата.
Наряду с понятием конечного автомата рассматриваются различные его обобщения и модификации, отражающие те или иные особенности реальных устройств. Для конечного автомата (A, S, B, , ) существующие модификации можно разбить на следующие три основные группы. К первой группе относятся автоматы, у которых некоторые из алфавитов A (входной), S (состояний) или B (выходной) бесконечны, в связи с чем такие автоматы называются бесконечными. Ко второй группе относятся автоматы, у которых вместо выходной и переходной функций и допускаются произвольные отношения или случайные функции. Таковы частичные, недетерминированные, вероятностные и другие автоматы. К третьей группе относятся автоматы со специфическими множествами входных объектов. Таковы, например, автоматы с переменной структурой. Существуют автоматы, принадлежащие одновременно разным группам. Наряду с этим большую роль играют специальные подклассы конечных автоматов, например, автоматы без памяти. Кроме того, использование понятий и методов из других разделов математики также приводит к появлению специфических классов автоматов и связанных с ними задач. Например, при применении алгебраических средств возникают понятия автоматов над термами, линейного, группового, свободного и других; вопросы теории кодирования порождают понятия самонастраивающихся, обратимых автоматов и другие.
Теория автоматов - это раздел теории управляющих систем, изучающий математические модели преобразователей дискретной информации, называемые автоматами. С определенной точки зрения такими преобразователями являются как реальные устройства (вычислительные машины, автоматы, живые организмы и т.д.), так и абстрактные системы (например, формальная система, аксиоматические теории и т.д.). Наиболее тесно теория автоматов связана с теорией алгоритмов.
Большинство задач теории автоматов - общие для основных видов управляющих систем. К ним относятся задачи анализа и синтеза автоматов, задачи полноты, минимизации, эквивалентных преобразований автоматов и другие. Задача анализа состоит в том, чтобы по заданному автомату описать его поведение или по неполным данным об автомате и его функционированию установить те или иные его свойства. Задача синтеза автоматов состоит в построении автомата с наперед заданным поведением или функционированием. Задача полноты состоит в выяснении, обладает ли множество M' M автоматов свойством полноты, т.е. совпадает ли с M множество всех автоматов, которые получаются путем конечного числа применений некоторых операций к автоматам из заданного подмножества автоматовM' . Задача эквивалентных преобразований в общем виде состоит в том, чтобы найти систему правил преобразований (так называемую полную систему правил) автоматов, которые удовлетворяют определенным условиям и позволяют преобразовать произвольный автомат в любой эквивалентный ему автомат (два автомата эквивалентны, если они имеют одинаковое поведение автомата. Поведение автомата - математическое понятие, описывающее взаимодействие автомата с внешней средой. Примером внешней среды конечного автомата является множество входных слов, а поведением - словарная функция, реализуемая автоматом, или событие, представимое автоматом.)
Помимо перечисленных, в теории автоматов имеются специфические проблемы, характерные для автоматов. Так, в зависимости от условий задачи поведение автомата удобно задавать на разных языках, в связи с чем важными задачами являются выбор достаточно удобного адекватного языка и перевод с одного языка на другой. В тесной связи с задачами синтеза и эквивалентных преобразований находится задача минимизации числа состояний автомата, а также получение соответствующих оценок. Близкий круг вопросов возникает в связи с моделированием поведения автоматов одного класса автоматами другого класса. Здесь также представляют интерес вопросы минимизации моделирующих автоматов и оценки их сложности. Специальный раздел теории автоматов связан с так называемыми экспериментами с автоматами (т.е. способами получения информации о внутренней структуре автоматов по их поведению). Основная задача здесь состоит в том, чтобы получить определенные сведения о строении автомата путем наблюдения его реакции на те или иные внешние воздействия. При этом возникает большой круг задач, связанный с классификацией экспериментов и с вопросами разрешимости задач определенными видами экспериментов, а также с оценками длин минимальных экспериментов, достаточных для решения тех или иных задач. Понятие эксперимента с автоматами используется также в задачах надежности и контроля управляющих систем, в частности контроля автоматов. Многие из перечисленных выше задач могут рассматриваться как алгоритмические проблемы. Для конечных автоматов большинство из них имеют положительное решение.
Теория автоматов находит применение как и в других областях математики, так и в решении практических задач. Например, средствами теории автоматов доказывается разрешимость некоторых формальных исчислений. Применение методов и понятий теории автоматов к изучению формальных и естественных языков привело к возникновению математической лингвистики (математическая лингвистика - математическая дисциплина, предметом которой является разработка формального аппарата для описания строения естественных и некоторых искусственных языков.) Понятие автомата может служить модельным объектом в самых разнообразных задачах, благодаря чему возможно применение теории автоматов в различных научных и прикладных исследованиях. Пример 1. Рассмотрим следующий конкретный конечный автомат M = [A, S, B, , ]. Входной алфавит A = {0, 1}; выходной алфавит B = {0, 1}; три внутренних состояния S = {s0, s1, s2}; функции выхода и перехода задаются предписаниями
: (s0, 0) a s1 : (s0, 0) a 0
(s0, 1) a s0 (s0, 1) a 1
(s1, 0) a s2 (s1, 0) a 1
(s1, 1) a s1 (s1, 1) a 0
(s2, 0) a s0 (s2, 0) a 1
(s2, 1) a s2 (s2, 1) a 0
Подадим на вход последовательность 0, 1, 0, 1. Если автомат находился сначала в состоянии s0, то, считав первый символ 0, он перейдет в состояние s1 и выпечатает 0. Считав затем 1, он останется в состоянии s1 и выпечатает 0. Считав следующий 0, он перейдет в состояние s2 и выпечатает 1. Наконец, считав последний символ 1, автомат закончит работу в состоянии s2, имея на выходной ленте последовательность 0, 0, 1, 0.Таким образом, автомат преобразовал вход 0, 1, 0, 1 (или, короче, 0101) в 0, 0, 1, 0 (или 0010).
Есть два удобных способа описать этот автомат. Прежде всего, можно построить помеченный ориентированный граф, называемый диаграммой состояний.
Вершины этого орграфа помечены символами, обозначающими внутренние состояния. Каждая дуга помечена парой символов a, b, где a - входной символ, вызывающий переход в следующее состояние, отвечающее этому ребру, а b - выходной символ, который автомат выпечатывает.
Второй способ описания - таблица состояний, табличное представление функций и .
Текущее состояние |
Следующее Состояние |
Выход |
|||||
|
Вход |
Вход |
|||||
|
|
0 |
1 |
|
0 |
1 |
|
s0 |
|
s1 |
s0 |
|
0 |
1 |
|
s1 |
|
s2 |
s1 |
|
1 |
0 |
|
s2 |
|
s0 |
s2 |
|
1 |
0 |
Оба способа имеют свои преимущества и недостатки. Таблица обычно удобнее при вычислениях, диаграмма нагляднее. Например, по диаграмме легче обнаружить состояния, не достижимые из других состояний. На следующем рисунке показана диаграмма состояний автомата, у которого состояние s1 недостижимо, если автомат начинает работу из состояния s0 или s2.
Пример 2. Автомат с двумя состояниями, изображенный на следующем рисунке - автомат для проверки четности.
Автомат считывает входную последовательность из нулей и единиц, и его состояние в любой момент времени совпадает с начальным, скажем, s0, если число считанных к этому моменту единиц четно, и равно s1, если число считанных единиц нечетно. Выходная последовательность совпадает с входной.
Пример 3. Автомат, изображенный ниже, проверяет четность и выпечатывает EVEN (четный) или ODD (нечетный) в ответ на запрос, который соответствует входному символу Q.
Считав Q, автомат выпечатывает EVEN, если число ранее считанных единиц было четно, и ODD - если нечетно. Например, входная последовательность 0110Q1110Q будет переработана в 0110 EVEN1110 ODD.
Машины Тьюринга
Исторически понятие конечного автомата развилось из близкого понятия, введенного в 1936 году логиком Тьюрингом. Тьюринг рассматривал гипотетическую ╚машину╩, имеющую конечное множество S внутренних состояний и одну бесконечно длинную ленту, разделенную на ячейки, которую машина могла передвигать на одну ячейку вправо или влево за такт. В каждой ячейке машина может записывать символ из конечного алфавита A. Первоначально лента должна быть пустой, кроме конечного числа ячеек заполненных заранее. (Эти заранее заполненные ячейки можно представлять себе как программу запуска машины.)
Основная разница между машиной Тьюринга и конечным автоматом состоит в том, что:
1) лента машины Тьюринга бесконечна;
2) машина Тьюринга может двигаться вдоль ленты (или смещать ленту) в любом направлении.
Это придает машине бесконечную память, которую можно использовать в ходе вычислений. Сверх того, каждую ячейку можно просматривать многократно. Формальное определение машины Тьюринга существует в нескольких вариантах. Вот один из них.
Определение. Машиной Тьюринга называется пятерка объектов [A, S, , , ] следующего типа. A есть конечный алфавит символов, которые могут быть записаны в ячейках и являются одновременно входными и выходными: A = {a0, a1, . . ., an}. S есть конечное множество внутренних состояний S = {s0, s1, . . ., sr}; - функция из S ╢ A в S; - функция из S ╢ A в A; - функция из S ╢ A в {П, Л, ОСТАНОВ}, интуитивный смысл которого станет ясен из дальнейшего.
Машина Тьюринга работает следующим образом. Она начинает работу, находясь в начальном состоянии s0. После считывания первого символа она переходит в новое внутреннее состояние, определяемое функцией , записывает в ячейке символ, являющийся значением функции , перемещает ленту направо (П), налево (Л), или остается на месте и прекращает работу (ОСТАНОВ) в зависимости от значения функции .
Н
а
рисунке схематически изображена лента
машины Тьюринга и считывающая-записывающая
головка.
Таким образом, работа машины состоит в повторении следующего цикла: считывание символа из ячейки, впечатывание нового символа, выбор которого определяет функция , в эту ячейку (может оказаться, что это тот же символ), сдвиг ленты направо или налево либо остановка. Лента бесконечна в обоих направлениях, однако вначале (и, значит, после любого такта) заполнено лишь конечное число ячеек.
Пример. Машина Тьюринга, описанная ниже, считывает входную последовательность нулей и единиц, выпечатывает Ч, если число единиц четное, и Н, если нечетно. Строке из нулей и единиц предшествуют и последуют пустые ячейки, обозначаемые #. Символы Ч или Н печатаются в первой пустой ячейке вслед за входной строкой. Алфавит, таким образом, имеет вид
A = {#, 0, 1, Ч, Н}.
Внутренние состояния: S = {s0, s1, s2}; s0 - начальное состояние. Машина останавливается по сигналу ОСТАНОВ.
: (s0, 0) a s1 : (s0, 0) a 0 : (s0, 0) a Л
(s0, 1) a s2 (s0, 1) a 1 (s0, 1) a Л
(s1, 0) a s1 (s1, 0) a 0 (s1, 0) a Л
(s1, 1) a s2 (s1, 1) a 1 (s1, 1) a Л
(s2, 0) a s2 (s2, 0) a 0 (s2, 0) a Л
(s2, 1) a s1 (s2, 1) a 1 (s2, 1) a Л
(s0,#) a s0 (s0, #) a # (s0, #) a Л
(s1,#) a s1 (s1, #) a Ч (s1, #) a ОСТАНОВ
(s2,#) a s2 (s2, #) a Н (s2, #) a ОСТАНОВ
Удобнее задавать функции , , , пользуясь обозначениями Тьюринга. В этом варианте машина Тьюринга задается конечным множеством пятерок [si, aj, sr, zl, tn]. В каждой такой пятерке
si - текущее состояние машины;
aj - символ, считываемый из ячейки:
sr - следующее состояние машины, sr = (si, aj);
zl - символ, печатаемый в ячейке, zl = (si, aj);
tn - одна из команд П, Л, ОСТАНОВ.
В этих обозначениях описанная выше машина задается так:
s0 |
# |
s0 |
# |
Л |
s0 |
0 |
s1 |
0 |
Л |
s0 |
1 |
s2 |
1 |
Л |
s1 |
0 |
s1 |
0 |
Л |
s1 |
1 |
s2 |
1 |
Л |
s2 |
0 |
s2 |
0 |
Л |
s2 |
1 |
s1 |
1 |
Л |
s1 |
# |
s1 |
Ч |
ОСТАНОВ |
s2 |
# |
s2 |
Н |
ОСТАНОВ |
Теорема. Пусть M = [A, S, Z, , ] - некоторый конечный автомат. Положим
( - символ пустой ячейки) и
П
ОСТАНОВ
для всех
.
Тогда машина Тьюринга
ставит
в соответствие входным строкам те же
выходные строки, что и M.