
- •6.050102 “ Комп’ютерна інженерія” та 6.050101 “Комп’ютерні науки”
- •1. Графи. Основні поняття та визначення
- •1.1. Визначення графа
- •1.2. Типи скінченних графів
- •1.3. Суміжність та інцидентність
- •1.4. Способи задання графів
- •1.5. Маршрути і підграфи
- •На орграфі рис. 1.4, а маршрут (е1, е2, е5) – простий шлях, що є контуром, а маршрут (е1, е2, е3) – простий неконтурний шлях.
- •1.6. Зв'язність і роздільність
- •1.7. Характеристики графів
- •1.8. Дерева і ліс
- •1.9. Приклади задач, які використовують зважені графи
- •2.1. Логіка висловів. Загальні поняття
- •2.2. Формули алгебри висловів
- •2.3. Розв'язання «логічних» задач
- •2.4. Застосування алгебри логіки в теорії автоматів. Схеми перемикачів
- •2.5. Логіка першого порядку (логіка предикатів). Загальні поняття
- •2.6. Інтерпретація формул логіки предикатів
- •2.7. Передуюча нормальна форма
- •2.8. Логіка реляційна
- •2.9. Нечітка логіка. Загальні поняття
- •2.10. Нечітка алгебра
- •2.11. Нечітке числення
- •3. Булеві функції. Основні закони алгебри логіки
- •3.1. Цифрові автомати в схемотехніці та програмуванні
- •3.2. Висловлювання, предикати, булеві функції
- •3.3. Схемні реалізації булевих функцій
- •3.4. Найбільш поширені булеві функції
- •3.5. Основні закони алгебри логіки
- •4. Аналітичне подання булевих функцій. Функціонально повні системи булевих функцій
- •4.1. Досконала диз’юнктивна нормальна форма
- •4.2. Досконала кон’юнктивна нормальна форма
- •4.3. Досконала Шефферівська нормальна форма
- •4.4. Досконала Пірсівська нормальна форма
- •4.5. Функціонально повні системи булевих функцій
- •5. Мінімізація булевих функцій
- •5.1. Карти Карно
- •5.2. Мінімальна диз’юнктивна нормальна форма
- •5.3. Мінімальна кон’юнктивна нормальна форма
- •5.4. Мінімальна Шефферівська нормальна форма
- •5.5. Мінімальна Пірсівська нормальна форма
- •6. Абстрактні цифрові автомати
- •6.1. Основні поняття, пов’язані з абстрактними автоматами
- •6.2. Способи задання абстрактних автоматів
- •6.3. Приклади синтезу абстрактних автоматів
- •7. Синтез структурного автомата
- •7.1. Етапи канонічного методу структурного синтезу автоматів
- •7.2. Кодування станів
- •7.3. Побудова канонічної таблиці структурного автомата
- •7.4. Вибір елементів пам’яті автомата
- •7.5. Побудова таблиці збудження тригера
- •7.6. Побудова рівнянь функцій збудження і виходів автомата
- •7.7. Побудова функціональної схеми автомата
- •8. Проектування комбінаційних схем на дешифраторах і мультиплексорах
- •8.1. Синтез схем на дешифраторах
- •8.2. Синтез схем на мультиплексорах
- •9. Синтез мікропрограмного автомата за схемою алгоритму
- •9.1. Послідовність дій, необхідних для побудови управляючого пристрою
- •9.2. Синтез автомата Мілі
- •9.3. Синтез автомата Мура
- •10. Формальні мови і граматики
- •10.1. Визначення формальних мов і граматик
- •10.2. Приклади, що ілюструють первинні поняття
- •10.3. Порожня мова
- •10.4. Типи формальних мов і граматик
- •10.5. Виведення у кв-граматиках і правила побудови дерева виведення
- •10.6. Неоднозначні та еквівалентні граматики
- •10.7. Способи задання схем граматик
- •11. Контекстно-вільні граматики і автомати
- •11.1. Приведені граматики
- •11.2. Виключення ліворекурсивних правил
- •11.3. Виключення ланцюгових правил
- •11.4. Магазинні автомати
- •12. Спадні розпізнавачі
- •12.1. Розділені граматики
- •12.2. Побудова детермінованого спадного розпізнавача
- •12.3. Слаборозділені граматики
- •12.5. Побудова магазинного автомата
- •12.6. Приклади побудови спадного розпізнавача
- •4. Аналітичне подання булевих функцій.
- •8. Проектування комбінаційних схем на
- •9. Синтез мікропрограмного автомата за схемою
- •Теорія цифрових автоматів та формальних мов. Вступний курс
- •6.050101 “Комп’ютерні науки”
11.2. Виключення ліворекурсивних правил
Ряд граматик потребують виключення ліворекурсивних та ланцюгових правил.
Правило вигляду A A, де A Va, та (Vт Va), називається праворекурсивним, а правило вигляду A A – ліворекурсивним.
Для кожної КВ-граматики Г, що містить ліворекурсивні правила, можна побудувати еквівалентну граматику Г′, що не містить ліворекурсивних правил.
Щоб показати техніку перетворення, розглянемо приклад.
Приклад. Маємо граматику
Г11.3: R = {E E + T | T (1)
T T *F | F (2)
F (E ) | a}. (3)
Правила E E + T | T перетворимо в правила E T | TE' і E' +T | +TE, а правила T T * F | F перетворимо в правила T F | FT' і T' F | * FT'.
У результаті одержимо граматику Г, що має схему:
R' = { E T (1) T FT' (6)
E TE' (2) T' *F (7)
E' + T (3) T' * FT' (8)
E' + TE' (4) F a (9)
T F (5) F (E)}. (10)
11.3. Виключення ланцюгових правил
Правило граматики вигляду A B, де A, B Va, називається ланцюговим. Для КВ-граматики Г, яка містить ланцюгові правила, можна побудувати еквівалентну їй граматику Г′, яка не містить ланцюгових правил.
Ідея доведення полягає в наступному. Якщо схема граматики має вигляд
R = {..., A B, ..., B C, ..., C aX},
то така граматика еквівалентна граматиці зі схемою
R' = {..., A aX, ...},
оскільки виведення у граматиці зі схемою R ланцюжка aX
A B C aХ
може бути отримано у граматиці зі схемою R' за допомогою правила A aX.
11.4. Магазинні автомати
КВ-граматика визначає структуру ланцюжків і дозволяє будувати ланцюжки визначеної мови. Магазинні автомати (МА) дозволяють розв’язувати для контекстно-вільних мов задачу розпізнавання, яка полягає в тому, що за заданим ланцюжком необхідно визначити, чи належить він заданій мові. У роботах, пов'язаних з формальними мовами і граматиками, використовується модель магазинного автомата (рис 11.1), що складається з вхідної стрічки, управляючого пристрою і допоміжної стрічки, названої магазином або стеком. Вхідна стрічка розділяється на клітини (позиції), у кожній з яких може бути записаний символ вхідного алфавіту. При цьому передбачається, що у вільних клітинах вхідної стрічки розташовані порожні символи . Допоміжна стрічка також розділена на клітини, у яких можуть розташовуватися символи магазинного алфавіту. Початок допоміжної стрічки називається дном магазина та позначається – hо. Зв'язок пристрою керування зі стрічками здійснюється двома головками, що можуть переміщатися уздовж стрічок.
читаюча
головка
управляючий
пристрій
читаюча/записуюча
головка
допоміжна стрічка
(магазин)
вершина
магазина
вхідна стрічка
дно
Рисунок 11.1 – Магазинний автомат
Головка вхідної стрічки може переміщатися тільки в один бік – вправо чи залишатися на місці. Вона може виконувати тільки операцію читання. Головка допоміжної стрічки здатна виконувати як читання, так і записування, але ці операції пов'язані з переміщенням головки певним чином:
- при записуванні головка попередньо зрушується на одну позицію вгору, а потім символ заноситься на стрічку;
- при читанні символ, що знаходиться під головкою, зчитується зі стрічки, а потім головка зрушується на одну позицію вниз, так що головка завжди встановлена напроти останнього записаного символу. Позицію, що знаходиться в розглянутий момент часу під головкою, називають вершиною магазина.
Магазинний автомат М визначається такою сукупністю семи об'єктів:
M = {P, S, sо, f, F, H, hо}, де P – вхідний алфавіт; S – алфавіт станів; sо – початковий стан, sо S; F – множина кінцевих станів, F є підмножиною S; H – алфавіт магазинних символів, які записуються на допоміжну стрічку; hо – маркер дна, він завжди записується на дно магазина, hо H; f – функція переходів.
Робота МА зводиться до зміни конфігурацій. Конфігурацією автомата називають трійку об'єктів (s, , ), де s – поточний стан автомата; – вхідний ланцюжок, самий лівий символ a якого знаходиться під головкою, – магазинний ланцюжок, самий верхній символ якого hH. Якщо a = , то вважається, що вхідний ланцюжок прочитаний, якщо $ – то магазин порожній.
Робота автомата може бути подана як зміна конфігурацій. Один такт роботи автомата полягає у визначенні нової конфігурації за заданою. Це записується так:
(s, a, h) |-- (s', , ).
При цьому передбачається, що автомат читає символ a, який знаходиться під головкою, і символ h, що знаходиться у вершині магазина, визначає новий стан s' і записує ланцюжок у магазин замість символу h.
Якщо = $, то верхній символ виявляється вилученим з магазина. Така зміна конфігурацій можлива, якщо функція f(s, a, h) визначена і їй належить значення (s', ). Описаний такт роботи виконується з переміщенням головки. Для опису роботи автомата також буде потрібен інший вид такту, що припускає зміну стану магазина без переміщення вхідної головки. Якщо f 0(s, , h) визначена і їй належить значення (s', ), то зміна конфігурацій визначається так:
(s, a, h) |-- (s', a, ).
У загальному вигляді дії, що задаються функцією переходів і виконуються автоматом, демонструє така форма запису:
f(s, <вхідний символ>, <магазинний символ>) = (s1, < ланцюжок, що заноситься до магазина>).
При цьому варто мати на увазі, що при виконанні такту спочатку читається символ у вершині, а потім на його місце заноситься новий символ чи ланцюжок.
Початковою конфігурацією називається конфігурація (sо, , hо), де sо – початковий стан і hо – маркер дна магазина, а заключною – конфігурація (s, $, $), де s належить до множини кінцевих станів F.
Для позначення послідовності змінюючих одна одну конфігурацій умовимося використовувати знак ├. У такий спосіб послідовність
(s1, 1, 1) ├ (s2, 2, 2) ├ ... ├ (sn, n, n)
записується в скороченому вигляді так:
(s1, 1, 1) ├* (sn, n, n).
Для спрощення далі будемо використовувати єдиний стан s.
Контрольні запитання
1. Яка граматика називається приведеною?
2. Які символи граматики називаються непродуктивними?
3. Які символи граматики називаються недосяжними?
4. Які символи граматики називаються зайвими?
5. Які правила називаються ліворекурсивними?
6. Як можна виключити рекурсію?
7. Що таке магазинний автомат? Яка його структура?
8. Яка мова вважається допустимою для магазинного автомата?
9. Який автомат називається детермінованим, а який – недетермінованим?