Теорема Майхилла – Нероде - Myhill–Nerode theorem

В теории формальные языки, то Теорема Майхилла – Нероде обеспечивает необходимое и достаточное условие чтобы язык был обычный. Теорема названа в честь Джон Майхилл и Анил Нероде, которые доказали это на Чикагский университет в 1958 г. (Нероде 1958 ).

Заявление

Учитывая язык L, и пара строк Икс и у, определим отличительное расширение быть строкой z это точно одна из двух струн xz и yz принадлежит L.Определить отношение рL на струнах по правилу х RL у если нет отличительного расширения для Икс и у. Легко показать, что рL является отношение эквивалентности на строках, и, таким образом, он делит набор всех строк на классы эквивалентности.

Теорема Майхилла – Нероде утверждает, что L правильно тогда и только тогда, когда рL имеет конечное число классов эквивалентности, и, кроме того, количество состояний в наименьшем детерминированный конечный автомат (DFA) признавая L равно количеству классов эквивалентности в рL. В частности, это означает, что существует единственный минимальный DFA с минимальным количеством состояний (Хопкрофт и Ульман, 1979 ).

Доказательство

Если L является регулярным языком, то по определению существует ДКА А который распознает его только с конечным числом состояний. Если есть п состояний, затем разбейте множество всех конечных строк на п подмножества, где подмножество Sя это набор строк, которые при вводе в автомат А, заставьте его закончить состояние я. На каждые две строки Икс и у принадлежащих к тому же подмножеству, и для каждого выбора третьей строки z, автомат А достигает того же состояния на входе xz как он достигает на входе yz, и поэтому должен либо принимать оба входа xz и yz или отклонить их обоих. Следовательно, нет строки z может быть отличительным расширением для Икс и у, поэтому они должны быть связаны рL. Таким образом, Sя является подмножеством класса эквивалентности рL. Комбинируя этот факт с тем фактом, что каждый член одного из этих классов эквивалентности принадлежит одному из множеств Sя, это дает отношение "многие к одному" из состояний А классам эквивалентности, из чего следует, что число классов эквивалентности конечно и не превышает п.

В другом направлении предположим, что рL имеет конечное число классов эквивалентности. В этом случае можно разработать детерминированный конечный автомат, который имеет одно состояние для каждого класса эквивалентности. Начальное состояние автомата соответствует классу эквивалентности, содержащему пустую строку, а функция перехода из состояния Икс на входном символе у переводит автомат в новое состояние, состояние, соответствующее классу эквивалентности, содержащему строку ху, куда Икс - произвольно выбранная строка в классе эквивалентности для Икс. Определение отношения Myhill – Nerode подразумевает, что функция перехода четко определена: независимо от того, какая репрезентативная строка Икс выбран для государства Икс, результатом будет то же значение функции перехода. Состояние этого автомата является приемлемым, если соответствующий класс эквивалентности содержит строку в L; в этом случае, опять же, определение отношения подразумевает, что все строки в одном классе эквивалентности также должны принадлежать L, иначе пустая строка была бы отличительной строкой для некоторых пар строк в классе.

Таким образом, существование конечного автомата, распознающего L означает, что отношение Майхилла – Нероуде имеет конечное число классов эквивалентности, не более чем равное количеству состояний автомата, а существование конечного числа классов эквивалентности подразумевает существование автомата с таким количеством состояний.

Использование и последствия

Теорема Майхилла – Нероде может использоваться, чтобы показать, что язык L является обычный доказав, что количество классов эквивалентности рL конечно. Это может быть сделано исчерпывающим анализ случая в котором, начиная с пустой строкой, отличительные расширения используются для поиска дополнительных классов эквивалентности до тех пор, пока больше не будет найдено. Например, язык, состоящий из двоичных представлений чисел, которые можно разделить на 3, является обычным. Учитывая пустую строку, 00 (или же 11), 01 и 10 различают расширения, приводящие к трем классам (соответствующие числам, дающим остатки 0, 1 и 2 при делении на 3), но после этого шага различающего расширения больше нет. Минимальный автомат, принимающий наш язык, имел бы три состояния, соответствующие этим трем классам эквивалентности.

Еще одно немедленное следствие теоремы состоит в том, что если язык определяет бесконечное множество классов эквивалентности, он нет обычный. Это следствие часто используется для доказательства того, что язык не является регулярным.

Обобщение

Теорема Майхилла – Нероде может быть обобщена на деревья. Видеть древовидный автомат.

Смотрите также

  • Лемма о накачке для регулярных языков, альтернативный метод доказательства того, что язык не является регулярным. Лемма о накачке не всегда может доказать, что язык не является регулярным.

Рекомендации

  • Хопкрофт, Джон Э.; Ульман, Джеффри Д. (1979), «Глава 3», Введение в теорию автоматов, языки и вычисления, Reading, Massachusetts: Addison-Wesley Publishing, ISBN  0-201-02988-X.
  • Нероде, Анил (1958), "Преобразования линейных автоматов", Труды AMS, 9, JSTOR  2033204.
  • Риган, Кеннет (2007), Заметки о теореме Майхилла-Нероде (PDF), получено 2016-03-22.

дальнейшее чтение