Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kolokvium (2).docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
82 Кб
Скачать

28.Задання мов за допомогою граматик

Мова, що розпізнає і породжує граматики, термінальні і нетєрмінальні символи, продукція, початковий символ, вивід рядків

Визначення

Мова L, — це множина рядків скінченної довжини у за­даному скінченному алфавіті.

Перше важливе питання: як описати мову L в тому випадку, коли вона нескінченна. Якщо довжини всіх рядків обмежені, то L складається із скінченного числа рядків і можна скласти список всіх рядків з L. Однак для багатьох мов не можна або небажано встановити верхню границю припустимої дов­жини рядку мови. Такі мови не можна визначити переліком всіх рядків. Необхідний опис мови повинен бути скінченним, у той час, як мова може бути нескінченною. Відомо кілька таких способів опису мов. Один з них полягає у використанні системи, що називається граматикою. Залежно від способу визначення мови граматики ділять на ті, що розпізнають, і ті, що породжують.

27. . Перетворення рядків символів

Алфавіт, рядок, символ, підалфавіт, поширення алфавіту, порожній рядок, довжина рядку, конкатенація рядків, підрядок

Формальний алфавіт зображує множину неділених символів. Скінченні послідовності букв алфавіту називаються рядками, вираженнями у цьому алфавіті.

Алфавіти ми будемо позначати великими буквами латин­ського алфавіту, наприклад, А, В, С.

Символи ми будемо позначати маленькими буквами ла­тинського алфавіту з індексами або без індексів, наприклад, а1 а2 аn.

Визначення

Якщо А і В — алфавіти та А с В, то А називається пі- далфавітом В і В —- поширенням А.

Визначення

Порожній рядок — це рядок, який не має символів. Позначимо його є. Порожній рядок не є символом і не належить ніякому алфавіту.

26. Задача формалізації мов та перекладу

Необхідність формального задания мов та розв'язку задачі

Перекладу в програмуванніСучасні ЕОМ являють собою складні комплекси пристро­їв, що постачаються розвиненими системами математичного забезпечення, які містять мови програмування і транслятори з цих мов, операційні системи, диспетчери, монітори, різного роду обслуговуючі програми, а також системи стандартних і типових підпрограм. Усі ці засоби можуть бути реалізовані як програмним, так і схемним способом. Процес розробки систем математичного забезпечення, як і проектування самих ЕОМ, надзвичайно складний і трудомісткий. Одним з основ­них джерел задач е проблема задания мови та оптимального перекладу з однієї мови на іншу. Задача перекладу може бути сформульована таким чином: існують дві алгоритмічні мови і деякий алгоритм, написаний на одній з них; треба знайти оптимальну за заданими критеріями реалізацію цього алго­ритму на іншій мові. В програмуванні за звичаєм першою є деяка мова програмування, орієнтована на те чи інше коло задач, а дугою — внутрішня мова машини, на якій розв'язу­ються ці задачі. Таким чином, йдеться про переклад з мови програмування на машинну мову з одночасною оптимізацією вихідної програми. Ця задача розв'язується при проектуван­ні трансляторів і компіляторів. У той же час вихідним може бути алгоритм роботи деякого пристрою ЕОМ, записаний на призначеній для цієї цілі алгоритмічній мові, а мова, на яку перекладається даний алгоритм, — це мова схем. Тоді задача полягає в одержанні оптимальної схеми, що реалізує алгоритм роботи даного пристрою або деякої його частини. Процес роз­в'язку таких задач на практиці поділяється на проміжні ета­пи, на кожному з яких робиться оптимізація і присутня своя мова. Формальне задания мови необхідне як для самого процесу перекладу, так і для визначення класу припустимих записів на цій мові, тобто для визначення коректності або припустимості запису, що перекладається на іншу мову. Мови складаються з рядків символів і, отже, весь обчислювальний процес можна розглядати як перетворення однієї множини рядків на іншу, тобто як математичний об'єкт.

25. Коди Хеммінга - найбільш відомі і, ймовірно, перші з Самоконтролюючою і самокорректірующіхся кодів. Побудовані вони стосовно до двійковій системі числення.

В елементах пам’яті, виготовлюваних у вигляді напвіпровідникових ВІС, а також в процесорах підвищеної надійності використовується оперативний апаратний контроль за допомогою кодів Хемінга.

Коди Хемінга призначені або для виправлення однократних помилок при d=3, або для виправлення однократних та виявлення (без виправлення) подвійних помилок при d=4.

Контрольні знаки в коді Хемінга займають фіксовані позиції – позиція і-го контрольного знака має номер 2і-1. Кожен з контрольних знаків є знаком парності для певної групи інформаційних знаків слова. Кількість груп співпадає з кількістю контрольних знаків. Кожна група починається з відповідного контрольного знака і містить всі ті позиції контрольованої комбінації, двійкові зображення номерів яких мають одиницю в тому ж розряді, що й двійкове зображення номера позиції контрольного знака (таблиця 1).

Таблиця 1.

