คลาสของภาษาที่รู้จักโดย TM 3 เทปเดี่ยว


9

ฉันสงสัยมานานแล้วเกี่ยวกับทัวริงแมชชีนกับหนึ่งเทปและตรง 3 รัฐ q0สถานะการยอมรับ qacceptและสถานะการปฏิเสธ qreject) โปรดทราบว่าฉันอนุญาตให้ตัวอักษรของเทป (จำกัด ) โดยพลการ (เช่นตัวอักษรของเทปไม่ได้ถูก จำกัด ให้เท่ากับตัวอักษรอินพุต)

เพื่อความสะดวกโปรดโทรหา class ของภาษาที่ TMs จำได้ C3. ฉันมีคำถามหลายข้อเกี่ยวกับคลาสนี้:

  1. มี C3 ก่อนหน้านี้เคยเรียน?
  2. คือ C3 เป็นที่ทราบกันดีว่ามีความซับซ้อน / ความสามารถในการคำนวณอื่น ๆ
  3. เป็นคลาส C3แข็งแกร่งต่อการเปลี่ยนแปลงของแบบจำลอง ตัวอย่างเช่นถ้า TMs ที่ใช้นั้นได้รับอนุญาตให้อยู่ในระหว่างการเปลี่ยนครั้งเดียว (ซึ่งตรงกันข้ามกับการย้ายไปทางซ้ายหรือขวาเสมอ) หรือถ้าเทปถูกทำให้ไม่มีที่สิ้นสุดในทั้งสองทิศทางแทนที่จะเป็นไปทางขวา ภาษาที่รู้จักโดย 3-state 1-tape TMs มีการเปลี่ยนแปลงอย่างไร
  4. ได้อย่างไร C3 เกี่ยวข้องกับชั้นเรียนของภาษาปกติ Regular? (โดยเฉพาะอย่างยิ่งคือทุกภาษาปกติในC3?)

การค้นหา (ค่อนข้างคร่าวๆ) นำเสนอเฉพาะโพสต์ cs.stackexchange นี้ที่เกี่ยวข้อง แต่ไม่ตอบคำถามของฉันและบทความนี้ซึ่งฉันไม่ได้อ่านรายละเอียดเพียงพอเพื่อให้แน่ใจว่าเกี่ยวข้องกับชั้นเรียนอย่างแน่นอนC3 มากกว่าชั้นเรียนที่คล้ายกัน แต่แตกต่างกัน (เอกสารอ้างว่าพิสูจน์ว่า (1) ทุกภาษาใน C3 สามารถตัดสินใจได้และ (2) C3 และ Regularเป็นชั้นเรียนที่แตกต่างกับการแยกที่ไม่ว่างเปล่า) ตามที่ระบุไว้ในความคิดเห็นของการโพสต์ cs.stackexchange, TM เหล่านี้สามารถคิดเป็นออโตมาร์เซลลูล่าร์เฉพาะอย่างยิ่งดังนั้นบางทีคนที่รู้วรรณกรรมในทฤษฎีออโตเมติกเซลลูลาร์อาจช่วยได้


1
หากคุณมีสถานะไม่สิ้นสุดเพียงหนึ่งสถานะและหนึ่งเทป (เทปอินพุต) เครื่องของคุณจะไม่สามารถจำสิ่งที่อ่านได้ ดังนั้นจึงสามารถยอมรับหรือปฏิเสธอินพุตที่มีสัญลักษณ์ชัดเจนจากตัวอักษรอินพุต
David G

4
เครื่องจำไม่ได้ว่าอ่านอะไร แต่สามารถเขียนสิ่งที่อ่านด้วยอย่างอื่นได้ ดังนั้นฉันจึงไม่เห็นว่าทำไมลักษณะที่คุณให้นั้นถูกต้อง (เช่นฉันสามารถคิดเครื่องง่าย ๆ ที่ยอมรับได้01 และปฏิเสธ 011; ที่นี่พฤติกรรมไม่ได้ถูกกำหนดทั้งหมดโดยสัญลักษณ์ที่อยู่ในอินพุต)
Mikhail Rudoy

