Какие языки распознаются машинами с одним счетчиком?

15

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

templatetypedef
источник
2
В этой книге: books.google.co.uk/books/about/… Джин Берстель подробно рассказывается о языках с единым счетчиком и других подмножествах контекстно-свободных языков, но на самом деле это очень сложно отследить копию этого.
Сэм Джонс
1
@SamJones Действительно знаменитая книга Джин Берстель « Трансдукции и языки без контекста» вышла из печати. Автор предоставил электронную версию наиболее важных глав книги. www-igm.univ-mlv.fr/~berstel/LivreTransductions/…
Хендрик Янв

Ответы:

11

Автомат с одним счетчиком - это автомат с нажатием вниз, в стеке которого допускается только один символ (плюс фиксированный нижний символ). Языки, распознаваемые одним встречным автоматом, образуют надлежащее подмножество языков без контекста.

Например, автомат с 1 счетчиком может распознавать язык который не является регулярным, но не может распознавать язык который не зависит от контекста и может быть распознается автоматом с двумя счетчиками.{ a n b m a m b n }{aNбN}{aNбм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 } ). Счетчик автоматов (в частности, автомат с двумя счетчиками) может быть завершен по Тьюрингу, только если его вход и выход правильно закодированы (подробности см. В записи Википедии ).{весвеср}{aNбNсN}

Вор
источник
вопросы: (1) языки, распознаваемые контр-автоматами, которые не являются контекстно-свободными, вы имеете в виду не регулярные? (2) есть ли иерархия для DCA? Почему? Разве они не все эквивалентны по Тьюрингу (когда ). К2
Хендрик Ян
(1) нет, я имею в виду «не являются контекстно-свободными» (просто выберите правильно закодированный контекстно-зависимый язык, который может быть распознан с помощью ak> 1 счетчика) (2) вы правы, иерархия относится к DCA в реальном времени (я исправил ответ)
Vor
Кажется, я помню, что есть различия между счетчиками, которые не ограничены в обоих направлениях, и такие, что «снизу вверх» в нуле?
Рафаэль
7

Встречные автоматы были широко изучены в древнем формальном языковом прошлом в контексте теории AFA и AFL (абстрактные семейства автоматов и языков) американскими и французскими командами (Гинзберг, Грайбах, ..., Ниват, Берстель, ...)

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

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

Этот встречный автомат можно рассматривать как специальный тип pda, имеющий только один символ стека и дно стека (которое никогда не перемещается). Это позволяет автомату проверить, равен ли счетчик / стек нулю, и действовать соответствующим образом.

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

Приведенный выше тип хранит целое число (или натуральное число, которое не имеет значения) и может проверять его содержимое, начиная с нуля. Слепые автоматы хранят целое число, но не могут проверить на ноль. Они могут точно рассчитывать ниже нуля, хотя. Частично слепые встречные автоматы не могут проверять на ноль, но хранят натуральное число. Если машина пытается опуститься ниже нуля, она останавливается, не принимая. Это естественный тип хранения для моделирования сетей Петри. Это также относится к КПК, теперь с одним символом стека без специального нижнего маркера (и, следовательно, проблема проверки на ноль: мы просто застреваем при извлечении последнего элемента стека). Иногда имена семейств, определенных с помощью моделей счетчиков с повторяющимся действием, являются OCL, ROCL и 1-BLIND.

(Dс)*Dзнак равно{вес{a,б}*|#a(вес)знак равно#б(вес)}aбс

В качестве примера соответствующего исследования у Latteux etal есть нетривиальная статья «Семейство языков с одним счетчиком закрыто по частному» (которая на самом деле о ROCL).

Хендрик Ян
источник