ส่วนประกอบของตัวอย่างเครื่องจักรทัวริง ความสามารถในการคำนวณฟังก์ชันที่เหมาะสมบนเครื่องทัวริง

ทัวริงแมชชีน (MT) เป็นนักแสดงเชิงนามธรรม (เครื่องคำนวณเชิงนามธรรม)

การรวมอัลกอริธึมเป็นชื่อที่ถูกสร้างขึ้นสำหรับวิธีการเฉพาะจำนวนหนึ่งสำหรับการสร้างอัลกอริธึมใหม่จากวิธีที่กำหนดหลายวิธี

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

การผสมผสานของอัลกอริธึมสำหรับเครื่องจักรทัวริงนั้นอธิบายได้จากการทำงานของเครื่องจักรทัวริง

1. การดำเนินการจัดองค์ประกอบ

ให้ M 1 และ M 2 เป็นเครื่องจักรทัวริงที่มีตัวอักษรภายนอกเหมือนกัน A« (a 0 ,a 1 ,...,ap ) ให้เราแสดงชุดของรัฐตามลำดับเป็น Q1 " (q 0 ,q 1 ,...,q n ) และ Q2 " (q 0" ,q 1" ,...,q m" )

คำนิยาม.

องค์ประกอบของเครื่องจักร M 1 และ M 2 เป็นเครื่องจักรที่แสดงถึง M=M 1 ×M 2 ซึ่งโปรแกรมมีตัวอักษร A ชุดของสถานะ Q« (q 0,q 1,...,q n,q n+1,... ,q n+m) และหาได้จากโปรแกรมของเครื่อง M 1 และ M 2 ดังนี้ ทุกจุดในโปรแกรมของเครื่อง M 1 โดยมี “สามเท่า” มีสัญลักษณ์ q 1 ( สถานะสุดท้ายของเครื่อง M 1) จะถูกแทนที่ด้วยสัญลักษณ์ q 0" (สถานะเริ่มต้นของเครื่อง M 2) สัญลักษณ์อื่น ๆ ทั้งหมดในโปรแกรมของเครื่อง M 1 และ M 2 ยังคงไม่เปลี่ยนแปลง (ในท้ายที่สุดทั้งหมดนั้น ยังคงคือการกำหนดหมายเลขใหม่ทุกสถานะของเครื่อง M: (q 0 ,q 1" ,q 2 ,...,q n ,q 0 " ,q 2" ,...,q m" ))

องค์ประกอบเริ่ม "ทำงาน" เหมือนเครื่องจักร M 1 แต่ในกรณีที่ต้องหยุดเครื่อง M 1 เครื่องจะสลับไปที่โปรแกรมของเครื่อง M 2 เนื่องจากการแทนที่ q 1 ด้วย q 0" เห็นได้ชัดว่า การดำเนินการจัดองค์ประกอบเป็นแบบเชื่อมโยง แต่ไม่ใช่การสับเปลี่ยน

การทำงานเทียบเท่ากับการทำงานต่อเนื่องของเครื่อง T1 และ T2

รูปนี้แสดงองค์ประกอบของเครื่องจักรทัวริงที่ใช้ตัวดำเนินการซ้อนทับสำหรับ n=1 และ m=1

ภาพที่ 1.

คำนิยาม.

การวนซ้ำของเครื่องทัวริง M จะถูกเรียกว่าเครื่องจักร

2. การดำเนินการแยกสาขา

ให้ M 1, M 2 และ M 3 เป็นเครื่องจักรทัวริงที่มีตัวอักษรภายนอกเหมือนกัน A« (a 0,a 1,...,a i,...,a j,...,a p) และตามลำดับ เซตของ รัฐ : Q1 " (q 0 ,q 1 ,...,q n ), Q2 " (q 0 " ,q 1 " ,...,q m " ), Q3 " (q 0 " , q 1 " ,.. . ,q ลิตร")

คำนิยาม.

ผลลัพธ์ของการดำเนินการแยกสาขาบนเครื่องทัวริง M 1, M 2 และ M3 เรียกว่าเครื่องทัวริง M ซึ่งโปรแกรมได้มาจากโปรแกรมของเครื่อง M 1, M 2 และ M 3 ดังนี้ โปรแกรมของ เขียนเครื่อง M1 จากนั้นจึงกำหนดโปรแกรมของเครื่อง M 2 และ M 3 หากอยู่ในสถานะสุดท้าย q 1 ของเครื่อง M1 สังเกตสัญลักษณ์ a i การควบคุมจะถูกถ่ายโอนไปยังเครื่อง M 2 เช่น สัญลักษณ์ q 1 ถูกแทนที่ด้วยสัญลักษณ์ q 0" และเครื่อง M 2 เริ่มทำงาน หากในสถานะสุดท้าย q 1 ของเครื่อง M 1 สังเกตสัญลักษณ์ a จากนั้นการควบคุมจะถูกถ่ายโอนไปยังเครื่อง M 3 เช่น สัญลักษณ์ q 1 จะถูกแทนที่ ด้วยสัญลักษณ์ q 0" และเครื่อง M 3 ก็เริ่มทำงาน สัญลักษณ์อื่นๆ ทั้งหมดในโปรแกรมของเครื่อง M 1 และ M 2 ยังคงไม่เปลี่ยนแปลง เครื่องจักร M ทำงานเสร็จสิ้นในสถานะสุดท้าย q 1 (โดยสรุป ยังคงต้องดำเนินการกำหนดหมายเลขใหม่ของสถานะของเครื่องจักร M จากต้นทางถึงปลายทาง)

ผลลัพธ์ของการดำเนินการสาขาบนเครื่องทัวริง M 1, M 2 และ M3 แสดงดังต่อไปนี้:

สำหรับเครื่องทัวริงสองตัวอักษร (เครื่องทัวริงที่มีตัวอักษรสองตัว) การทำงานของสาขาบนเครื่องทัวริง M1, M2 และ M3 โดยพลการจะแสดงดังนี้:

เหล่านั้น. หากเมื่อเครื่อง M1 ทำงานในสถานะ q 1 จะสังเกตเห็นสัญลักษณ์ 0 จากนั้นการควบคุมจะถูกถ่ายโอนไปยังเครื่อง M2 มิฉะนั้น - ไปยังเครื่อง M3

3. การดำเนินการวนซ้ำ

ให้ M เป็นเครื่องจักรทัวริงที่มีตัวอักษร A« (a 0 ,a 1 ,...,ap ) และเซตของสถานะ Q« (q 0 ,q 1 ,...,q n )

คำนิยาม.

ผลลัพธ์ของการดำเนินการวนซ้ำจะเรียกว่าเครื่องทัวริง ซึ่งแสดงโดย (i=0,2,3,...,n; j=0,1,2,...,p; s=0,2, 3,...,น)

โปรแกรมที่ได้มาจากโปรแกรมของเครื่อง M โดยการแทนที่สัญลักษณ์ q 1 ตามผลของคำสั่ง q i a j ®q 1 a t r, rО(L,R,L), t=0,1,2,.. .p โดยมีสัญลักษณ์ q s

2.4 รุ่นต่างๆ ของเครื่องทัวริง

เครื่องทัวริงรุ่นสามารถขยายได้ เราสามารถพิจารณาเครื่องจักรทัวริงที่มีเทปจำนวนเท่าใดก็ได้และเทปหลายมิติที่มีข้อจำกัดต่างๆ อย่างไรก็ตาม เครื่องจักรเหล่านี้ทั้งหมดเป็นเครื่องจักรทัวริงที่สมบูรณ์ และสร้างแบบจำลองโดยเครื่องจักรทัวริงธรรมดา

เพื่อเป็นตัวอย่างของความเท่าเทียมกัน ให้พิจารณาการลด MT ใดๆ ให้เป็น MT ที่ทำงานบนเทปแบบกึ่งอนันต์

ทฤษฎีบท:สำหรับเครื่องจักรทัวริงใดๆ จะมีเครื่องจักรทัวริงที่เทียบเท่าที่ทำงานบนเทปกึ่งอนันต์

การพิสูจน์:

ลองพิจารณาข้อพิสูจน์ของ Yu. G. Karpov การพิสูจน์ทฤษฎีบทนี้เป็นเชิงสร้างสรรค์ กล่าวคือ เราจะให้อัลกอริธึมสำหรับเครื่องจักรทัวริงใดๆ ก็ตาม ซึ่งสามารถสร้างเครื่องจักรทัวริงที่เทียบเท่ากับคุณสมบัติที่ประกาศไว้ได้ ขั้นแรก เราสุ่มหมายเลขเซลล์ของเทปงาน MT นั่นคือเรากำหนดตำแหน่งใหม่ของข้อมูลบนเทป:

ภาพที่ 1.

จากนั้นเรากำหนดหมายเลขเซลล์ใหม่ และเราจะถือว่าสัญลักษณ์ "*" ไม่มีอยู่ในพจนานุกรม MT:

ภาพที่ 1.

2.5 ความสามารถในการคำนวณของทัวริงและการตัดสินใจ

ได้รับการพิสูจน์แล้วข้างต้นว่าคลาสของฟังก์ชันที่คำนวณได้โดยใช้ฟังก์ชันแบบเรียกซ้ำ เครื่องทัวริง หรืออัลกอริธึมมาร์คอฟปกติตรงกัน สิ่งนี้ช่วยให้เราสามารถพิจารณาแนวคิดของ "อัลกอริธึมการคำนวณ" ที่ไม่แปรผันกับวิธีการอธิบาย ความแตกต่างจะสังเกตได้เฉพาะในการใช้วัตถุอัลกอริธึมเท่านั้น ถ้าสำหรับฟังก์ชันแบบเรียกซ้ำ วัตถุเป็นตัวเลขและฟังก์ชันตัวเลข และกระบวนการคำนวณถูกกำหนดโดยผู้ดำเนินการของการซ้อน การเรียกซ้ำ การย่อขนาด และการวนซ้ำ ดังนั้นสำหรับเครื่องทัวริง วัตถุดังกล่าวจะเป็นสัญลักษณ์ของตัวอักษรของหน่วยความจำภายนอกและภายใน และการคำนวณ กระบวนการถูกระบุโดยโปรโตคอลโดยใช้ทางออก การเปลี่ยนแปลง และการขยับศีรษะ สำหรับอัลกอริธึมมาร์คอฟปกติ วัตถุดังกล่าวคือคำหรือลำดับของสัญลักษณ์ และกระบวนการคำนวณจะถูกระบุตามกฎการทดแทนหรือผลคูณที่เปลี่ยนองค์ประกอบและโครงสร้างของลำดับสัญลักษณ์ดั้งเดิมเป็นผลลัพธ์ที่ต้องการ

ฟังก์ชันเลขคณิต (ตัวเลข) คือฟังก์ชันที่มีช่วงของค่าเป็นชุดย่อยของชุด N และโดเมนของคำจำกัดความเป็นองค์ประกอบของชุด N

สำหรับปัญหาอัลกอริทึม สถานการณ์ทั่วไปคือเมื่อคุณต้องการค้นหาอัลกอริทึมสำหรับการคำนวณฟังก์ชันตัวเลข f(x 1, x 2, ..., x n) ขึ้นอยู่กับค่าจำนวนเต็มของอาร์กิวเมนต์ x 1, x 2 , ..., x น.

เราเรียกฟังก์ชัน f:N n → N ที่สามารถคำนวณได้หากมีอัลกอริทึมที่อนุญาตให้ชุดค่าใด ๆ ของอาร์กิวเมนต์สามารถคำนวณค่าของฟังก์ชันได้ (หรือระบุว่าฟังก์ชันไม่ได้ถูกกำหนดไว้ในชุดที่กำหนด) เนื่องจากคำจำกัดความของฟังก์ชันคำนวณใช้แนวคิดตามสัญชาตญาณของอัลกอริทึม จึงมักใช้คำว่า "ฟังก์ชันคำนวณโดยสัญชาตญาณ" แทนคำว่า "ฟังก์ชันคำนวณ" ดังนั้น ปัญหามวลจะมีทางแก้หากฟังก์ชันทางคณิตศาสตร์ที่สอดคล้องกับปัญหานั้นสามารถคำนวณได้โดยสัญชาตญาณ

ฟังก์ชั่น f(x 1 , x 2 , …, xn) ถูกเรียกว่าสามารถคำนวณได้อย่างมีประสิทธิภาพหากสำหรับค่าที่กำหนด k 1 , k 2 , …, k n อาร์กิวเมนต์เราสามารถค้นหาค่าของฟังก์ชัน f(k 1 , k 2 , …, k n) โดยใช้ขั้นตอนทางกลที่มีอยู่ (อัลกอริทึม)

แทนที่จะชี้แจงแนวคิดของอัลกอริทึม เราสามารถพิจารณาชี้แจงแนวคิดของ "ฟังก์ชันที่คำนวณได้" ได้ โดยปกติแล้วจะดำเนินการตามโครงการต่อไปนี้:

1. มีการแนะนำคลาสของฟังก์ชันที่กำหนดไว้อย่างแม่นยำ

2. ตรวจสอบให้แน่ใจว่าฟังก์ชันทั้งหมดจากคลาสนี้สามารถคำนวณได้

3. ยอมรับสมมติฐาน (วิทยานิพนธ์) ว่าคลาสของฟังก์ชันที่คำนวณได้เกิดขึ้นพร้อมกับคลาสของฟังก์ชันที่แนะนำ

ฟังก์ชันเรียกว่าคำนวณได้หากมีอัลกอริธึมที่คำนวณฟังก์ชันนั้น “ความสามารถในการคำนวณ” เป็นหนึ่งในแนวคิดพื้นฐานของทฤษฎีอัลกอริทึม ซึ่งไม่แปรผันกับฟังก์ชันและอัลกอริทึมที่กำลังคำนวณ ความแตกต่างระหว่างฟังก์ชันคำนวณและอัลกอริธึมคือความแตกต่างระหว่างคำอธิบายของฟังก์ชันและวิธีที่คำนวณค่าโดยพิจารณาจากค่าของอาร์กิวเมนต์อิสระ

วิทยานิพนธ์ของทัวริง อัลกอริธึมที่ใช้งานง่ายใดๆ ก็ตามสามารถนำไปใช้ได้โดยใช้เครื่องทัวริงบางเครื่อง

ตามมาจากวิทยานิพนธ์ของทัวริงว่าหากปัญหาอัลกอริทึมเกิดขึ้น ควรแก้ไขบนพื้นฐานของการสร้างเครื่องจักรทัวริง นั่นคือแนวคิดของอัลกอริทึมที่เป็นทางการเพียงพอ ยิ่งไปกว่านั้น ในปัญหาอัลกอริทึม เรามักจะพูดถึงไม่เกี่ยวกับการสร้างอัลกอริทึม แต่เกี่ยวกับความสามารถในการคำนวณของฟังก์ชันที่สร้างขึ้นเป็นพิเศษบางอย่าง

ควรสังเกตว่าในกรณีเหล่านี้ การใช้ตัวอักษร (0,|) ก็เพียงพอแล้ว โดยที่ 0 คืออักขระว่าง ตัวอย่างเช่น ตัวเลขธรรมชาติ รวมทั้ง 0 จะถูกเข้ารหัสด้วยตัวอักษรดังนี้: 0 - |; 1 - ||; 2 -

ยังไม่มี - ||…| (n + 1 ครั้ง) ฟังก์ชันตัวเลข n-local บางส่วน f(x1, x2, ..., xn) เรียกว่าทัวริงคำนวณได้หากมีเครื่อง M ที่คำนวณในแง่ต่อไปนี้: 1. ถ้าชุดของค่าอาร์กิวเมนต์ เป็นของโดเมนของคำจำกัดความของฟังก์ชัน f จากนั้นเครื่อง M เริ่มทำงานในการกำหนดค่า 0 |x1+1 0 |x2+1 ... 0 |xn q1 | โดยที่ |x = ||... | (x ครั้ง) และรับรู้อักขระทางขวาสุด หยุด และสิ้นสุดในการกำหนดค่า 0|yq0 | โดยที่ y = f(x1, x2, …, xn) 2. ถ้าชุดของค่าอาร์กิวเมนต์ ไม่ได้อยู่ในโดเมนของคำจำกัดความของฟังก์ชัน f จากนั้นเครื่อง M ซึ่งเริ่มทำงานในการกำหนดค่าเริ่มต้นทำงานอย่างไม่มีที่สิ้นสุดนั่นคือไม่ถึงสถานะสุดท้าย เครื่องทัวริงเป็นคำจำกัดความอย่างเป็นทางการที่แม่นยำของอัลกอริทึม การใช้แนวคิดนี้เราสามารถพิสูจน์ความสามารถในการแก้ปัญหาหรือการแก้ปัญหาอัลกอริทึมไม่ได้ หากพบว่าอัลกอริธึมการคำนวณสามารถแก้ปัญหาที่เป็นของปัญหาประเภทเดียวได้ ปัญหานั้นจะเรียกว่าปัญหาที่แก้ไขได้ด้วยอัลกอริธึม กล่าวอีกนัยหนึ่ง ข้อกำหนดเบื้องต้นความสามารถในการคำนวณหรือประสิทธิผลของการคำนวณคือความสามารถในการแก้ปัญหาของอัลกอริทึม ในแง่นี้ แนวคิดเรื่อง "ความสามารถในการตัดสินใจ" ก็เป็นแนวคิดพื้นฐานในทฤษฎีอัลกอริธึมเช่นกัน การวิเคราะห์แบบจำลองสามประเภทแสดงให้เห็นว่าคุณสมบัติพื้นฐานของความรอบคอบ การกำหนดลักษณะมวล และประสิทธิผลยังคงไม่เปลี่ยนแปลงสำหรับ ในรูปแบบต่างๆคำอธิบาย: คุณสมบัติความรอบคอบ: อัลกอริธึมประกอบด้วยการกระทำเบื้องต้นแต่ละรายการที่ดำเนินการในขั้นตอน ชุดของขั้นตอนพื้นฐานที่ประกอบขึ้นเป็นกระบวนการอัลกอริธึมนั้นมีขอบเขตจำกัดและสามารถนับได้ คุณสมบัติที่กำหนด: หลังจากแต่ละขั้นตอน จะมีคำแนะนำที่ชัดเจนเกี่ยวกับวิธีการและลำดับในการดำเนินการขั้นตอนถัดไปของกระบวนการอัลกอริทึม คุณสมบัติมวล: อนุญาตให้ใช้อัลกอริธึมกับออบเจ็กต์อัลกอริธึมหลายประเภทในประเภทที่กำหนดและระดับของปัญหาที่กำหนด คุณสมบัติประสิทธิผล: การหยุดกระบวนการอัลกอริธึมเป็นสิ่งจำเป็นหลังจากขั้นตอนจำนวนจำกัดที่ระบุผลลัพธ์ที่ต้องการ อย่างไรก็ตาม วิทยานิพนธ์นี้ไม่สามารถพิสูจน์ได้ เนื่องจากมีความเชื่อมโยงกันด้วยแนวคิดที่แน่นอนของความสามารถในการคำนวณของทัวริง กับแนวคิดที่ไม่แม่นยำของฟังก์ชันที่คำนวณได้โดยสัญชาตญาณ

ปัญหาของการบังคับใช้ตนเอง

ตามคำจำกัดความของเครื่องทัวริง นี่คือสามเท่า ที= ในที่นั้น เอ-ตัวอักษร, ถาม –สถานะภายในของเครื่อง ถาม-โปรแกรมที่แยกความแตกต่างระหว่างเครื่องหนึ่งจากอีกเครื่องหนึ่ง ในกรณีทั่วไป (สำหรับเครื่องทั้งหมด) โปรแกรมอาจมีลักษณะดังนี้:

ป: ฉี เจ ® คิวอาร์ เช่น เซนต์ , ก = 1, 2, …, k , ที่ไหน ส 1- ร เอส 2- ล, ส 3- . (*)

ในกรณีนี้ เราสามารถสรุปได้ว่ามีตัวอักษรบางตัวที่เหมือนกัน เอ 0และ คิว 0ซึ่งเขียนเป็นตัวอักษร และ ถาม สำหรับเครื่องทัวริงทั้งหมด แล้วสัญลักษณ์ต่างๆ ฉี, เจก, คิวอาร์, เช่น, เซนต์เป็นสัญลักษณ์ของตัวอักษร เอ 0และ คิว 0.

วิธีการนี้ช่วยให้เครื่องทัวริงทั้งหมดสามารถกำหนดหมายเลขได้ กล่าวคือ แต่ละเครื่องจะได้รับการกำหนดหมายเลข (รหัส) เฉพาะให้กับเครื่องนี้ ซึ่งสามารถแยกความแตกต่างจากเครื่องอื่นๆ ได้ ที่นี่เราจะพิจารณาวิธีการกำหนดหมายเลขวิธีใดวิธีหนึ่ง

การนับเลข Godelian ของเครื่องทัวริง อนุญาต หน้า 1 , หน้า 2 , หน้า 3 , ... - ลำดับของจำนวนเฉพาะที่จัดเรียงจากน้อยไปหามาก เช่น 2, 3, 5, 7, 11, 13, ...

หมายเลขเครื่องทัวริงพร้อมโปรแกรม (*)หมายเลขที่เรียก

เอ็น(ที) = .

ตัวอย่าง

เครื่องจักรที่ใช้ฟังก์ชัน (x)= x + 1 ,มีโปรแกรมเป็นตัวอักษร {0,  } . จำนวนโปรแกรมนี้โดยคำนึงถึงข้อเท็จจริงที่ว่า 0 = 0 , 1= | จะมีหมายเลข:.

n(ท)= 2 1 3 1 5 1 7 1 11 1 13 1 17 0 19 0 23 1 29 3 .

แน่นอนว่าไม่ใช่ว่าตัวเลขธรรมชาติทั้งหมดจะเป็นตัวเลขของเครื่องทัวริง ในทางกลับกัน ถ้า. n – หมายเลขของเครื่องบางเครื่องในรูปแบบตัวอักษรทั่วไป จากนั้นโปรแกรมของเครื่องจะสามารถกู้คืนได้โดยไม่ซ้ำกันจากหมายเลขนี้

รถ ใช้ได้กับคำว่า n(ท)(นั่นคือรหัสหมายเลขของคุณเอง) เรียกว่าประยุกต์ใช้เองได้ .

สามารถสร้างได้ทั้งเครื่องจักรที่ใช้งานได้เองและเครื่องจักรที่ไม่สามารถใช้งานได้เอง ตัวอย่างเช่น เครื่องจากตัวอย่างที่กำหนดสามารถใช้งานได้ในตัวเอง รถ ซึ่งไม่มีสัญลักษณ์หยุดในส่วนด้านขวาของโปรแกรม (ในเนื้อหาของตาราง) ไม่สามารถใช้ได้กับคำใด ๆ และดังนั้นกับคำว่า n(ท).

ปัญหาการใช้งานด้วยตนเองเป็นดังนี้: เพื่อระบุอัลกอริธึมที่เมื่อใช้กับเครื่องจักรทัวริงใดๆ จะพิจารณาว่าสามารถนำไปใช้ได้เองหรือไม่

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

ยกตัวอย่างรถคันนี้ นำไปใช้กับรหัส n(ท * ) . ถ้ารถ * ใช้งานได้เอง จากนั้นจึงกำหนดค่าเครื่องขั้นสุดท้าย ดูเหมือน ก" คิว 0 | บี"และถ้ารถ * ไม่สามารถใช้ในตัวเองได้ ดังนั้นการกำหนดค่าขั้นสุดท้ายของเครื่อง ดูเหมือน ก" คิว 0 0 บ ". ที่นี่ ก", บี", ก", บี"- คำ.

ทฤษฎีบทปัญหาการใช้งานด้วยตนเองนั้นไม่สามารถตัดสินใจได้ในอัลกอริทึม กล่าวคือ ไม่มีเครื่องทัวริงที่สามารถแก้ไขปัญหานี้ในแง่ข้างต้นได้

ตามทฤษฎีบทที่ว่าไม่มีอัลกอริทึมทั่วไป นักแก้ปัญหาการบังคับใช้ด้วยตนเอง ในกรณีพิเศษบางอย่าง อัลกอริธึมดังกล่าวอาจมีอยู่

ให้เราใช้ผลลัพธ์ของทฤษฎีบทนี้เพื่อพิสูจน์ความไม่แน่ใจของปัญหาการบังคับใช้กับคำเริ่มต้น

ปัญหาของการบังคับใช้กับคำเริ่มต้น เป็นดังนี้: สร้างอัลกอริธึมที่เป็นไปตามเครื่อง และคำว่า เอ็กซ์ จะติดตั้งเครื่องที่ใช้งานได้ อนึ่ง เอ็กซ์ หรือไม่ (ไม่เช่นนั้นจะเกิดปัญหาการหยุด)

ในส่วนของเครื่องจักรทัวริงก็คล้ายกับการกำหนดปัญหาการใช้งานเอง ปัญหานี้กำหนดไว้ดังนี้ เป็นไปได้ไหมที่จะสร้างเครื่องจักรที่จะใช้ได้กับทุกคำในแบบฟอร์ม n(ท)0 เอ็กซ์ , ที่ไหน เครื่องโดยพลการ, เอ็กซ์ – คำพูดตามอำเภอใจและหากเครื่อง ใช้ได้กับคำว่า เอ็กซ์ ก" คิว 0 |บี" , และถ้ารถ ใช้ไม่ได้กับคำว่า เอ็กซ์ จะนำไปสู่การกำหนดค่าขั้นสุดท้าย ก" คิว 0 0 บี" . ที่นี่ ก" , บี"และ ก", บี"- คำที่กำหนดเอง

ทฤษฎีบทปัญหาของการบังคับใช้กับคำเริ่มต้นนั้นไม่สามารถตัดสินใจได้ในอัลกอริทึม กล่าวคือ ไม่มีเครื่องทัวริงที่สามารถแก้ไขปัญหานี้ในแง่ข้างต้นได้

ตามที่ระบุไว้ข้างต้นสำหรับปัญหาการใช้งานด้วยตนเอง ขั้นตอนแรกเริ่มแรกคือการนับเลข ดังนั้น ด้านล่างปัญหานี้จึงได้รับการพิจารณาและแก้ไขอย่างต่อเนื่องสำหรับอัลกอริธึมและโมเดลอัลกอริธึมหลักสามประเภท


การกำหนดหมายเลขของอัลกอริทึม

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

การกำหนดหมายเลขของอัลกอริทึมยังเป็นการกำหนดหมายเลขของฟังก์ชันที่คำนวณได้โดยใช้อัลกอริทึมทั้งหมด และฟังก์ชันใดๆ ก็ตามสามารถมีจำนวนตัวเลขได้ไม่จำกัด

การมีอยู่ของการกำหนดหมายเลขทำให้คุณสามารถทำงานกับอัลกอริธึมได้ในลักษณะเดียวกับตัวเลข การกำหนดหมายเลขมีประโยชน์อย่างยิ่งในการศึกษาอัลกอริทึมที่ทำงานร่วมกับอัลกอริทึมอื่นๆ

ปล่อยให้เกิดปัญหามวลกับเซตของวัตถุเริ่มต้น X และเซตของวัตถุที่ต้องการ Y เพื่อให้การแก้ปัญหามวลเกิดขึ้น องค์ประกอบของเซต X และ Y ต้องเป็นวัตถุเชิงสร้างสรรค์ ดังนั้น องค์ประกอบของเซตเหล่านี้จึงสามารถกำหนดหมายเลขด้วยจำนวนธรรมชาติได้ ให้ x∈ X เป็นวัตถุตั้งต้น ลองเขียนแทนจำนวนของมันด้วย n(x) หากในปัญหามวลสำหรับวัตถุดั้งเดิม x จำเป็นต้องได้รับวัตถุที่ต้องการ y∈ Y ด้วยจำนวน n(y) จากนั้นเราจะกำหนดฟังก์ชันทางคณิตศาสตร์ f: Nn →N โดยที่ f(n(x))=n (ญ)

เป็นตัวอย่างการสร้างฟังก์ชันเลขคณิตสำหรับปัญหามวล ให้เราพิจารณาปัญหามวลกัน

1. หากกำหนดอาร์เรย์ ] ของจำนวนธรรมชาติ ก็สามารถกำหนดจำนวนธรรมชาติเป็น 2x1, 3x2,... p(n)xn โดยที่ p(n) – ลำดับที่ nตัวเลข. ลองมาตัวอย่างของอาร์เรย์ที่มีความยาว 5:

] 2x13x25x37x411x5.

การกำหนดหมายเลขนี้จะกำหนดฟังก์ชันเลขคณิต f (เช่น f(73500) = f(22315372110) = 20315272113 = 4891425)

2. จำนวนตรรกยะใดๆ มีจำนวนธรรมชาติจำนวนหนึ่ง การกำหนดหมายเลขชุดของวัตถุที่ต้องการของปัญหานั้นไม่สำคัญ:

(“ใช่”, “ไม่ใช่”) ก (1, 0) สำหรับปัญหามวลที่กำหนด คุณสามารถสร้างฟังก์ชันเลขคณิตของอาร์กิวเมนต์หนึ่งตัวโดยใช้เทคนิคจากตัวอย่างที่แล้ว หรือคุณสามารถพิจารณาฟังก์ชันของอาร์กิวเมนต์สามตัวได้ (จำนวนสามตัวของสมาชิกสามตัวดั้งเดิม)

3. การกำหนดหมายเลขของข้อความโปรแกรมสามารถทำได้ดังนี้: โปรแกรมใดๆ สามารถรับรู้ว่าเป็นการเขียนตัวเลขในระบบตัวเลข 256-อารี (หากใช้อักขระตาราง ASCII ในการบันทึกโปรแกรม)

การเปลี่ยนจากปัญหามวลไปเป็นฟังก์ชันเลขคณิตช่วยให้เราลดคำถามเรื่องการมีอยู่ของวิธีแก้ปัญหามวลมาเป็นคำถามเรื่องการดำรงอยู่ได้ วิธีที่มีประสิทธิภาพการคำนวณค่าของฟังก์ชันเลขคณิตจากอาร์กิวเมนต์ (อาร์กิวเมนต์)

การนับชุดตัวเลข

ในทฤษฎีอัลกอริธึม เทคนิคหนึ่งแพร่หลายมากขึ้นซึ่งช่วยให้สามารถลดการศึกษาฟังก์ชันของตัวแปรหลายตัวเหลือเพียงการศึกษาฟังก์ชันของตัวแปรตัวเดียวได้ มันขึ้นอยู่กับการกำหนดหมายเลขของชุดตัวเลขเพื่อให้มีความสอดคล้องแบบ bijective ระหว่างชุดตัวเลขกับตัวเลข และฟังก์ชันที่กำหนดจากชุดตัวเลข หมายเลขของมันและจากตัวเลข โดยทั่วไปแล้วชุดตัวเลขนั้นจะเป็นแบบเรียกซ้ำ ตัวอย่างเช่น สำหรับฟังก์ชันที่มีตัวแปรอิสระสองตัว (x, y) การแมป h(x, y) อาจเป็นดังนี้:

ภาพที่ 1.

ให้คู่ (x, y) สร้างเซตที่เรียงลำดับบางส่วน N(2) ถ้าให้ h(x, y) = n แสดงว่ามีการแมปผกผัน: x = h -1 1 (n) และ y= h -1 2 (n) กล่าวคือ h(h -1 1 (n) ชั่วโมง -1 2 (n)) = n สิ่งนี้ช่วยให้คุณสามารถคำนวณตัวเลข n สำหรับคู่ใด ๆ (x, y) และในทางกลับกันโดยใช้ตัวเลข n เพื่อคำนวณค่าของ x และ y:

การใช้กฎเหล่านี้คุณสามารถคำนวณจำนวนสามเท่า h 2 (x, y, z) = h(h(x, y), z) = n และในทางกลับกันด้วยจำนวนสาม - ค่าของ x, y, z ตัวอย่างเช่น ถ้า h 2 (x, y, z) = n แล้ว z= h -1 2 (n), y= h -1 2 (h -1 1 (n)), x= h -1 1 ( h -1 1 (n)), h 2 (x, y, z) = h(h(h -1 1 (h -1 1 (n)), h -1 2 (h -1 1 (n)) ) , ชั่วโมง -1 2 (n)) ทริปเปิล (x, y, z) สร้างเซต N(3) ที่เรียงลำดับบางส่วน ในทำนองเดียวกันเรามีตัวเลขตามใจชอบ:

h n-1 (x1, x2,…, xn)=h(h…h(h(x1, x2), x3)… x n-1), xn) ถ้า h n-1 (x1, x2,…, xn)=m แล้ว xn = h -1 2 (m), x n-1 =h -1 2 (h -1 1 (m)), ... ...................................., x2 = ชั่วโมง -1 2 (ชั่วโมง -1 1 (. .. ชม. -1 1 (ม.)...)), x1 = ชม. -1 2 (ชม. (...ชม (ม.)...))

