Счетчиковые машины, эквивалентность двухсчетчиковой машины МТ — различия между версиями
м (rollbackEdits.php mass rollback) |
|||
(не показаны 3 промежуточные версии 3 участников) | |||
Строка 12: | Строка 12: | ||
По сути, <tex>k</tex>-счётчиковая машина является [[Стековые машины, эквивалентность двухстековой машины МТ|<tex>k</tex>-стековой машиной]] с односимвольным алфавитом. | По сути, <tex>k</tex>-счётчиковая машина является [[Стековые машины, эквивалентность двухстековой машины МТ|<tex>k</tex>-стековой машиной]] с односимвольным алфавитом. | ||
− | == Эквивалентность двухстековой машины | + | == Эквивалентность двухстековой машины трёхсчётчиковой машине== |
{{Лемма | {{Лемма | ||
|statement=Язык <tex>L</tex> допускается двухстековой машиной тогда и только тогда, когда он допускается трёхсчётчиковой машиной. | |statement=Язык <tex>L</tex> допускается двухстековой машиной тогда и только тогда, когда он допускается трёхсчётчиковой машиной. |
Текущая версия на 19:33, 4 сентября 2022
Определение: |
Для каждого счётчика возможны четыре операции: увеличить на один, уменьшить на один, не изменять значение, проверить, является ли значение счетчика нулём. Будем считать, что значение нулевых счётчиков уменьшать нельзя. | -счётчиковой машиной называется набор , где
По сути, с односимвольным алфавитом. -стековой машиной
-счётчиковая машина являетсяСодержание
Эквивалентность двухстековой машины трёхсчётчиковой машине
Лемма: |
Язык допускается двухстековой машиной тогда и только тогда, когда он допускается трёхсчётчиковой машиной. |
Доказательство: |
Для доказательства необходимо показать, что двухстековая машина имитируется на трёхсчётчиковой. Пусть — стековый алфавит, . Пронумеруем символы алфавита от до . Тогда стек можно рассматривать как целое число в системе счисления с основанием .Будем использовать два счётчика для хранения состояний двух стеков, а третий счетчик будем использовать для временных вычислений. Для стека существует три типа элементарных операций: положить символ в стек, снять символ со стека, проверить верхний символ стека. Рассмотрим реализацию этих операция на трёхсчётчиковой машине.
Опишем реализацию арифметических операций с счётчиком, использованных при описании имитации работы двухстековой машины, при помощи двух счётчиков и управляющего автомата.
Таким образом, мы можем имитировать работу двухстековой машины на трёхсчётчиковой. Трёхсчётчиковая машина является частным случаем трёхстековой машины, а любая -стековая машина эквивалента по вычислительной мощности двухстековой, следовательно, любой язык, допускаемый трёхсчётчиковой машиной, допускается двухстековой. |
Эквивалентность -счётчиковой машины двухсчётчиковой
Лемма: |
Для любого и для любой -счётчиковой машины существует эквивалентная ей двухсчётчиковая машина. |
Доказательство: |
Для доказательства покажем, как имитировать -счётчиковую машины на двухсчётчиковой. Пусть — значения счётчиков -счётчиковой машины. Тогда состояние -счётчиковой машины можно охарактеризовать одним числом , где — -е простое число. Тогда любое состояние k-счётчиковой машины можно хранить на одном счётчике, и использовать второй счётчик для временных вычислений.Тогда элементарные операции на -счётчиковой машине реализуются следующим образом.
Операции умножения на константу, деления на константу и нахождения остатка от деления на константу значения счётчика при помощи одного вспомогательного счётчика описаны в предыдущей лемме. Таким образом, для любого и для любой -счётчиковой машины существует эквивалентная ей двухсчётчиковая машина. |
Эквивалентность двухсчётчиковой машины МТ
Теорема: |
Для любого перечислимого языка существует двухсчётчиковая машина, которая распознает этот язык. |
Доказательство: |
Утверждение теоремы очевидно следует из двух описанных выше лемм и эквивалентности двухстековой машины машине Тьюринга. |
См. также
Источники информации
- Хопкрофт Д., Мотвани Р., Ульман Д. — Введение в теорию автоматов, языков и вычислений, 2-е изд. : Пер. с англ. — Москва, Издательский дом «Вильямс», 2002. — 528 с. : ISBN 5-8459-0261-4 (рус.)