문법과 오토마타 언어의 결정 성


16

이 대학에서 CS 과정에서 연구와 관련된 질문을 참고, 그것은 숙제되어 있지 않으므로 찾을 수 있습니다 여기에 2011 년 가을 exam2에서.

다음은 지난 시험에서보고있는 두 가지 질문입니다. 그들은 관련이있는 것 같습니다.

허락하다

FINITECFG={<G>∣G is a Context Free Grammar with |L(G)|<}

이 결정 가능한 언어 임을 증명하십시오 . FINITECF

과...

허락하다

FINITETM={<M>∣M is a Turing Machine with |L(M)|<}

FINITETM 이 (가) 결정 불가능한 언어 임을 증명하십시오 .

이 문제를 해결하는 방법에 대해 조금 잃어 버렸지 만 올바른 방향에 있다고 생각되는 몇 가지 통찰력이 있습니다. 가장 먼저 알아야 할 것은 언어 AREX . 여기서

AREX={<R,w>∣R is a regular expression with wL(R)}

결정 가능한 언어입니다 (증거는 Michael Sipser의 계산 이론 , 페이지 168에 있음). 동일한 소스는 문맥 자유 문법이 정규 표현식으로 변환 될 수 있고 그 반대도 가능하다는 것을 증명합니다. 따라서 ACFG 은 정규식으로 변환 될 수 있으므로 결정 가능해야합니다. 것을이, 그리고 사실 ATM 있습니다 않은 -decidable,이 문제에 관련이있을 것으로 보인다.

내가 생각할 수있는 유일한 것은 G를 정규 표현식으로 변환 한 후 및 대해 G를 Turing 머신으로 전달하는 것입니다 . 그런 다음 G는 수락하고 G는 그렇지 않으면 거부합니다. 으로 결정 불가능하다, 이런 일이 발생하지 않습니다. 어쨌든 나는 여기서 실수를하고 있다고 생각하지만 그것이 무엇인지 잘 모르겠습니다. 누군가 제게 손을 빌려 줄 수 있습니까?AREXATMATM


5
"컨텍스트 프리 문법은 정규 표현식으로 변환 될 수 있고 그 반대도 마찬가지입니다."사실이 아닙니다. "정규 표현식으로 변환 할 수있는 CFG가 존재한다"고 해석하지 않는 한, 그것이 당신의 생각이라고 생각하지 않습니다 의미). 정규 문법은 정규 표현식으로 변환 될 수 있습니다. 대부분의 문맥 자유 언어 (즉, 정규 언어가 아닌 모든 문맥 자유 언어)를 정규식을 사용하여 설명 할 수 없기 때문에 CFG를 정규식으로 변환하는 알고리즘은 없습니다.
sepp2k

답변:


9
  1. G를 Chomsky Normal 형식으로 변환 합니다 . 이런 식으로 빈 파생은 다른 곳에서는 나타나지 않는 시작 기호 일 뿐이므로 결국 자체적으로 생성 될 수있는 생산이있는 경우 문법은 무한합니다. 그러한 생성이 존재하지 않으면 각 기호는 유한 한 문자열 세트 만 생성 할 수 있으며 문법은 유한합니다. 따라서 각 프로덕션이 노드이고 프로덕션 내부의 각 심볼이 해당 심볼을 대상으로하는 가장자리 인 직접 그래프를 작성하십시오. 그래프에 사이클이있는 경우 CFG는 무한하며 그렇지 않은 경우 CFG는 무한합니다. 따라서 대한 튜링 머신은 정확히 그렇게하도록 구성 될 수 있으며 는 결정 가능합니다. F I N I T E C F GFINITECFGFINITECFG

  2. 을 결정할 수 있다고 가정하자 . 라고하자 H는 입력으로서 입력 및 사용 자체를 일부 갖는 문자열 튜링 기계 F I N I T E T M을 . 만약 F I N I T E T M 이 참을 반환하면 (즉, H 는 유한 언어 만 받아들입니다), HFINITETMHFINITETMFINITETMHH입력을 받아들입니다. 입력 세트가 무한하기 때문에 모순이 발생합니다 (입력의 길이는 제한이 없으므로 입력 문자열이 무한한 문자열 세트를 허용 함으로서 가능한 모든 문자열을 수락하십시오). 만약 이 거짓을 반환하면 (즉, H 의 언어는 무한대 임) H 는 입력을 거부합니다. 즉, H 의 언어는 입력을 받아들이지 않기 때문에 유한합니다 (즉, 언어가 비어 있음). 모순도 생깁니다. 이런 식으로 H 가 존재 한다는 가정은 모순을 초래하며,이 가정은 F I N I TFINITETMHHHH 은 결정 가능하다. 따라서 모순적으로 F I N I T E T M 은 결정할 수 없습니다.FINITETMFINITET미디엄

