Чи є невизначена кінцева мова кінцевих слів?


10

Чи потрібно, щоб був нескінченним, щоб бути невизначеним?LΣ

Я маю на увазі, що якщо ми виберемо мову буде обмеженою кінцевою версією , тобто , ( ), з . Чи можливо бути невід’ємною мовою? L | L | N N N L L L LΣ|L|NNNLLL

Я бачу, що існує проблема "Як вибрати слів, які L '", для яких ми повинні встановити правило для вибору, які були б першими N елементами L " , свого роду" кінцевою "зіркою Клінова операція. Мета - знайти мову невідповідності, не потребуючи нескінченного набору, але я не можу її бачити.L N L N L"NL

ЗМІТИ Примітка:

Хоча я вибрав відповідь, багато відповідей і всі коментарі важливі.


Тут, схоже, є (принаймні) три питання. Сконцентруйтеся на одній та відредагуйте інші.
Рафаель

Я видалив посилання на набір потужності, оскільки це не актуально; P(S) є кінцевим, якщо і лише тоді, коли S є кінцевим.
Рафаель

@Raphael Це нормально, але я згадую про потужність, тому що іноді я читаю "немає викиду з на , таким чином , повинна існувати мова, яку не можна визначити". P ( N ) NP(N)L | L | NN N P (S)Я хотів би зрозуміти, чому це не спрацювало з кінцевим набором , з з кінцевим, замість того, щоб знадобитися , тому я поставивL|L|NN NP(S)
Hernan_eche

1
Наскільки я знаю, існування нерозбірливих мов не випливає відразу з відсутності такого витіснення; вам потрібно трохи крихітних шматочків більше. Чому, це поставило б ще одне чудове запитання! Чому ти не підеш далі і не попросиш? З цього ви бачите, чому аргумент не переноситься на кінцеві мови.
Рафаель

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

Відповіді:


15

Так, існує потреба, щоб був нескінченним, щоб бути нерозбірливим.L

Щоб скласти відповіді Рафаеля і Сема, слід подумати про "рішуче", як про речі, які може вирішити комп'ютерна програма. Потрібна програма дуже проста, вона просто повинна вивести "Так" для елементів у , інакше сказати "ні".L

Отже, чим "складніший" , тим довше програма, яку вам потрібно написати. Іншими словами, чим довше програма, яку ви запускаєте, ви можете перевірити більше речей ... Отже, якщо хтось дає мову яка є кінцевою, скажімо , ви можете написати наступна програма:L L = { a 1 , a 2 , , a n }LLL={a1,a2,,an}

if INPUT = $a_1$ output Yes;
if INPUT = $a_2$ output Yes;
...
if INPUT = $a_n$ output Yes;
output No;

Тепер, якщо хтось дасть вам більший (ще скінченний), ви просто напишете довшу програму. Це завжди правда, і будь-який кінцевий матиме власну програму. Єдиний "цікавий" випадок - це те, що відбувається, коли нескінченний - ваша програма не може бути нескінченною.L LLLL

Питання про "нерозбірливість" ще цікавіше: його ті (нескінченні) , які не мають програми, яка б їм працювала правильно. Ми знаємо, що такі мови повинні існувати, оскільки існує набагато більше (нескінченних) мов ніж кількість програм кінцевої (але необмеженої) довжини.LLL


+1 Це дуже чітка відповідь, я хотів би, щоб ви розширили крапку, ви сказали, "якщо хтось із п'яти у вас більший (ще скінченний), ви просто напишете довшу програму" * але я думаю, що навпаки, зважаючи на ** фіксований ** кінцевий набір програм , що, якщо ви не можете написати більш довгу програму, я думаю, що деякі імпульси кінцевий набір вимкнуть ДА, а деякі не . Як , то деякі імпульси будуть відповідати індикаторним функціям але * більшістьP | П | = K L P ( P ) > K L P LP|P|=KLP(P)>KLP не буде !, тому що можливі мови > K2K>Kможливі програми, тоді будуть нерозв'язні проблеми. Я помиляюся? чому?
Hernan_eche

1
Дійсно, якщо ви обмежите розмір програми на то існує максимум різних програм, які правильно класифікують не більше різних мов (нескінченна чи ні). Отже, для цього конкретного набору програм існує невідмінна мова і навіть обмежена. Але це слабше твердження, оскільки ви вважаєте лише обмежений набір програм (наприклад, , у вас є лише 2 можливі програми; звичайно, вони не зможуть зробити багато і вийдуть з ладу майже на кожній мові )O ( 2 k ) O ( 2 k ) | П | = 1 л|P|=kO(2k)O(2k)|P|=1L
Ран Г.

спасибі, я знаю , що це слабке твердження, але це сміливе , що може бути кінцевими і нескінченними нерозв'язних Мови, і я думаю , що це особливий випадок повинен бути включений в вашій відповіді, парта «Так, існує потреба в L нескінченний в щоб бути невирішеним. " схоже, не є потребою в певних умовах.
Hernan_eche

6
Не зовсім. Термін "невизначається" має специфічне значення: не може бути вирішений стандартною машиною Тьюрінга. Таким чином, щоб бути undecidable, повинен бути нескінченним. Те, що ви хочете, не є іншим терміном, а саме "не може бути вирішене ". Назвіть останнього визначається. Тоді для будь-якого кінцевого P немає необхідності, щоб L був нескінченним, щоб бути P- нерозбірливим. Просто не плутайте (або неправильно використовуйте) і PP PL undecidablePPPLPundecidableP
Ran G.

10

Я не впевнений, що я правильно розумію це питання, але кожна обмежена мова є регулярною. Немає регулярних мов, які не можна визначити, і, отже, немає кінцевих мов, які не можна визначити. Усі ці твердження добре відомі, і докази можна знайти у Хопкрофта та Уллмана .


8

Якщо ваша мова кінцева, ви можете виконати пошук таблиці на твердо кодованій таблиці, що містить усі слова в L ' . Це незручно записати як машину Тюрінга, але в інших, еквівалентних моделях, це цілком зрозуміло.LL

Насправді кінцевих автоматів достатньо. Побудуйте автоматику для так:L

  1. Для кожного створіть лінійну ланцюжок станів, яка приймає w .wLw
  2. Створіть новий початковий стан .q0
  3. Підключіть до початкових станів усіх автоматів, побудованих у 1. за допомогою ε -переходів.q0ε

LLREGRE

Зауважимо, що деякі міркування застосовуються до співмежних , тобто ; ви просто жорстко кодуєте елементи не в .| ¯ L | < L L|L¯|<L


2

Щоб взагалі було цікаво (для того, щоб подумати про обчислюваність), на рішення проблеми повинно бути нескінченно багато відповідей "так" і нескінченно багато відповідей "ні". Такі проблеми рішення точно відповідають мовам, що містять нескінченно багато рядків над своїм алфавітом, а також виключають нескінченно багато рядків над своїм алфавітом.

Все інше може бути кодовано лише обмеженою кількістю інформації (в гіршому випадку - просто великий список рядків на мові чи ні), і тому можна обчислити простими DFA / регулярними виразами. Я сподіваюся, що очевидно, що для будь-якого обмеженого списку рядків ви можете негайно записати регулярний вираз, який просто АБО всі рядки.

Дотепність мого викладача з теорії обчислень полягала в тому, що проблема "чи існує Бог?" обчислюється - це або обчислюється машиною, яка негайно приймає, або машиною, яка негайно відхиляє; ми просто не знаємо, який з них!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.