1
คุณพูดถูกปรีชาฉันผิด
David G

คำตอบ:


7

สัตว์ร้ายนั้นทรงพลังอย่างยิ่งตัวอย่างเช่นเราสามารถสร้าง TM ได้M ที่ยอมรับทุกสายของฟอร์ม

LY={r0n1mAmn}

และปฏิเสธทุกสตริงของแบบฟอร์ม

LN={r0n1mAm>n}

ความคิดคือการแปลงแรก r เข้าไป Rแล้วปล่อยให้หัวมาถึงตรงกลางของสตริงจากนั้นทำ "ไร้สัญชาติ" ซิกแซก; ถ้าถึงA ก่อน R จากนั้นก็ยอมรับ

คำอธิบายอย่างไม่เป็นทางการ:

  • บน r เขียน R และเลื่อนไปทางขวา (เตรียมการปฏิเสธ)
  • บน 0 เขียน c และเลื่อนไปทางขวา (เคลื่อนไปทางกลาง)
  • บน 1 เขียน > และเลื่อนไปทางซ้าย (ทำเครื่องหมาย a 1เตรียมความพร้อมสำหรับการข้ามจากซ้ายไปขวาถัดไปและไปทางซ้าย)
  • บน c เขียน < และเลื่อนไปทางขวา (ทำเครื่องหมาย 0เตรียมความพร้อมสำหรับการข้ามขวาไปซ้ายถัดไปและไปทางขวา)
  • บน < เขียน > และไปทางซ้าย (ข้ามซ้ายไปขวาเตรียมความพร้อมสำหรับจากขวาไปซ้ายถัดไป)
  • บน > เขียน < และไปทางขวา (ข้ามจากขวาไปซ้ายเตรียมสำหรับซ้ายไปขวาถัดไป)
  • บน A ยอมรับบน R ปฏิเสธ
  • ในช่องว่าง b ปฏิเสธ

ตัวอย่าง:

  :r 0 0 0 1 1 A
   R:0 0 0 1 1 A
   R c:0 0 1 1 A
   R c c:0 1 1 A
   R c c c:1 1 A
   R c c:c > 1 A
   R c c <:> 1 A
   R c c < <:1 A
   R c c <:< > A
   R c c:< > > A
   R c:c > > > A
   R c <:> > > A
   ...
   R c < < < <:A ACCEPT

เทคนิคซิกแซกนี้ใช้ในเครื่องทัวริงสากลขนาดเล็กที่สุด 2 สถานะ (มี 18 สัญลักษณ์) สร้างโดย Rogozhin (Rogozhin 1996. TCS, 168 (2): 215–240))

ควรให้ความสนใจบางส่วนเพื่อพิสูจน์ว่า M หยุดการทำงานของอินพุตทั้งหมด (โปรดทราบว่ามันจะปฏิเสธการป้อนข้อมูลเปล่าและสัญลักษณ์ที่ไม่หยุดนิ่งทั้งหมด "รวมกัน" เป็น < หรือ > ซึ่งไม่สามารถนำไปสู่การวนซ้ำไม่สิ้นสุด)

ตามความเห็นโดย DavidG ภาษา L(M) ได้รับการยอมรับจาก M เป็น superset ของ LY (เช่น LYL(M)) แต่ไม่มีสตริงจาก LN (เช่น L(M)LN=) และ - ตามที่แสดงความคิดเห็นโดย MikhailRudoy - นี่ก็เพียงพอที่จะพิสูจน์ได้ว่า L(M) ไม่ปกติ

แน่นอนถ้า L(M) เป็นปกติแล้วด้วย L(M){r01A}=LY={r0n1mAmn}จะเป็นปกติ (ซึ่งไม่ใช่การประยุกต์ใช้อย่างง่ายของบทแทรก); นำไปสู่ความขัดแย้ง

