규칙적이고 문맥이없는 언어의 모호함


11

다음 주장이 사실임을 이해합니다.

  1. 주어진 CFG에서 문자열의 두 가지 별개의 파생은 때때로 동일한 구문 분석 트리를 문자열에 부여 할 수 있습니다.
  2. 다른 구문 분석 트리를 나타내는 특정 CFG에 일부 문자열의 파생이 있으면 CFG가 모호합니다.
  3. 모호한 CFG에 의해 생성 된 일부 컨텍스트가없는 언어도 모호하지 않은 CFG에 의해 생성됩니다.
  4. 어떤 언어들은 그것들을 생성 할 수있는 유일한 CFG (그리고 그러한 것들이 있습니다)가 모호합니다.

Q1. 또한 위의 3 지점에서 임의의 CFG가 모호한 지 여부를 결정할 수 없다는 것도 이해합니다. 아니면 문맥이없는 언어가 모호한 지 여부를 결정하는 것이 4 지점의 의미입니까? 아니면 둘 다 결정할 수 없습니까?

Q2. "context-free"를 "regular"로 교체 할 때 1-4 중 어느 것이 거짓이됩니까? 규칙적인 문법과 언어는 항상 모호하지 않습니까?


포인트 4에서 언급 한 언어는 "본질적으로 모호합니다". Q1의 경우 GRAMMAR이 모호한 지 여부를 결정할 수 없다고 생각합니다. 따라서 3과 4 모두 결정할 수 없습니다.
Lamine

맞습니다. 포인트 4 언어는 "본질적으로 모호합니다"라고합니다.
dubiousjim

4
Q1 : 둘 다 결정할 수 없습니다. Q2 : 1은 불가능합니다. 왜냐하면 어떤 형태의 문장도 아닌 하나의 비 터미널이 나타나기 때문에, 가장 왼쪽과 오른쪽이 파생됩니다. 2 그것은 여전히 ​​사실입니다. 3``또한 ''비트를 제거하면 여전히 참입니다. 4 더 이상 사실이 아닙니다. 예를 들어 문법을 결정하면 모호하지 않은 문법을 얻게됩니다.
Sylvain

1
@ 실뱅이 대답을합니까?
Yuval Filmus

@ 실뱅, 감사합니다. 그렇습니다. 이해했음을 확인할 수 있습니까? re 2 : 그래서 다른 구문 분석 트리로 동일한 문자열을 생성 할 수있는 규칙적인 문법이 있습니까? (그 이후로 "모호한 NFA"에 대한 언급을 겪었지만, 현재의 의미에서 "명확한"을 사용하고 있는지 확실하지 않습니다.) Re 3과 4에서, 일부 정규 언어는 모호한 정규 문법으로 생성 될 수 있지만 항상 명확한 정규 문법으로 생성 될 것이라고 생각하십니까?
dubiousjim

답변:


19

Q1 정보 : 모호성 문제 (모호한 지 여부에 관계없이 CFG 제공)와 고유 모호성 문제 (CFG에 제공됨, 언어가 본질적으로 모호한 지 여부, 즉 동등한 CFG가 모호한 지 여부)는 결정 불가능합니다. 다음은 원래 참조입니다.


