История вычислений
В информатике история вычислений — это последовательность шагов, выполняемых абстрактной машиной в процессе вычисления результата. Истории вычислений часто используются в доказательствах возможностей определенных машин и особенно неразрешимости различных формальных языков .
Формально история вычислений — это (обычно конечная ) последовательность конфигураций формального автомата . Каждая конфигурация полностью описывает состояние машины в конкретный момент. Чтобы быть действительным, должны соблюдаться определенные условия:
- первая конфигурация должна быть допустимой начальной конфигурацией автомата и
- каждый переход между соседними конфигурациями должен быть допустимым согласно правилам перехода автомата.
Кроме того, чтобы быть полной , история вычислений должна быть конечной и
- окончательная конфигурация должна быть допустимой конфигурацией терминала автомата.
Определения «действительной начальной конфигурации», «действительного перехода» и «действительной конфигурации терминала» различаются для разных типов формальных машин.
Детерминированный . автомат имеет ровно одну историю вычислений для данной начальной конфигурации, хотя эта история может быть бесконечной и, следовательно, неполной
Конечные автоматы
[ редактировать ]Для конечного автомата , конфигурация простотекущее состояние машины вместе с остальными входными данными. Первая конфигурация должна быть исходным состоянием и полный ввод. Переход из конфигурации кконфигурация разрешено, если длякакой-то входной символ и если имеет переход от к на входе . Финалконфигурация должна иметь пустую строку как остатоквход; ли принял или отклонил ввод, зависито том, является ли конечное состояние принимающим государством. [1]
Машины Тьюринга
[ редактировать ]Истории вычислений чаще используются в отношении машин Тьюринга . Конфигурация одноленточной машины Тьюринга состоит из содержимого ленты, положения головки чтения/записи на ленте и текущего состояния связанного конечного автомата; обычно это пишут
где это текущее состояние машины, представленное в некоторомчем это отличается от языка ленты, и где являетсярасполагается непосредственно перед головкой чтения/записи.
Рассмотрим машину Тьюринга на входе . Первыйконфигурация должна быть , где — начальное состояние машины Тьюринга. Состояние машины в финалеконфигурация должна быть либо (состояние принятия) или (состояние отклонения). Конфигурация является действительным преемникомв конфигурацию если есть переход из состояния в государству в который манипулируетленту и перемещает головку чтения/записи таким образом, чтобы получить результат в . [2]
Результаты разрешимости
[ редактировать ]Истории вычислений можно использовать, чтобы показать, что определенные проблемы для автоматы с неразрешимы . выталкиванием Это потому, что языкнепринятие истории вычислений машины Тьюринга на входе это контекстно-свободный язык , узнаваемыйнедетерминированный автомат с выталкиванием.
Мы кодируем историю вычислений Тьюринга какнить , где это кодировка конфигурации , как обсуждалось выше, и гдевсе остальные конфигурации записываются в обратном порядке. Прежде чем читать конкретнуюконфигурации, автомат с опусканием вниз делает недетерминированный выборлибо игнорировать конфигурацию, либо полностью прочитать ее в стек.
- Если автомат с передачей вниз решает игнорировать конфигурацию, он просто считывает и полностью отбрасывает ее и делает тот же выбор для следующей.
- Если он решает обработать конфигурацию, он полностью помещает ее в стек, а затем проверяет, что следующая конфигурация является допустимой преемницей в соответствии с правилами . Поскольку последовательные конфигурации всегда записываются в противоположном порядке, это можно сделать, извлекая символ из стека для каждого символа ленты в новой конфигурации и проверяя, совпадают ли они. Если они не согласны, то за это следует отчитываться посредством действительной передачи власти. . Если в какой-то момент автомат решает, что переход недействителен, он немедленно переходит в специальное состояние принятия, которое игнорирует остальную часть входных данных и принимает в конце.
Кроме того, автомат проверяет правильность первой конфигурации.начальная конфигурация (если нет, она принимает) и что состояние окончательнойконфигурация истории — это состояние принятия (если нет, оно принимает). Снедетерминированный автомат принимает, если у него есть какой-либо действительный способ принять,описанный здесь автомат обнаружит, что история недействительна.принимает историю и примет, если да, и отвергнет, если нет. [3]
Этот же трюк нельзя использовать для распознавания принятия истории вычислений.с NPDA, поскольку недетерминизм можно использовать для пропуска теста, которыйв противном случае потерпите неудачу. Линейно ограниченной машины Тьюринга достаточно, чтобы распознаватьприем истории вычислений.
Этот результат позволяет нам доказать, что , языкавтоматов с выталкиванием, которые принимают все входные данные, неразрешимо. Предполагатьу нас есть решение для этого, . Для любой машины Тьюринга и ввод , мы можем сформировать раскрывающийся автомат который принимает непринятые истории вычислений для этогомашина. примет тогда и только тогда, когда нетприем истории вычислений для на ; этотпозволит нам решить , который, как мы знаем, неразрешим.
Ссылки
[ редактировать ]- ^ Кристин Л. Мамфорд; Лахми К. Джайн (2009). Вычислительный интеллект: сотрудничество, слияние и появление . Спрингер. п. 337. ИСБН 978-3-642-01798-8 . Проверено 25 марта 2012 г.
- ^ Андреас Бласс (22 октября 2010 г.). Области логики и вычислений: очерки, посвященные Юрию Гуревичу к его 70-летию . Спрингер. п. 468. ИСБН 978-3-642-15024-1 . Проверено 25 марта 2012 г.
- ^ Ленор Блюм (1998). Сложность и реальные вычисления . Спрингер. п. 31 . ISBN 978-0-387-98281-6 .