Номер

перевірки

Позиція контрольного знака

Перевірювані позиції

1

2

3

4

5

1

2

4

8

16

1, 3, 5, 7, 9, 11, 13, 15, …

2,3; 6,7; 10,11; 14,15; …

4,5,6,7; 12,13,14,15; 20,21,22,23; …

8,9,10,11,12,13,14,15; 24,25,26,27,28,29,30,31; …

16,17,18,19,20,21,22, … ,31; …

Контроль виконується при кожному надходженні інформації в регістр (здійснюється одночасно k групових перевірок на парність). Якщо і-та перевірка дає в результаті непарність, в і-ий розряд регістра помилок записується одиниця, у випадку парності – нуль. Після k групових перевірок в регістрі помилок формується число, яке показує номер позиції розряда з помилкою.

23. Оптимальним кодуваннямназивається кодування, при якому забезпечується розподіл часу на передачу окремих символів алфавіту в залежності від апріорних ймовірностей їх появи:   ; (1)  де C п - пропускна здатність каналу; p i - апріорна ймовірність i-й кодової комбінації; t i-тривалість i-й кодової комбінації. 

35. Загальна характеристика автоматів

Автомат, схема автомата, односторонній автомат, тільки читаючий автомат, читаючий та пишучий автомат, пам'ять автомата, такт роботи автомата, керуючий пристрій, початкова та заключна конфігурація, детермінований та недетермінований автомати

Обчислення за алгоритмом можна розглядати як дея­кий процес, який описується своєю множиною станів, почат­ковим станом і правилами переходу із стану до стану. Ці пе­реходи можуть виконуватися залежно від зовнішніх впливів (вхідних даних), під впливом деякого випадкового механізму або якось інакше, наприклад, за вибором деякої «живої іс­тоти». Процес, у якому переходи виконуються під впливом зовнішніх дій, моделюється за допомогою автомата. Авто­мат — це схематизований алгоритм. Використовуючи автома­ти, можна моделювати багато машин, включаючи компоненти комп'ютера.

Коли визначено задачу, яку необхідно розв'язати, вини­кають три питання. Перший — чи можливе розв'язання цієї задачі. Другий — яким чином можна розв'язати цю задачу. Третій — яка складність розв'язку цієї задачі. Використовую­чи такі обчислювальні моделі, як автомати, можна дослідити питання розв'язності і складності різних задач. Як і грамати­ки, автомати також використовуються під час дослідження граматичної структури мов.

19. 20. Алфавітне й рівномірне кодування Без утрати загальності можна сформулювати задачу кодування так . Означення 21.1. Нехай задано алфавіт А = {a1, …, an} зі скінченної кількості символів , які називають буквами . Скінченну послідовність букв алфавіту A називають словом у цьому алфавіті . Для позначення слів будемо використовувати малі грецькі літери : α = ai1ai2…ail . Число l – кількість букв у слові α - називають довжиною слова α і позначають l( α ) або | α |. Множину всіх слів у алфавіті A позначають як A*. Порожнє слово позначають ε ; зазначимо , що ε ∉A, ε ∈A*, | ε |=0. Означення 21.2. Якщо слово α має вигляд α = α 1 α 2, то α 1 називають початком або префіксом слова α , а α 2 – його закінченням або постфіксом . Якщо при цьому α 1≠ ε (відповідно , α 2≠ ε ), то α 1 називають власним початком ( відповідно власним закінченням ) слова α . Для слів визначена операція конкатенації або зчеплення .

Означення 21.3. Конкатенація слів α та β є слово αβ , отримане виписуванням підряд спочатку всіх букв слова α , а потім всіх букв слова β . Зазвичай операція зчеплення ніяк не позначається . Означення 21.4. Довільна множина L слів у деякому алфавіті A називається мовою в цьому алфавіті , L ⊂ A*. Нехай задано алфавіти A = {a1, …, an}, B = {b1, …, bm} і функція F: S → B*, де S – деяка множина слів у алфавіті A, S ⊂ A*. Тоді функція F називається кодуванням , елементи множини S – повідомленнями , а елементи β = F( α ), α ∈S, β ∈B* – кодами ( відповідних повідомлень ). Обернена функція F-1, якщо вона існує , називається декодуванням . Якщо |B| = m, то F називають m-ковим кодуванням . Найчастіше використовується алфавіт B = {0, 1}, тобто двійкове кодування . Саме його ми й розглядатимемо в наступних підрозділах , випускаючи слово « двійкове ». Відображення F задають якимось алгоритмом . Є два способи задати відображення F. Алфавітне кодування задають схемою ( або таблицею кодів ) σ : a1 → β 1, a2 → β 2, … an → β n, де ai ∈ A, β I ∈ B*, i = 1,…, n. Схема σ задає відповідність між буквами алфавіту A та деякими словами в алфавіті B. Вона визначає алфавітне кодування так : кожному слову α = ai1ai2…ail із повідомлення S поставлено у відповідність слово β = β i1 β i2… β il – його код . Слова β 1, …, β n називають елементарними кодами . Наприклад , розглянемо алфавіт A = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, B = {0, 1} і схему : σ 1 = 〈0 → 0, 1 → 1, 2 → 10, 3 → 11, 4 → 100, 5 → 101, 6 → 110, 7 → 111, 8 → 1000, 9 → 1001 〉. Ця схема однозначна , але кодування не є взаємно однозначним : F σ 1 (333) = 111111 = F σ (77), а значить , неможливе декодування . З іншого боку , схема σ 1 = 〈0 → 0000, 1 → 0001, 2 → 0010, 3 → 0011, 4 → 0100, 5 → 0101, 6 → 0110, 7 → 0111, 8 → 1000, 9 → 1001 〉, відома під назвою « двійково -десяткове кодування », допускає однозначне декодування . Рівномірне кодування з параметрами k й r задають так . Повідомлення α розбивають на блоки довжиною k: α = ( x1…xk)( xk+1 …x2k)…( xmk +1 …xpk+s), де s≤k ( останній блок може бути коротшим , у такому разі спосіб його кодування спеціально обумовлюють ), xi∈A, i = 1,…, pk + s. Блоки довжиною k розглядають як « букви » якогось алфавіту ( таких блоків , очевидно , nk, бо алфавіт A складається з n букв ) і кодують словами в алфавіті B довжиною r за схемою рівномірного кодування σ k,r: α 1 → β 1, α 2 → β 2, …