ดังนั้น L(M) ไม่ได้เป็นปกติ

... แต่เหมือนฮีโร่ทุกคน C3 มีส้นเท้าของ Achille: ไม่สามารถจำสิ่งปกติได้:

L={12n}

อย่างไม่เป็นทางการมันสามารถใช้ซ้ายเท่านั้น b1... (b คือสัญลักษณ์ว่างเปล่า) หรือขวา 1b...เป็นตะขอและ "ขยาย" ในทิศทางอื่น แต่สุดท้ายยอมรับหรือปฏิเสธไม่สามารถเป็นสัญลักษณ์ว่างเปล่าของฝั่งตรงข้ามดังนั้นมันสามารถทำได้เฉพาะในส่วนด้านในของ1s และเริ่มต้นจากการป้อนข้อมูลที่นานพอที่จะสามารถ "ปลอม" ยืดมันโดยหนึ่ง

ในที่สุด - หลังจากอ่านกระดาษ - ฉันสามารถยืนยันได้ว่า One-state TM ที่อธิบายไว้ตรงกับคุณ C3 ชั้นเรียน ... (ไม่มีอะไรใหม่ที่นี่ :-) ... และผู้ใช้ที่ใช้เพื่อยืนยันว่ามันมีภาษาที่ไม่ธรรมดาคล้ายกับของฉัน


1
ฉันชอบคำตอบมาก (+1) อย่างไรก็ตาม TM ที่อธิบายไว้ยอมรับภาษาอื่น มันตัวอย่างเช่นยอมรับยังสตริง rrrrr00011AAAA, r000000r0000r0000r00011A, r00011A11111111 (หลังจากมันอาจจะเป็นอะไรแทนคน) ...
เดวิด G

@DavidG: ถูกต้อง! ฉันไม่ได้คิดมากเกินไป ... ฉันพยายามแก้ไข
Marzio De Biasi

4
จริงๆแล้วแม้ผ่าน L ไม่ใช่ภาษาที่รู้จักโดย TM ที่อธิบายภาษานั้นไม่ปกติ: ถ้าเป็น TM นั้น Mจากนั้น L(M)r01A=L ดังนั้นหลักฐานสั้น ๆ โดยแย้ง (ถ้า L(M) เป็นปกติแล้ว L(M)r01A=Lจะเป็นปกติ ความขัดแย้ง) สามารถแสดงให้เห็นว่าL(M)ไม่ปกติ
Mikhail Rudoy

3
@ MikailRudoy: ใช่! ฉันมีความคิดเดียวกัน ฉันเปิด cstheory เพื่อแก้ไขคำตอบและเห็นความคิดเห็นของคุณ ลองดูว่าฉันสามารถเขียนคำตอบโดยคำนึงถึงความคิดเห็นของคุณได้หรือไม่
Marzio De Biasi

5

ฉันประเมินพลังของ C3... อันที่จริงมันอยู่ไม่ไกลจาก Hypercomputation !

(ฉันโพสต์สิ่งนี้เป็นคำตอบแยกต่างหากเพื่อความชัดเจนที่ดีขึ้น)

เราสามารถสร้างเครื่องจักรทัวริงรัฐเดียว M ที่ยอมรับสตริงของแบบฟอร์ม:

LY={a0n1mRm2n}

และปฏิเสธสตริงของแบบฟอร์ม:

LN={a0n1mRm<2n}

แนวคิดและโครงสร้างคล้ายกับคำตอบก่อนหน้านี้: แปลงอันแรก a เข้าไป Aให้หัวมาถึงกึ่งกลางของสตริงจากนั้นทำ "stateless" zig-zag แต่การเปลี่ยน "ใช้" a "ตัวนับไบนารี" ในครึ่งแรกด้วยวิธีนี้: on Z(ศูนย์) เด้งศีรษะกลับไปทางขวาและแปลงZ เป็น S (หนึ่ง) ในครั้งต่อไปที่หัวถึง Sเปลี่ยนเป็น )และปล่อยให้ศีรษะขยับไปทางซ้าย; เมื่อหัวถึง) เปลี่ยนเป็น Z. ช่วงครึ่งหลังของสตริงทำงานเหมือนตัวนับยูนารี

