Висота ітерації мови

міра структурної складності регулярних виразів

У теоретичній інформатиці, а саме, теорії формальних мов, висота ітерації — це міра структурної складності регулярних виразів — висота ітерації регулярного виразу дорівнює найбільшій глибині вкладеності зірочок, наявних у регулярному виразі. Поняття висоти ітерації першим увів та вивчав Егган (1963).

Формальне визначення ред.

Формально, висота ітерації регулярного виразу   над скінченним алфавітом   визначається індуктивно так:

  •  ,   і   для будь-якого символу   з  .
  •  
  •  

Тут   позначає порожню множину,   означає порожній рядок, а   і   — довільні регулярні вирази.

Висота ітерації   регулярної мови   визначається як найменша висота ітерації всіх регулярних виразів, що представляють  . Інтуїтивно зрозуміло, що якщо мова   має високу висоту ітерації, вона сама по собі складна, її не можна описати в термінах «простих» регулярних виразів з низькою висотою ітерації.

Приклади ред.

Хоча обчислити висоту ітерації регулярного виразу просто, визначення висоти ітерації мови іноді може видатися заплутаним. Наприклад, регулярний вираз

 

над алфавітом   має висоту ітерації 2. Однак описувана мова являє собою множину всіх слів, що закінчуються на  . Цю ж мову можна описати за допомогою виразу

  ,

висота ітерації якого лише 1. Щоб довести, що висота ітерації мови дорівнює 1, потрібно виключити можливість опису мови регулярним виразом із меншою висотою ітерації. Наприклад, це можна зробити побічно, довівши, що мова з висотою ітерації 0 містить лише скінченне число слів. Оскільки наша мова нескінченна, вона не може мати висоту ітерації 0.

Висота ітерації групової мови[en] обчислювана. Наприклад, висота ітерації мови над  , в якій число входжень   і   можна порівняти за модулем  , дорівнює  [1].

Теорема Еггана ред.

 
Приклад автомата з циклічним рангом 1. Алгоритм Кліні[en] перетворює його в регулярний вираз a*b*ba ((a|b)b*a|ε)* (a|b)b*|a*b*b, що має висоту ітерації 2. За теоремою Еггана має існувати еквівалентний регулярний вираз із висотою ітерації ≤1. Фактично a*b(b|a(a|b))* описує ту ж мову.

У своїх основоположних дослідженнях висоти ітерації регулярних мов Егган[2] установив зв'язок між теорією регулярних виразів, теорією скінченних автоматів та орієнтованими графами. Надалі цей зв'язок став відомим як теорема Еггана[3]. Нагадаємо деякі поняття з теорії графів та теорії автоматів.

У теорії графів циклічний ранг   орієнтованого графа (орграфа)   визначається індуктивно так:

  • Якщо   є ациклічним,  . Циклічний ранг дорівнює нулю в разі порожнього графа  .
  • Якщо   сильно зв'язний і   не порожня, то
  де   — орграф, отриманий видаленням вершини   і всіх дуг, що починаються або закінчуються у  .
  • Якщо   не сильно зв'язний, то   дорівнює найбільшому циклічному рангу серед усіх сильно зв'язних компонент графа  .

У теорії автоматів недетермінований скінченний автомат з ε-переходами (ε-НСА) визначається як кортеж (Q, Σ, δ, q0, F), що складається з:

  • скінченної множини станів Q,
  • скінченної множини вхідних символів Σ,
  • множини помічених дуг δ, званих переходами :   (тут ε позначає порожній рядок),
  • початкового стану q0Q,
  • множини станів F, званих поглинальними, F⊆Q.

ε-НСА приймає слово w ∈ Σ*, якщо існує орієнтований ланцюг із початкового стану q0 до деякого кінцевого стану F, що використовує дуги з δ так що конкатенація всіх міток уздовж шляху утворює слово w. Множина всіх слів над Σ*, які приймає автомат, є мовою, яку приймає автомат A.

Якщо говорити про недетермінований скінченний автомат A зі множиною станів Q як про орієнтований граф, ми природно маємо на увазі граф із множиною вершин Q, породженою переходами. Тепер можна сформулювати теорему.

Теорема Еггана: Висота ітерації регулярної мови L дорівнює найменшому циклічному рангу серед усіх недетермінованих скінченних автоматів з ε-переходами, що приймають мову L.

Доведення цієї теореми дав Егган[2], і пізніше Сакарович[3].

Узагальнена проблема висоти ітерації ред.

Наведене вище визначення передбачає, що регулярний вираз будується на елементах алфавіту A, з використанням тільки стандартних операцій об'єднання множин, конкатенації та замикання Кліні. Узагальнений регулярний вираз визначається як регулярний вираз, але включає ще операцію доповнення множини (доповнення завжди береться відносно всіх слів над A). Якщо вважати, що взяття доповнення не збільшує висоти ітерації, тобто

  ,

можна визначити узагальнену висоту ітерації регулярної мови L як найменшу висоту ітерації серед усіх узагальнених регулярних виразів, що представляють мову L.

Зауважимо, що у той час як мови з нульовою (звичайною) висотою ітерації містять скінченну кількість слів, існують нескінченні мови з нульовою узагальненою висотою ітерації.

Приклад. Регулярний вираз

 

наведений у прикладі вище, можна еквівалентно переписати як узагальнений регулярний вираз

  ,

оскільки доповнення порожньої множини — це точно всі слова над алфавітом A. Таким чином, множина всіх слів над алфавітом A, що закінчуються буквою a, має висоту ітерації один, тоді як узагальнена висота ітерації дорівнює нулю.

Мови з нульовою висотою ітерації називають мовами без зірочок[en]. Можна показати, що мова L є мовою без зірочок тоді й лише тоді, коли її синтаксичний моноїд[en] є аперіодичним[en][4].

Див. також ред.

Примітки ред.

Література ред.