Чи можна визначити, чи заданий алгоритм є асимптотично оптимальним?


11

Чи існує алгоритм для наступної проблеми:

Враховуючи машину Тюрінга яка визначає мову , чи існує машина Тьюрінга вирішує таку, що ? L M 2 L t 2 ( n ) = o ( t 1 ( n ) )M1L
M2Lt2(n)=o(t1(n))

Функції і - найгірший час роботи машин Тьюрінга і відповідно.t 2 M 1 M 2t1t2M1M2

А як складність простору?


1
Відповідь точно не є. Визначення найгіршого часу роботи ТМ, як відомо, не можна визначити.
chazisop

Відповіді:


9

Ось простий аргумент, який показує, що вони не визначаються, тобто немає алгоритмів, щоб перевірити, чи заданий алгоритм є оптимальним щодо його часу роботи або використання пам'яті.

Ми зводимо проблему зупинки на порожній стрічці до вашої проблеми щодо оптимальності виконання часу.

Нехай - дана машина Тьюрінга. Нехай N є наступною машиною Тюрінга:M

n M n M n 2 nN : на вході 1. Виконайте на порожній стрічці протягом (не більше) кроків. 2. Якщо не зупиниться на кроках, запустіть цикл розміром , а потім поверніть NO. 3. В іншому випадку поверніть ТАК.n
Mn
Mn2n

Є два випадки:

  1. Якщо не зупиняється на порожній стрічці, машина запустить для кроків на вході . Отже, його час роботи . У цьому випадку очевидно не є оптимальним.N Θ ( 2 n ) n Θ ( 2 n ) NMNΘ(2n)nΘ(2n)N

  2. Якщо зупиняється на порожній стрічці, то машина буде виконувати постійну кількість кроків для всіх досить великих , тому час роботи . У цьому випадку очевидно є оптимальним.N n O ( 1 ) NMNnO(1)N

Коротко:

M halts on blank tape N is optimial 

Крім того , з огляду на код для ми можемо обчислити код . Тому ми маємо скорочення від проблеми зупинки на порожній стрічці до проблеми оптимальності виконання часу. Якби ми могли вирішити, чи оптимальна дана машина Тьюрінга , ми могли б скористатись вищенаведеним скороченням, щоб перевірити, чи зупиняється дана машина на порожній стрічці. Оскільки зупинка на порожній стрічці неможлива, то ваша проблема також не може бути вирішена.Н Н МMNNM

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

Навіть більш сильне твердження вірно: ми не можемо визначити, чи задана обчислювальна функція є верхньою межею часової складності обчислення даної обчислюваної функції. Аналогічно для простору. Тобто навіть теорія базової складності не може бути автоматизована алгоритмами (що можна вважати хорошою новиною для теоретиків складності;).


Хочу лише зазначити, що в оригінальному запитанні ОП припускав, що визначає мову в квадратичний час. M1
Pål GD

Поясніть, будь ласка, що ви дивитесь на асимптотичну оптимальність. Навіть у випадку 2, не є строго оптимальним; функцію можна обчислити за один крок, тоді як потрібно більше (для великих ), при - довжина обчислення на порожній стрічці. n ТАК Н n 0 n n 0 MnnYESNn0nn0M
Рафаель

Ах, питання змінилося з моменту останнього його читання. Не звертай уваги.
Рафаель

@ PålGD, я думаю, що ОП використовував це як приклад (на основі оригінального питання, розміщеного на cstheory). Ви можете перевірити коментарі під цим питанням.
Kaveh

2

Як згадували інші, відповідь - ні.

Але є цікава стаття, написана Блюмом " Машинно-незалежна теорія складності рекурсивних функцій ". Він показав, що є деякі функції з властивістю, які незалежно від того, наскільки швидкою може бути програма для обчислення цих функцій, існує інша програма для їх обчислення набагато швидше .

дуже приємна власність!


-3

Га! Якби відповідь була так, ми б жили в іншому світі.

Уявіть, що відповідь на ваше запитання - так (і, звичайно, ми знали алгоритм який би відповів на ваше запитання), тоді для будь-якого алгоритму для мови ми могли б сказати (використовуючи ), чи оптимальний чи ні . A L A 0 AA0ALA0A

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


1
Для деяких проблем відомі межі форми та алгоритми, які задовольняють це. Прості приклади, наприклад, сортування за допомогою порівняння, знаходження найменшого елемента масиву. Ω(N)
vonbrand

1
По-перше, "асимптотично оптимальний" не є таким же, як "оптимальний". По-друге, ви не відповідаєте на запитання. По-третє, є нижні межі для (певних видів) алгоритмів сортування. Ω(nlogn)
Рафаель

@vonbrand - ось що я мав на увазі під алгоритмами, пропорційними розміру введення.
t до t

1
@ttothet Добре, я боюся, що це буде безрезультатним, але я спробую ще раз. 1) Ні, зовсім не. Якщо ви зберігаєте лише один крок на кожному вході, у вас є кращий алгоритм, ніж раніше, хоча він має той самий асимптотичний час виконання. 2) Ні, це не так. Це також може означати "я не знаю, але якщо так, то X". Це не рідкість (пор. P? = NP). 3) Ви стверджували , що були жодного нетривіальних нижніх меж (на асимптотиці, я вважаю) взагалі . Це неправильно. Робіть домашні завдання, будь ласка.
Рафаель

1
@ MartinJonáš Я маю на увазі 2-стрічкову машину Тюрінга. У Kaveh є пункт, доказ теореми про ієрархію часу дає задачі, що розв'язуються в поліметрії, з довільно високою складністю, але приклади не є абсолютно природними і не відчуваються дуже явними. Крім того, не існує ієрархії з імовірнісним часом, тому там насправді немає нічого.
Сашо Ніколов
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.