В информатике линейный ограниченный автомат (множественное число линейные ограниченные автоматы , сокращенно LBA ) — это ограниченная форма машины Тьюринга .
Линейный ограниченный автомат — это машина Тьюринга , удовлетворяющая следующим трём условиям:
Другими словами: вместо потенциально бесконечной ленты для вычислений, вычисления ограничиваются частью ленты, содержащей входные данные, плюс два квадрата ленты, содержащие конечные маркеры.
Альтернативное, менее ограничительное определение выглядит следующим образом:
Это ограничение делает LBA несколько более точной моделью реального компьютера , чем машина Тьюринга, определение которой предполагает неограниченную ленту.
Сильное и более слабое определения приводят к одинаковым вычислительным возможностям соответствующих классов автоматов [1] : 225 с помощью того же аргумента, который использовался для доказательства теоремы о линейном ускорении .
Линейно-ограниченные автоматы являются акцепторами для класса контекстно-зависимых языков . [1] : 225–226 Единственное ограничение, накладываемое на грамматики для таких языков, состоит в том, что никакое порождение не отображает строку в более короткую строку. Таким образом, никакой вывод строки в контекстно-зависимом языке не может содержать сентенциальную форму, длиннее самой строки. Поскольку между линейно-ограниченными автоматами и такими грамматиками существует взаимно-однозначное соответствие, для распознавания строки автоматом не требуется ленты большего размера, чем та, которая занята исходной строкой.
В 1960 году Джон Майхилл представил модель автомата, сегодня известную как детерминированный линейный ограниченный автомат. [2] В 1963 году Питер Ландвебер доказал, что языки, принимаемые детерминированными LBA, являются контекстно-зависимыми. [3] В 1964 году С.-Й. Курода представил более общую модель (недетерминированных) линейных ограниченных автоматов и адаптировал доказательство Ландвебера, чтобы показать, что языки, принимаемые недетерминированными линейными ограниченными автоматами, являются именно контекстно-зависимыми языками. [4] [5]
В своей основополагающей статье Курода также сформулировал две исследовательские проблемы, которые впоследствии стали известны как «проблемы LBA»: Первая проблема LBA заключается в том, равен ли класс языков, принимаемых LBA, классу языков, принимаемых детерминированным LBA. Эту проблему можно кратко сформулировать на языке теории вычислительной сложности следующим образом:
Вторая проблема LBA заключается в том, замкнут ли класс языков, принятых LBA, относительно дополнения.
Как уже заметил Курода, отрицательный ответ на вторую проблему LBA подразумевал бы отрицательный ответ на первую проблему. Но вторая проблема LBA имеет утвердительный ответ, который следует из теоремы Иммермана–Селепченьи, доказанной через 20 лет после того, как проблема была поднята. [6] [7] На сегодняшний день первая проблема LBA все еще остается открытой. Теорема Сэвича дает начальное представление о том, что NSPACE (O( n )) ⊆ DSPACE (O( n 2 )). [8]