동일한 소스는 문맥 자유 문법이 정규 표현식으로 변환 될 수 있고 그 반대도 가능하다는 것을 증명합니다.

나는 Sipser가 아마도 당신이 잘못 읽거나 오해했을 것이라고 말한 것을 의심합니다. 이는 문맥이없는 문법이 오른쪽 선형 문법과 정확히 동일한 언어를 생성한다는 것을 의미합니다. 이것은 거짓입니다. 오른쪽 선형 문법이 생성하는 언어 컨텍스트가없는 문법 dp의 적절한 하위 집합입니다. 즉, 일반 언어를 사용하여 질문에 답하는 방식은 아무데도 도움이되지 않습니다.

위의 증명에서 볼 수 있듯이 두 가지 질문은 실제로 두 가지 매우 뚜렷하고 관련이없는 질문입니다. 그것들이 비슷한 말로 된 것입니다.


1
증명 2 다음에 문제가 있습니다. 알았어요 그래서 H를 G에 넘겨 요 H가 유한 한 것보다 G가 참을 반환한다면, 그것은 의미가 있습니다. 그러나 입력 세트가 무한하지는 않습니다. 참조하는 입력은 무엇입니까?
BrotherJack

1
@BrotherJack 의 입력 길이는 제한이 없으며 길이는 제한이 없습니다. 하나의 기호가있는 문자열이거나 백만 테라 바이트 길이의 입력일 수 있습니다. 이런 식으로 H 에 대한 가능한 입력 은 무한대로 설정 될 수 있기 때문에 무한정입니다. HH
Victor Stafusa

1
확인. 말이되는 것 같습니다. 해당 입력을 "입력 언어 H 내에서 가능한 문자열"이라고 말하는 것이 정확합니까?
BrotherJack

1
@BrotherJack-그 점을 더 명확하게하기 위해 답을 편집했습니다.
Victor Stafusa

1
훌륭한 설명! 시간 내 주셔서 정말 감사합니다.
BrotherJack

2

를 결정하는 또 다른 방법 은 펌핑 보조를 통하는 것입니다.FINITECFG

펌핑 보조기구는 각 CFL 이 숫자 N (문법으로부터 계산 될 수 있거나 적어도 그것의 상한은 쉽게 계산 될 수 있음)을 가지므로 N 보다 긴 x L 은 "펌핑 될 수있다"고 말한다 ".LNxLN

경우이 방법은 한정되어, 전체 의 단어 L이 보다 짧은 N .LLN

이제 확인해야 할 것은 2 N 사이의 길이를 가진 단어입니다 . 그러한 단어가 존재하면 L 은 무한합니다. 이 문장이 "만 그리고 만약에"라는 것을 보는 것은 그리 어렵지 않으므로,이 범위를 가진 단어를 찾지 못하면 L 은 유한합니다. 여기서 효율성은 Victor의 대답보다 훨씬 나쁘지만 CFL의 구조에 대해 알려줍니다.N2NLL

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