정규식이 결합, 연결 및 별표 연산으로 정의되는 이유는 무엇입니까?


11

일반 expresssion은 재귀 적으로 정의된다

  1. Σa 일부 , 정규 표현식이다aΣ
  2. ε 은 정규 표현식입니다.
  3. 은 정규 표현식입니다.
  4. R 1 R 2(R1R2) 여기서 및 는 정규식입니다.R1R2
  5. R 1 R 2(R1R2) 곳 및 정규 표현식 정규 표현식이되고있다,R1R2
  6. R 1(R1) 여기서 은 정규식입니다.R1

이 정의는 64 페이지 중 64 페이지에서 가져 왔습니다.

Sipser, 마이클 계산 이론 소개, 3 판. 참여 학습, 2012.

이제 다음과 같은 질문이 있습니다.

  • 정의에 intersection, complement또는 reverse연산이 포함되지 않은 이유는 무엇 입니까?
  • 4 번째 항목을 로 변경하면 동등한 정의를 얻게 예 : 각 일반 언어에 대해) 수정 된 정규 표현식이 있습니까?R1R2
  • 나는이 정의가 완전하고 잘 정의되어 있다는 것을 알고 있지만 왜 다른 동등하고 잘 정의되고 완전한 정의보다 선호 되는가?

2
게시물 당 하나의 질문으로 제한하십시오.
Raphael

답변:


16

1) 교차와 보수를 허용하면 결과 표현식을 확장 정규 표현식 이라고도 합니다.; 일반 언어는 부울 연산으로 닫히므로 아무것도 얻지 못합니다. 그것은 단지 구문 설탕입니다. 역 동작에 대해서도 비슷한 결론이 나옵니다. 처음에 다른 모든 작업이 언급되지 않은 이유 중 일부는 정의를 가능한 한 단순하게 유지하여 (유도 적) 증명이 많은 경우를 처리 할 필요가 없다는 목표입니다. 또 다른 원인은 특정 연산을 허용하지만 다른 경우에는 그렇지 않은 경우도 있습니다. 예를 들어 별 연산자없이 확장 된 정규 표현식을 고려하는 경우 정규 표현식의 적절한 서브 클래스를 얻는 경우와 같이 매우 다른 (정규) 언어 클래스 결과가 아닌 경우도 있습니다. 소위 별표가없는 또는 비 주기적 언어 인 wikipedia : star-free language를 참조하십시오 .

2) 항목 1-6을 유지하지만 조합 대신 교차점을 사용하여 항목 4를 변경하면 정규 언어의 적절한 하위 클래스를 얻습니다. 예를 들어 언어 를 더 이상 설명 할 수 없었 습니다. 이는 와 의 결합을 포함하기 때문입니다 (아래 증명 참조). 보완을 허용하면 DeMorgan의 법률에 따라 노조가 변경되면서 상황이 바뀝니다.{ a } { b }L={a,b}{a}{b}