มีการกำหนดหมายเลขชุดของชุด N (1) , N (2) ,..., N (i) ,..., N(n โดยที่ N (i) คือชุดของชุด (i) ของตัวเลข เป็นไปได้ที่จะสร้างการรวมหมายเลขของชุดตัวเลขตามใจชอบ M = N (1) N (2) ... N (i) .. N(n) โดยที่ M N สำหรับ n N ใด ๆ เรามี h(x1, x2,..., xn )= h(h n −1 (x1,x2,..., xn), n −1)

ถ้า h(x ,1x ,2..., x)n = m แล้ว h n−1 (x ,1x ,2..., x)n = h -1 1 (m), n= h -1 2 (ม)+1. เมื่อใช้สูตรข้างต้น คุณสามารถคืนค่า x1, x2,…, xn ได้


ข้อมูลที่เกี่ยวข้อง.


ความหมาย การทำงาน และวิธีการระบุเครื่องทัวริง

เครื่องทัวริงเข้าใจว่าเป็นเครื่องจักรเชิงสมมุติ (นามธรรม) ซึ่งประกอบด้วยส่วนต่างๆ ดังต่อไปนี้ (รูปที่ 3.1)

1) เทปไม่มีที่สิ้นสุดในทั้งสองทิศทางแบ่งออกเป็นเซลล์โดยแต่ละตัวอักษรสามารถเขียนได้เพียงอักขระเดียวจากตัวอักษรและอักขระว่าง l;

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