ช่วงการเปลี่ยนภาพคือ:

  • บน r เขียน R และเลื่อนไปทางขวา (เตรียมการปฏิเสธ)
  • บน 0 เขียน Z และเลื่อนไปทางขวา (เลื่อนไปที่กึ่งกลางตั้งค่าตัวนับไบนารีเป็น 0 .. )
  • บน 1 เขียน > และเลื่อนไปทางซ้าย (ทำเครื่องหมาย a 1 และลดจำนวนตัวนับเตรียมเตรียมการข้ามซ้ายไปขวาถัดไปและย้อนกลับไปที่ตัวนับไบนารี
  • บน > เขียน < และไปทางขวา (การข้ามจากขวาไปซ้ายของครึ่งหลังของสตริงเตรียมการจากซ้ายไปขวาถัดไป)
  • บน < เขียน > และไปทางซ้าย (จากซ้ายไปขวาข้ามครึ่งหลังของสตริงเตรียมความพร้อมสำหรับการจากขวาไปซ้ายถัดไป)
  • บน Z เขียน S และเลื่อนไปทางขวา (แปลงตัวเลขเป็นหนึ่งและย้อนกลับไปทางขวาไปยังตัวนับจำนวนนารี)
  • บน S เขียน ) และเลื่อนไปทางซ้าย (ล้างตัวเลขแล้วปล่อยให้ศีรษะเคลื่อนที่ไปทางซ้ายเหมือน "อุ้ม" เตรียมความพร้อมสำหรับส่วนซ้ายไปขวาถัดไปของส่วนแรก)
  • บน ) เขียน Z และเลื่อนไปทางขวา (ตั้งค่าศูนย์ที่จะทำให้เด้งและปล่อยให้ศีรษะเคลื่อนที่ไปทางขวา)
  • บน A ยอมรับบน R ปฏิเสธ
  • ในช่องว่าง b ปฏิเสธ

ตัวอย่าง:

 :a 0 0 0 1 1 1 1 1 1 1 1 R
  A:0 0 0 1 1 1 1 1 1 1 1 R
  A Z:0 0 1 1 1 1 1 1 1 1 R
  ...
  A Z Z Z:1 1 1 1 1 1 1 1 R
  A Z Z:Z > 1 1 1 1 1 1 1 R
  A Z Z S:> 1 1 1 1 1 1 1 R
  A Z Z S <:1 1 1 1 1 1 1 R
  A Z Z S:< > 1 1 1 1 1 1 R
  A Z Z:S > > 1 1 1 1 1 1 R
  A Z:Z ) > > 1 1 1 1 1 1 R
  A Z S:) > > 1 1 1 1 1 1 R
  A Z S Z:> > 1 1 1 1 1 1 R
  ...
  A Z S:Z > > > 1 1 1 1 1 R
  ...
  A Z S S < < <:1 1 1 1 1 R
  ...
  A S:) ) > > > > 1 1 1 1 R
  ...
 :A ) ) ) > > > > > > > > R ---> ACCEPT

