Счетные машины с двумя или более счетчиками обычно показаны эквивалентными машинам Тьюринга в курсах по теории вычислений. Однако я не видел формального анализа того, какие языки можно распознать с помощью машины с одним счетчиком. Являются ли эти языки эквивалентными языкам, не зависящим от контекста (возможно, с помощью какой-то умной конструкции, связывающей их с КПК), или это совершенно другой класс языков?
computability
automata
templatetypedef
источник
источник
Ответы:
Автомат с одним счетчиком - это автомат с нажатием вниз, в стеке которого допускается только один символ (плюс фиксированный нижний символ). Языки, распознаваемые одним встречным автоматом, образуют надлежащее подмножество языков без контекста.
Например, автомат с 1 счетчиком может распознавать язык который не является регулярным, но не может распознавать язык который не зависит от контекста и может быть распознается автоматом с двумя счетчиками.{ a n b m a m b n }{ аNбN} { аNбмaмбN}
Если k-DCA является детерминированным автоматом k-счетчика, а k-NCA является недетерминированным автоматом k-счетчика, то мы имеем следующие надлежащие включения:
DFA (обычные языки) 1-DCA 2-DCA⊂⊂ ⊂
1-DCA 1-NCA⊂
Если мы не разрешаем переходов (переключение в режим реального времени ), то k-DCA ⊂ k'-DCA для k <k '.ε ⊂
Просто для завершения: есть языки, которые не зависят от контекста, но не могут быть распознаны счетными автоматами (k-DCA с k 2) (например, { w w R } ), и языки, распознаваемые счетными автоматами, которые не являются контекстно-свободными (для пример { a n b n c n } ). Счетчик автоматов (в частности, автомат с двумя счетчиками) может быть завершен по Тьюрингу, только если его вход и выход правильно закодированы (подробности см. В записи Википедии ).≥ { ш шр} { аNбNсN}
источник
Встречные автоматы были широко изучены в древнем формальном языковом прошлом в контексте теории AFA и AFL (абстрактные семейства автоматов и языков) американскими и французскими командами (Гинзберг, Грайбах, ..., Ниват, Берстель, ...)
Счетные автоматы обычно определяются как конечные автоматы, оснащенные внешней памятью, состоящей из натурального числа (или нескольких, если у вас более одного счетчика). Это число может быть увеличено, уменьшено и (обычно) проверено на ноль. Вычисление начинается с нуля и принимается только тогда, когда в конце счетчик равен нулю, что сравнимо с принятием пустого стека.
Если такая машина имеет по крайней мере два таких счетчика, то она эквивалентна машине Тьюринга даже в детерминированном случае. Доказательством этого факта является Минский, и его можно найти в статье в Википедии, на которую вы ссылаетесь. Модель, конечно же, связана с машиной регистрации, упомянутой на той же странице википедии. Проблемы кодирования, упомянутые в статье в Википедии, здесь не важны, так как мы рассматриваем автоматы с входной лентой (в конце концов мы должны прочитать входную строку), тогда как в википедии на этой странице используются только счетчики.
Этот встречный автомат можно рассматривать как специальный тип pda, имеющий только один символ стека и дно стека (которое никогда не перемещается). Это позволяет автомату проверить, равен ли счетчик / стек нулю, и действовать соответствующим образом.
На самом деле существует три типа встречных автоматов. Поэтому совмещайте результаты с умом, иначе вы столкнетесь с противоречиями (как это случилось со мной в прошлом). Все три типа (строго) включены в контекстно-свободные языки для одного счетчика.
Приведенный выше тип хранит целое число (или натуральное число, которое не имеет значения) и может проверять его содержимое, начиная с нуля. Слепые автоматы хранят целое число, но не могут проверить на ноль. Они могут точно рассчитывать ниже нуля, хотя. Частично слепые встречные автоматы не могут проверять на ноль, но хранят натуральное число. Если машина пытается опуститься ниже нуля, она останавливается, не принимая. Это естественный тип хранения для моделирования сетей Петри. Это также относится к КПК, теперь с одним символом стека без специального нижнего маркера (и, следовательно, проблема проверки на ноль: мы просто застреваем при извлечении последнего элемента стека). Иногда имена семейств, определенных с помощью моделей счетчиков с повторяющимся действием, являются OCL, ROCL и 1-BLIND.
В качестве примера соответствующего исследования у Latteux etal есть нетривиальная статья «Семейство языков с одним счетчиком закрыто по частному» (которая на самом деле о ROCL).
источник