С чисто абстрактной математической / вычислительной точки зрения (как) можно даже узнать или рассуждать о таких проблемах, как 3-SAT, сумма подмножества, коммивояжер и т. Д.,? Сможем ли мы хоть как-то осмыслить их с функциональной точки зрения? Будет ли это вообще возможно?
Я размышлял над этим вопросом исключительно с точки зрения самоисследования как части изучения модели вычисления лямбда-исчисления. Я понимаю, что это «неинтуитивно», и поэтому Годель предпочел модель Тьюринга. Тем не менее, я просто хотел бы знать, каковы известные теоретические ограничения этого функционального стиля вычислений и насколько это мешает анализу класса задач NP?
soft-question
lambda-calculus
turing-machines
functional-programming
np
кандидат наук
источник
источник
Ответы:
Возможно, вы захотите взглянуть на семантику стоимости для функциональных языков . Это различные меры вычислительной сложности для функциональных языков, которые не проходят ни через какую-либо машину Тьюринга, машину ОЗУ и т. Д. Хорошее место, чтобы начать поиск - это сообщение Lambda the Ultimate , в котором есть несколько хороших ссылок.
Раздел 7.4 « Практических основ языка программирования» Боба Харпера объясняет семантику затрат.
В статье Об относительной полезности огненных шаров Аккаттоли и Коэна показано, что -calculus имеет самое большее линейное разрушение по отношению к модели машины RAM.λ
Таким образом, на этой другой планете все было бы примерно так же в отношении NP, но было бы меньше переполнений буфера, и не было бы столько мусора, лежащего вокруг.
источник
По просьбе Андрея и доктора наук я превращаю свой комментарий в ответ с извинениями за саморекламу.
Недавно я написал статью, в которой я смотрю, как доказать теорему Кука-Левина ( -полнота SAT), используя функциональный язык (вариант λ-исчисления) вместо машин Тьюринга. Резюме:Н П
Таким образом, единственное, что могло бы измениться «на этой стороне планеты», это, возможно, то, что мы бы рассматривали проблему, связанную с λ-исчислением, а не проблему, связанную с булевыми контурами, как «изначальную» полная проблема.Н П
Примечание: вышеупомянутое доказательство может быть переформулировано в варианте калькулятора Аккаттоли с линейными явными заменами, упомянутыми в ответе Андрея, который, возможно, является более стандартным, чем -calculus, который я использую в своей статье.λ λ
Позже отредактируйте: мой ответ был чуть больше, чем вырезка и вставка из моего комментария, и я понимаю, что следует сказать еще кое-что относительно сути вопроса, который, насколько я понимаю, таков: возможно ли будет разработать теория -полноты без машин Тьюринга?Н П
Я согласен с комментарием Каве: ответ - да , но, возможно, только в перспективе. То есть, когда речь идет о сложности (считая время и пространство), машины Тьюринга непревзойденны по простоте, модель затрат очевидна для времени и почти самоочевидна для пространства. В calculus все гораздо менее очевидно: модели стоимости времени, упомянутые Андреем и приведенные в книге Харпера, относятся к середине 90-х годов, модели стоимости пространства все еще практически не существуют (я знаю, по сути, одну работу опубликовано в 2008 году ).λ
Так что, конечно, мы можем делать все, используя чисто функциональную перспективу, но трудно представить альтернативную вселенную, в которой Хартманис и Стернс определяют классы сложности, используя -terms, и спустя 30-50 лет люди начинают адаптировать свою работу к Машины Тьюринга.λ
Затем, как отмечает Каве, есть «социальный» аспект: люди были убеждены, что -полнота важна, потому что Кук доказал, что проблема, которая считается центральной в широко изучаемой области (доказательство теорем), является -complete (или, в более современной терминологии, с использованием сокращений Карпа, ). Хотя вышеизложенное показывает, что это может быть сделано в -calculus, возможно, это будет не самая немедленная вещь (у меня есть резервы на этот счет, но давайте не будем делать этот пост слишком длинным).Н П Н П c o N P λ
И последнее, но не менее важное: стоит отметить, что даже в моей работе, упомянутой выше, когда я показываю, что HO CIRCUIT SAT может быть уменьшен до CIRCUIT SAT, я явно не показываю -term, вычисляющий сокращение, и доказываю, что он всегда нормализует за полиномиальное число крайних левых шагов редукции; Я просто показываю, что существует алгоритм, который, интуитивно, может быть реализован за полиномиальное время, точно так же, как любой теоретик сложности не будет явно строить машину Тьюринга и доказывать это за время (что, позвольте мне сказать, было бы даже безумнее, чем записывать - терм, не говоря уже проверку ошибок).λ λ
Это явление широко распространено в теории логики и вычислимости, теория сложности просто наследует его: формальные системы и модели вычислений часто используются только для того, чтобы знать, что можно формализовать интуицию; после этого одной интуиции почти всегда достаточно (если ее использовать осторожно). Таким образом, рассуждения о сложности решения таких проблем, как SAT, TAUT, SUBSET SUM, GI и т. Д., И, следовательно, развитие теории -полноты, могут в значительной степени выполняться независимо от базовой вычислительной модели, если только Стоимость модели найдена. -исчисление, машины Тьюринга или программа BrainfuckН П λ Это не имеет значения, если вы знаете, что ваша интуиция здорова. Машины Тьюринга дали немедленный, работоспособный ответ, и люди не чувствовали (и все еще не чувствуют) необходимости идти дальше.
источник