3) 이것은 1)에서 나에 의해 부분적으로 대답되었지만,이 정의가 선호된다는 말의 의미는 무엇입니까? 2가 생략 되거나 ( 이거나, 3이 생략되거나 ( = L ( ¯ X )가 있음) 3 개가 생략되거나, 또는 둘 다 생략되는 정의를 알고 있습니다. ) ; 이 하나는 최소한의 가능한 정의되지 않도록 (그것은 또한 우리가 설명하는 별도의 기호가 일부 문법 설탕 주시는 { ε } ).L()={ε}=L(X¯{ε}

편집 : 2 나의 첫 번째 언급 한 코멘트)에서 유도 폐쇄의 언어 잘못 , * neccessarily의 부분 집합이없는 X * 일부 X X , 예를 들어 고려 L ( B ) = { B } . 그럼에도 불구하고 우리는 L = { a , b } 가 그러한 표현으로 설명 될 수 없다는 것을 알고 있습니다. 나는 증거를 줄 것이다. 즉 나는 L = L ( R ) 이라면xxXL(ab)={ab}L={a,b}L=L(R)수정 된 4 번째 항목이있는 표현식의 경우 (따라서 a b ) { a , b } L a b L 인 경우 . 증명은 식 R 에 귀납됩니다 . 이 vacuously 보유베이스 경우에, 지금가 보유 가정 L ( R 1 ) , L ( R (2) ) . L = L 인 경우 ( R 1X={a,b}ab

{a,b}LabL.
RL(R1),L(R2) { , B } L { , B } L ( R 된 I ) , = 1 , 2 , 따라서 인덕션 가설에 의해 우리가 B를 L ( R 1 ) L ( R 2 ) . 만약L=L(R1R2)=L(R1)L(R2){a,b}L{a,b}L(Ri),i=1,2abL(R1)L(R2) 다음과 같은 = ε = ε 우리가 있어야L을 ( R 1 ) ε L ( R 2 ) 또는 그 반대. 첫 번째 경우를 가정 해 봅시다. 만약 b L ({a,b}L(R1R2)=L(R1)L(R2)a=aε=εaaL(R1)εL(R2) , 다음 B L ( R 1 ) 인덕션 가설에 의해, 따라서 B = B ε L ( R 1 ) L ( R (2) ) . 이제 가정하자 B L ( R 2 ) , 그 다음 우리가B L을 ( R 2 ) L ( R 2 ) 의 정의에 의해bL(R1)abL(R1)ab=abεL(R1)L(R2)bL(R2)abL(R2)L(R2) . 마지막 경우 , B L ( R * 1 ) 다음 ∈의 L ( R 1 ) N (B) L ( R 2 ) m 일부 N , m > 0 . 경우 N = m = 1 우리가 발견 B L을 ( RL(R1)L(R2)a,bL(R1)aL(R1)nbL(R2)mn,m>0n=m=1 인덕션 가설에 의해, 이렇게 가정 N > 1 있지만이 제공L을 ( R 1 ) 과 유사하게, 하나 m = 1 또는 M > 1이 제공 B L ( R 1 ) 와 인덕션 가설 제공 B를 L ( R 1 ) L ( R * 1 ) . abL(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}=(ab)

예, 때로는 표현할 수있는 것과 별과 별을 똑똑하게 조합하여 멀리 떨어져있는 것을 보는 것이 약간 까다로운 경우가 있습니다.
StefanH

10

정규 언어, 정규 표현식 및 유한 오토마타를 소개 한 기술 보고서는 70 페이지의 질문을합니다.

EFEFEF

EEFE

답은 여러 페이지를 차지합니다. 먼저, 결과 언어가 흥미로운 클래스를 형성하는지 여부와 다른 방법으로 설명 된 언어와 비교하는 방법에 대한 답을 찾아야합니다. 72 페이지에는 부정과 결합이 중복되어 표현력이 더해지지 않는다고 언급되어 있습니다. 80 페이지 이상에서 일반 언어는 유한 상태 기계가 인식하는 언어와 정확히 일치합니다.

다시 말해, Stefan의 답변은 이러한 개념을 처음 소개 한 보고서에 이미 제공된 것처럼 결정적인 것으로 간주 될 수 있습니다.


링크 주셔서 감사합니다. 나는 항상 학생들에게 선택은 (if-then-else와 같은) 순서 (서로 따라 오는 지시)와 반복 (때와 같이)의 자연스러운 추상화라고 설명합니다. 그러나 분명히 그것은 Kleene에 의해 언급되지 않았습니까?
Hendrik Jan

나는 Kleene의 기사를 보았고 내 대답의 모든 것이 이미 거기에 있다는 것에 놀랐습니다. 나는 다른 것을 모른다. 그래서 나는 그 대답이 기사를 읽고 아마도 Kleene이 이전에 쓴 것을 찾은 것이라고 생각합니다.
reinierpost

4

이러한 연산자 선택 (연합, 연결 및 별표)에서 표현식의 크기와 선형 크기의 NFA를 구성 할 수 있습니다. 반면에 교점과 보완을 추가하면 동등한 오토 마톤의 크기가 비원 소적으로 폭발 할 수 있으므로 일반적으로 바람직하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.