Может ли аффинное лямбда-исчисление решить любую проблему в P?

10

В разделе «Расширенные темы по типам и языкам программирования» в главе, посвященной системам субструктурных типов, упоминается, что «тщательно разработанное» аффинное лямбда-исчисление с рекурсивным комбинатором для списков может вводить только те термины, которые имеют полиномиальное время выполнения (это не представить доказательства в силу сложности). Это было бы очень интересно, если бы мы могли также решить каждую проблему в P. Я мог бы попытаться найти решение P-полной задачи, используя представленное исчисление, я не уверен, что это действительно что-то докажет. Мне кажется, это не значит, что он может предварительно преобразовать все сокращения, необходимые для использования решения для P-полной задачи (хотя это действительно кажется вероятным).

Если неизвестно, что аффинное лямбда-исчисление способно точно решить проблемы в P, существует ли какое-либо известное исчисление, которое может точно решить проблемы в P?

Джейк
источник
1
Извините за мое невежество, но каков пример неполной задачи и, что более важно, какое понятие сокращения вы используете? P
Андрей Бауэр
Я нашел некоторые в Википедии: en.wikipedia.org/wiki/P-complete#P-complete_problems . Интерес представляет проблема значения схемы и рога-SAT. Линейное программирование, по-видимому, также является полным. Эти слайды описывают проблему со значением схемы достаточно хорошо cs.cornell.edu/courses/CS6820/2012sp/Handouts/cvp.pdf . Кажется, что используются либо сокращения L, либо N C , причем сокращения L слабее, чем сокращения N C. Я был бы доволен либо; Я не уверен, какие последствия использования L против N C точно. PLNCLNCLNC
Джейк
6
Существуют линейные языки, которые являются полными для P. Интересно, что они обычно полны для задач, но не для алгоритмов. То есть, вы можете написать программу на много времени для каждой задачи в P, но не каждый алгоритм на основе времени может быть выражен.
Нил Кришнасвами
Будет ли это утверждение примерно эквивалентно «они обычно полны для P, но не для FP»? Также, если бы вы могли привести несколько примеров, это был бы удивительный ответ.
Джейк
3
Нил Кришнасвами, можете ли вы дать ссылку? Это звучит интересно.
Матеус де Оливейра Оливейра

Ответы:

12

Изменить: мое предположение в первом абзаце ниже неверно! Уго Даль Лаго указал мне на более позднюю статью Мартина Хофмана (вышедшую в POPL 2002), о которой я не знал, показывая (как следствие более общих результатов), что система из книги ATTPL на самом деле завершена для ( несмотря на неспособность вычислить каждую функцию в F P ). Так что, к моему удивлению, ответ на главный вопрос - да.PFP


PFP, что исключает множество функций polytime. Похоже, что это также серьезно ограничивает размер ленты машин Тьюринга, которые вы можете смоделировать на этом языке. В статье Хофманн показывает, что вы можете кодировать линейные вычисления в пространстве; я предполагаю, что вы не сможете сделать гораздо больше, т. е. класс, соответствующий этой системе, примерно равен задачам, решаемым одновременно в многопоточном и линейном пространстве.

λPλFPλ318 (1-2): 163-180, 2004). Системы типов, возникающие из этих двух последних логических систем и обеспечивающие завершение многопоточности (при этом сохраняя полноту), можно найти в:

Патрик Бейло, Казушиге Теруи. Типы света для вычисления полиномиального времени в лямбда-исчислении. Информация и вычисления 207 (1): 41-62, 2009.

Марко Габоарди, Симона Рончи Делла Рокка. От легкой логики до типовых заданий: тематическое исследование. Logic Journal of IGPL 17 (5): 499-530, 2009.

Вы найдете много других ссылок в этих двух статьях.

λΦP:stringbool

Φ(P)PP

LPPLΦ(P)

ΦLPPLΦ(P)PLΦ(P)PPΦLPΦ

Преднамеренно совершенные системы типов, которые способны точно набирать программы с большим временем для более широкого языка (система F в моем примере выше), существуют. Конечно, они вообще неразрешимы. Видеть

Уго Дал Лаго, Марко Габоарди. Линейно-зависимые типы и относительная полнота. Логические методы в информатике 8 (4), 2011.

Дамиано Мазза
источник
1
Я не понимаю, что вы пытаетесь сказать во второй половине. Исходя из вашего описания, существует синтаксическая трансформация машин Тьюринга с многократной синхронизацией в F-программы, решающие ту же проблему. Насколько я вижу, это лучшее, на что можно надеяться при переводе с одной модели вычисления на другую.
Эмиль Йержабек
3
ΦNat:=X.(XX)XXλmNat.λnNat.ΛX.λsXX.mX(nXs)
3
for
Я думаю, что это нормально. В основном меня интересует поиск функций (поиск функций, максимизирующих определенное свойство), поэтому мне не нужно быть программистом, как это делает компьютер. Сегодня вечером у меня будет время посмотреть эти ссылки. Спасибо!
Джейк