ข้าว. 3.1. เครื่องทัวริง

การทำงานของ MT ประกอบด้วยลำดับขั้นตอนเบื้องต้น (รอบ) แต่ละขั้นตอนจะดำเนินการดังต่อไปนี้:

1. หัวหน้างานอ่าน (วิจารณ์) สัญลักษณ์

2. ขึ้นอยู่กับสถานะและสัญลักษณ์ที่กำลังตรวจสอบ หัวจะสร้างสัญลักษณ์และเขียนลงในเซลล์ที่กำลังตรวจสอบ (อาจเป็น =) ;

3. ศีรษะเลื่อนไปทางขวาหนึ่งเซลล์ (ร), ซ้าย (ญ)หรือยังคงอยู่ (จ);

4. ศีรษะเข้าสู่สภาวะภายในอื่น (อาจเป็น =)

สถานะเรียกว่าเริ่มต้นและขั้นสุดท้าย เมื่อเข้าสู่สถานะสุดท้ายเครื่องจะหยุดทำงาน

เรียกว่าสถานะสมบูรณ์ของ MT การกำหนดค่า . นี่คือการกระจายตัวอักษรระหว่างเซลล์ของเทป สถานะของส่วนหัวการทำงาน และเซลล์ที่กำลังตรวจสอบ การกำหนดค่าในชั้นเชิง ทีเขียนในรูปแบบ: โดยที่คำย่อยทางด้านซ้ายของเซลล์ที่กำลังตรวจสอบ คือ ตัวอักษรในเซลล์ที่กำลังตรวจสอบ คือคำย่อยทางด้านขวา

