КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Грамматики
Итак, мы переходим к определению порождающих грамматик в смысле Н.Хомского; до тех пор, пока не будут введены в рассмотрение другие типы грамматик, - а по большей части и после этого (когда невозможно недоразумение) – мы будем в качестве синонима для выражения «порождающая грамматика» употреблять просто слово «грамматика». (Порождающая) грамматика – это упорядоченная четвёрка Г = á V, W, I, R ñ, где: 1) V и 2) W - непересекающиеся непустые конечные множества; 3) I - некоторый элемент W; 4) R - конечное множество цепочек вида φ → ψ, где φ и ψ - различные цепочки в словаре V U W и → - символ, не входящий в V U W. Множества V и W называются соответственно основным и вспомогательным словарями (алфавитами) грамматики Г, а их элементы – соответственно основными и вспомогательными символами и Г**); I называется начальным символом Г, R - схемой Г и элементы R - правилами Г. Цепочки φ и ψ называются соответственно левой и правой частями правила φ → ψ. Объединение V U W мы будем иногда называть полным словарём грамматики Г. Пусть r = φ → ψ – правило грамматики Г и ξ1 * φ * ξ2 – вхождение φ в цепочку ω = ξ1φξ2 в словаре V U W. В этом случае мы будем говорить, что цепочка h = ξ1ψξ2 получается из w применением правила r к вхождению ξ1 * φ * ξ2 цепочки φ. Если цепочка h получается из цепочки ω применением какого-либо правила Г, будем говорить, что h непосредственно выводима из ω в Г, и писать ω|=Гh или просто ω|=h. Последовательность цепочек D = (ω0, ω1,…, ωn) (n ≥1) называется выводом ωn из ω0 в грамматике Г, если для каждого i, 1 ≤ i ≤ n, имеет место ω i -1 = ω i. Число n называется длиной вывода D. Если существует вывод h из ω в Г, то мы будем говорить, что h выводима из ω в Г, и писать ω| – Гh или ω| – h. Вывод (ω0, ω1,…, ωn) называется полным, если ω0 = I и ωn – цепочка в словаре V. Если D = (ω0, ω1,…, ωn) – вывод в грамматике Г и для некоторого I = 1, …, n цепочка ω i получается из ω i -1 применением правила φ → ψ к вхождению = ξ i *ψ*h i цепочки φ в ω i -1, то мы будем говорить, что это правило применяется на i-м шаге вывода D к вхождению ξ i *ψ*h i и что данное вхождение φ в ω заменяется на i-м шаге вывода D. Размеченным выводом, соответствующим выводу D, мы будем называть последовательность (ω∕0, ω∕1,…, ω∕n-1, ωn), где ω∕ i (i = 0, …, n – 1) – вхождение, заменяемое на i -м шаге вывода D. Одному выводу может, вообще говоря, соответствовать много размеченных выводов (см. упражнение 1.9.).
Множество цепочек в основном словаре грамматики Г, выводимых из её начального символа (иначе – множество последних цепочек всевозможных полных выводов в Г), называется языком, порождаемым грамматикой Г, и обозначается L (Г). Из сформулированных определений видно, что существенным свойством процесса работы порождающей грамматики является его недетерминированность: если оборвать вывод на каком-либо шаге, то продолжение, вообще говоря, не восстанавливается однозначно по оставшейся части и может быть выполнено разными способами. Таким образом, грамматика – это исчисление, т.е. разрешение производить некоторые операции [Марков 1954, стр. 203] – в данном случае подстановки в цепочки одних подцепочек вместо других (а не алгоритм, т.е. не предписание производить какие-то операции). Пример. Пусть Г = á{ a, b, c }, { A, B, C, D }, A, { A → BCA, BCB → D, BC → bc, DC → a, cA → c, aA → a }ñ. Пример полного вывода в Г: (А, ВСА, ВСВСА, ВСВСВСА, ВСDСА, ВСDСВСА, ВСDСbсА, ВСаbсА, bсаbсА, bсаbс). Соответствующий размеченный вывод (в данном случае единственный): (* А *, ВС * А *, ВСВС * А *, ВС * ВСВ * СА, ВСDС * А *, ВСDС * ВС * А, ВС * DС * bсА, * ВС * аbсА, bсаb * сА *, bсаbс). Легко видеть, что L (Г) = { a, bc }+. Грамматика Г = á V, W, I, R ñ называется грамматикой составляющих, или НС-грамматикой *), если каждое её правило имеет вид ξ1 А ξ2 → ξ1θξ2, где ξ1, ξ2 - произвольные цепочки в словаре V U W, А Î W и θ - произвольная непустая цепочка в V U W. Правила вида ξ1 А ξ2 → ξ1θξ2, где ξ1, ξ2, А и θ имеют указанный только что смысл, иногда называют НС-правилами; цепочка ξ1, цепочка ξ2 и пара цепочек (ξ1,ξ2) называются соответственно левым контекстом, правым контекстом и контекстом НС-правила ξ1 А ξ2 → ξ1θξ2. При применении НС-правила фактически заменяется только одно вхождение символа А. но возможность замены зависит от наличия нужного контекста. Если ξ1 = ξ2 = L, то правило называется бесконтекстным (или контекстно-свободным), сокращенно Б-правилом (или КС-правилом). НС-грамматика называется бесконтекстной (или контекстно-свободной), сокращенно Б-грамматикой (или КС-грамматикой), если все её правила бесконтекстные. (Б-) грамматика называется автоматной, сокращенно А-грамматикой **), если каждое её правило имеет вид А → аВ или А → а, где А, В – вспомогательные символы и а основной символ. Языки, порождаемые НС-, Б- и А-грамматиками, называются соответственно НС-, Б- и А-языками.
ЛИТЕРАТУРА
Автоматизированные информационные системы. Криницкий Н.А., Миронов Г. А., Флоров Г. Д./ Под ред. А.А.Дородницына. – М.: Наука. Главная редакция физико-математической литературы, 1982.-384 с. 11. Елементи теорії алгоритмів. Машина Тьюринга. (2 год.)
МАШИНА ТЬЮРИНГА
Вопрос: можно ли уточнить непосредственно само понятие алгоритма, а затем с его помощью определить и класс вычислимых функций? Это было сделано в 1936-37 гг. Постом и Тьюрингом независимо друг от друга. Основная мысль Поста и Тьюринга заключалась в том, что алгоритмические процессы - это процессы, которые может совершать подходяще устроенная "машина". В соответствии с этим ими с помощью точных математических терминов были описаны довольно узкие классы машин. На этих машинах оказалось возможным осуществить или имитировать все алгоритмические процессы, которые фактически когда-либо описывались математиками. Машины, введенные Постом и Тьюрингом, отличались не очень существенно, и в дальнейшем стали называться машинами Тьюринга. Под машинами Поста и Тьюринга понимается некоторая гипотетическая (условная) машина, состоящая из следующих частей: информационной ленты, представляющей собой бесконечную (неограниченную) память машины, разделенную на отдельные ячейки. В каждой ячейке можно поместить лишь один символ, в том числе и нуль; "считывающей головки" - специального чувствительного элемента, способного обозревать содержимое ячеек. Вдоль головки информационная лента перемещается в обе стороны так, чтобы в каждый рассматриваемый момент времени головка находилась в одной определенной ячейке ленты; управляющего устройства, которое в каждый рассматриваемый момент находится в некотором "состоянии". Предполагается, что устройство управления машины может находиться в некотором конечном числе состояний. Состояние устройства управления часто называют внутренним состоянием машины. Одно из этих состояний называется заключительным и в работе машины играет особую роль, так как оно управляет окончанием работы машины. Схематически машина представлена на рис.1. q
j Рис. 1. В алгоритмической системе Поста информация представляется в двоичном алфавите. Таким образом, в каждой ячейке информационной ленты можно поместить либо 0, либо 1. Алгоритм представляется в виде конечного упорядоченного набора правил, называемых приказами. Работа алгоритма начинается с некоторой начальной ячейки, соответствующей первому приказу алгоритма. Составляющие алгоритм приказы могут принадлежать к одному из 6, выполняемых машиной Поста: 1. Записать в рассматриваемую ячейку 1 и перейти к j - тому приказу. 2. Записать в рассматриваемую ячейку 0 и перейти к i - тому приказу. 3. Сдвинуть ленту вправо на одну ячейку и приступить к выполнению i - того приказа. 4. Сдвинуть ленту влево на одну ячейку и приступить к выполнению i - того приказа. 5. Если в рассматриваемой ячейке записана 1, то перейти к выполнению j -того приказа, а если записан 0, то перейти к выполнению i - того приказа. 6. Окончание работы алгоритма, остановка. Таким образом, алгоритмическая машина Поста представляет собой машину с информационной лентой, содержащей в каждой ячейке либо 0, либо1; с лентой, перемещающейся влево и вправо вдоль головки; с устройством управления, выполняющим 6 приказов (с внутренними состояниями). Алгоритмы, составленные из любого конечного числа правил, представленных приказами машины Поста, называются алгоритмами Поста. Доказано, что алгоритмы Поста сводятся к алгоритмам, реализуемым с помощью частично рекурсивных функций, и наоборот, любая частично рекурсивная функция может быть представлена алгоритмом системы Поста.. В отличие от машины Поста в каждой ячейке машины Тьюринга может находиться один из символов некоторого конечного алфавита, а устройство управления может быть в одном из конечных состояний. Другими словами, машина Тьюринга, работая в произвольном конечном алфавите, может выполнять некоторое конечное количество приказов. При этом машины Тьюринга, как и машины Поста, могут сдвигать ленту на одну ячейку вправо или влево, оставляя содержимое ячеек неизменным, или могут заменять состояние воспринимаемой ячейки, оставляя ленту неподвижной. Пусть алфавит машины Тьюринга задан в виде множества А = { s0 , si,... sn }, где s0 соответствует пустой ячейке, а число состояний устройства задано в виде множества Q = { q0 , qi,... qm }, где q0 соответствует заключительному состоянию. Конечная совокупность символов алфавита, с которой работает машина, называется внешним алфавитом, конечная совокупность состояний устройства управления - внутренним алфавитом. Совокупность, образованная последовательностью состояний всех ячеек ленты и состоянием устройства управления, называется конфигурацией машины. Конфигурация задается в виде слова, описывающего конкретное состояние машины. Если машина Тьюринга, находясь в состоянии qi, и воспринимая записанный на ленте символ sk, переходит в новое состояние qj, осуществляя при этом замену символа в рассматриваемой ячейке на символ sm и сдвиг ленты на одну ячейку, то говорят, что машина выполняет команду qi sk ® qj smЛ. Если замены не происходит, sm может в команде отсутствовать. При манипуляциях с лентой принимаются следующие обозначения:[16] Л - движение ленты влево; П - движение ленты вправо; С - нет движения ленты (стоп). Рассмотрим пример машины Тьюринга с алфавитами А = {0,1}, Q = { q0, q1 } и командами: q11q11Л, q10, q01С. Пусть на ленте имеется слово 11100. Головка расположена над первой слева единицей. В результате работы машины Тьюринга это слово превращается в 11110. По окончании работы машины головка стоит над крайней правой единицей. Совокупность всех команд, которые может выполнять машина, называется ее программой. Будем считать машину Тьюринга заданной, если заданы ее внешний и внутренний алфавиты, программа, начальная конфигурация и указано, какие из символов обозначают пустую ячейку и заключительное состояние. Пусть машина Тьюринга задана внешним алфавитом А = { s0 , a, b, c, d } и внутренним алфавитом Q = { q0 , q1, q2 , q3, q4, q5 }, и совокупностью команд q0 a q1 aЛ, q0 b q0 bЛ, q2 a q5 dП, q0 c q0 cЛ, q1 d q2 cП, q3 a q4 dП, q4 b q2 cП. Пустую ячейку обозначает символ s0, а заключительное состояние - q5. Рапссмотри применение данной машины Тьюринга для переработки исходного слова bcadc, которое даст нам слово bcdcc. Начальная конфигурация имеет вид q0bcadc, при этоммашиной будет порождена следующая последовательность конфигураций:
1 шаг bq0cadc, результат выполнения команды (q0 b ® q0bЛ) 2 шаг (q0 c ® q0 cЛ) 3 шаг (q0 a ® q1 aЛ) 4 шаг (q1 d ® q2 cП) 5 шаг (q2 a ® q5 dП) Программа рассмотренной машины Тьюринга может быть представлена в виде таблицы соответствия:
Запись алгоритма, реализуемого машиной Тьюринга, производится с помощью работы этой машины, представляющей собой совокупность команд. В рассматриваемом примере алгоритм переработки входного слова bcadc в слово bcdcc представляется командами: (q0 b ® q0bЛ), (q0 c ® q0 cЛ), (q0 a ® q1 aЛ), (q1 d ® q2 cП), (q2 a ® q5 dП). Алгоритмы пишутся столбцами. Для контроля против некоторых команд указывается слово, в которое переходит первоначально заданное слово после выполнения всех предыдущих команд, включая и стоящую слева команду. Рассмотрим в качестве примера алгоритм переноса нуля для машины Тьюринга, программа которой задана следующей таблицей соответствия:
Команды Конфигурация
Как было показано, на машинах Тьюринга оказалось возможным осуществить или имитировать все алгоритмические процессы, которые когда-либо описывались математиками. Было доказано, что класс функций, вычислимый на этих машинах, точно совпадает с классом всех частично рекурсивных функций. Вопрос о возможности или невозможности разрешающего алгоритма для задачи того или иного типа следует понимать как вопрос о существовании или несуществовании машины Тьюринга, обладающей нужным свойством.
Рассмотрим еще пример (здесь "П" и "Л" означают перемещение головки, а не ленты). Как видно из таблицы, управляющее устройство может находиться в трех различных состояниях. Состояние q0 особое. Оно соответствует выключенной машине.
Как видно из первого столбца таблицы, в состоянии q0 символы на ленте сохраняются неизменными, само состояние не меняется, и движения нет (С - стоп). Два других состояния - рабочие. Работа машины начинается с того, что управляющее устройство переводится в состояние q1. При этом слово на ленте справа от местоположения "глаза" управляющего устройства. Пусть, например, имеется исходная ситуация: 00111+1100 q1 q1 0 ® q1 0П Местоположение управляющего устройства отмечено символом состояния q1. Обратимся к таблице. В состоянии, считав символ 0, машина должна сохранить свое состояние и сдвинуться вправо на одну клетку ленты (П). После этого возникнет ситуация: 00111+1100 q1 q1 0 ® q1 0П Она аналогична предыдущей, и машина Тьюринга на этом такте выполнит сдвиг вправо на одну клетку, сохранив состояние q1. В результате возникнет другая ситуация. Считав символ 1 в состоянии q1, машина стирает его, заменяет на 0, меняет состояние на q2 и сдвигается вправо на одну клетку ленты. Новая ситуация имеет вид: 00011+1100 q2 q1 1 ® q2 0П В состоянии q2, как следует из таблицы управления, все символы 1 на ленте сохраняются, состояние q2 тоже сохраняется, а управляющее устройство сдвигается вправо. Так будет происходить до тех пор, пока не возникнет ситуация: q2 1 ® q2 1П 00011+1100 q2 q2 + ® q0 1С
Таблица управления в этой ситуации предписывает заменить + на единицу и прекратить работу. Окончательная ситуация на ленте: 0001111100. Результат Какую же работу выполнила машина? Если договориться интерпретировать слова ее входного языка как записи натуральных чисел, а + - как сложение, то машина, заданная таблицей управления, будет осуществлять операцию сложения натуральных чисел. В примере - 3+2=5. 12. Елементи теорії нечітких множин. (2 год.)
Дата добавления: 2014-01-07; Просмотров: 445; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |