ส่วนประกอบของตัวอย่างเครื่องจักรทัวริง ความสามารถในการคำนวณฟังก์ชันที่เหมาะสมบนเครื่องทัวริง
ทัวริงแมชชีน (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. ถ้าชุดของค่าอาร์กิวเมนต์
ปัญหาของการบังคับใช้ตนเอง
ตามคำจำกัดความของเครื่องทัวริง นี่คือสามเท่า ที= ในที่นั้น เอ-ตัวอักษร, ถาม –สถานะภายในของเครื่อง ถาม-โปรแกรมที่แยกความแตกต่างระหว่างเครื่องหนึ่งจากอีกเครื่องหนึ่ง ในกรณีทั่วไป (สำหรับเครื่องทั้งหมด) โปรแกรมอาจมีลักษณะดังนี้:
ป: ฉีก เจก ® คิวอาร์ก เช่นก เซนต์ก , ก = 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 ในรัฐ
|
|
|||
การกำหนดค่าขั้นสุดท้ายมาตรฐาน
เราจะเข้าใจการคำนวณฟังก์ชันพจนานุกรมบน 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. ถ้า
และ
ทัวริงคำนวณได้ จากนั้นจึงจัดองค์ประกอบ
ทัวริงก็คำนวณได้เช่นกัน
อนุญาต -มีเครื่องคำนวณ , ก -มีเครื่องคำนวณ และเซตของสถานะตามลำดับ
และ
.
มาสร้างแผนภาพการเปลี่ยนผ่านของรถยนต์กันดีกว่า จากไดอะแกรม และ ดังต่อไปนี้: เราระบุจุดยอดเริ่มต้น
ไดอะแกรมเครื่อง กับจุดยอดเทอร์มินัล
ไดอะแกรมเครื่อง (สำหรับระบบสั่งการนี้เทียบเท่ากับความจริงที่ว่าระบบสั่งการ กำหนดให้กับระบบสั่งการ และสำหรับสิ่งนี้
ในทีม แทนที่ด้วย
). เราได้แผนภาพด้วย (
) รัฐ สถานะเริ่มต้น เราจะประกาศ
และสุดท้าย
. เพื่อความง่ายของสัญกรณ์เราจะถือว่า และ ฟังก์ชันตัวเลขของตัวแปรตัวเดียว
อนุญาต
มุ่งมั่น. แล้ว
และ
. รถ จะผ่านลำดับการกำหนดค่าเดียวกันโดยมีความแตกต่างนั้นแทน
มันจะเกิดขึ้นใน
. การกำหนดค่านี้เป็นการกำหนดค่าเริ่มต้นมาตรฐานสำหรับเครื่อง นั่นเป็นเหตุผลว่าทำไม
. แต่เนื่องจากทุกทีม บรรจุใน , ที่
และดังนั้นจึง
. ถ้า
ไม่ได้กำหนดไว้แล้ว หรือ ไม่หยุดจึงทำให้รถ จะไม่หยุด ดังนั้นรถ คำนวณ
.
เครื่องจึงถูกสร้างขึ้น เราจะเรียกมันว่าองค์ประกอบของเครื่องจักร และ และกำหนด
(หรือ ()) และยังแสดงไว้ในแผนภาพบล็อกด้วย:
ส่วนประกอบของเครื่องทัวริง
อนุญาต ,,- เครื่องจักรทัวริงสามเครื่องที่มีตัวอักษรภายนอกเหมือนกัน
โดยมีตัวอักษรแสดงสถานะภายใน
,
,
และโปรแกรมต่างๆ ,
,
ตามลำดับ
องค์ประกอบ
รถ และ เรียกว่า รถต
ซึ่งมีโปรแกรมคือการรวมกันของเซต
และ
, ที่ไหน
หมายถึงชุดคำสั่งที่ได้รับจาก แทนที่ทั้งหมด บน .
การแตกแขนงออกจากเครื่องจักรทัวริง
เครื่องแยกสาขา,,โดย
, ในเชิงสัญลักษณ์
เรียกว่า รถต
ซึ่งได้รับโปรแกรมดังต่อไปนี้: จาก ไม่รวมทีม
และ
สำหรับ
ชุดผลลัพธ์จะถูกเรียก ; แล้ว.
เครื่องทัวริงสากล
ระบบคำสั่งของเครื่องทัวริงสามารถตีความได้ว่าเป็นคำอธิบายการทำงานของอุปกรณ์เฉพาะและเป็นโปรแกรม เช่น ชุดคำสั่งที่นำไปสู่ผลลัพธ์อย่างชัดเจน เมื่อวิเคราะห์ตัวอย่าง การตีความครั้งที่สองจะได้รับการยอมรับโดยไม่สมัครใจ เช่น เราทำหน้าที่เป็นกลไกที่สามารถสร้างการทำงานของเครื่องจักรทัวริงใดๆ ได้ ความเชื่อมั่นว่าทุกคนจะทำสิ่งนี้ในลักษณะเดียวกัน (หากพวกเขาไม่ทำผิดพลาด ซึ่งจะถือว่าเกิดขึ้นเมื่อเครื่องจักรทัวริงทำงานด้วย) ถือเป็นความมั่นใจอย่างยิ่งในการมีอยู่ของอัลกอริธึมสำหรับการจำลองการทำงานของทัวริง เครื่องตามโปรแกรมที่กำหนด เช่น ระบบคำสั่ง แท้จริงแล้วมันไม่ยากที่จะให้คำอธิบายด้วยวาจาเกี่ยวกับอัลกอริทึมดังกล่าว การดำเนินการหลักจะทำซ้ำเป็นรอบและประกอบด้วยสิ่งต่อไปนี้: "สำหรับการกำหนดค่าปัจจุบัน
ค้นหาคำสั่งทางด้านซ้ายในระบบคำสั่ง
. หากด้านขวาของคำสั่งนี้เป็นแบบฟอร์ม
จากนั้นแทนที่ในการกำหนดค่าปัจจุบัน
บน
(ปรากฎการกำหนดค่า
); ถ้าฝั่งขวามีฟอร์ม
จากนั้นจึงแทนที่
บน
. คำอธิบายด้วยวาจาของอัลกอริทึมอาจไม่ถูกต้องและจำเป็นต้องทำให้เป็นทางการ เนื่องจากเครื่องทัวริงกำลังถูกกล่าวถึงว่าเป็นการทำให้แนวคิดของอัลกอริทึมเป็นระเบียบ เป็นเรื่องปกติที่จะเกิดปัญหาในการสร้างเครื่องทัวริงที่ใช้อัลกอริธึมการทำสำเนาที่อธิบายไว้ สำหรับเครื่องจักรทัวริงที่คำนวณฟังก์ชันของตัวแปรตัวเดียว การกำหนดปัญหานี้จะเป็นดังนี้: สร้างเครื่องจักรทัวริง การคำนวณฟังก์ชันของตัวแปรสองตัวและสำหรับเครื่องใดๆ ด้วยระบบสั่งการ
, ถ้า
กำหนดไว้ (เช่น ถ้าเครื่อง หยุดที่ข้อมูลเริ่มต้น ) และ
ไม่หยุดถ้า
ไม่หยุด เราจะเรียกเครื่องใด ๆ ที่มีคุณสมบัตินี้ เครื่องทัวริงสากล. ไม่ใช่เรื่องยากที่จะสรุปสูตรนี้กับตัวแปรจำนวนเท่าใดก็ได้
ปัญหาแรกที่เกิดขึ้นเมื่อสร้างเครื่องจักรสากล เป็นเพราะความจริงที่ว่า เช่นเดียวกับเครื่องจักรทัวริงอื่นๆ ต้องมีตัวอักษรคงที่
และชุดสถานะคงที่
. ดังนั้นระบบสั่งการ
และข้อมูลเบื้องต้นของเครื่องตามอำเภอใจ คุณไม่สามารถถ่ายโอนไปยังสายพานเครื่องจักรได้ (มีรถตลอด. , ตัวอักษร
และ
ซึ่งเป็นผู้มีอำนาจเหนือกว่า
และ
หรือไม่ตรงกับมัน)
วิธีแก้คือต้องมีตัวละครจาก
และ
เข้ารหัสด้วยสัญลักษณ์ในตัวอักษร
. อนุญาต
,
. เราจะถือว่าเป็นเช่นนั้นเสมอ
และ
(สัญลักษณ์ทั้งสองนี้จะอยู่ในตัวอักษรของเครื่องใด ๆ ที่ทำงานกับตัวเลขเสมอ) เรามาแสดงรหัสกัน และ ผ่าน
และ
และให้คำจำกัดความไว้ว่า
; สำหรับคนอื่น
; เพื่อสถานะสุดท้าย
, ถ้า
. รหัส
สำหรับรถคันนี้ มีความยาวเสมอ (รูปแบบ)
และรหัส
- รูปแบบ . สัญลักษณ์ ,
เข้าไปกันเถอะ
, เช่น.
,
,
. รหัสตัวอักษร ที่สร้างขึ้นโดยรหัสของอักขระที่ประกอบเป็นคำนี้เราแสดงว่า
. ดังนั้นการปรับแต่งขั้นสุดท้ายของการกำหนดปัญหาของเครื่องจักรสากล เดือดลงไปถึงความจริงที่ว่าสำหรับรถยนต์ทุกคัน และคำพูด ตัวอักษร
.
การมีอยู่ของเครื่องทัวริงสากลหมายความว่าระบบคำสั่ง
รถอะไรก็ได้ สามารถตีความได้สองวิธี: เป็นคำอธิบายการทำงานของอุปกรณ์ดั้งเดิม หรือเป็นโปรแกรมสำหรับเครื่องสากล . สำหรับวิศวกรสมัยใหม่ที่ออกแบบระบบควบคุม เหตุการณ์นี้เป็นเรื่องปกติ เขารู้ดีว่าอัลกอริธึมการควบคุมใดๆ ก็ตามสามารถนำไปใช้ได้ทั้งในฮาร์ดแวร์ โดยการสร้างวงจรที่เหมาะสม หรือในซอฟต์แวร์ โดยการเขียนโปรแกรมคอมพิวเตอร์ควบคุมสากล
อย่างไรก็ตามสิ่งสำคัญคือต้องตระหนักว่าแนวคิดของอุปกรณ์อัลกอริธึมสากลนั้นไม่เกี่ยวข้องกับการพัฒนาวิธีการทางเทคนิคที่ทันสมัยในการใช้งาน (อิเล็กทรอนิกส์, ฟิสิกส์) แข็งฯลฯ) และไม่ใช่ด้านเทคนิค แต่เป็นข้อเท็จจริงทางคณิตศาสตร์ ที่อธิบายไว้ในเงื่อนไขทางคณิตศาสตร์เชิงนามธรรมที่ไม่ขึ้นอยู่กับวิธีการทางเทคนิค และยิ่งไปกว่านั้น ขึ้นอยู่กับแนวคิดเบื้องต้นเบื้องต้นจำนวนน้อยมาก เป็นลักษณะเฉพาะที่งานพื้นฐานเกี่ยวกับทฤษฎีอัลกอริธึม (โดยเฉพาะงานของทัวริง) ปรากฏในยุค 30 ก่อนการสร้างคอมพิวเตอร์สมัยใหม่
การตีความซ้ำซ้อนนี้ช่วยรักษาข้อดีและข้อเสียหลักของตัวเลือกการดำเนินการทางวิศวกรรมทั้งสองในระดับนามธรรม รถเฉพาะ ทำงานเร็วขึ้นมาก อีกทั้งอุปกรณ์ควบคุมการทำงานของตัวเครื่อง ค่อนข้างยุ่งยาก (เช่น จำนวนสถานะและคำสั่งมีมาก) อย่างไรก็ตาม ค่าของมันจะคงที่ และเมื่อสร้างขึ้นแล้ว ก็เหมาะสำหรับการนำอัลกอริธึมขนาดใหญ่ไปใช้ตามอำเภอใจ สิ่งที่จำเป็นต้องมีคือเทปปริมาณมาก ซึ่งโดยธรรมชาติแล้วถือว่าราคาถูกกว่าและสร้างขึ้นง่ายกว่าอุปกรณ์ควบคุม นอกจากนี้เมื่อเปลี่ยนอัลกอริธึมคุณไม่จำเป็นต้องสร้างอุปกรณ์ใหม่คุณเพียงแค่ต้องเขียนโปรแกรมใหม่