Омега-язык

Материал из testwiki
Перейти к навигации Перейти к поиску

Омега-язык (ω-язык) — это множество бесконечно длинных последовательностей символов.

Формальное определение

Пусть Σ — множество символов (необязательно конечное), называемое алфавитом. По стандартной теории формальных языков, Σ* — это множество всех конечных слов над Σ. У каждого слова есть длина, являющаяся, очевидно, натуральным числом. Следует заметить, что слово w длины n можно рассматривать как функцию из множества {0,1,,n1} в Σ. Аналогично, бесконечные слова, или ω-слова, могут рассматриваться как функции из в Σ, у которых значением в i является i-й символ слова. Множество всех бесконечных слов над Σ обозначается Σω. Множество всех конечных и бесконечных слов над Σ иногда записывается Σ.

Таким образом, ω-язык L над Σ — это подмножество Σω.

Операции

Некоторыми общими операциями над ω-языками являются:

  • Пересечение и объединение. Если L и M это ω-языки, то LM и LM тоже являются ω-языками.
  • Левая конкатенация. Пусть L ω-язык, а K язык из конечных слов. Тогда K можно конкатенировать с L и получить новый ω-язык KL.
  • Омега (бесконечная итерация). Как подсказывает запись, операция ()ω является бесконечным вариантом оператора звезда Клини над языками конечной длины. Если L это формальный язык, то Lω есть ω-язык всех бесконечных последовательностей слов из L, или, в функциональном представлении, всех функций L.
  • Префиксы. Пусть w — ω-слово. Тогда формальный язык Pref(w) содержит все конечные префиксы w.
  • Предел. Пусть дан язык конечных слов L. Тогда ω-слово w является пределом L тогда и только тогда, когда Pref(w)L является бесконечным множеством. Иначе говоря, для сколь угодно большого натурального числа n можно всегда найти слово из L длиной больше n, которое является префиксом w. Предел L записывается как Lδ или L.

Расстояние между ω-словами

На множестве Σω можно ввести метрику d:Σω×Σω следующим образом:

d(w,v)=inf{2|x|xΣ*,xPref(w)Pref(v)},

где |x| обозначает длину x (число символов в x), а inf — точную нижнюю грань вещественного множества.

Так, если w и v совпадают, то d(w,v)=0; если w и v имеют общий конечный префикс, то d(w,v)=2|x|, где x — длиннейший общий префикс w и v; а иначе (w и v различаются уже в первом символе, то есть длина общего префикса 0) d(w,v)=1.

Можно показать, что d удовлетворяет всем свойствам метрики.

Важные подклассы

Наиболее широко используемым подклассом ω-языков являются ω-регулярные языки, которые могут быть распознаны Шаблон:Не переведено 3, например автоматами Бюхи; таким образом, вопрос распознаваемости ω-регулярного языка разрешим и несложно алгоритмизуем. Эти языки находят применение в проверке моделей программных систем.

Библиография

  • Staiger, L. «ω-Languages». In G. Rozenberg and A. Salomaa, editors, Handbook of Formal Languages, Volume 3, pages 339—387. Springer-Verlag, Berlin, 1997.
  • Thomas, W. «Automata on Infinite Objects». In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, Volume B: Formal Models and Semantics, pages 133—192. Elsevier Science Publishers, Amsterdam, 1990.

Шаблон:Изолированная статья