ควรให้ความสนใจบางส่วนเพื่อพิสูจน์ว่า M หยุดการทำงานของอินพุตทั้งหมด (โปรดทราบว่ามันจะปฏิเสธการป้อนข้อมูลเปล่าและสัญลักษณ์ "วนรอบ" ที่ไม่หยุดนิ่งทั้งหมดผ่าน (,S,Z หรือ <,> ซึ่งไม่สามารถนำไปสู่การวนซ้ำไม่สิ้นสุด)

ภาษา L(M) เป็น superset ของ LY (LYL(M)) และไม่มีสตริงจาก LN (L(M)LN=)

สมมติว่า L(M)ไม่มีบริบทฟรี - ด้วยการปิดคุณสมบัติของ CFLs การตัดกันด้วยภาษาปกติ{r01A} สร้างภาษา CF:

L(M){r01A}={a0n1mRm2n}=LY

แต่ด้วยการประยุกต์ใช้อย่างง่าย ๆ ของOgma's Lemmaสำหรับ CFL เราสามารถพิสูจน์ได้LYCFL: แค่เลือกให้นานพอ sLY และทำเครื่องหมายทั้งหมด 0s; สามารถสูบได้อย่างน้อยหนึ่งศูนย์และจำนวนเท่าใดก็ได้1s ในสตริงการสูบน้ำการเติบโตแบบเลขชี้กำลังของ 2n นำไปสู่การสตริง LY)

ดังนั้น L(M) ไม่บริบทฟรี

... ตอนนี้ฉันสงสัยว่านี่เป็นคำตอบ "การปรับแต่งล้อ" หรือไม่หรือมันเป็นผลลัพธ์ (เล็ก) ใหม่


ดีภาษาที่นี่มีการคำนวณในระดับต่ำเป็น coNLOGTIME ดังนั้นจึงไม่จำเป็นต้องมีการไฮเปอร์คอมพิวติ้ง (ในความเป็นจริง,LY และ LNสามารถแยกได้แม้ใน DLOGTIME)
Emil Jeřábek

@ EmilJeřábek: ฉันพูดว่า "ไม่ไกล" ... อย่ายับยั้งความทะเยอทะยานของชั้นเรียนเล็ก ๆ นั้น ... :-)
Marzio De Biasi

2

ในคำตอบนี้สันนิษฐานว่าเครื่องทัวริงมีเทปไม่สิ้นสุดทั้งสองทาง การอ้างสิทธิ์ไม่ถือเป็นเทปไม่มีที่สิ้นสุดแบบทางเดียว

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

คำตอบนี้เป็นส่วนเติมเต็มให้กับ @MarzioDeBiasi คำตอบ เขาแสดงให้เห็นว่าชั้นเรียนC3 และ C3ไม่มีอยู่ใน CFL และมีภาษาที่น่าสนใจ อย่างไรก็ตามอย่างที่ฉันจะแสดงในโพสต์นี้แต่ละภาษาL ใน C3 มีคุณสมบัติที่กำหนด {1n;nN{0}} มีทั้งใน L หรือในส่วนเสริม LC. ดังนั้นC3ก็มีข้อ จำกัด เช่นกัน มันมีเพียงภาษาเอกภาพเพียงเล็กน้อย{}, {ε}, {1n;nN} และ {1n;nN{0}}. ห้องเรียนC3มีภาษาที่แตกต่างกันเล็กน้อย อย่างไรก็ตามก็ถือได้ว่าถ้าLC3 และ 1nL สำหรับ n1จากนั้น 1mL เพื่อทุกสิ่ง mn. ข้อพิสูจน์อย่างง่ายคือภาษาทั่วไปบางภาษาไม่ได้มีอยู่C3 หรือใน C3. อีกทั้งภาษา{1} ไม่ได้อยู่ใน C3 หรือใน C3.


สำหรับการอ้างสิทธิ์ (เป็นตัวหนา) เกี่ยวกับ C3มันก็เพียงพอที่จะพิสูจน์ว่าเครื่องทัวริงหนึ่งเทป M ด้วย 3 สถานะที่หยุดการรับหรือปฏิเสธสตริงทั้งหมดเสมอ {1n;nN{0}}. สมมติว่าสตริงของฟอร์ม1n, nN{0}ได้รับมอบให้ M. มีสามกรณี:

1) เมื่อไหร่M อ่าน 1 มันยอมรับหรือปฏิเสธ

