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


11

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

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

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

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

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

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

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

Відповіді:


16

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

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

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

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

{a,b}LabL.
R . Для базового випадку він тримається вакуумно, тепер припустимо, що він має значення . Якщо і , то отже, за індукційною гіпотезою маємо . Якщо тоді як нас повинен бути і або навпаки. Припустимо перший випадок. Якщо , то за індукційною гіпотезою, отжеL(R1),L(R2)L=L(R1R2)=L(R1)L(R2){a,b}L{a,b}L(Ri),i=1,2abL(R1)L(R2){a,b}L(R1R2)=L(R1)L(R2)a=aε=εaaL(R1)εL(R2)bL(R1)abL(R1)ab=abεL(R1)L(R2) . Тепер припустимо, що , тоді ми маємо за визначенням . Нарешті, якщо , то і для деякого . Якщо ми знаходимо за індукційною гіпотезою, тому припустимо, що , але це дає , аналогічно або дає і гіпотеза про індукцію даєbL(R2)abL(R2)L(R2)L(R1)L(R2)a,bL(R1)aL(R1)nbL(R2)mn,m>0n=m=1abL(R1)n>1aL(R1)m=1m>1bL(R1)abL(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}=(ab)
rici

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

10

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

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

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

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

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


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

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

4

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

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