언어 감안할 때 의 길이 세트 정의 단어의 길이의 세트로 :
정규 언어의 길이 세트가 될 수있는 정수 세트는 무엇입니까?
언어 감안할 때 의 길이 세트 정의 단어의 길이의 세트로 :
정규 언어의 길이 세트가 될 수있는 정수 세트는 무엇입니까?
답변:
첫째, 중요하지는 않지만 편리한 관찰 : 비어 있지 않은 알파벳 A의 일부 정규 언어 L 에 대해 L S ( L ) 인 정수 세트 세트 는 알파벳 선택에 의존하지 않습니다. 이를 확인하려면 L 을 인식하는 유한 오토 마톤을 고려하십시오 . L 에있는 단어 의 길이는 시작 상태에서 모든 수락 상태까지 레이블이없는 그래프로 표시되는 오토 마톤 경로의 길이입니다. 특히, 모든 화살표의 레이블을 a로 바꾸고 알파벳 { a }에 대해 같은 길이로 설정된 일반 언어를 얻을 수 있습니다 . 반대로 은 한 요소 알파벳 이상의 일반 언어이며, 더 큰 알파벳에 사소하게 주입 될 수 있으며 결과는 여전히 일반 언어입니다.
따라서 우리는 싱글 톤 알파벳 이상의 단어에 가능한 길이 세트를 찾고 있습니다. : 싱글 알파벳 언어는 단항에 기입 길이 집합은 . 이러한 언어를 단일 언어라고합니다.
하자 정규 언어, 그리고 인식하는 결정적 유한 오토 마톤 (DFA) 고려 . 의 워드 길이 세트는 시작 상태에서 시작하여 수락 상태 중 하나로 끝나는 방향 그래프로 표시되는 DFA의 경로 길이 세트입니다. 한 요소 알파벳의 DFA는 꽤 길들입니다 (NFA는 더 거칠습니다) : 유한 목록 또는 원형 목록입니다. 리스트가 유한 한 경우, 리스트 순서에 따라 부터 까지 상태 번호를 지정하십시오 . 원형 인 경우 목록의 머리를 따라 에서 까지의 상태를 번호로 지정 하고 루프를 따라 에서 를 지정하십시오.
하자 최대 상태를 동의의 인덱스들의 집합 및 에서 상태를 동의의 인덱스들의 집합 에 . 그때
반대로하자 및 두 정수이어야하며 및 정수 개의 유한 집합 될되도록 및 . 그런 다음 세트 은 일반 언어입니다. 이는 위에서 설명한 DFA에서 인식하는 언어입니다. 이 언어를 설명하는 정규식 입니다.
영어로 요약하자면, 일반 언어의 길이 세트는 특정 값보다 주기적으로 ¹ 인 정수 세트입니다 .
¹ (A)에 꽉 노포 개념 , 주기적 수단 함수 인 세트의 특성 함수 ( 우리가 함수에 리프트 된 )는 주기적입니다. 특정 값을 초과하는주기는 함수가 주기적 기능으로 연장 될 수 있습니다.
유한 부분 집합 은 정규 언어 L 의 길이입니다 . 단항 알파벳 { 0 }을 취하고 L 을 { 0 ℓ 1 , … , 0 ℓ n 으로 정의 할 수 있기 때문입니다 } (빈 언어와 { ε } 포함 ).
이제 무한 세트입니다. 최종 답변이 충분히 명확하지는 않지만 간단한 분석을 제공합니다. 나는 그것이 직관적이라고 생각하고 지금 많은 시간이 없기 때문에 당신이 나에게 묻지 않으면 정교하지 않을 것입니다.
Let be regular expressions generating languages and , respectively. It is (sort of) easy to see that
Thus, the possible sets of integers that can be the length-set of a regular language are the ones that are finite subsets of or that can be built by taking finite subsets of 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 , 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.
According to the pumping lemma for regular languages, there exists an such that a string of length at least equal to can be written in the following form:
이렇게하면 집합에 대한 하나의 테스트가 제공됩니다. 모든 요소가 고정 된 값보다 크지 않은 임의의 정수 집합으로 표현 될 수 없으면 집합은 정규 언어의 길이 집합이 될 수 없습니다 , plus some multiple of an undetermined value (the length of ), plus some arbitrary finite value.
다시 말해, 정규 언어의 가능한 언어 길이 집합은 다음과 같이 설명 된 집합의 집합 조합 (주석 자 덕분에 EDIT 및 EDIT2에서 논의한 바와 같이)에 대한 종결 인 것처럼 보입니다. 고정 a , b ∈
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의에서 오는 연결에서오고, 노동 조합, 교차로, 차이의 토론과 정규 표현식의 + (뿐만 아니라 일반 언어의 다른 폐쇄 속성) 오토마타에서 증명 시작)에서 오는 보완하는 .
EDIT3 : Janoma의 의견에 비추어, 첫 번째 EDIT에서 논의한 언어 길이 세트의 클로저 속성을 잊어 봅시다. 일반 언어에는 이러한 클로저 속성이 있고 모든 일반 언어에는 DFA가 있으므로 일반 언어에 대한 펌핑 보조 법은 모든 공용체, 교차, 보완 및 일반 언어의 차이점에 적용되므로 그대로 두겠습니다. ; 나는 원래의 (길레스의 입력 덕분에 수정 된) 원본을 올바르게 만드는 데 여전히 필요할 수있는 노동 조합을 제외하고는 이러한 것을 고려할 필요조차 없습니다. 그래서 최종 답변은 이것입니다. 원래 버전에서 말하는 것과 플러스 조합에 대한 언어 길이 세트의 폐쇄.