История вычислений - Computation history

В Информатика, а история вычислений представляет собой последовательность шагов, предпринятых абстрактная машина в процессе вычисления его результата. Истории вычислений часто используются в доказательства о возможностях некоторых машин, и особенно о неразрешимость различных формальные языки.

Формально история вычислений представляет собой (обычно конечный ) последовательность конфигурации официального автомат. Каждая конфигурация полностью описывает состояние машины в определенной точке. Чтобы быть действительным, должны выполняться определенные условия:

  • первая конфигурация должна быть действительной начальной конфигурацией автомата и
  • каждый переход между соседними конфигурациями должен быть действительным согласно правилам перехода автомата.

Кроме того, чтобы быть полный, история вычислений должна быть конечной и

  • окончательная конфигурация должна быть действующей терминальной конфигурацией автомата.

Определения «допустимой начальной конфигурации», «допустимого перехода» и «допустимой конфигурации терминала» различаются для разных типов формальных машин.

А детерминированный автомат имеет ровно одну историю вычислений для данной начальной конфигурации, хотя история может быть бесконечной и, следовательно, неполной.

Конечные автоматы

Для конечный автомат , конфигурация - это просто текущее состояние машины вместе с оставшимися входными данными. Первая конфигурация должна быть начальным состоянием и полный ввод. Переход от конфигурации конфигурация toa разрешено, если какой-то входной символ и если имеет переход от к на входе . В окончательной конфигурации должна быть пустая строка в качестве оставшегося входа; будь то принял или отклонил ввод, зависит от того, является ли конечное состояние принимающим. [1]

Машины Тьюринга

Истории вычислений чаще используются в отношении Машины Тьюринга. Конфигурация однопленочной машины Тьюринга состоит из содержимого ленты, положения головки чтения / записи на ленте и текущего состояния соответствующего конечного автомата; это обычно пишется

где это текущее состояние машины, представленное каким-либо образом, отличным от языка ленты, и где располагается непосредственно перед головкой чтения / записи.

Рассмотрим машину Тьюринга на входе . Первая конфигурация должна быть , где - начальное состояние машины Тьюринга. Состояние машины в окончательной конфигурации должно быть либо (состояние принятия) или (состояние отклонения). Конфигурация допустимая конфигурация преемника если есть переход из состояния в государству в который манипулирует лентой и перемещает головку чтения / записи таким образом, чтобы получить результат в.[2]

Результаты разрешимости

Историю вычислений можно использовать, чтобы показать, что определенные проблемы длявыталкивающие автоматы находятся неразрешимый. Это потому, что язык неприемлемых историй вычислений машины Тьюринга на входе это контекстно-свободный язык распознаваемый анодетерминированным автоматом выталкивания.

Мы кодируем историю вычислений Тьюринга как струна , где это кодировка конфигурации , как обсуждалось выше, и если любая другая конфигурация написана в обратном порядке. Перед чтением конкретной конфигурации автомат выталкивания делает недетерминированный выбор: либо игнорировать конфигурацию, либо полностью считывать ее в стек.

  • Если выталкивающий автомат решает игнорировать конфигурацию, он просто считывает и полностью отбрасывает ее и делает тот же выбор для следующей.
  • Если он решает обработать конфигурацию, он полностью помещает ее в стек, а затем проверяет, что следующая конфигурация является допустимым преемником в соответствии с правилами . Поскольку последовательные конфигурации всегда записываются в противоположном порядке, это можно сделать, для каждого символа ленты в новой конфигурации извлекая символ из стека и проверяя, совпадают ли они. Если они не согласны, он должен быть ответственным за действительную передачу . Если в какой-то момент автомат решает, что переход недействителен, он немедленно входит в специальное состояние принятия, которое игнорирует остальную часть ввода и принимает в конце.

Кроме того, автомат проверяет, что первая конфигурация является правильной начальной конфигурацией (если нет, она принимает) и что состояние последней конфигурации истории является состоянием принятия (если нет, принимает). Поскольку недетерминированный автомат принимает, если есть какой-либо допустимый способ для него принять, описанный здесь автомат обнаружит, не является ли история допустимой историей принятия, и примет, если да, и отклонит, если нет. [3]

Этот же трюк нельзя использовать для распознавания принимая истории вычислений с NPDA, поскольку недетерминизм можно использовать для пропуска теста, который в противном случае не прошел бы. Для распознавания принимаемых историй вычислений достаточно машины Тьюринга с линейными ограничениями.

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

Смотрите также

использованная литература

  1. ^ Кристин Л. Мамфорд; Лакхми К. Джайн (2009). Вычислительный интеллект: сотрудничество, слияние и появление. Springer. п. 337. ISBN  978-3-642-01798-8. Получено 25 марта 2012.
  2. ^ Андреас Бласс (22 октября 2010 г.). Области логики и вычислений: очерки, посвященные Юрию Гуревичу к 70-летию со дня рождения. Springer. п. 468. ISBN  978-3-642-15024-1. Получено 25 марта 2012.
  3. ^ Ленор Блюм (1998). Сложность и реальные вычисления. Springer. п. 31 год. ISBN  978-0-387-98281-6.