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


16

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

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

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

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


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

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

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

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

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

답변:


4

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

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

HAL 기계를 사용하여 를 결정하는 것은 쉽습니다 . 기계는 xy 의 제로 수 와 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={zyxx,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

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

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

  1. x 1 의 길이 의 접두사 는 동일한 길이 의 x 2 의 접두사와 다른 수의 0을 갖습니다 .n/2x1x2
  2. 기계가 x 부분 의 길이 의 접두사를 읽을 때까지 힙은 x 1x 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 / 2x 접두사 이고 x s 2 는 같은 길이 의 x 2 접미사입니다 . 참고에 0의 수 (X)의 P 1 (X) 2 에서 0의 수와 다르다 X 1X 2 로부터 ( # 0 ( Yzyx1px2sx1pxn/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.