Еквівалентні визначення конструктивності часу


13

Ми говоримо, що функція може бути сконструйована за часом , якщо існує детермінований багатоступеневий апарат Тюрінга який на всіх входах довжини робить не більше кроків і для кожного існує деякий вхід довжини на якому робить різко кроки.f:NNn f ( n ) n n M f ( n )Mnf(n)nnMf(n)

Ми говоримо, що функція може бути повністю сконструйована за часом , якщо існує детермінована багатосмугова машина Turing яка на всіх входах довжиною робить рівно кроків .f:NNn f ( n )Mnf(n)

Q1: Чи існує функція, яка може бути сконструйована за часом і не повністю сконструйована за часом?

Відповідь - так (див. Цю відповідь ), якщо . Чи можна посилити умову "так" до ? Чи можна «так» довести?P N PEXPTIMENEXPTIMEPNP

Q2: Чи змінюється клас (повністю) придатних для виконання функцій часу, якщо у визначенні ми допускаємо лише 2-стрічкові машини Тьюрінга?

Q3: Які "доказові" причини вважають, що всі приємні функції можна повністю сконструювати за часом?

Стаття
Kojiro Kobayashi: Про доведення часової конструкційності функцій. Теорія. Обчислення. Наук. 35: 215-225 (1985)
частково відповідає Q3. Часткове резюме та оновлення його є у цій відповіді . Я приймаю Q3 як відповідь.

Історично поняття функції обчислюваного в реальному часі використовувалося замість (повністю) конструюваного часу. Детальніше див. У цьому питанні .


Цікаво - ви могли б вказати мені на посилання на ці визначення? Я не знайомий з построімих функціями, і я не можу знайти ці визначення в Інтернеті (це також не очевидно для мене, є чи вони еквівалентні , наприклад , в Вікіпедії з них).
usul

@usul Посилання: JE Hopcroft, JD Ullman. Вступ до теорії автомати, мов та обчислень. Серія Аддісона-Уеслі в галузі інформатики, 1979 р. Те саме визначення можна знайти тут: cse.ohio-state.edu/~gurari/theory-bk/theory-bk-fivese2.html
Девід Г

Відповіді:


5

В останні кілька днів я багато думав про (повністю) конструювані часом функції, і я представлю те, що я дізнався, відповідаючи на Q1 та Q3. Q2 здається занадто важким.

Q3:

Кобаяші у своїй статті (посилання є у запитанні) довів, що функція , для якої існує st , повністю сконструйований за часом, якщо він обчислюється за час . (зауважте, що не має значення, чи вхід чи вихід є одинарними / двійковими, оскільки ми можемо перетворити між цими двома поданнями в лінійний час). Це робить наступні функції повністю конструктивними за часом: , ,, , усі поліноми над st ϵ > 0 f ( n ) ( 1 + ϵ ) n O ( f ( n ) ) 2 n 2 2f:NNϵ>0f(n)(1+ϵ)nO(f(n))2n n! nlognpNp(n)(1+ϵ)n(1+ϵ)nn+22nn!nlognpNp(n)(1+ϵ)n... Кобаяші також довів повну конструктивність часу для деяких функцій, які ростуть повільніше, ніж , як для ...(1+ϵ)nq Q +n+lognqqQ+

Для продовження прикладів функцій, повністю сконструйованих за часом, можна довести, що якщо і повністю сконструйовані за часом, то , , і також повністю конструюються часом ( пізніше випливає безпосередньо з теореми 3.1 Кобаяші). Це мене цілком переконує, що багато приємних функцій справді можна повністю сконструювати за часом.f 2 f 1 + f 2 f 1 f 2 f f 2 1 f 1f 2f1f2f1+f2f1f2f1f2f1f2

Дивно, що Кобаяші не бачив способу довести повністю конструктивність часу (приємної) функції (і я ні).nlogn

Прокоментуємо також визначення зі статті Вікіпедії : Функція може бути сконструйована за часом, якщо існує машина Тьюрінга яка, задавши рядок , виводить за час . M 1 n f ( n ) O ( f ( n ) )fM1nf(n)O(f(n)) Ми бачимо, що це визначення еквівалентне нашому визначенню повністю конструктивної за часом функцій .f(n)(1+ϵ)n

Q1:

На це питання є дійсно цікава відповідь. Я стверджую, що якщо всі функції, які можна сконструювати за часом, можна повністю сконструювати час, то . Щоб довести це, візьмемо довільну задачу , . Тоді існує , st може бути вирішено NDTM у кроки. Можна припустити, що на кожному кроці переходить в максимум два різні стани для простоти. Тепер визначимо функцію L N E X P - T I M E L { 0 , 1EXPTIME=NEXPTIMELNEXPTIMEL{0,1}kNLM2nk1M

f(n)={8n+2if (first logn+1k bits of bin(n))L8n+1else

Я стверджую, що може бути сконструйованим часом. Розглянемо наступну детерміновану машину Тюрінга :fT

  • при введенні довжини він обчислює у часwn(first logn+1k bits of bin(n))O(n)
  • то вона імітує на цих бітах, де біти визначають, який (раніше недетермінізований) вибір вибрати.Mw
  • прийняти iff .(M accepts using choices given by w)

Зауважте, що довжини ( ) достатньо, щоб вона визначала всі недетерміновані варіанти, оскільки на вході робить не більше кроків.w=nM(first logn+1k bits of bin(n))n

Ми можемо зробити запуск не більше кроків. Тепер наступна машина Тьюрінга доводить, що можна сконструювати за часом:T8n+1f

  • на вході довжини пробіг і паралельно підраховуйте кроки, так що кроків.wnT8n
  • якщо відхилено або буде відхилено на наступному кроці, перейдіть до стану зупинки на наступному кроці. Ще, зробіть ще один крок і перейдіть до стану зупинки.T

Тепер припустимо, що повністю може бути сконструйований за часом. Ми доведемо, що це призводить до .fEXPTIME=NEXPTIME

Наступний алгоритм вирішує :L

  • на вході нехай - число з двійковим поданням ( нулі). Звідси випливає, що .xnx000|x|k1x=(first logn+1k bits of bin(n))
  • обчисліть у часі і перевірте, чи воно ділиться на 2.f(n)f(n)

Цей алгоритм працює в експоненційному час і вирішує . Оскільки було довільним, .L N E X P - T I M E E X P - T I M E = N E X P - T I M ELLNEXPTIMEEXPTIME=NEXPTIME


4
Дуже хороша! [підкладка для того, щоб зробити поле для коментарів щасливим]
Еміль Єржабек

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