Циклический язык
Эта статья нуждается в дополнительных цитатах для проверки . ( май 2020 г. ) |
В информатике , а точнее в теории формального языка , циклический язык — это набор строк, замкнутый относительно повторения, корня и циклического сдвига .
Определение
[ редактировать ]Если A — набор символов, а A * — это набор всех строк, построенных из символов в A , тогда набор строк L ⊆ A * называется языком над алфавитом A. формальным Язык L называется циклическим, если
- ∀ w ∈ A * . ∀ n >0. ш ∈ L ⇔ ш н ∈ L и
- ∀ v , w ∈ A * . vw ∈ L ⇔ wv ∈ L ,
где ш н обозначает n -кратное повторение строки w , а vw обозначает конкатенацию строк v и w . [1] : Защита 1
Примеры
[ редактировать ]Например, используя алфавит A = { a , b }, язык
Л = | { | а п б № 1 | а № 2 б № 2 | ... | а nи т. д. б nи т. д. | а д | : | n i ≥ 0 и p + q = n 1 } | |
∪ | { | б п | а № 1 б № 1 | а № 2 б № 2 | ... | а nи т. д. б д | : | n i ≥ 0 и p + q = n k } |
является циклическим, но не регулярным . [1] : Пример 2 Однако L является контекстно-свободным , поскольку M = { a № 1 б № 1 а № 2 б № 2 ... а nи т. д. б nи т. д. : n i ≥ 0 } есть, а контекстно-свободные языки закрываются при циклическом сдвиге ; L получается как круговой сдвиг M .
Ссылки
[ редактировать ]- ^ Перейти обратно: а б Мари-Пьер Беаль, Оливье Картон и Кристоф Ройтенауэр (1996). «Циклические языки и сильно циклические языки» (PDF) . Учеб. Симпозиум по теоретическим аспектам информатики . Конспекты лекций по информатике . Том. 1046. Спрингер. стр. 49–59.