정규 언어에서 가능한 단어 길이는 무엇입니까?


답변:


14

첫째, 중요하지는 않지만 편리한 관찰 : 비어 있지 않은 알파벳 A의 일부 정규 언어 L 에 대해 L S ( L ) 인 정수 세트 세트 S 는 알파벳 선택에 의존하지 않습니다. 이를 확인하려면 L 을 인식하는 유한 오토 마톤을 고려하십시오 . L 에있는 단어 의 길이는 시작 상태에서 모든 수락 상태까지 레이블이없는 그래프로 표시되는 오토 마톤 경로의 길이입니다. 특히, 모든 화살표의 레이블을 a로 바꾸고 알파벳 { a }에 대해 같은 길이로 설정된 일반 언어를 얻을 수 있습니다 . 반대로LS(L)LALLa{a}L 은 한 요소 알파벳 이상의 일반 언어이며, 더 큰 알파벳에 사소하게 주입 될 수 있으며 결과는 여전히 일반 언어입니다.

따라서 우리는 싱글 톤 알파벳 이상의 단어에 가능한 길이 세트를 찾고 있습니다. : 싱글 알파벳 언어는 단항에 기입 길이 집합은 LS(L)={nNanL} . 이러한 언어를 단일 언어라고합니다.

하자 L 정규 언어, 그리고 인식하는 결정적 유한 오토 마톤 (DFA) 고려 L . L 의 워드 길이 세트는 시작 상태에서 시작하여 수락 상태 중 하나로 끝나는 방향 그래프로 표시되는 DFA의 경로 길이 세트입니다. 한 요소 알파벳의 DFA는 꽤 길들입니다 (NFA는 더 거칠습니다) : 유한 목록 또는 원형 목록입니다. 리스트가 유한 한 경우, 리스트 순서에 따라 0 부터 h 까지 상태 번호를 지정하십시오 . 원형 인 경우 목록의 머리를 따라 0 에서 h 까지의 상태를 번호로 지정 하고 루프를 따라 h 에서 h+r 를 지정하십시오.

리스트 형 오토마타

하자 F 최대 상태를 동의의 인덱스들의 집합 hG 에서 상태를 동의의 인덱스들의 집합 hh+r . 그때

LS(L)=F{kr+xxG,kN}

반대로하자 hr 두 정수이어야하며 FG 정수 개의 유한 집합 될되도록 xF,xhxG,hxh+r . 그런 다음 세트 LF,G,r={akr+xxG,kN}은 일반 언어입니다. 이는 위에서 설명한 DFA에서 인식하는 언어입니다. 이 언어를 설명하는 정규식aFaG(ar) 입니다.

영어로 요약하자면, 일반 언어의 길이 세트는 특정 값보다 주기적으로 ¹ 인 정수 세트입니다 .

¹ (A)에 꽉 노포 개념 , 주기적 수단 함수 인 세트의 특성 함수 ( N{false,true} 우리가 함수에 리프트 된 Z{false,true} )는 주기적입니다. 특정 값을 초과하는주기는 함수가 [h,+[ 주기적 기능으로 연장 될 수 있습니다.


알파벳과의 관련이 없다는 것에 대한 당신의 관찰은 Parikh의 정리가 적용될 수 있음을 시사합니다. 특히 L '에서 모든 문자가 단일 알파벳으로 축소되는 LS (L) = LS (L')임을 알 수 있습니다. 그러나 LS (L ')는 언어 L의 Parikh 맵핑이며, 이는 일반 언어에 대해 반 선형으로 알려져 있습니다.
Suresh

좋은 접근 방식! 1) 첫 번째 단락은 일반 언어가 문자열 동형에 대해 닫혀 있다는 점으로 대체 될 수 있다고 생각합니다. 2) 명확성을 위해, 당신의 두 번째 부분 포기 고려해야 { H + K의 R + ( X - 시간 ) | ... } , 오프별로 한 오류 모듈로. 3) "주기적인"정수 세트는 무엇입니까? LS(L){h+kr+(xh)}
라파엘

1
@Suresh, Raphael (1) : 나는 증거를 기초적인 방식으로 언급하는 것을 선호한다. CS 102 수업에서는 동질성이나 Parikh 매핑이 언급되지 않았다.
Gilles 'SO- 악마 중지'

당신이 색인에 시작 @Raphael (2) 내가 조건 제거 할 수 있습니다, 중요하지 않습니다 시간 G를 로, F는 우리가 원하는대로 많은 작은 요소로 흡수 할 수있다. (3) 특정 값을 초과하는주기적인 집합은 위에 표시된 형식으로 놓을 수있는 집합입니다. GhGF
Gilles 'SO- 악마 중지'

5

유한 부분 집합 은 정규 언어 L 의 길이입니다 . 단항 알파벳 { 0 }을 취하고 L{ 0 1 , , 0 n 으로 정의 할 수 있기 때문입니다 } (빈 언어와 { ε } 포함 ).{1,,n}NL{0}L{01,,0n}{ε}

이제 무한 세트입니다. 최종 답변이 충분히 명확하지는 않지만 간단한 분석을 제공합니다. 나는 그것이 직관적이라고 생각하고 지금 많은 시간이 없기 때문에 당신이 나에게 묻지 않으면 정교하지 않을 것입니다.