nn kk βα → .

Надлишковістю схеми

σ k,r на символ повідомлення називають величину

1( / ))/( −=−= nkkkRn .

21.2. Роздільні схеми Розглянемо схему алфавітного кодування

σ та різні слова , складені з елементарних

кодів .

Означення 21.5. Схему

σ називають роздільною , якщо з рівності

kl jjii ββ ββ ... ... 11 = випливає , що k = l та it = jt для кожного t = 1,…, k, тобто будь -яке слово , складене з елементарних кодів , можна єдиним способом розкласти на елементарні коди .

Алфавітне кодування з роздільною схемою вможливлює однозначне декодування . Означення 21.6. Схему σ називають префіксною , якщо для будь -яких i та j (i, j = 1,…, n, i≠j) елементарний код β i не є префіксом елементарного коду β j. Теорема 21.1 ( без доведення ). Префіксна схема є роздільною . Властивість префіксності достатня , але не необхідна умова роздільності схеми . Наприклад , нехай A = {a, b}, B = {0, 1}, σ = 〈 a → 0, b → 01 〉. Схема σ не префіксна , але роздільна . Справді , перед кожним входженням 1 в слові β 2 безпосередньо є 0. Це дає змогу виділити всі пари (01). Частина слова , що залишилась , складається із символів 0. Щоби схема алфавітного кодування була роздільною , необхідно , щоби довжини елементарних кодів задовольняли певному співвідношенню , відомому як нерівність Мак - Міллана . Теорема 21.2 ( нерівність Мак -Міллана , без доведення ). Якщо схема алфавітного кодування n iiia 1 = =→ βσ роздільна , то

1

2 1

1 ≤∑ = n i li

, де li = | β i|.

Теорема 21.3 ( без доведення ). Якщо числа l1,…, ln задовольняють нерівність

1

2 1

1 ≤∑ = n i li

( нерівність Мак -Міллана ),

то існує префіксна схема алфавітного кодування σ : a1 → β 1, … an → β n, де li = | β i|. Наслідок 1 . Нерівність Мак -Міллана – необхідна й достатня умова існування алфавітного кодування з префіксною схемою та довжинами елементарних кодів , що дорівнюють l1,…, ln. Наслідок 2. Якщо існує роздільна схема алфавітного кодування із заданими довжинами елементарних кодів , то існує й префіксна схема з тими самими довжинами елементарних кодів .

39. Машини Тьюринга

Машини Тьюринга можуть моделювати не тільки розпізна­вання рядків мови, але і будь-які інші обчислювальні алгорит­ми. Очевидно, що для виконання таких найпростіших обчис­лень, як додавання або множення, потрібні досить громіздкі машини Тьюринга. Декілька спрощує структуру цих машин додавання додаткових паралельних вхідних і вихідних стрі­чок. Але зрозуміло, що машина Тьюринга не є оптимальним пристроєм для практичного виконання обчислень або розпізна­вання мов. Основна ціль їх створення полягає у дослідженні з їх допомогою питань складності алгоритму та алгоритмічної розв'язності. Якщо вдається довести, що для розв'язку деякої задачі неможливо побудувати машину Тьюринга, то це означає, що не існує й алгоритму для її розв'язку.

Визначення

Недетермінований розпізнавач, пам'яттю якого є первин­но порожня стрічка машини Тьюринга довжиною не біль­ше вхідного ланцюжка, називається лінійно-обмеженим автоматом.

Мова визначається лінійно-обмеженим автоматом тоді і тіль­ки тоді, коли вона контекстно-залежна.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]