Q2 정보 : 정규 문법은 "단일 선형"문맥이없는 문법으로, 대부분 하나의 비단 말이 규칙 오른쪽 부분에 나타나고 비 터미널이 마지막 ( 오른쪽 선형 문법) 또는 첫 번째 ( 왼쪽 선형 문법) 위치 이러한 문법은 등가의 유한 상태 오토마타로 쉽게 변환되며 (대개 각 비 터미널을 상태로 간주하여) 정규 문법이 모호하지 않으면 명확합니다. 모호한 정규 문법과 모호하지 않은 오토마타 클래스는 특히 Stearns and Hunt (1985)에 의해 연구되었으며 , 이들은 포함 문제에 대해 다루기 쉬운 알고리즘을 즐기는 것으로 나타났습니다.

  1. βγβαγα엑스1,,엑스미디엄엑스1엑스미디엄

    이러한 서로 다른 파생은 하나의 문장 형태로 두 가지 다른 장소에 문법 규칙을 적용하는 것 중에서 선택할 수 있기 때문에 발생합니다. 적어도 두 개의 비 터미널 와 가있는 문장 형태 에서는 적용 할 수 있습니다 먼저 얻 거나 먼저 얻어 얻습니다 . 그러나 다른 규칙을 적용하면 동일한 . 가장 왼쪽 (항상 어떤 형태로든 가장 왼쪽에있는 비 터미널을 유도함) 또는 가장 오른쪽에 부과γηθαγαηθβγηβθγαηβθ 파생은 파생 트리를 방문하기 위해 정해진 순서를 부과하며, 주어진 파생 트리에 대해 단일 파생이 있습니다.

    A의 선형 어떤 sentential 형태의 비단 최대 하나가, 모두 왼쪽과 오른쪽입니다 주어진 유도 트리에 대해 하나의 유도가 있기 때문에 문맥 자유 문법, 그런 선택의 여지가 없다.

  2. 수율 (잎의 순서)가 동일한 두 개의 다른 구문 분석 트리를 갖는 것은 가 모호하다는 정의이며 , 규칙적인 문법을 고려할 때 변하지 않습니다. 또는 두 개의 서로 다른 가장 왼쪽 파생을 요청할 수도 있습니다. 단측 문법의 파생은 해당 유한 상태 오토 마톤의 수용 실행에 해당합니다 . 이는 주어진 입력 대해 서로 다른 두 개의 수용 실행이있는 경우와 정확히 같은 방식으로 모호 합니다 .

  3. 4. 유한 상태 오토마타 뷰를 취하면, 같은 언어에 대한 모호하지 않은 오토 마톤을 얻기 위해 모호한 오토 마톤을 결정하면 충분합니다. 이 결정 론적 오토 마톤은 모호하지 않은 정규 문법과 같습니다. 

    에스,,에스에스에스

영형(||2)(,')'


1

Σ

나는 당신이 어떤 종류의 언어로 대화하는지에 대해 잘 몰랐습니다. 모든 CF 언어에는 모호한 문법이 있습니다.

Q2. 규칙적인 문법을 다루는 경우 모든 것을 결정할 수 있습니다. 최소한의 DFA를 구성해야하며이를 사용하여 명확한 문법을 ​​구성 할 수 있습니다. CF 문법으로 정의 된 정규 언어를 다루는 경우에는 대답이 '아니오'입니다. Q1을 참조하십시오.


감사합니다, Q2에 대한 명확한 설명. 언어가 정규 문법으로 지정된 경우 일반 언어에 대한 질문을 결정할 수 있습니다. 그러나 이것이 CFG에 의해 언어가 지정된다면 결정 가능한 것은 아닙니다. 그것이 바로 당신이 말하는 것입니다. 따라서 임의의 CFG에 대해 결정 불가능한 모호성 등에 대한 질문이 일반 언어를 생성하는 CFG로 제한되는 경우 결정 불가능하다는 사실을 알고 있습니까?
dubiousjim

아닐 수도 있지만 항상 결정할 수 있습니다. CFG의 서브 클래스 인 정규 문법으로 기술 된 언어를 다룰 때, 어떤 질문이든 결정할 수 있습니다. 그러나 일부 비정규 CFG는 정규 언어를 생성 할 수 있으며 CFG가 정규 언어를 생성하는지 여부를 확인할 수조차 없습니다.
Alexander Rubtsov

2
@ alexandr-rubtsov "정규 문법으로 기술 된 언어를 다룰 때, 당신이 좋아하는 질문은 결정할 수 있습니다." 이것은 지나치게 낙관적 인 진술처럼 보입니다 ...
J.-E.

고마워, 나는 "누가 아는가?"
dubiousjim

@ J.-E.Pin 예 나는 더 섬세해야하고«모호함과 같은 모든 자연적인 질문»과 같은 것을 말해야합니다.
Alexander Rubtsov

0

'언어'앞 또는 '문법'앞의 '컨텍스트없는'을 '일반'으로 대체하는지 여부에 따라 다릅니다.

모든 정규 언어는 정규 문법 , 특히 모호하지 않은 명확한 정규 문법, 예를 들어 LL (1) 오른쪽 정규 문법에 의해 생성됩니다.

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