2) เมื่อไหร่Mอ่าน 1 มันเลื่อนหัวไปทางซ้าย ถ้าเราต้องการMในการหยุดอินพุตนี้จะต้องยอมรับปฏิเสธหรือย้ายไปทางขวาบนสัญลักษณ์เปล่า ดังนั้นจึงไม่เคยเข้าชมเซลล์ทางด้านขวาของเซลล์เริ่มต้นของเทป ถ้าเป็นเช่นนั้นมันจะทำงานตลอดไปในอินพุต 1

3) เมื่อไหร่Mอ่าน 1 มันเลื่อนหัวไปทางขวา มันตามหลังว่าn ขั้นตอนเนื้อหาของเทปคือ An ที่ไหน A เป็นสัญลักษณ์บางอย่างจากอักษรเทปและหัวของ M อยู่ที่สัญลักษณ์ว่างทางซ้ายสุดทางขวาของหน้าสุดท้าย A. ถ้าเราต้องการMในการหยุดอินพุตนี้จะต้องยอมรับปฏิเสธหรือย้ายไปทางซ้ายบนสัญลักษณ์เปล่า เช่นในกรณีที่ 2) หัวของM จะไม่เข้าชมเซลล์โดยตรงทางด้านซ้ายของด้านขวาสุด A. ถ้าเป็นเช่นนั้นM จะทำงานตลอดไปในอินพุต 1

เป็นที่ชัดเจนว่าในทั้งสามกรณี M ยอมรับสตริงทั้งหมดจากชุด {1n;nN{0}} หรือปฏิเสธพวกเขาทั้งหมด


The proof of the claim (in bold) about C3 follows the same line as above. We take a one-tape 3-state Turing machine M that accepts a string 1n for some n1. Suppose M is given an input 1m for mn. We have to prove that M accepts this input. We have 3 cases:

1) When M reads 1, it accepts.

2) When M reads 1, it moves the head to the left. Because M accepts the input 1n, it has to accept or move to the right on the blank symbol. Hence, it never visits the nth cell to the right of the initial cell. If it would, it would run forever on input 1n.

3) When M reads 1, it moves the head to the right. It follows that after m steps, the content of the tape is Am where A is some symbol from the tape alphabet and the head of M is on the leftmost blank symbol to the right of the last A. Because M accepts the input 1n, it must accept or move to the left on the blank symbol. As in case 2), the head of M will now never visit the nth cell to the left of the rightmost A. This is because on the input 1n, M does not visit the cell directly left of the initial cell, because it contains the blank symbol and if it would read it, it would run forever.

It is clear that in all three cases M accepts all strings from the set {1m;mn}.


First of all, nowhere in the question does it say that M must halt on all inputs, so that screws up some of the logic in this answer. Beyond that, the logic in several of the cases doesn't make sense to me. For example, in case 3, if M moves left on both blank and A, then M will visit the cell directly left of the rightmost A (in direct contrast to the claim from the answer.)
Mikhail Rudoy

Nice; another way to state it is: if Σ={1} (unary languages) then k s.t. 1kL(M)L(M)={1nn>0} ...
Marzio De Biasi

@MikhailRudoy, to first clarify the case 3: if the head moves left on both A and blank symbol, then it will move left forever and will not halt. If it ever (say after 100 steps) visits the cell directly left of the rightmost A, then in the case of input 1 it never halts (in this case the cell directly left of the rightmost A will contain the blank symbol).
David G

@MikhailRudoy, it is true that I assumed that a Turing machine has to halt. I will edit the answer to include also the possibility that it runs forever. The result is similar.
David G

3
@MikhailRudoy: BTW the hatling problem is decidable for 1 state Turing machines; see Gabor T. Herman, The uniform halting problem for generalized one-state turing machines. The model described there is a little bit different from yours: the TM accepts if it ends in a mortal configuration (there is no Accept/Reject); but the result also applies to your model (just Halt the TM on the symbols that lead to your extra Accept/Reject states).
Marzio De Biasi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.