พิสูจน์การปิดตัวภายใต้การกลับของภาษาที่ยอมรับโดย min-heap ออโตมาตา


16

นี่คือคำถามที่ติดตามคนนี้

ในคำถามก่อนหน้านี้เกี่ยวกับเครื่องจักรของรัฐที่แปลกใหม่ Alex ten Brink และ Raphael ได้กล่าวถึงความสามารถในการคำนวณของเครื่องสถานะแปลก ๆ : min-heap ออโตมาตา พวกเขาสามารถแสดงให้เห็นว่าชุดของภาษาที่ยอมรับโดยเครื่องดังกล่าว ( HAL ) ไม่ใช่เซตย่อยหรือเซ็ตของชุดของภาษาที่ไม่มีบริบท เมื่อพิจารณาถึงความสำเร็จและความสนใจที่ชัดเจนของคำถามนั้นฉันจะถามคำถามติดตามหลายครั้ง

เป็นที่ทราบกันว่าภาษาปกติถูกปิดภายใต้การดำเนินงานที่หลากหลาย (เราอาจ จำกัด ตัวเองให้ดำเนินการขั้นพื้นฐานเช่นสหภาพการแยกการเติมเต็มความแตกต่างการต่อกันดาว Kleene และการกลับรายการ) ในขณะที่ภาษาปลอดบริบทมีการปิดที่แตกต่างกัน คุณสมบัติ (สิ่งเหล่านี้จะปิดภายใต้สหภาพการต่อกันดาว Kleene และการกลับรายการ)

HAL ปิดตัวลงไหม


อะไรคือการใช้งานของเครื่องดังกล่าว? หรือนี่คือแบบฝึกหัดทางวิชาการ?
Dave Clarke

@DaveClark เอาละพวกเขาส่วนใหญ่เป็นแบบฝึกหัดทางวิชาการ (เท่าที่ฉันรู้ฉันเพิ่งสร้างมันขึ้นมาในคำถามที่เชื่อมโยง) อย่างไรก็ตามพวกเขาสามารถทำการคำนวณในลักษณะเดียวกับที่เครื่องอื่น (DFAs, TMs ฯลฯ ) สามารถทำได้ดังนั้นอาจมีการใช้งานสำหรับพวกเขา
Patrick87

คำถามนี้แสดงให้เห็นว่าทำไมคุณต้องการให้มีแกรมมาพร้อมกับออโตมาตาของคุณ arr สมองของฉัน!
Raphael

4
ฉันพยายามพิสูจน์ด้วยการใช้ภาษาของรูปแบบ{xyy is a lexicographically sorted copy of x}แต่มันใช้เวลานานเกินไปและฉันก็ยอมแพ้ บางทีความคิดนี้อาจช่วยใครก็ได้
Ran G.

@ รัน: ฉันคิดว่ามันน่าจะใช้ได้นะ ฉันยินดีที่จะมอบรางวัลให้กับคำตอบที่พิสูจน์ว่าภาษาอยู่ในHALและให้เหตุผลที่ดีว่าการกลับรายการไม่ได้
กราฟิลส์

คำตอบ:


4

พิจารณาภาษา (โดยที่# 0 ( x )หมายถึงจำนวนศูนย์ในx )

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

มันง่ายในการตัดสินใจโดยใช้เครื่อง HAL - สังเกตว่าเครื่องต้องการติดตามคุณสมบัติสองประการ: จำนวนศูนย์ในx vs yและความยาวของx , y (vs z ) มันสามารถผลัก a เข้าไปใน heap สำหรับทุก ๆ ศูนย์ที่เห็นในx (แล้วต่อมาก็ pop สำหรับ zero ที่เห็นในy ) นอกจากนี้มันจะส่งผลให้บิตใด ๆ ในx , y (และต่อมาปรากฏขึ้นสำหรับบิตใด ๆ ของz ) เนื่องจากทั้งหมดถูกผลักลงกองพวกเขาจะไม่ยุ่งเกี่ยวกับการนับ L×2xyx,yz0x0y1x,y1z10 ทำหน้าที่เป็นตัวคั่นและสามารถละเว้นได้จริง

ตอนนี้ให้เป็นภาษาย้อนกลับ นั่นคือ L = { z y x x , y , z { 0 , 1 } , # 0 ( x ) = # 0 ( y )  และ  | x | + | y | = Z } เราจะแสดงให้เห็นว่าไม่มีเครื่อง HAL สามารถตัดสินใจLL=L×2R

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

สัญชาตญาณมีดังต่อไปนี้ ข้างต้นเครื่องต้องติดตามทั้งความยาวของและจำนวนของศูนย์ในX , Y อย่างไรก็ตามในกรณีนี้มันต้องติดตามพวกเขาไปพร้อม ๆ กัน สิ่งนี้ไม่สามารถทำได้ผ่านกอง ในรายละเอียดเพิ่มเติมหลังจากอ่านzฮีปจะมีข้อมูลเกี่ยวกับความยาวของ| x | + | y | . ในขณะที่อ่านYเครื่องยังต้องเก็บไว้ในกองจำนวนของศูนย์ในปี อย่างไรก็ตามข้อมูลนี้ไม่สามารถแทรกแซงข้อมูลที่กองมีอยู่แล้วตามความยาวที่เราคาดหวังxzx,yz|x|+|y|yyxเป็น. อย่างสังหรณ์ใจทั้งข้อมูลเกี่ยวกับจำนวนของศูนย์จะเป็น "ด้านล่าง" ข้อมูลเกี่ยวกับความยาวของและจากนั้นเราไม่สามารถเข้าถึงได้ในขณะที่อ่านxหรือเป็น "เหนือ" ข้อมูลที่แสดงผลไม่สามารถเข้าถึงได้หลังหรือ ข้อมูลสองรายการจะ "สับสน" และไม่มีความหมายxx

อย่างเป็นทางการมากขึ้นเราจะใช้อาร์กิวเมนต์ "ปั๊ม" บางชนิด นั่นคือเราจะใช้อินพุตที่ยาวมากและแสดงให้เห็นว่า "สถานะ" ของเครื่องจะต้องทำซ้ำตัวเองในระหว่างการประมวลผลอินพุตนั้นซึ่งจะช่วยให้เรา "แทนที่" อินพุตเมื่อเครื่องซ้ำ "สถานะ" ของมัน

ε1cc


HL4n|x|=|y|=n|z|=2nz,y#0(y)=n/2(nn/2)xzyxL

zy3ncΓ(nn/2)xsx1,x2

  1. n/2x1x2
  2. n/2xx1x2x1,x2n20.8n2x1,x2(3.5cn)|Γ||Q|3

zyx1px2sx1pxn/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.