Є багато (і я маю на увазі багато) лічильних мов, які можна визначити Тьюрінгом. Чи може будь-яка незліченна мова бути Тюрінгом вирішальною?
Є багато (і я маю на увазі багато) лічильних мов, які можна визначити Тьюрінгом. Чи може будь-яка незліченна мова бути Тюрінгом вирішальною?
Відповіді:
Кожна мова над обмеженим (або навіть лічильним) алфавітом є лічильною. Якщо припустити, що алфавіт машин Тьюрінга є обмеженим, будь-яка мова, яку він, можливо, може прийняти, можна переглянути.
Ми можемо мати незлічувані мови лише в тому випадку, якщо ми допускаємо слова нескінченної довжини, див., Наприклад, звичайну мову Омега . Ці мови називаються -мовні мови. Іншим прикладом буде мова підмножини реалів, яка містить, скажімо, десяткові розширення всіх реальних чисел.
Існують деякі моделі, в яких машини Тьюрінга модифікуються, щоб приймати -мовні мови. Деякі з цих моделей використовують умову Buchi для прийняття. Оскільки ви не можете побачити весь вхід за кінцевий час, ми кажемо, що введення прийнято, якщо машина Тьюрінга входить у стан прийняття нескінченно багато разів. Якщо ми можемо довести це, проаналізувавши вхід (а не запустивши його), ми скажемо, що введення прийнято.
Класична обчислюваність обговорює функції над кінцевими рядками з кінцевого алфавіту. Як результат, всі мови, чи можна визначити, чи можна визначити, чи їх не можна визначити.
Щоб вважати незліченними мови, ми повинні дивитися на нескінченні рядки замість кінцевих рядків. (AFAIK, що має нескінченний алфавіт, не дуже цікавий і не відповідає реалістичній моделі обчислення сам по собі.)
Існують моделі обчислень, де ми можемо мати справу з нескінченними рядками, які дозволяють представляти об'єкти з незлічуваних доменів, як реальні числа. Вони часто представлені як обчислення вищого типу. Однією з моделей, яка використовує машини Тьюрінга, є модель TTE. У цій моделі вхід може бути нескінченним рядком, і машини можуть отримати доступ до будь-якого елемента в рядку, який він хоче. Машина не потребує завершення роботи, проте є умови, щоб переконатися, що вихід машини збільшиться.
Припустимо, що вхід нашої машини походить від , тобто нескінченних рядків з алфавіту Σ , наприклад Σ = { 0 , 1 } . Тоді є Σ N = 2 N рядків. Тому існує 2 2 N можливих мов. Кількість машин TTE Turing досі підраховується. Тож більшість цих мов не можна визначити.
Але є щось ще цікавіше: якщо ви хочете, щоб машина завжди зупинялася, вона зможе прочитати лише обмежену початкову частину вводу. У результаті ми маємо наступне: Нехай - це машина TTE, яка завжди зупиняється (у кінцевий час). Тоді є префікс-вільного мову L ∈ Е * і машина Тьюринга Н , таке , що для будь-якого х ∈ Х ш , М приймає й тоді і тільки тоді Н приймає початкову частину х , який знаходиться в L .
Простіше кажучи, обчислення машин TTE Turing, які завжди зупиняються, визначається обчисленням машини Тьюрінга на кінцевих струнах.
Дозвольте навести декілька прикладів рішучих та невизначених мов нескінченних рядків:
Для будь-якого мова нескінченних рядків, k позиція яких дорівнює 0, визначається. Те ж саме, k -та позиція - 1. Перетин будь-яких двох мов, що можна вирішити, можна визначити, наприклад, рядки, 3- е місце яких становить 0, а 6- е місце - 1.
Об'єднання будь-яких двох мов, що можна вирішити, можна вирішити. Наприклад, рядки, які починаються з або 10 .
Мова визначається, якщо мова і її доповнення є напіврозбірливими.
нам.
На веб-сайті також є безліч інших посилань на обчислюваність та складність в мережі аналізу .