Существует ли алгоритм / систематическая процедура для проверки правильности языка?
Другими словами, учитывая язык , заданный в алгебраической форме (думаю , что - то вроде ), проверить , является ли регулярным или не язык. Представьте, что мы пишем веб-сервис, чтобы помочь студентам со всеми домашними заданиями; пользователь указывает язык, а веб-служба отвечает «обычный», «не обычный» или «я не знаю». (Мы бы хотели, чтобы веб-сервис отвечал «я не знаю» как можно реже.) Есть ли хороший подход к автоматизации этого? Является ли это послушный? Разрешаемо ли это (т. Е. Возможно ли гарантировать, что нам никогда не нужно отвечать «я не знаю»)? Существует достаточно эффективные алгоритмы для решения этой проблемы, и быть в состоянии дать ответ, кроме «не знает»
Классический метод для доказательства того, что язык не является правильным является накачка леммы. Тем не менее, похоже, что в какой-то момент требуется понимание вручную (например, чтобы выбрать слово для прокачки), поэтому мне не ясно, можно ли это превратить в нечто алгоритмическое.
Классический метод доказательства регулярности языка заключается в использовании теоремы Майхилла – Нерода для получения автомата конечного состояния. Это выглядит как многообещающий подход, но он требует умения выполнять основные операции на языках в алгебраической форме. Мне не ясно, существует ли систематический способ символически выполнять все необходимые операции над языками в алгебраической форме.
Чтобы сделать этот вопрос корректным, нам нужно решить, как пользователь будет указывать язык. Я открыт для предложений, но я имею в виду что-то вроде этого:
где - это слово-выражение, а - система линейных неравенств по переменным длины со следующими определениями:S
Каждый из является словом-выражением. (Они представляют переменные, которые могут принимать любое слово в .)Σ ∗
Каждое из является словом-выражением. (Здесь представляет обратную строку .)х г х
Каждое из является словом-выражением. (Неявно, , поэтому представляют один символ в основном алфавите.)Σ = { , Ь , с , ... } , б , с , ...
Каждое из является выражением слова, если является переменной длины.η
Конкатенация слов-выражений является словом-выражением.
Каждый из является переменной длины. (Они представляют переменные, которые могут принимать любое натуральное число.)
Каждый из является переменной длины. (Они представляют длину соответствующего слова.)
Это кажется достаточно широким, чтобы охватить многие случаи, которые мы видим в упражнениях из учебника. Конечно, вы можете заменить любой другой текстовый метод указания языка в алгебраической форме, если у вас есть лучшее предложение.
Ответы:
Ответ - нет. Решение о том, генерирует ли данная грамматика без контекста регулярный язык, является неразрешимой проблемой.
Обновление . Я дал этот отрицательный ответ на общий вопрос
поскольку контекстно-свободные языки являются решениями алгебраических уравнений в языках: см. главу II, теоремы 1.4 и 1.5 в книге Дж. Берстеля « Преобразования и контекстно-свободные языки» .
Тем не менее, тот же вопрос решаем для детерминированных контекстно-свободных языков, нетривиальный результат благодаря Stearns [1] и улучшен Valiant [2]:
[1] RE Stearns, Тест на регулярность для машин с нажатием кнопки, Информация и управление 11 323- 340 (1967). DOI: 10.1016 / S0019-9958 (67) 90591-8.
[2] LG Valiant. Регулярность и связанные с ней проблемы для детерминированных пуш-автоматов J. ACM 22 (1975), с. 1–10.
Есть еще один положительный результат, более близкий к спецификациям, приведенным во второй части вопроса. Напомним, что полулинейные подмножества - это в точности множества, определяемые в арифметике Пресбургера. Есть также рациональные подмножества . В частности, подмножество определяемое линейными уравнениями, рационально. Теперь, учитывая рациональное подмножество из , можно решить, является ли язык регулярно. Действительно, известно [Гинзбург-Спанье], что является регулярным тогда и только тогда, когда является распознаваемым подмножествомNК NК NК р NК
S. Ginsburg, EH Spanier., Полугруппы, формулы Пресбургера и языки , Pacific J. Math. 16 (1966), 285-296.
С. Гинзбург и Э. Х. Спаниер. Ограниченные регулярные множества , учеб. американской математики. Soc. 17 , 1043–1049 (1966).
Это не решает вторую часть вопроса, которая может быть неразрешимой из-за слова переменные, но дает разумный фрагмент для начала.
источник