Я натрапив на багато визначень рекурсивних та рекурсивно перелічених мов. Але я не міг повністю зрозуміти, що вони є.
Може хтось, будь ласка, скажи мені, що вони бувають простими словами?
Я натрапив на багато визначень рекурсивних та рекурсивно перелічених мов. Але я не міг повністю зрозуміти, що вони є.
Може хтось, будь ласка, скажи мені, що вони бувають простими словами?
Відповіді:
Не зовсім. Вам слід прочитати кілька книг. Можливо, ми можемо рекомендувати деякі.
Однак, мова є рекурсивною, якщо є машина Тьюрінга, ніж завжди можна відповісти "так" або "ні", якщо дана рядок є частиною цієї мови. Якщо ми скасуємо цю вимогу, щоб просто сказати "так" для рядків мови (вона може працювати назавжди, якщо її немає), тоді у нас є рекурсивно перелічувана мова. Не важко зрозуміти, що рекурсивну мову може визначити машина Тьюрінга, тоді як рекурсивно перелічувана мова може мати перелічені рядки (наприклад, паралельно запускаючи нескінченну кількість машин Тьюрінга - так це можливо, див. dove-tailing - на всіх рядках алфавіту та виведення рядка, якщо відповідна TM приймає). Є багато, багато рівнозначних визначень.
Проблема є рекурсивною або вирішуваною, якщо машина може обчислити відповідь.
Проблема є рекурсивно перелічуваною або нерозбірливою, якщо машина може бути переконана, що відповідь позитивна.
Мова являє собою набір рядків. Можливо, нескінченної кардинальності.
Мова є рекурсивно численною, якщо існує TM, який зберігає виводить рядки, що належать до мови (і лише такі рядки), такі, що в кінцевому підсумку кожна рядок на мові буде у висновку.
Мова є рекурсивним, якщо вищезгадана TM не тільки виводить усі рядки в мові, але й робить це по порядку! (скажімо, лексикографічно).
Я впевнений, що ви можете легко придумати рекурсивні мови (і створити TM, який виводить їх на замовлення). Досить складно придумати рекурсивні численні мови (які не є рекурсивними), якщо тільки ви не прочитаєте більше про нерозбірливість та діагоналізацію. Але такі мови існують.
Рекурсивні мови можуть бути вирішені деякою машиною Тьюрінга, тобто є TM, який може, даючи будь-який рядок введення (над відповідним алфавітом) правильно відповісти "так", якщо рядок є мовою, або ні, якщо її немає.
Рекурсивно перелічувані мови розпізнаються лише, тобто існує машина Тьюрінга, яка приймає, коли рядок є мовою, але вона може циклічно назавжди, якщо рядок не є мовою.
Я відчуваю, що головна відмінність між рекурсивними та рекурсивно перелічуваними мовами полягає в тому, що машина рекурсивного Тюрінга зупиняється в не остаточному стані, якщо вона не приймає рядок
Рекурсивно перечислювальна машина Тьюрінга, якщо вона не приймає рядок, може назавжди зупинятися в остаточному стані або циклі, що не стосується рекурсивних мов
==> Мова є рекурсивною, якщо існує машина Тьюрінга, яка приймає кожну рядок мовою і відкидає, якщо її немає. наприклад, давайте взяти машину Тьюрінга M і String w: якщо рядок w є членом машини Тьюрінга M, то M зупиняється в остаточному стані, інакше вона відкидає обчислення. ==> ==> Мова є рекурсивно численною, якщо існує машина Тьюрінга, яка приймає кожний рядок мовою і відкидає, якщо її немає в мові, може бути петлею назавжди. наприклад, давайте взяти машини Turing M і String w: якщо рядок w є мовою, то M зупиняється в остаточному стані. В іншому випадку він відкидає обчислення або може бути запущений назавжди.