같은 수의 001과 100을 포함하는 단어의 언어가 규칙적입니까?


14

두 개의 하위 문자열의 동일한 수의 인스턴스를 포함하는 언어가 언제 규칙적인지 궁금합니다. 나는 1과 0의 동일한 수를 포함하는 언어가 정규 아니라, 같은 언어 것을 알고 , L은 = { W는 | 문자열 "001"의 인스턴스의 수는 문자열 "100"의 인스턴스의 수와 같습니다를 } 정기적? 문자열 "00100"이 허용됩니다.LL{w}

내 직감은 그렇지 않다고 말하지만, 나는 그것을 증명할 수 없다. 펌핑 보조를 통해 펌핑 할 수있는 형태로 변환 할 수 없으므로 어떻게 증명할 수 있습니까? 반면에, DFA 또는 NFA 또는 정규 표현식을 작성하려고 시도했지만 이러한 측면에서도 실패했습니다. 어떻게 진행해야합니까? 제안 된 언어 만이 아니라 일반적으로 이것을 이해하고 싶습니다.



2
자신의 솔루션에 왜 대답 할 수 없습니까?
Yuval Filmus

1
@YuvalFilmus 평판이 낮은 사용자가 자신의 질문에 답변하는 데 지연이 있습니다 (rep <100 인 경우 8 시간).
Gilles 'SO- 악마 그만'

1
아마도 q 5에 추가 루프 가 있어야 합니까? 0q5
Hendrik 1

1
0110

답변:


3

질문에서 답변을 추출했습니다.

헨드릭 얀 (Hendrik Jan)에 의해 지적 된 바와 같이, q5에는 추가적인 0 자기 루프가 있어야한다.

오토 마톤


이것은 증거가 아닌 구성입니다
vzn

간단한 문제에 대한 CS 클래스에서 때로는 DFA 만 제공되지만 언어를 정확하게 받아들이는 것은 아닙니다. 모든 입력 문자열에 대해 [어떻게] 보여야 제대로 작동합니다. "어떻게 작동합니까?"
vzn

2
q5q2

3

까다로운 질문입니다. 두 개의 001을 포함하고 100을 포함하지 않는 문자열을 구성하고 왜 그것을 할 수 없는지보십시오. X = "001의 수"이고 Y = "100의 수"이면 X = Y 또는 X = Y ± 1입니다.

트릭을 깨닫고 나면 언어가 불규칙 할 가능성이 높아지고 DFA 구성이 매우 간단합니다. 다음 기호가 0/1 인 경우 전환이 포함 된 상태는 8 개뿐입니다.

State S0: Input is empty. -> S1/C0

State S1: Input is 0. -> C2/C0

State A: Y = X + 1, input ends in 00. -> A/C0

State B0: X = Y + 1, input ends in 1. -> B1/B0

State B1: X = Y + 1, input ends in 10. -> C2/B0

State C0: X = Y, input ends in 1. -> C1/C0

State C1: X = Y, input ends in 10. -> A/C0

State C2: X = Y, input ends in 00. -> C2/B0

초기 상태는 S0이고 S0, S1, C0, C1, C2는 수락 상태입니다.

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