Lec_4.ppt
- Количество слайдов: 38
Автоматы Способы задания
Основные определения n Конечным автоматом называется система M ={А, B, S, , y}, в которой n n n А = {а 1, . . . , am} – конечный входной алфавит, B ={b 1, . . . , bk} — конечный выходной алфавит, S ={s 1, . . . , sn} — конечный алфавит состояний, : А S S — функция переходов, y : А S B — функция выходов. n Если в автомате M выделено одно состояние, называемое начальным (обычно будет считаться, что это s 1), то полученный автомат называется инициальным и обозначается (M, s 1). n Существует два способа задания автомата: Автоматная таблица, диаграмма переходов
Автоматная таблица n 1) 2) 3) 4) Пример: задать автомат для чтения слова « 001» , если на вход подаются символы « 0» и « 1» . Входной алфавит A={0, 1} Выходной алфавит A={Y, N} Алфавит состояний S={s 0 «» , s 1 « 0» , s 2 « 00» s 3 « 001» } Автоматная таблица двумя способами. задается 1) Строки – состояния автомата. Столбцы – входные символы. На пересечении строк и столбцов указываются функций , y. 2) S, A, , y задаются по столбцам. Упр 25 Построить автомат для поиска слова КАКАДУ SA 0 1 S 0 «» S 1, N S 0, N S 1 « 0» S 2, N S 0, N S 2 « 00» S 2, N S 3, Y S 3 « 001» S 1, N S 0, N S Вх y S 0 0 S 1 N 1 S 0 N 0 S 2 N 1 S 3 Y 0 S 1 N 1 S 0 N S 1 S 2 S 3
Диаграмма переходов n Ориентированный называемый графом диаграммой переходов мультиграф, переходов или графа соответствуют состояниям. Если (Si, aj)=Sk, y(Si, aj)=bl, то из вершины Si в вершину Sk веден дуга на которой написано (aj, bl) n В каждой вершине si условиями корректности: 0 1 S 0 «» S 1, N S 0, N S 1 « 0» n Вершины , y S 2, N S 0, N S 2 « 00» S 2, N S 3, Y S 3 « 001» S 1, N S 0, N 1, N выполнены 1) для любой входной буквы aj имеется дуга, выходящая из si, на которой написано aj (условие полноты); 2) любая буква aj, встречается только на одном ребре, выходящем из si (условие непротиворечивости или детерминированности) S 0 S 1 (0, N) (1, N) (0, N) (1, N) S 2 (1, Y) S 3
Автоматы и входные слова n Для данного автомата M его функции M и y. M могут быть определены не только на множестве А всех входных букв, но и на множестве А* всех входных слов. n Для любого входного слова = aj 1 aj 2. . . ajk (si, aj 1 aj 2. . . ajk) = ( (… (si, aj 1), aj 2), . . . , ajk-1), ajk). y (si, aj 1 aj 2. . . ajk) = y( (… (si, aj 1), aj 2), . . . , ajk-1), ajk).
Пример: Автоматы и входные слова Пример: = 0101 (S 1, 0101) = ( (S 1, 0), 1) (S 1, 0101) = ( ( (S 2, 1), 0), 1) (S 1, 0101) = ( (S 3, 0), 1) (S 1, 0101) = (S 1, 1) (S 1, 0101) = S 0 0 1 S 0 «» S 1, N S 0, N S 1 « 0» S 2, N S 0, N S 2 « 00» y(S 1, 0101) = y( ( ( (S 1, 0), 1) y(S 1, 0101) = y( ( (S 2, 1), 0), 1) y(S 1, 0101) = y( (S 3, 0), 1) y(S 1, 0101) = y(S 1, 1) y(S 1, 0101) = N , y S 2, N S 3, Y S 3 « 001» S 1, N S 0, N
Автоматное отображение n Зафиксируем в M начальное состояние S 0 и каждому входному слову = a 1 a 2. . . ak поставим в соответствие слово в выходном алфавите: = y (S 0, a 1) y(S 0, a 1 a 2). . . y(S 0, a 1. . . ak). (3 a) n Это соответствие, отображающее входные слова в выходные слова, отображением называется автоматным n Если результатом применения оператора к слову является выходное слово , то это будем обозначать соответственно M( ) = .
Пример: Автоматное отображение Входному слову = 0101 поставим в соответствие слово в выходном алфавите: = y (S 0, 0) y(S 0, 01)y(S 0, 0101). y (S 0, 0)= N , y 0 S 0 «» S 1, N S 0, N S 1 « 0» S 2, N S 0, N S 2 « 00» S 2, N S 3, Y 1 S 3 « 001» S 1, N S 0, N y(S 0, 01) = y( (S 0, 0), 1) = y(S 1, 1) = N y(S 0, 010) = y( ( (S 0, 0), 1), 0) = y( (S 1, 1), 0) = y(S 0, 0)=N y(S 0, 0101) = y( ( ( (S 0, 0), 1) =y( ( (S 1, 1), 0), 1) = = y( (S 0, 0), 1) = y(S 0, 1) = NNNN
Свойства автоматного отображения 1) слова и = M( ) имеют одинаковую длину: | | = | | (свойство сохранения длины); 2) если = 1 2 и M( 1 2) = 1 2, где | 1| = | 1|, то M( 1) = 1; иначе говоря, образ отрезка длины i равен отрезку образа той же длины.
Виды автоматов n Общая модель конечного автомата (S-конечно), которая рассматривалась ранее, называется автоматом Мили. n Автомат называется автономным, если его входной алфавит состоит из одной буквы: А={а}. Все входные слова автономного автомата имеют вид аа. . . а. n Конечный автомат называется автоматом Мура, если его функция выходов зависит только от состояний, т. е. для любых s, ai, aj y(s, ai) = y(s, aj). Функция выходов автомата Мура естественно одноаргументная; обычно ее обозначают буквой и называют функцией отметок. В графе автомата Мура выход пишется не на ребрах, а при вершине.
Автоматы Мура n Теорема: Для любого автомата Мили существует эквивалентный ему автомат Мура. n При исследовании возможностей автоматов достаточно пользоваться автоматами Мура. Это удобно потому, что автомат Мура можно рассматривать как автомат без выходов, состояния которого различным образом отмечены.
Пример автономного автомата SA а S 1 S 3, 0 S 2 S 4, 0 S 3 S 4, 0 S 4 S 7, 0 S 5 S 4, 2 S 6 S 5, 0 S 7 S 6, 1 S 8 S 9, 0 S 9, 1 S S S S S A={a}, B={0, 1, 2}, S={S 1, S 2, S 3, S 4, S 5, S 6, S 7, S 8, S 9}
Неотличимые состояния n Пусть M и Т — два автомата с одинаковыми входным и выходным алфавитами. Состояние s автомата M и состояние r автомата Т называются неотличимыми, если для любого входного слова M(s, ) = T(r, ). n Автоматы M и Т называются неотличимыми, если для любого состояния s автомата M найдется неотличимое от него состояние r автомата Т и, наоборот, для любого r из Т найдется неотличимое от него s из M. n Неотличимые состояния называются эквивалентными
Минимальный автомат n Переход от автомата M к эквивалентному автомату называется эквивалентным преобразованием автомата M. n Можно ставить различные задачи о поиске автоматов, эквивалентных данному и обладающих заданными свойствами. Наиболее изученной среди таких задач является задача о минимизации числа состояний автомата: среди автоматов, эквивалентных M, найти автомат с наименьшим числом состояний — минимальный автомат.
Аспекта «работы» автоматов n Можно выделить два основных аспекта «работы» автоматов: 1) автоматы распознают входные слова, т. е. отвечают на вопрос, принадлежит ли поданное на вход слово данному множеству (это автоматыраспознаватели); 2) автоматы преобразуют входные слова в выходные, т. е. реализуют автоматные отображения (автоматы-преобразователи).
Теория алгоритмов
ТА в рамках метаматематики n Предмет теории алгоритмов и формальных систем в рамках метаматематики — какие объекты и действия над ними следует считать точно определенными, какими свойствами и возможностями обладают комбинации элементарных действий, что можно и чего нельзя сделать с их помощью. n Главное приложение теории алгоритмов — доказательство невозможности алгоритмического (т. е. точного и однозначного) решения некоторых математических проблем.
Алгоритм n Алгоритм - предписание, однозначно задающее процесс преобразования исходных данных к требуемому результату n Сам процесс преобразования состоит из элементарных дискретных шагов, применение которых конечного число раз приводит к результату
Основные типы алгоритмов n Теория алгоритмов – это метатеория, изучающая различные (качественные и количественные) свойства алгоритмов. n Для исследования качественных свойств определены 3 основных типа алгоритмов: 1) Рекурсивные функции 2) Машина Тьюринга 3) Канонические системы Поста и нормальные алгоритмы Маркова.
Простейшие рекурсивные функции n S 1(x) = x+1 - функция зависит от одной переменной х, и равна х+1. n On(x 1…xn) =0 - функция зависящая от n переменных и всегда равна 0. n Imn(x 1…xn) = xm - функция зависящая от n переменных и всегда равна значению переменной xm
Примитивная рекурсия n Функция f(x 1…xn+1) получаема алгоритмом примитивной рекурсии из функций g(x 1…xn) и h(x 1…xn+2), если f(x 1, …xn, 0) = g(x 1, …xn) (1) f(x 1, …xn, y+1) = h(z), где z=f(x 1, …xn, y) (2) Функция f называется примитивно-рекурсивной, если её можно получить из простейших функций S 1, On, Imn конечным числом операций суперпозиции и примитивной рекурсии.
Пример n Для доказательства того, что функция является примитивно рекурсивной необходимо: 1) Согласно уравнениям (1) и (2) в явном виде определить функции g() и h(). 2) Показать, что g() и h() являются простейшими функции S 1, On, Imn либо доказанными раннее примитивно рекурсивные функции. Упр 26: Доказать, что функция f(x, y) = x+y является примитивно рекурсивной Тезис Черча: Класс алгоритмически вычислимых числовых функций совпадает с классом всех рекурсивных функций.
Машина Тьюринга n Машина Тьюринга содержит: n 1) Внешнюю память – ленту из n ячеек. Каждая i-ая ячейка находится в состоянии аi. Задан алфавит состояний. Лента может быть бесконечной в обоих направлениях. Пустые состояния опускаются. n 2) Внутреннюю память машины – устройство в текущий момент времени находится в состоянии qi. Задан алфавит внуреннего состояния. Начальное состояние q 1, заключительное q 0 или qz. n 3) Указатель – указывает на текущую ячейку и перемещается вдоль ленты. n 4) Управляющее устройство – считывает символ ячейки, на которую указывает указатель. В соответствии с программой изменяет состояние ячейки и перемещает указатель.
Состояние и программа МТ n Состояние машины Тьюринга называется слово n n n n a 1…ak-1 qi ak…ar , образованное вставкой символа внутреннего состояния перед обозреваемой ячейкой. Программа машины Тьюринга – совокупность команд, которые может выполнить машина qi aj qi’ aj’ D, где qi - внутренне состояние машины aj - состояние обозреваемой ячейки qi’ – новое состояние машины aj’ - новый символ записываемый в обозреваемую ячейку D = { L, R, E} – символы символизирующие сдвиг указателя на одну ячейку влево, вправо и отсутствие сдвига соответсвенно.
Пример МТ Упр 27: Найти конечное состояние машины Тьюринга Начальный алфавит: А = {0, 1} Алфавит внутреннего состояния: Q = {q 0, q 1, q 2} Программа: { 1) q 10 q 20 R, 2)q 20 q 01 E, 3) q 11 R, 4) q 21 R } Начальное слово: q 111
Пример МТ Упр 28 Найти конечное состояние машины Тьюринга Начальный алфавит: А = {0, 1, } Алфавит внутреннего состояния: Q = {q 0, q 1, q 2, q 3} Программа: { 1) q 1 q 00 R, 2) q 11 q 20 R, 3) q 21 R, 4) q 2 q 31 L, 5) q 30 q 00 R, 6) q 31 L } А) Начальное слово: q 111 1 Б) Начальное слово: q 11 111
Тезис Тьюринга Тезис Тьюринга: для каждого алгоритма А может быть построена машина Тьюринга, которая при одинаковых исходных данных дает те же результаты, что и алгоритм А. n Если 1 q 1 2 1 qz 2, то будем говорить, что машина Т перерабатывает слово 1 2 в слово 1 2, и обозначать это Т( 1 2) = 1 2. n Запись Т( ) —обозначение машины Т с исходными значениями .
Нормальные алгоритмы Маркова n Нормальные алгоритмы Маркова (НАМ) преобразуют слова конечной длины друг в друга при помощи подстановки. n Задание НАМ Алфавит Подстановки u v Заключительная подстановка u v n Упр 29 Задан нормальный алгоритм Маркова: Алфавит – алфавит русского языка. Схема подстановки {Я У, Л У, С М, В Б, Р Т, Т Р, О Х, Н А} n Начальное слово СЛОН. n Найти конечное слово.
Оценка сложности алгоритмов n Предположим, что функции f(n) и g(n) измеряют эффективность двух алгоритмов, их обычно называют функциями временной сложности. Будем говорить, что порядок роста функции f(n) не больше, чем у g(n), если найдется такая положительная константы С, что | f(n) | <= С | g(n) |. Этот факт обозначают как f(n) = O(g(n)) n Например: сложность алгоритма О(n 3)
Эффективность алгоритмов A B C D E n 3 n 2 2 n 2+4 n n 3 2 n 1 1 мс 3 мс 6 мс 2 мс 10 10 мс 300 мс 240 мс 1 024 с 100 мс 30 с 20, 4 мс 0, 28 ч 4*1017 веков 0, 56 ч 11, 6 дней 10176 веков 1000 мс 0, 83 ч 1 мс
Теория алгоритмов n Теория алгоритмов - классифицирует задачи по сложности. При этом классифицируются лишь распознавательные задачи. n Распознавательная задача – это задача отвечающая на вопрос: обладают ли входные данные некоторым свойством. В нашем случае: входные данные – граф, свойство – является ли граф Гамильтоновым?
Классы P и NP n Сложностный класс P: существует алгоритм A, решающий задачу за полиномиальное время. n Сложностный класс NP — существует алгоритм А проверяющий предложенное решение, за полиномиальное время. n Задача о гамильтоновом цикле состоит в выяснении, имеет ли заданный граф G гамильтонов цикл относится к NP-классу.
Примеры NP задач n Задача о выполнимости булевых функций: узнать по данной булевой формуле, существует ли набор входящих в неё переменных, обращающий её в 1. n Задача о клике: по данному графу узнать, есть ли в нём клики (полные подграфы) данного размера. n Проблема существования гамильтонова цикла в графе. n Существование целочисленного решения системы линейных неравенств.
Возможность решения NP задач перебором n Изначально решение не известен. Поэтому важным оказывается то, что любую задачу относящуюся к NP-классу можно решить за экспоненциальное время перебором всех возможных комбинаций n Что и происходит в алгоритме по поиску цикла гамильтона
Соотношение Р и NP n Всякая задача из P принадлежит NP. n Таким образом, класс NP включает в себя класс P. В данное время, неизвестно совпадают ли классы P и NP, но большинство специалистов полагает, что нет.
Соотношение Р и NP n Если окажется, что Р= NP 1) NP задачи окажутся решаемы за разумное время. 2) Существует ряд задач, которые намеренно используют задачи экспоненциальной сложности (т. е. предполагая, что задачу решить не возможно). Например, В криптографии существует раздел о шифровании с открытым ключом, расшифровать которые практически не возможно. Если вдруг P = NP, то многие секреты перестанут быть таковыми.
NP–полные задачи n Наиболее серьезная причина полагать, что P ≠ NP — существование NP полных задач. n Неформально!!!, задача Q сводится к задаче Q′, если задачу Q можно решить за полиномиальное время для любого входа, считая известным решение задачи Q′ для какого-то другого входа. Например, задача решения линейного уравнения сводится к задаче решения квадратного уравнения.
NP–полные задачи n NP-полная задача — это такая задача из класса NP, к которой можно свести любую другую задачу из класса NP. n NP-полные задачи образуют подмножество «самых сложных» задач в классе NP. Если для любой NP-полной задачи будет найден полиномиальный алгоритм решения, то и любая другая задача из класса NP может быть решена за полиномиальное время. n Все перечисленные NP-задачи являются NP- полными. В том числе задача о цикле Гамильтона.
Lec_4.ppt