Понятия эффективного вычисления

11

Алгоритм машины Тьюринга за полиномиальное время считается эффективным, если его время выполнения, в худшем случае, ограничено полиномиальной функцией входного размера. Мне известен сильный тезис Черча-Тьюринга:

Любая разумная модель вычислений может быть эффективно смоделирована на машинах Тьюринга.

Тем не менее, я не знаю основательной теории для анализа вычислительной сложности алгоритмов -calculus.λ

Есть ли у нас понятие вычислительной эффективности для каждой известной модели вычислений? Существуют ли модели, которые полезны только для вопросов вычислимости, но бесполезны для вопросов сложности вычислений?

Мухаммед Аль-Туркистани
источник

Ответы:

9

Насколько я знаю, основными моделями вычислимости являются λ-исчисление, машины Тьюринга и рекурсивные функции . Мне неизвестна ситуация со сложностью в рекурсивных функциях, они могут или не могут быть бесполезны для сложности.

По счастливой случайности это может быть замечено, что машины Тьюринга, которые не являются, пожалуй, очень неэффективными машинами, также являются очень хорошей моделью сложности. То, что сделало вещи естественными, состоит в том, что существует множество трансформаций с участием ТМ, которые являются полиномиальными. (Универсальная машина, имитация лентной машины с 1-лентной машиной, от произвольного алфавита до двоичного, имитирующего PRAM , ...) и то, что многочлены - это класс функций, устойчивых арифметическими операциями и композицией - что делает их хорошим кандидатом для теории сложности.n

Чистое λ-исчисление само по себе бесполезно для сложности. Однако в игру вступила система простого типа, которая позволила гарантировать завершение некоторых λ-членов очень простым способом. Затем некоторые другие системы (системы T , F , ...) допускали большую выразительность при сохранении завершения.

Эффективность или сложность, являющиеся уточнением терминации, а типы, тесно связанные с логикой, позже стали легкой линейной логикой, которая характеризует несколько классов сложности. ( Элементарный , P и некоторые вариации для PSPACE и др.). Исследования в этой области очень активны и не ограничиваются этими классами сложности и даже не ограничиваются λ-исчислением.

tl; dr: λ-исчисление было полезно для вычислимости, терминации и теории сложности.

Однако, чтобы отдать должное должному, машины Тьюринга - хороший и единодушный способ определить, что такое сложность, но это справедливо только для свободных границ, таких как «полином», а не для точных границ, для которых модели, подобные PRAM, более подходят.

jmad
источник
Почему тогда мы проводим большую часть нашего анализа времени выполнения с использованием моделей, подобных ОЗУ?
Рафаэль
В реальности базовые операции с памятью выполняются в (я бы сказал, ), поэтому модели, подобные RAM, намного больше подходят для жестких границ, таких как . Так что вы правы: машины Тьюринга хороши, когда преобразование из PRAM не сильно влияет на ваши границы. (Например, когда вы докажете, что ваша проблема в P или в L / NL)O ( журнал | м е т о г у | ) п войти 2 7O(1)O(log|memory|)nlog27
jmad
@ Рафаэль: ты реагировал на мое последнее предложение, верно?
Джмад
Да, я сделал (ради неопытного читателя).
Рафаэль
1

С точки зрения сложности времени, я думаю, что это трудно на лямбда-исчисление. Причина в том, что шаг вычисления единицы в лямбда-исчислении - это -reduction ( запись в Википедии ): Все выражения, независимо от их длины, потребовалось бы вычислительный шаг по этой модели.( λ x . t e r m ) v t e r m [ x : = v ] 1β

(λx.term)vterm[x:=v]
1

источник
Вы можете определить стоимость сокращения в зависимости от количества или размера переопределений. На самом деле это было тщательно изучено (например, ищите ссылки на оптимальное сокращение). β
Жиль "ТАК - перестань быть злым"
@ Жиль: Учитывая, что мы не знаем, какова реальная (унитарная модель) стоимость реализации оптимального сокращения, ваше замечание не очень актуально. На данный момент эти исследования обеспечивают лишь уточнение проблемы, изложенной в этом ответе.
Стефан Гименес
1

О включении λ-исчисления в стандартную модель сложности, вот резюме некоторых (очень) свежих исследований по этому вопросу. Это дает ответ на этот вопрос для некоторой ограниченной формы β-редукции. По сути, сложность в стандартной модели затрат аналогична подсчету шагов β-сокращения, когда они ограничены сокращением напора (которое включает стратегии «вызов по имени» и «вызов по стоимости»).

Об инвариантности модели унитарных затрат для сокращения головы Бениамино Аккаттоли и Уго Дал Лаго. (WST2012, ссылка на материалы )

Λ-исчисление является широко принятой вычислительной моделью функциональных программ высшего порядка, однако для нее не существует какой-либо прямой и общепринятой модели затрат. Как следствие, вычислительная трудность приведения λ-членов к их нормальной форме обычно изучается путем рассуждения о конкретных алгоритмах реализации. Здесь мы показываем, что когда снижение напора является основной динамикой, модель унитарных затрат действительно инвариантна. Это улучшает известные результаты, которые имеют дело только со слабым сокращением (вызов по значению или вызов по имени). Инвариантность доказывается с помощью линейного исчисления явных подстановок, которое позволяет красиво разложить любой шаг редукции головы в λ-исчислении на более элементарные шаги замещения, тем самым облегчая рассуждение о комбинаторике редукции головы.

Стефан Хименес
источник
ОП попросил модели, которые не допускают анализа сложности. -calculus только служил мотивацией. λ
Рафаэль