การกำหนดค่าเริ่มต้นและการกำหนดค่าขั้นสุดท้ายเรียกว่ามาตรฐาน

มี 3 วิธีในการอธิบายการทำงานของ MT:

ระบบคำสั่งของแบบฟอร์ม

โต๊ะอเนกประสงค์

กราฟ (แผนภาพ) ของการเปลี่ยนภาพ

ลองดูพวกเขาด้วยตัวอย่าง

ตัวอย่างที่ 1สร้าง MT ที่ใช้การต่อคำสองคำในตัวอักษรเข้าด้วยกัน คำในเทปคั่นด้วย * การกำหนดค่าเริ่มต้นเป็นมาตรฐาน

ระบบคำสั่ง MT มีลักษณะดังนี้:

ในสถานะ ศีรษะจะเลื่อนไปทางขวาจนกระทั่งสัญลักษณ์ว่างเปล่า

อักขระด้านขวาสุดจะถูกลบ

เครื่องหมายดอกจันจะถูกลบหากคำแรกว่างเปล่า

คำที่ถูกต้องจะเลื่อนอักขระทีละอักขระไปทางซ้ายทีละตำแหน่ง

เปลี่ยนไปใช้การกำหนดค่าขั้นสุดท้ายมาตรฐาน

ตารางฟังก์ชัน

*
-
-
-
-

ขีดกลางในตารางหมายความว่าไม่พบสัญลักษณ์ l ในรัฐ



