Чому регулярні вирази визначаються операціями об'єднання, конкатенації та зірок?


11

Регулярна expresssion визначається рекурсивно

  1. a ∈ Σa для деякого - це регулярний вираз,a∈Σ
  2. ε - регулярний вираз,
  3. ∅ - це регулярний вираз,
  4. R 1 R 2(R1∪R2) де і є регулярними виразами, є регулярним виразом,R1R2
  5. (R1∘R2) де і є регулярними виразами, є регулярним виразом,R 2R1R2
  6. (R1)∗ де - регулярний вираз - регулярний вираз.R1

Це визначення взято зі сторінки 64

Сіпсер, Майкл. Вступ до теорії обчислення, 3-е видання. Cengage Learning, 2012.

Тепер у мене є такі питання.

  • Чому не визначення містить intersection, complementабо reverseоперації?
  • Якщо ми змінимо 4-й елемент на , чи отримаємо ми рівнозначне визначення, тобто для кожної регулярної мови є модифікований регулярний вираз і навпаки?R1∩R2
  • Я знаю, що це визначення є повним і чітко визначеним, але чому він надає перевагу іншим еквівалентним, чітко визначеним і повним визначенням?

2
Обмежтеся лише одним питанням за повідомленням.
— Рафаель

Відповіді:


16

1) Якщо ми також допускаємо перетин та доповнення, то отримані вирази іноді називають розширеними регулярними виразами; оскільки регулярні мови закриваються під булевими операціями, їх нічого не отримується. Це просто синтаксичний цукор. Аналогічний висновок справедливий і для зворотної операції. Частина причини, по якій на першій інстанції не згадуються всі інші операції, полягає в тому, щоб це визначення було максимально простим, щоб (індуктивні) докази не мали потребу в багатьох випадках. Ще одна причина може полягати в тому, що якщо ми дозволяємо певні операції, а інші, не в деяких випадках призводять до дуже чітких (субрегулярних) мовних класів, наприклад, якщо ми розглядаємо розширений регулярний вираз без зіркового оператора, то ми отримуємо належний підклас регулярних , так звані мови, які не містять зірок, або аперіодичні, див. Вікіпедія: мова без зірок .

2) Якщо ми збережемо пункти 1. - 6., але просто змінимо пункт 4. у використанні перетину замість об'єднання, ми отримаємо належний підклас звичайних мов. Наприклад, ми більше не могли описати мову оскільки це передбачало б об'єднання та (див. Доказ нижче). Якщо ми дозволимо доповнення, все зміниться, коли ми повернемося до законів DeMorgan.L={a,b}{a}{b}

3) На це я частково відповів у 1), але що ти маєш на увазі, коли ти кажеш, що це визначення є кращим? Я знаю визначення, де 2. пропущено (як у нас на 6., що ), або 3. пропущено (як у нас )), або обидва опущені; тому це не є мінімально можливим визначенням (воно дає нам також деякий синтаксичний цукор, оскільки у нас є додаткові символи для опису та ).L(∅∗)={ε}∅=L(X∗¯{ε}∅

EDIT : Перший мій згадуваний коментар у 2) був помилковим, мови в індуктивному замиканні під , та не обов'язково є підмножинами для деяких , наприклад вважаємо . Проте ми маємо, що не можна було б описати таким виразом. Я дам доказ, а саме я підтверджую, що якщо для деякого виразу з модифікованим 4-м елементом, то якщо (а значить ) Доведення іде шляхом індукції на вираз∘∗∩x∗x∈XL(a∘b)={ab}L={a,b}L=L(R)X={a,b}a≠b

{a,b}⊆L⇒ab∈L.
R . Для базового випадку він тримається вакуумно, тепер припустимо, що він має значення . Якщо і , то отже, за індукційною гіпотезою маємо . Якщо тоді як нас повинен бути і або навпаки. Припустимо перший випадок. Якщо , то за індукційною гіпотезою, отжеL(R1),L(R2)L=L(R1∩R2)=L(R1)∩L(R2){a,b}⊆L{a,b}⊆L(Ri),i=1,2ab∈L(R1)∩L(R2){a,b}⊆L(R1∘R2)=L(R1)L(R2)a=a⋅ε=ε⋅aa∈L(R1)ε∈L(R2)b∈L(R1)ab∈L(R1)ab=ab⋅ε∈L(R1)L(R2) . Тепер припустимо, що , тоді ми маємо за визначенням . Нарешті, якщо , то і для деякого . Якщо ми знаходимо за індукційною гіпотезою, тому припустимо, що , але це дає , аналогічно або дає і гіпотеза про індукцію даєb∈L(R2)a⋅b∈L(R2)L(R2)L(R1)L(R2)a,b∈L(R1∗)a∈L(R1)nb∈L(R2)mn,m>0n=m=1ab∈L(R1)n>1a∈L(R1)m=1m>1b∈L(R1)ab∈L(R1)⊆L(R1∗). ◻

Зауваження: Один часто використовуваний висновок: якщо , то або . Це випливає як, отже, і або і . У першому випадку маємо і, отже, .a=uwu=aw=a1=|a|=|uw|=|u|+|w||u|=0|w|=1|u|=1|w|=0u=εa=w


2
Дійсно, відсутній у наборі "субрегулярних" мов, але це тому, що . { a , b } ∗ { a , b } ∗ = ( a ∗ ∘ b ∗ ) ∗{a,b}{a,b}∗{a,b}∗=(a∗∘b∗)∗
— rici

Так, іноді буває трохи складно побачити, що можна виразити, а що не так, як при розумному поєднанні зірки та інших можна дістатись досить далеко.
— StefanH

10

Технічний звіт, що запроваджував регулярні мови, регулярні вирази та обмежені автомати, задає ваше запитання на сторінці 70:

У читача може виникнути запитання, чому ми обрали три конкретні операції , і ?E∨FEFE∗F

(Незабаром згодом було відмічено, що є більш зручним оператором, ніж та еквівалентним по потужності. Отже, сьогодні ми використовуємо .)E∗E∗FE∗

Відповідь займає кілька сторінок. По-перше, зауважує, що відповідь потрібно шукати в тому, чи утворюються цікаві мови цікавого класу та як вони порівнюються з мовами, описаними іншими способами. На сторінці 72 зазначається, що заперечення та сполучник є зайвими: вони не додають вираженої сили. На сторінці 80 і далі доведено, що звичайні мови - це саме ті мови, які розпізнаються машинами з кінцевим станом.

Іншими словами: відповідь Стефана можна сміливо вважати переконливою, оскільки це вже було зазначено у звіті, який вперше запровадив ці поняття.


Дякуємо за посилання Я завжди пояснюю своїм учням, що операції - це природні абстракції від вибору (наприклад, якщо тоді ще) послідовності (інструкції, що слідують одна за одною) та ітерації (як під час виконання). Але, мабуть, це не згадується Кліном?
— Хендрік Ян

Я просто хлопець, який переглянув статтю Кліна і був здивований, що все у моїй відповіді вже там. Я нічого іншого не знаю. Тож я вважаю, що відповідь - прочитати статтю і, можливо, шукати все, що писав про це Клійн раніше.
— reinierpost

4

З цього вибору операторів (об'єднання, конкатенація та зірка) можна побудувати NFA з розміром, лінійним розміру виразу. З іншого боку, якщо додати перехрестя та доповнення, розмір еквівалентного автомата може вибухнути неелементарно, що зазвичай не бажано.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.