min-heap automata에서 허용되는 언어의 역 분개에 따른 폐쇄 증명


16

이것은의 후속 질문 이 하나 .

이국적인 상태 머신 에 대한 이전 질문 에서 Alex ten Brink와 Raphael은 고유 한 상태 머신의 계산 기능 : 최소 힙 오토마타를 다루었습니다. 그들은 그러한 기계들 ( HAL )에 의해 받아 들여진 언어 세트가 문맥이없는 언어 세트의 서브 세트도 아니고 수퍼 세트도 아님 을 보여줄 수 있었다 . 그 질문에 대한 성공적인 해결책과 명백한 관심을 고려할 때 몇 가지 후속 질문을 계속 진행합니다.

정규 언어는 다양한 작업 (우리는 노조, 교차, 보완, 차이, 연결, 킨 스타 및 반전과 같은 기본 작업으로 제한 할 수 있음)으로 닫히는 것으로 알려져 있지만 컨텍스트가없는 언어는 서로 다른 클로저를 가지고 있습니다 속성 (이것은 노동 조합, 연결, 킨 스타 및 반전으로 폐쇄됩니다).

HAL이 취소되어 폐쇄됩니까?


그러한 기계의 용도는 무엇입니까? 아니면 이것은 학업 운동입니까?
— Dave Clarke

@DaveClark 글쎄, 그들은 주로 학업 운동입니다 (내가 아는 한, 나는 관련 질문에서 그것들을 만들었습니다). 그러나 다른 컴퓨터 (DFA, TM 등)와 같은 방식으로 계산을 수행 할 수 있으므로 해당 컴퓨터를 사용할 수 있습니다.
— Patrick87

이 질문은 왜 오토마타에 문법이 필요한지를 보여줍니다. 아아, 내 뇌!
— Raphael

4
나는 형식  이 사전 순으로 정렬 된  x } 의 언어를 사용하여이를 증명하려고 했지만 너무 오래 걸리고 포기했다. 어쩌면이 아이디어는 누구에게나 도움이 될 것입니다. {xy∣y is a lexicographically sorted copy of x}
— Ran G.

@ RanG : 나는 그것이 작동해야한다고 생각합니다. 나는 언어에 있음을 증명 대답에 현상금 상에 행복 과 반전이 아니라고 괜찮은 추론을 제공합니다. HAL
— Raphael

답변:


4