Let r1,r2 be regular expressions generating languages L1 and L2, respectively. It is (sort of) easy to see that

  • LS(L(r1+r2))=LS(L1L2)=LS(L1)LS(L2).
  • LS(L(r1r2))=LS(L1L2)={1+2:1LS(L1),2LS(L2)}. This is denoted LS(L1)+LS(L2).
  • LS(L(r1))={0}n1{i=1ni:(1,,n)(LS(L1))n}.

Thus, the possible sets of integers that can be the length-set of a regular language are the ones that are finite subsets of N or that can be built by taking finite subsets S1,S2 of N and using the previous formulas a finite number of times.

Here, we are using that regular languages are built, by definition, by applying the rules for constructing a regular expression a finite number of times. Note that we can start with any finite subset of N, even though in regular expressions we start with words of length 0 and 1 only as the base case. This is easily justified by the fact that all (finite) words are (finite) concatenations of the symbols of the alphabet.


I don't see any final answer. (Were you intending to finish your answer later?) I was hoping for a simple description of the possible sets, and a connection with automata.
Gilles 'SO- stop being evil'

The final answer is there: "Thus, the possible sets of integers...". That is indeed a simple description, though connected with regular expressions, not automata.
Janoma

There's a simpler description that doesn't involve taking a fixpoint. Maybe this question isn't as elementary as I thought!
Gilles 'SO- stop being evil'

I don't think you can avoid the last rule, since it is the star operator the one which can produce infinite length-sets, just as it produces infinite languages.
Janoma

@Gilles So you want a closed form of the smallest fixpoint of the inductive solution Janoma provides?
Raphael

2

According to the pumping lemma for regular languages, there exists an n such that a string x of length at least equal to n can be written in the following form:

x=uvw
Where the following three conditions hold:
|uv|<n
|v|>0
uvkwL

이렇게하면 집합에 대한 하나의 테스트가 제공됩니다. 모든 요소가 고정 된 값보다 크지 않은 임의의 정수 집합으로 표현 될 수 없으면 집합은 정규 언어의 길이 집합이 될 수 없습니다 n, plus some multiple of an undetermined value m (the length of v), plus some arbitrary finite value.

다시 말해, 정규 언어의 가능한 언어 길이 집합은 다음과 같이 설명 된 집합의 집합 조합 (주석 자 덕분에 EDIT 및 EDIT2에서 논의한 바와 같이)에 대한 종결 인 것처럼 보입니다. 고정 a , b

{a+bn|nN}S
a,bN and all finite sets S, by the pumping lemma for regular languages (thanks to Gilles for pointing out a silly mistake in my original version, whereby I was defining the set N).

EDIT: A little more discussion. Certainly all finite sets of integers are length sets. Also, the union of two length sets must also be a length set, as must be the complement of any length set (hence intersection, hence difference). The reason for this is that the regular languages are closed under these operations. Therefore, the answer I give above is (possibly) incomplete; in reality, any union of such sets is also the length set of some regular language (note that I have abandoned requiring intersection, complement, difference, etc., since these are covered by the fact that regular languages are closed under these properties, as discussed in EDIT3; I think that only union is actually necessary, even if the others are right, which might not be the case).

EDIT2 : 더 많은 토론. 내가 제공하는 답변은 기본적으로 Janoma의 답변을 조금 더 취하면 끝날 것입니다. 부분은 149) 클린의 별 (Kleene star의에서 오는bna 연결에서오고, 노동 조합, 교차로, 차이의 토론과 정규 표현식의 + (뿐만 아니라 일반 언어의 다른 폐쇄 속성) 오토마타에서 증명 시작)에서 오는 보완하는 .

EDIT3 : Janoma의 의견에 비추어, 첫 번째 EDIT에서 논의한 언어 길이 세트의 클로저 속성을 잊어 봅시다. 일반 언어에는 이러한 클로저 속성이 있고 모든 일반 언어에는 DFA가 있으므로 일반 언어에 대한 펌핑 보조 법은 모든 공용체, 교차, 보완 및 일반 언어의 차이점에 적용되므로 그대로 두겠습니다. ; 나는 원래의 (길레스의 입력 덕분에 수정 된) 원본을 올바르게 만드는 데 여전히 필요할 수있는 노동 조합을 제외하고는 이러한 것을 고려할 필요조차 없습니다. 그래서 최종 답변은 이것입니다. 원래 버전에서 말하는 것과 플러스 조합에 대한 언어 길이 세트의 폐쇄.


1
가 올바른 트랙에 있지만 어딘가에 수량 화기가 잘못되어 N을 생성하고 있습니다. {a+bna,b,nN}SN
Gilles 'SO- 악마 그만

1
The analysis for the complement of a length set may be a bit delicate. If L=L(a) over the alphabet Σ={a,b}, then the length set of L is N and the length set of L¯ is N+, and these are not complement of each other.
Janoma

@Gilles 그러나 모든 자연수는 유효한 길이로 설정됩니다. 자연수의 모든 부분 집합을 생성하지는 않습니다. 나는 문제가 될 것이라는 데 동의합니다. 편집 : 아 잠깐, 나는 당신이 말하는 것을 봅니다. 네 말이 맞아. 컴퓨터로 돌아올 때 수정됩니다.
Patrick87

@Janoma 우수한 지적, 그것이 내가 정의하고있는 것들의 세트를 어떻게 바꿀지 고려해야 할 것이다 ...
Patrick87
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.