a/aL b/bL
แผนภาพการเปลี่ยนแปลงมีลักษณะดังนี้:
มี/มีb/bR */*R

การกำหนดค่าขั้นสุดท้ายมาตรฐาน

เราจะเข้าใจการคำนวณฟังก์ชันพจนานุกรมบน MT ดังนี้ ให้เขียนคำว่า a ลงบนเทปในการกำหนดค่าเริ่มต้น หากมีการกำหนดค่า จำนวนขั้นตอน (รอบ) ที่จำกัดที่เครื่องจะต้องไปที่การกำหนดค่าขั้นสุดท้าย ซึ่งมีคำที่เขียนอยู่บนเทป มิฉะนั้น MT ควรทำงานอย่างไม่มีกำหนด

เมื่อใช้ MT คุณสามารถอธิบายประสิทธิภาพของการดำเนินการทางคณิตศาสตร์กับตัวเลขได้ ในกรณีนี้ ตัวเลขจะแสดงบนเทปเป็นคำในตัวอักษรที่ประกอบด้วยตัวเลขของระบบตัวเลขบางระบบ และคั่นด้วยเครื่องหมายพิเศษที่ไม่รวมอยู่ในตัวอักษรนี้ เช่น * ระบบที่ใช้กันมากที่สุดคือระบบเอกภาค ประกอบด้วยสัญลักษณ์เดียว –1 หมายเลข X บนเทปเขียนด้วยคำ (หรือตัวย่อ) ในตัวอักษร ก=(1).

ฟังก์ชันตัวเลขสามารถคำนวณได้อย่างเหมาะสม (หรือเพียงแค่คำนวณด้วยทัวริง) หากมี MT ที่จับคู่การกำหนดค่ากับการกำหนดค่าเมื่อ = หรือทำงานไม่มีกำหนดเมื่อไม่ได้กำหนด

ตัวอย่างที่ 2การดำเนินการบวกตัวเลขสองตัวในโค้ดยูนินารี

การกำหนดค่าเริ่มต้น:

การกำหนดค่าขั้นสุดท้าย: เช่น นอกจากนี้จริงๆ แล้วมาจากการกำหนดหมายเลข ไปที่หมายเลข . เมื่อต้องการทำเช่นนี้ 1 แรกจะถูกลบ และ * จะถูกแทนที่ด้วย 1

เราให้คำอธิบายของ MT ในรูปแบบของตารางการทำงาน:

*
-
-
-

วิธีการอธิบาย MT ข้างต้นสามารถใช้ได้จริงกับอัลกอริธึมแบบง่าย ๆ เท่านั้นเพราะว่า สำหรับคนที่ซับซ้อนคำอธิบายจะยุ่งยากเกินไป ในทำนองเดียวกัน การอธิบายฟังก์ชันแบบเรียกซ้ำโดยใช้เฉพาะฟังก์ชันที่ง่ายที่สุดและตัวดำเนินการของการซ้อน การเรียกซ้ำแบบดั้งเดิม และการย่อเล็กสุดจะยุ่งยากอย่างยิ่ง ดังนั้นฟังก์ชันการเรียกซ้ำแบบดั้งเดิมหรือบางส่วนได้รับการพิสูจน์โดยใช้ฟังก์ชันอื่นที่ได้รับการพิสูจน์การเรียกซ้ำแบบดั้งเดิมหรือบางส่วนแล้ว

ในทำนองเดียวกัน เครื่องจักรทัวริงสำหรับอัลกอริธึมที่ซับซ้อนสามารถสร้างได้โดยใช้ MT ที่มีอยู่ โครงสร้างนี้เรียกว่าองค์ประกอบ MT

ให้เราอธิบาย 4 วิธีหลักในการจัดองค์ประกอบ MT:

องค์ประกอบตามลำดับ (การซ้อนทับ);

องค์ประกอบแบบขนาน

การแตกแขนง

องค์ประกอบตามลำดับ เครื่องจักรและฟังก์ชันพจนานุกรมการคำนวณและตัวอักษร , เรียกรถ ซึ่งคำนวณฟังก์ชัน องค์ประกอบตามลำดับมีดังต่อไปนี้:


และถูกกำหนดไว้

การจัดองค์ประกอบตามลำดับมักใช้เพื่ออธิบายส่วนเชิงเส้นของอัลกอริทึม

ข้อพิสูจน์ทฤษฎีบทเกี่ยวกับความเป็นไปได้ในการสร้างเครื่องจักร ซึ่งเป็นองค์ประกอบตามลำดับของเครื่องสองเครื่องโดยพลการและดำเนินการโดยการระบุสถานะสุดท้ายด้วยสถานะเริ่มต้น

ตัวอย่างที่ 3สร้างอัลกอริทึมการคูณ 2*X ในโค้ดยูนินารีโดยใช้เครื่องถ่ายเอกสารที่แปลคำ a เป็นคำ a*a และเครื่องบวก MT ที่จำเป็นมีลักษณะดังนี้:


องค์ประกอบแบบขนาน เครื่องจักรและฟังก์ชันพจนานุกรมและตัวอักษรของคอมพิวเตอร์ และ ในจึงได้เรียกเครื่องว่า ซึ่งประเมินฟังก์ชันพจนานุกรม เครื่องหมายนี้ใช้เพื่อแยกคำในการจัดองค์ประกอบ MT แบบขนาน


และถูกกำหนดไว้: .

ในความเป็นจริง การจัดองค์ประกอบแบบขนานของ MT สองตัวจะได้รับเมื่อป้อนคำที่ประกอบด้วย 2 คำในตัวอักษรที่แตกต่างกันและส่งออกคำที่ประกอบด้วย 2 คำ ได้แก่ แสดงถึงเครื่องจักรที่ทำงานพร้อมกันและเป็นอิสระสองเครื่อง

ในการใช้องค์ประกอบแบบขนานจะใช้เครื่องจักรที่มีสายพานสองชั้น ความจำเป็นนี้เกิดจากการที่การคำนวณและเวลาเกิดขึ้นตามลำดับ และในการคำนวณ เช่น ขั้นแรก อาจต้องใช้พื้นที่มากกว่า a และทำให้คำว่า b เสีย เครื่องเทปสองชั้นทำงานดังนี้ คำว่า b เขียนไปที่ชั้นสองแล้วลบที่ชั้นหนึ่ง คำนวณที่ชั้นหนึ่ง คำนวณบนชั้นสอง แล้วเขียนใหม่ไปที่ชั้นหนึ่ง อาจมีกะ .

เพื่อใช้การจัดองค์ประกอบแบบขนาน nเครื่องจักรที่ใช้ น–เทปปูพื้น

คำสั่ง MT พร้อมเทปสองชั้นเขียนดังนี้: โดยที่ตัวอักษรที่เขียนบนชั้นหนึ่งและชั้นสองตามลำดับ

ตัวอย่างที่ 4. ใช้องค์ประกอบคู่ขนานของเครื่องจักรและฟังก์ชันการคำนวณในระบบเลขฐานสองและ ก+ขในระบบยูนารี

คำที่ป้อนมีรูปแบบ: .

ให้เราอธิบายการทำงานของ MT ด้วยระบบคำสั่ง:

เลื่อนไปทางขวาไปที่คำ b

เขียนคำว่า b ใหม่ไปที่ชั้นสอง

เลื่อนไปทางซ้ายไปที่คำ ก

การบวก 1 เข้ากับจำนวน X

เลื่อนไปทางขวาไปที่คำ b

การสำรวจสำมะโนประชากร b ไปที่ชั้น 1 พร้อมการบวกตัวเลขพร้อมกัน และ .T ตามนั้น คำสั่งในวงเล็บปีกกาถูกเพิ่มเข้าไปในระบบคำสั่ง

สถานะสุดท้ายของ MT ทั้งหมด

ควรสังเกตว่าในทุกกรณีที่จุดเริ่มต้นของอัลกอริทึมจำเป็นต้องแทรกการตรวจสอบแหล่งข้อมูลสำหรับค่าพิเศษ (ส่วนใหญ่มักจะเป็น 0) การไม่ปฏิบัติตามข้อกำหนดนี้อาจนำไปสู่การวนซ้ำ

องค์ประกอบของ MT สามารถใช้เพื่อสร้างอัลกอริทึมที่ซับซ้อนได้ คำถามเกิดขึ้น: สามารถใช้อัลกอริธึมใด ๆ เป็นองค์ประกอบ MT ได้หรือไม่ คำตอบสำหรับคำถามนี้ได้รับจาก วิทยานิพนธ์ของทัวริง ซึ่งเป็นอะนาล็อกของวิทยานิพนธ์ของ Church: ทุกอัลกอริทึมสามารถนำไปใช้ได้โดยใช้เครื่องจักรทัวริง และในทางกลับกัน ทุกกระบวนการที่ดำเนินการโดยเครื่องจักรทัวริงนั้นเป็นอัลกอริทึม

วิทยานิพนธ์ของทัวริงไม่ใช่ทฤษฎีบท มันเป็นไปไม่ได้ที่จะพิสูจน์ เพราะว่า มันมีแนวคิดที่ไม่เป็นทางการ” อัลกอริทึม" อย่างไรก็ตาม การฝึกฝนทางคณิตศาสตร์เป็นเวลาหลายปีเป็นการยืนยันที่เชื่อถือได้สำหรับวิทยานิพนธ์นี้ เป็นเวลา 50 ปีแล้วที่ไม่พบอัลกอริทึมในแง่สัญชาตญาณที่ไม่สามารถนำมาใช้โดยใช้เครื่องทัวริงได้

เป้าหมายของงาน:ได้รับทักษะการปฏิบัติในการเขียนอัลกอริธึมโดยใช้องค์ประกอบของเครื่องจักรทัวริง

ข้อมูลทางทฤษฎี

วิธีการอธิบาย MT ข้างต้นสามารถใช้ได้จริงกับอัลกอริธึมแบบง่าย ๆ เท่านั้น ไม่เช่นนั้นคำอธิบายจะยุ่งยากเกินไป เครื่องจักรทัวริงสำหรับอัลกอริธึมที่ซับซ้อนสามารถสร้างขึ้นได้โดยใช้ MT พื้นฐานที่มีอยู่แล้ว และโครงสร้างนี้เรียกว่า องค์ประกอบ MT.

ให้เราอธิบาย 4 วิธีหลักในการจัดองค์ประกอบ MT:

องค์ประกอบตามลำดับ (การซ้อนทับ);

องค์ประกอบแบบขนาน

การแตกแขนง

1. องค์ประกอบตามลำดับของเครื่องทัวริง

องค์ประกอบตามลำดับหรือ การซ้อนทับเครื่องจักรทัวริงและ

และ
เป็นตัวอักษร เอ,มันเรียกว่ารถยนต์ , การคำนวณฟังก์ชัน
.

องค์ประกอบตามลำดับมีดังต่อไปนี้:

และถูกกำหนดไว้
หรือ
.

2. องค์ประกอบคู่ขนานของเครื่องทัวริง

องค์ประกอบแบบขนาน รถ
และ
, การคำนวณฟังก์ชันพจนานุกรม
และ
ในตัวอักษร และ ใน,จึงได้เรียกเครื่องว่า ซึ่งประเมินฟังก์ชันพจนานุกรม นี่ป้าย. ใช้เพื่อแยกคำในการจัดองค์ประกอบ MT แบบขนาน

องค์ประกอบแบบขนาน MT
และ
มีดังต่อไปนี้:

และถูกกำหนดไว้:
.

ในความเป็นจริงการจัดองค์ประกอบแบบขนานของ MT สองตัวจะได้รับเมื่อป้อนคำที่ประกอบด้วย 2 คำในตัวอักษรที่แตกต่างกันและส่งออกคำที่ประกอบด้วย 2 คำเช่น แสดงถึงเครื่องจักรที่ทำงานพร้อมกันและเป็นอิสระสองเครื่อง ในการใช้องค์ประกอบแบบขนานจะใช้เครื่องจักรที่มีสายพานสองชั้น

เครื่องสายพานสองชั้นทำงานดังนี้:

1) คำ เขียนใหม่บนชั้นสองของเทปและลบออกที่ชั้นแรก

2) คำนวณ
ที่ชั้นหนึ่ง

3) คำนวณ
บนชั้นสอง

4)
เขียนใหม่ไปที่ชั้นหนึ่ง อาจมีกะ

คำสั่ง MT พร้อมเทปสองชั้นเขียนดังนี้:

,

ที่ไหน
– ตัวอักษรที่เขียนบนชั้นหนึ่งและชั้นสองตามลำดับ ให้เราแสดงความยาวของคำ
ตามลำดับ
.

ให้เราสาธิตการทำงานของเครื่องจักรทัวริงด้วยเทปสองชั้น โดยทั่วไปความยาวของคำ
และ
ไม่ตรงกัน แต่เพื่อความเรียบง่ายของภาพเราถือว่ามีความเท่าเทียมกัน จากนั้นการดำเนินการตามจุดที่ 1)-4) บน MT ด้วยเทปสองชั้นจะดำเนินการในลักษณะนี้:

เพื่อใช้การจัดองค์ประกอบแบบขนาน n มีการใช้เครื่องจักรทัวริง nเทปปูพื้น

3. การแตกแขนงหรือการเปลี่ยนแปลงแบบมีเงื่อนไขในองค์ประกอบของเครื่องจักรทัวริง

หากได้รับเครื่องทัวริง
และ
, การคำนวณฟังก์ชันพจนานุกรม
และ
และรถ
ซึ่งประเมินภาคแสดงบางส่วน () ด้วยการบูรณะ (กล่าวคือ โดยไม่ลบคำว่า. ), จากนั้นจึงสามารถสร้างเครื่องจักรทัวริงเพื่อใช้การแยกสาขาได้
, คำนวณฟังก์ชัน:

การแตกแขนงของเครื่องทัวริงในแผนภาพองค์ประกอบมีดังต่อไปนี้:

และถูกกำหนดไว้
, ที่นี่
- ผลการทำงานของเครื่อง
โดยรับค่า "1" ถ้าเป็นภาคแสดง ()= จริงและ "0" ถ้าเป็นภาคแสดง ()= เท็จ,
– เครื่องทัวริงที่ใช้การคัดลอกคำที่ป้อน
.

4 . วงจรในองค์ประกอบของเครื่องจักรทัวริง

วงจรในการจัดองค์ประกอบ MT จะถูกนำไปใช้ตามหลักการเดียวกันกับการแยกสาขา

" ลาก่อน พี()= จริง, เติมเต็ม
»,

ที่ไหน – ข้อความบนเทปก่อนการดำเนินการครั้งแรก
และหลังจากการประหารครั้งต่อไป .

เพื่อพรรณนาวัฏจักร เราแนะนำสัญลักษณ์บางอย่าง ให้:

– เครื่องจักรทัวริงที่ใช้การคำนวณภาคแสดง พี() ;

–MT ซึ่งดำเนินการคัดลอกคำที่ป้อน
;

–MT ดำเนินการในลูปและนำไปใช้งาน
;

–MT ดำเนินการเมื่อออกจากลูปและนำไปใช้งาน
.

จากนั้น สามารถอธิบายองค์ประกอบวงจรของเครื่องทัวริงหรือวงจรได้ดังนี้

การเขียนโปรแกรมด้วยองค์ประกอบของเครื่องทัวริง:

1) การสร้างบล็อกไดอะแกรมของอัลกอริธึมที่ซับซ้อนในระดับรายละเอียดที่บล็อกนั้นสอดคล้องกับ MT ระดับประถมศึกษา

2) การสร้าง MT ระดับประถมศึกษาที่ใช้บล็อกแบบง่าย

3) การรวม MT เบื้องต้นเข้ากับองค์ประกอบ MT

ตัวอย่าง.สร้างองค์ประกอบ MT ที่นำไปใช้
.

–เครื่องทัวริงซึ่งดำเนินการคัดลอกคำที่ป้อน

–MT ซึ่งใช้ฟังก์ชันการตั้งค่าค่าคงที่เป็นศูนย์

–MT ภาคแสดงการคำนวณพร้อมการฟื้นฟู
;

– MT ที่ใช้ฟังก์ชันการเลือก -ข้อโต้แย้งนั้นจาก ข้อโต้แย้ง;

–MT การใช้ฟังก์ชันลดอาร์กิวเมนต์ คูณ 1 ในโค้ดยูนินารี (ลบอักขระซ้ายสุด)

– MT ซึ่งทำการบวกตัวเลขสองตัวในรหัสเอกนารี

ควรสังเกตว่าไม่ว่าในกรณีใด จำเป็นต้องตรวจสอบความถูกต้องของข้อมูลอินพุตที่จุดเริ่มต้นของการดำเนินการอัลกอริทึม (ตัวอย่างเช่น ความเท่าเทียมกันของอาร์กิวเมนต์ถึง 0 ในระหว่างการหาร)

รูปที่ 1.6

สัญลักษณ์ต่อไปนี้ใช้ในรูปที่ 1.6:

T 1, T 2 - เครื่องจักรทัวริง;

ST 1, ST 2 - ระบบคำสั่งของเครื่องจักร T 1 และ T 2 ตามลำดับ

x - ข้อมูลเริ่มต้นสำหรับเครื่อง T 1;

T 1 (x) - ผลลัพธ์ของการทำงานของเครื่อง T 1;

T 2 (T 1 (x)) - ผลลัพธ์ของการทำงานของเครื่อง T 2

เป็นตัวอย่าง ให้พิจารณาองค์ประกอบของเครื่องสองเครื่อง เครื่องแรกดำเนินการคัดลอก และเครื่องที่สองดำเนินการเพิ่มตัวเลขในโค้ดยูนินารี แผนภาพการรวมเครื่องจักรและตัวอย่างเทปกับผลลัพธ์ที่ได้แสดงไว้ในรูปที่ 1.7


รูปที่ 1.7

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

อย่างไรก็ตาม การใช้องค์ประกอบของเครื่องจักรสันนิษฐานว่าทราบอัลกอริธึมสำหรับการดำเนินการเบื้องต้น ซึ่งอัลกอริธึมทั่วไปถูกประกอบขึ้น ดังนั้นเมื่อแก้ไขปัญหาตามอำเภอใจ วิธีการนี้ไม่ได้ยกเว้นความจำเป็นในการเขียนอัลกอริธึมใหม่ ดังนั้นจึงพัฒนาเครื่องจักรทัวริงด้วยหน่วยควบคุมที่แตกต่างกัน เป็นไปได้ที่จะใช้อัลกอริธึมใด ๆ โดยไม่ต้องเปลี่ยนโครงสร้างของชุดควบคุมโดยใช้เครื่องทัวริงสากล



1.2.2.เครื่องทัวริงสากล

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

เมื่อวิเคราะห์การดำเนินการที่ดำเนินการเมื่อสร้างแบบจำลองเครื่องจักรทัวริง สามารถระบุได้ว่าการสร้างแบบจำลองลงมาเพื่อทำซ้ำการกระทำต่อไปนี้ในแต่ละขั้นตอน:

AREการอ่านอักขระจากเซลล์เทปที่มีหัวอยู่

èค้นหาคำสั่งในตารางการทำงานของเครื่องจักร การค้นหาจะดำเนินการตามสถานะปัจจุบันของเครื่องและค่าของสัญลักษณ์การอ่าน

ให้เลือกสัญลักษณ์จากคำสั่งที่ควรเขียนลงในเทปแล้วบันทึก

ให้เลือกสัญลักษณ์การเคลื่อนที่ของศีรษะจากคำสั่งแล้วขยับ

ให้เลือกสถานะเครื่องใหม่จากคำสั่งและเปลี่ยนสถานะปัจจุบันเป็นสถานะใหม่ ตามด้วยการย้ายไปยังขั้นตอนถัดไปและทำซ้ำขั้นตอนเหล่านี้

เซนต์
ส.อ.

รูปที่ 1.8

ธรรมชาติของการกระทำเบื้องต้นเหล่านี้สามารถทำได้โดยใช้เครื่องจักรทัวริงอื่นๆ ซึ่งจะจำลองการทำงานของเครื่องจักรดั้งเดิม สาระสำคัญของการสร้างแบบจำลองอธิบายไว้ในรูปที่ 1.8

หากเครื่อง T มีระบบคำสั่ง ST และประมวลผลเทปด้วยข้อมูล X การทำงานของเครื่องนั้นก็สามารถจำลองโดยเครื่อง U อื่นซึ่งมีระบบคำสั่ง SU ของตัวเองได้ ในการจำลองอินพุตของเครื่อง U คุณต้องส่งไม่เพียง แต่เทปที่มีข้อมูล X เท่านั้น , แต่ยังรวมถึงระบบคำสั่ง (โต๊ะทำงาน) ST. ระบบคำสั่งนี้สามารถบันทึกลงในเทปเดียวกับข้อมูลต้นฉบับได้



รูปที่ 1.9

คุณสมบัติที่สำคัญเครื่องสร้างแบบจำลองคือระบบคำสั่ง SU (และตามโครงสร้างของชุดควบคุม) ไม่ได้ขึ้นอยู่กับอัลกอริธึมการทำงานของเครื่องจำลอง T เครื่องทัวริงที่สามารถจำลองการทำงานของเครื่องทัวริงอื่น ๆ เรียกว่าสากล โครงสร้างที่แตกต่างกันของเครื่องทัวริงสากล (UMT) แสดงในรูปที่ 1.9

เทป UMT แบ่งออกเป็นสามโซน: โซนข้อมูล โซนโหมด และโซนคำสั่ง

โซนข้อมูลประกอบด้วยข้อมูลเริ่มต้นที่ต้องประมวลผลโดยเครื่องทัวริงจำลอง ในโซนเดียวกันจะมีการบันทึกผลลัพธ์ของการดำเนินการ UMT

โซนโหมดจะบันทึกสถานะปัจจุบัน Q t และสัญลักษณ์อินพุตปัจจุบัน X t ซึ่งอ่านจากเซลล์โซนข้อมูลในรอบที่กำหนด

โซนสั่งการประกอบด้วยระบบสั่งการของเครื่องจำลอง คำสั่งจะถูกจัดเป็นกลุ่ม กลุ่มแรกประกอบด้วยคำสั่งที่ขึ้นต้นด้วยสัญลักษณ์ Q 0 กลุ่มที่สอง - ด้วยสัญลักษณ์ Q 1 เป็นต้น ภายในแต่ละกลุ่ม คำสั่งจะเรียงลำดับตามค่าของสัญลักษณ์ X t ดังนั้นคำสั่งบนเทปจึงอยู่ในตำแหน่งเดียวกับที่อยู่ในตารางการทำงานของเครื่องจำลอง

การอ่านข้อมูลจากเทปและการเขียนลงเทปจะดำเนินการโดยใช้สามหัว: G d - หัวข้อมูล, G r - หัวโหมด, G k - หัวคำสั่ง แต่ละหัวสามารถเคลื่อนที่ไปตามโซนของสายพานได้

ก่อนที่ UMT จะเริ่มทำงาน ข้อมูลที่เกี่ยวข้องจะต้องถูกบันทึกไว้ในแต่ละโซนของเทป ต้องติดตั้งหัวไว้เหนือสัญลักษณ์ด้านซ้ายในแต่ละโซน

การทำงานของ UMT จะเกิดขึ้นเป็นรอบ โดยในแต่ละรอบจะมีการจำลองการดำเนินการคำสั่งเดียวของเครื่องจำลอง กราฟการทำงานของ UMT แสดงในรูปที่ 1.10


รูปที่ 1.10

สัญลักษณ์ต่อไปนี้ใช้ในรูปที่ 1.10:

Q G ถึง P (G ถึง L, G r P, G r L, G d P, G d L) - ขยับหัวข้างใดข้างหนึ่ง

ขวาหรือซ้าย;

Q (G k), (G d), (G r) - ข้อมูลที่อ่านโดยหนึ่งในหัว;

Q (G k) à (G r) - อ่านข้อมูลโดยหัวหน้าคำสั่งและเขียนข้อมูลนี้

ถ่ายโอนโดยใช้หัวโหมดไปยังโซนโหมดเทป

Q a เป็นตัวแปรเสริมที่รับค่า 1 es-

ไม่ว่าอักขระที่อ่านโดยหัว Гк และ Гр ตรงกันหรือไม่

Q in เป็นตัวแปรเสริมที่รับค่า 1 es-

ไม่ว่าจะเป็นสัญลักษณ์ของกระแส (Q t) และสถานะสุดท้าย (Q z)

Q p - สัญญาณที่รับค่า 1 ถ้าหัวคำสั่งเมื่อใด

การเคลื่อนไปทางซ้ายเกินขอบเขตของเขตบังคับบัญชา

ในแต่ละรอบการทำงานของ UMT จะมีการดำเนินการขั้นตอนต่อไปนี้:

คุณค้นหาโซนคำสั่ง

คุณค้นหาทีมในโซน

คุณจำลองการดำเนินการคำสั่ง

การค้นหาโซนคำสั่งเริ่มต้นด้วยการเปรียบเทียบสถานะปัจจุบัน Q t จากโซนโหมดกับสถานะ Q i ที่บันทึกไว้ที่จุดเริ่มต้นของคำสั่งแรกในโซนคำสั่ง หากสถานะเหล่านี้ไม่เท่ากัน ส่วนหัวของคำสั่งจะเลื่อนไปที่จุดเริ่มต้นของคำสั่งถัดไป ซึ่งจะดำเนินการห้าขั้นตอนของส่วนหัวทางด้านขวา (สถานะ U 0 - U 4) หากสัญลักษณ์ Q t และ Q i ตรงกัน หัวคำสั่งจะอยู่ที่จุดเริ่มต้นของคำสั่งแรกของโซนที่ต้องการ จากนั้น การค้นหาจะเริ่มต้นสำหรับคำสั่งที่สอดคล้องกับสัญลักษณ์ Q t และ X t ของโซนโหมด ในการดำเนินการนี้ ส่วนหัวของโหมดจะถูกวางไว้เหนือสัญลักษณ์ X t ของโซนโหมด และส่วนหัวของคำสั่งจะถูกวางไว้เหนือสัญลักษณ์ X i ในคำสั่งปัจจุบัน

การค้นหาคำสั่งในโซนจะคล้ายกับการค้นหาโซนคำสั่ง ในกรณีนี้ หัวคำสั่งจะเลื่อนไปทางขวาห้าขั้นตอน (ระบุ U 5 - U 9) จนกระทั่งอักขระ X t และ X i ถูกเปรียบเทียบ

การดำเนินการคำสั่ง (ระบุ U 10 - U 17) เริ่มต้นด้วยการเลื่อนส่วนหัวคำสั่งไปทางขวาหนึ่งขั้นหลังจากนั้นสัญลักษณ์ Y อ่านจากคำสั่งที่พบจะถูกเขียนไปยังโซนข้อมูลโดยใช้หัวข้อมูลแทน สัญลักษณ์ที่อ่านก่อนหน้านี้ X t หลังจากขั้นตอนต่อไปของหัวคำสั่งทางด้านขวา สัญลักษณ์การเคลื่อนที่ของหัวข้อมูล (Y d) จะถูกอ่านจากคำสั่งที่พบ และหัวข้อมูลจะถูกย้ายตามสัญลักษณ์นี้ (R, L) ด้านล่างเป็นสัญลักษณ์ที่ประมวลผลถัดไป (X t +1) ซึ่งเขียนลงในโซนโหมดเพื่อเตรียมรอบถัดไปโดยใช้ส่วนหัวของโหมด จากนั้นจะมีการติดตั้งหัวคำสั่งและโหมดเพื่อให้สถานะถัดไป Q t +1 (states

ยู 14, ยู 15) ในสถานะ U 16 มีการตรวจสอบเงื่อนไขในการสิ้นสุดการแก้ปัญหา หากสัญลักษณ์ของสถานะถัดไปไม่ตรงกับสัญลักษณ์ของสถานะสุดท้ายของเครื่องจำลอง (Q z) แสดงว่าการแก้ปัญหายังไม่เสร็จสมบูรณ์และในสถานะ U 17 หัวคำสั่งจะย้ายไปยังตำแหน่งเดิม ( ไปจนถึงจุดเริ่มต้นของคำสั่งแรกของโซนแรก) ในกรณีนี้ UMT พร้อมที่จะดำเนินการรอบถัดไป กล่าวคือ เพื่อจำลองการทำงานของคำสั่งถัดไป

เมื่อสัญลักษณ์ Q t และ Q z ตรงกัน การแก้ปัญหาจะสิ้นสุดลง และ UMT จะเข้าสู่สถานะสุดท้าย U z

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

เนื่องจากกระบวนการเลือกคำสั่ง UMT ถัดไปและการดำเนินการนั้นเกี่ยวข้องกับการแจงนับตามลำดับของเซลล์เทป การแก้ปัญหาบน UMT จึงต้องใช้เวลามากเกินไป ดังนั้นจึงไม่เคยสร้างเครื่องจักรทัวริงรวมถึงเครื่องสากล แต่ก็ไม่ยากที่จะเห็นว่าเป็นอะนาล็อกของคอมพิวเตอร์สมัยใหม่ ดังนั้น ระบบคำสั่งในโซนคำสั่ง UMT จึงคล้ายกับโปรแกรมเครื่องจักร โดยมีคู่สัญลักษณ์ Q t และ X t ทำหน้าที่เป็นที่อยู่ของคำสั่งเครื่องจักร

อย่างไรก็ตาม เครื่องทัวริงเป็นวิธีที่ค่อนข้างสะดวกในการอธิบายอัลกอริธึม และมีการใช้กันอย่างแพร่หลายในทฤษฎีอัลกอริธึม

คำถามควบคุม

ü1. องค์ประกอบของเครื่องจักรทัวริงคืออะไร?

ü2. ส่วนประกอบของเครื่องทัวริงใช้ทำอะไร?

ü3.เครื่องทัวริงเครื่องหนึ่งสามารถจำลองการทำงานของเครื่องอื่นได้หรือไม่

ทัวริง?

ü4.ในกรณีนี้มีการดำเนินการอะไรบ้าง?

ü5.อธิบายโครงสร้างของเครื่องทัวริงสากลหรือไม่?

ü6.ข้อมูลใดบ้างที่ถูกบันทึกไว้ในพื้นที่ของเทป UMT?

ü7.ระบบคำสั่งของเครื่องทัวริงคืออะไร?

ü8.วงจรการทำงานของ UMT มีขั้นตอนอะไรบ้าง?

ü9.อธิบายเนื้อหาของขั้นตอน “ค้นหาโซนคำสั่ง”

ü10.อธิบายเนื้อหาของขั้นตอน “การดำเนินการคำสั่ง”

ü11.กระบวนการประมวลผลข้อมูลใช้คุณสมบัติอะไรบ้าง

แผนภาพดูเหมือนกราฟ:

ค่าตารางเครื่องจักร

ตารางที่ 1

  1. การทำงานบางอย่างบนเครื่องจักรทัวริง

การทำงานของเครื่องทัวริงถูกกำหนดโดยข้อมูลอินพุตและระบบคำสั่งอย่างสมบูรณ์ อย่างไรก็ตาม เพื่อให้เข้าใจว่าเครื่องจักรแต่ละเครื่องสามารถแก้ไขปัญหาได้อย่างไร ตามกฎแล้ว จำเป็นต้องมีคำอธิบายที่มีความหมายเกี่ยวกับประเภทที่กำหนดไว้สำหรับเครื่องจักรนั้น . คำอธิบายเหล่านี้มักจะทำให้เป็นทางการและแม่นยำมากขึ้นโดยใช้บล็อกไดอะแกรมและการทำงานของเครื่องจักรทัวริงบางอย่าง จำได้ว่าองค์ประกอบของฟังก์ชัน
และ
เรียกว่าฟังก์ชัน
ซึ่งจะได้รับเมื่อใช้ ไปจนถึงผลการคำนวณ . เพื่อที่จะ
ถูกกำหนดไว้ ณ ที่นี้ มีความจำเป็นและเพียงพอสำหรับ ถูกกำหนดเมื่อ
, ก ถูกกำหนดเมื่อ .

ทฤษฎีบท 1. ถ้า
และ
ทัวริงคำนวณได้ จากนั้นจึงจัดองค์ประกอบ
ทัวริงก็คำนวณได้เช่นกัน

อนุญาต -มีเครื่องคำนวณ , ก -มีเครื่องคำนวณ และเซตของสถานะตามลำดับ
และ
.

มาสร้างแผนภาพการเปลี่ยนผ่านของรถยนต์กันดีกว่า จากไดอะแกรม และ ดังต่อไปนี้: เราระบุจุดยอดเริ่มต้น
ไดอะแกรมเครื่อง กับจุดยอดเทอร์มินัล
ไดอะแกรมเครื่อง (สำหรับระบบสั่งการนี้เทียบเท่ากับความจริงที่ว่าระบบสั่งการ กำหนดให้กับระบบสั่งการ และสำหรับสิ่งนี้
ในทีม แทนที่ด้วย
). เราได้แผนภาพด้วย (
) รัฐ สถานะเริ่มต้น เราจะประกาศ
และสุดท้าย
. เพื่อความง่ายของสัญกรณ์เราจะถือว่า และ ฟังก์ชันตัวเลขของตัวแปรตัวเดียว

อนุญาต
มุ่งมั่น. แล้ว
และ

. รถ จะผ่านลำดับการกำหนดค่าเดียวกันโดยมีความแตกต่างนั้นแทน
มันจะเกิดขึ้นใน
. การกำหนดค่านี้เป็นการกำหนดค่าเริ่มต้นมาตรฐานสำหรับเครื่อง นั่นเป็นเหตุผลว่าทำไม
. แต่เนื่องจากทุกทีม บรรจุใน , ที่

และดังนั้นจึง
. ถ้า
ไม่ได้กำหนดไว้แล้ว หรือ ไม่หยุดจึงทำให้รถ จะไม่หยุด ดังนั้นรถ คำนวณ
.

เครื่องจึงถูกสร้างขึ้น เราจะเรียกมันว่าองค์ประกอบของเครื่องจักร และ และกำหนด
(หรือ ()) และยังแสดงไว้ในแผนภาพบล็อกด้วย:

  1. ส่วนประกอบของเครื่องทัวริง

อนุญาต ,,- เครื่องจักรทัวริงสามเครื่องที่มีตัวอักษรภายนอกเหมือนกัน
โดยมีตัวอักษรแสดงสถานะภายใน
,
,
และโปรแกรมต่างๆ ,
,
ตามลำดับ

องค์ประกอบ
รถ และ เรียกว่า รถ ซึ่งมีโปรแกรมคือการรวมกันของเซต
และ

, ที่ไหน
หมายถึงชุดคำสั่งที่ได้รับจาก แทนที่ทั้งหมด บน .

  1. การแตกแขนงออกจากเครื่องจักรทัวริง

เครื่องแยกสาขา,,โดย
, ในเชิงสัญลักษณ์

เรียกว่า รถ ซึ่งได้รับโปรแกรมดังต่อไปนี้: จาก ไม่รวมทีม
และ
สำหรับ
ชุดผลลัพธ์จะถูกเรียก ; แล้ว.

  1. เครื่องทัวริงสากล

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

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

วิธีแก้คือต้องมีตัวละครจาก
และ
เข้ารหัสด้วยสัญลักษณ์ในตัวอักษร
. อนุญาต
,
. เราจะถือว่าเป็นเช่นนั้นเสมอ
และ
(สัญลักษณ์ทั้งสองนี้จะอยู่ในตัวอักษรของเครื่องใด ๆ ที่ทำงานกับตัวเลขเสมอ) เรามาแสดงรหัสกัน และ ผ่าน
และ
และให้คำจำกัดความไว้ว่า
; สำหรับคนอื่น
; เพื่อสถานะสุดท้าย


, ถ้า

. รหัส
สำหรับรถคันนี้ มีความยาวเสมอ (รูปแบบ)
และรหัส
- รูปแบบ . สัญลักษณ์ ,
เข้าไปกันเถอะ
, เช่น.
,
,
. รหัสตัวอักษร ที่สร้างขึ้นโดยรหัสของอักขระที่ประกอบเป็นคำนี้เราแสดงว่า
. ดังนั้นการปรับแต่งขั้นสุดท้ายของการกำหนดปัญหาของเครื่องจักรสากล เดือดลงไปถึงความจริงที่ว่าสำหรับรถยนต์ทุกคัน และคำพูด ตัวอักษร
.

การมีอยู่ของเครื่องทัวริงสากลหมายความว่าระบบคำสั่ง
รถอะไรก็ได้ สามารถตีความได้สองวิธี: เป็นคำอธิบายการทำงานของอุปกรณ์ดั้งเดิม หรือเป็นโปรแกรมสำหรับเครื่องสากล . สำหรับวิศวกรสมัยใหม่ที่ออกแบบระบบควบคุม เหตุการณ์นี้เป็นเรื่องปกติ เขารู้ดีว่าอัลกอริธึมการควบคุมใดๆ ก็ตามสามารถนำไปใช้ได้ทั้งในฮาร์ดแวร์ โดยการสร้างวงจรที่เหมาะสม หรือในซอฟต์แวร์ โดยการเขียนโปรแกรมคอมพิวเตอร์ควบคุมสากล

อย่างไรก็ตามสิ่งสำคัญคือต้องตระหนักว่าแนวคิดของอุปกรณ์อัลกอริธึมสากลนั้นไม่เกี่ยวข้องกับการพัฒนาวิธีการทางเทคนิคที่ทันสมัยในการใช้งาน (อิเล็กทรอนิกส์, ฟิสิกส์) แข็งฯลฯ) และไม่ใช่ด้านเทคนิค แต่เป็นข้อเท็จจริงทางคณิตศาสตร์ ที่อธิบายไว้ในเงื่อนไขทางคณิตศาสตร์เชิงนามธรรมที่ไม่ขึ้นอยู่กับวิธีการทางเทคนิค และยิ่งไปกว่านั้น ขึ้นอยู่กับแนวคิดเบื้องต้นเบื้องต้นจำนวนน้อยมาก เป็นลักษณะเฉพาะที่งานพื้นฐานเกี่ยวกับทฤษฎีอัลกอริธึม (โดยเฉพาะงานของทัวริง) ปรากฏในยุค 30 ก่อนการสร้างคอมพิวเตอร์สมัยใหม่

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