언어 (여기서 # 0 ( x ) 는 x 의 0 수를 나타냄 ).

L×2={x⊥y⊥z∣x,y,z∈{0,1},#0(x)=#0(y) and |x|+|y|=z}
#0(x)x

HAL 기계를 사용하여 를 결정하는 것은 쉽습니다 . 기계는 x 대 y 의 제로 수 와 x , y 의 길이 (vs z ) 의 두 가지 특성을 추적해야합니다 . x 에서 볼 때마다 0으로 힙에 a 를 넣을 수 있습니다 (그리고 나중에 y 에서 볼 때 0으로 팝 ). 또한 x , y의 비트를 푸시 합니다 (나중에 z 비트는 팝 ). 모든 s가 힙 아래로 밀리므로 카운트를 방해하지 않습니다 . ⊥L×2xyx,yz0x0y1x,y1z10⊥ 구분자로 사용되며 실제로 무시할 수 있습니다.

이제 하자 . 즉, L = { z ⊥ y ⊥ x ∣ x , y , z ∈ { 0 , 1 } , # 0 ( x ) = # 0 ( y )  및  | x | + | y | = z } 우리는 HAL 머신이 L 을 결정할 수 없음을 보여줄 것이다 .L=L×2R

L={z⊥y⊥x∣x,y,z∈{0,1},#0(x)=#0(y) and |x|+|y|=z}
L

직관은 다음과 같습니다. 위와 같이, 기계는 의 길이 와 x , y 의 0 수를 모두 추적해야합니다 . 그러나이 경우 동시에 추적해야합니다 . 힙을 통해 수행 할 수 없습니다. 자세한 내용은 z 를 읽은 후 힙에 | x | + | y | . y 를 읽는 동안 기계는 힙에 0의 숫자를 y로 유지해야합니다 . 그러나이 정보는 힙 이미 정보에 방해가 우리가 기대 길이에있다 할 수 있는 X를zx,yz|x|+|y|yyx되려고. 매우 직관적으로, 0의 수에 대한 정보 중 하나는의 길이에 대한 정보 "아래"입니다 , 그리고 읽는 동안 우리는 그것을 액세스 할 수 있는 X를 하거나 그 정보를 "위"입니다, 후자의 액세스를 렌더링, 또는 두 정보는 "혼합"되어 의미가 없어집니다.xx

보다 공식적으로, 우리는 일종의 "펌핑"인수를 사용할 것입니다. 즉, 우리는 매우 긴 입력을 받아 입력을 처리하는 동안 머신의 "상태"가 스스로 반복되어야한다는 것을 보여 주므로, 머신이 "상태"를 반복하면 입력을 "대체"할 수 있습니다.

공식적인 증거를 위해 HAL 기계의 구조를 단순화해야합니다. 즉, 전환 1 "루프"를 포함하지 않습니다 . 이 가정을 통해 기계가 처리하는 모든 입력 심볼에 대해 힙의 내용이 최대 c 만큼 증가 / 감소 할 수 있음을 알 수 있습니다 (충분히 큰 상수 c ).ε1cc

증명. H 가 L을 결정 하고 충분히 긴 입력 (예를 들어, 길이 4 n , 따라서 | x | = | y | = n , | z | = 2 n )을 고려
한다고 가정하자 ( 이하 ⊥ s 무시 ). 구체적으로 z , y를 수정 하고 # 0 ( y ) = n / 2 라고 가정하십시오 . ( n 이 있음을 관찰HL4n|x|=|y|=n|z|=2n⊥z,y#0(y)=n/2다른(X)의되도록Z⊥Y⊥X∈L.(nn/2)xz⊥y⊥x∈L

처리 한 직후 힙의 내용을 고려하십시오 . 여기에는 최대 3 n c 기호 (여기서 각 기호는 고정 알파벳 Γ )가 포함됩니다. 그러나 ( nz⊥y3ncΓ서로 다른x's(허용되는 힙의 가능한 다른 내용의 양보다 기하 급수적으로 증가하는 반면, 힙의 수는 다 항적으로 증가하지만 힙의 수가 다를수록 증가합니다). 수용해야 할두 개의 입력x1,x2를취하여다음을 유지하십시오.(nn/2)x′sx1,x2

  1. x 1 의 길이 의 접두사 는 동일한 길이 의 x 2 의 접두사와 다른 수의 0을 갖습니다 .n/2x1x2
  2. 기계가 x 부분 의 길이 의 접두사를 읽을 때까지 힙은 x 1 과 x 2 모두 동일하게 보이고 기계는 동일한 상태에 있습니다 (이는 일부 x 1 에서 발생해야합니다 . X 2 , 충분히 큰 대 N ,이 이상만큼 2 개 0.8 N 가지 옵션 2 에 대한 X 1 , X 2 및 최대 ( 3.5 C의 N ) | Γ | | Qn/2xx1x2x1,x2n20.8n2x1,x2힙 내용 및 상태에 대한 다른 옵션 3 ).(3.5cn)|Γ||Q|3

기계는 단어 를 수용해야합니다 . 여기서 x p 1 은 길이 n / 2 의 x 접두사 이고 x s 2 는 같은 길이 의 x 2 접미사입니다 . 참고에 0의 수 (X)의 P 1 (X) 의 2 에서 0의 수와 다르다 X 1 및 X 2 로부터 ( # 0 ( Yz⊥y⊥x1px2sx1pxn/2x2sx2x1px2sx1x2#0(y)x1x2

1
2 x1n/2n/4log⁡(nk)≈nH(k/n) where H() is the Binary entropy funciton. Since H(1/4)≈0.81 we have (nn/4)>20.8n for large enough n.
3 Assuming alphabet Γ, there are |Γ|n different strings of length n, so if this was a stack we were screwed. However, pushing "01" into a heap is equivalent to pushing "10" - the heap stores only the sorted version of the content. The number of different sorted strings of size n is (n+1|Γ|−1)≈n|Γ|, for a constant |Γ|.


Nice! Will have to read the formal part again later. 1) Ad ¹: See also here. 2) The argument breaks down if we allow non-deterministic choice of the returned heap symbol (among all symbols of the same priority).
— Raphael
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.