Contenu connexe
Similaire à Turing machine
Similaire à Turing machine (20)
Turing machine
- 1. Turing machine
จัดทาโดย
นางสาวณัฐนีย์ มิตรน้อย ม.4/1 เลขที่12
เสนอ
คุณครูณัฐพล บัวอุไร
- 2. Turing machine
คือ เครื่องจักรนามธรรมที่ Alan Turing ได้คิดค้นขึ้นใน ค.ศ.
1936 (พ.ศ. 2479) เพื่อการนิยามอัลกอริทึมหรือ „กระบวนการเชิงกล‟
อย่างชัดเจนแบบคณิตศาสตร์ เครื่องจักรทัวริงได้ถูกใช้อย่างแพร่หลาย
ในการศึกษาวิทยาการคอมพิวเตอร์เชิงทฤษฎี โดยเฉพาะในทฤษฎีความ
ซับซ้อนในการคานวณและทฤษฎีการคานวณ ข้อปัญหา (thesis) ที่ว่า
โมเดลของเครื่องจักรทัวริงนั้นครอบคลุมกระบวนการเชิงกลทั้งหมด ใน
การคานวณทางตรรกศาสตร์และคณิตศาสตร์ เป็นที่รู้จักกันในชื่อข้อ
ปัญหาของเชิร์ช-ทัวริง
- 4. เครื่องจักรทัวริงนั้นไม่เกี่ยวข้องกับการทดสอบของทัวริง ซึ่งถูกใช้
เพื่ออธิบายความหมายของปัญญาประดิษฐ์โดยทัวริง
เครื่องจักรทัวริงที่สามารถจาลองการทางานของเครื่องจักรทัวริง
เครื่องใด ๆ ก็ได้เรียกว่า เครื่องจักรทัวริงสากล (universal
Turing machine) หรือเรียกสั้นๆ ว่า เครื่องจักรสากล ทัวริงอธิบายไว้ใน
ค.ศ. 1947 (พ.ศ. 2490) ว่า
“สามารถแสดงได้ว่ามีเครื่องจักรพิเศษในรูปแบบนี้ที่สามารถ
ทางานของเครื่องจักรอื่น ๆ ในรูปแบบดังกล่าวได้ทั้งหมด นอกจากนี้
เครื่องจักรนี้ยังสามารถใช้เป็นโมเดลสาหรับเครื่องจักรในแบบอื่น ๆ
เครื่องจักรพิเศษนี้สามารถเรียกได้ว่าเป็นเครื่องจักรสากล”
- 5. เครื่องจักรทัวริงนั้นไม่ยุ่งยาก ทางานเป็นเหมือนเครื่องอ่านม้วน
กระดาษยาวๆ (หรือเทป) ลองคิดดูว่าเรามีกระดาษเก็บข้อมูลยาวๆ ไม่
สิ้นสุด บนกระดาษจะบันทึกเลขสองตัวคือ ศูนย์และหนึ่ง เช่น
...0011011000100... ทัวริงแมชชีนมีหัวอ่านค่าในกระดาษนี้ ที่บอกว่า
ตอนนี้กาลังอ่านเลขตัวไหนอยู่ตรงไหน และรู้ว่าตอนนี้อยู่ในสถานะใด
(ทัวริงแมชชีนมีได้หลายสถานะ แล้วแต่ข้อมูลที่กาลังอ่านอยู่) วิธีทาที่
แนบมาด้วยสามารถสั่งให้ทัวริงแมชชีนทางานได้สี่ประการต่อไปนี้
1. อ่านเลขตัวติดกันทางซ้าย (เปลี่ยนตาแหน่งปัจจุบัน)
2. อ่านเลขตัวติดกันทางขวา (เปลี่ยนตาแหน่งปัจจุบัน)
3. แก้ค่าปัจจุบันที่อ่านอยู่ เช่นจาก 0 เป็น 1 หรือจาก 1 เป็น 0
(เปลี่ยนค่าบนกระดาษ)
4. เปลี่ยนสถานะ
- 7. โปรแกรม Turing Machine Simulator
เป็นโปรแกรมบนเว็บไซต์(http://ironphoenix.org/tril/tm/) ที่
พัฒนาด้วยภาษาจาวา (Java Applet) ใช้จาลองตัวแบบการคานวณ
Turing Machine โดยผู้ใช้สามารถสร้างแบบจาลองของ Turing Machine
ในรูปแบบของรหัสสัญลักษณ์ และ input เทปเพื่อทดสอบตัวแบบได้
นอกจากนี้ยังมีตัวอย่างของ Turing Machine เพื่อเป็นแนวทางใน
การศึกษาและเรียนรู้
- 9. แสดงรหัสสัญลักษณ์ที่ใช้แทน Transition diagram ของ Turing
Machine และแสดงเทปที่ input เข้ามา
เป็น Turing Machine สาหรับการลบเลข (Sub tractor) ที่
ประกอบด้วยเลข1เพียงอย่างเดียวและผลลัพธ์ต้องไม่เป็นลบ สามารถ
อธิบายรหัสสัญลักษณ์ที่ใช้แทน Transition diagram ของ Turing
Machineได้ดังนี้
1,_ 1,_,> หมายถึง เมื่ออยู่ที่ state1 ถ้าหัวอ่านread Null ให้
เขียน Null แล้วขยับหัวอ่านไปทางขวา และไปstate1
1,1 1,1,> หมายถึง เมื่ออยู่ที่ state1 ถ้าหัวอ่าน read 1 ให้เขียน 1
แล้วขยับหัวอ่านไปทางขวา และไป state1 1,-
- 10. 1,-,> หมายถึง เมื่ออยู่ที่ state1 ถ้าหัวอ่าน read - ให้เขียน - แล้ว
ขยับหัวอ่านไปทางขวา และไป state1 1,=
2,_,< หมายถึง เมื่ออยู่ที่ state1 ถ้าหัวอ่าน read = ให้เขียน Null
แล้วขยับหัวอ่านไปทางซ้าย และไป state2
2,1 3,=,< หมายถึง เมื่ออยู่ที่ state2 ถ้าหัวอ่าน read 1 ให้เขียน =
แล้วขยับหัวอ่านไปทางซ้าย และไป state3
2,- H,_,< หมายถึง เมื่ออยู่ที่ state2 ถ้าหัวอ่าน read - ให้เขียน
Null แล้วขยับหัวอ่านไปทางซ้าย และไป state
H (Halt state) 3,1 3,1,< หมายถึง เมื่ออยู่ที่ state3 ถ้าหัวอ่าน read
1 ให้เขียน 1 แล้วขยับหัวอ่านไปทางซ้าย
- 11. และไป state3 3,- 4,-,< หมายถึง เมื่ออยู่ที่ state3 ถ้าหัวอ่าน read
- ให้เขียน - แล้วขยับหัวอ่านไปทางซ้าย
และไป state4 4,_ 4,_,< หมายถึง เมื่ออยู่ที่ state4 ถ้าหัวอ่าน
read Null ให้เขียน Null แล้วขยับหัวอ่านไปทางซ้าย
และไป state4 4,1 1,_,> หมายถึง เมื่ออยู่ที่ state4 ถ้าหัวอ่าน
read 1 ให้เขียน Null แล้วขยับหัวอ่านไปทางขวา
และไป state1
- 12. โปรแกรม Visual Turing Visual Turing เป็นเครื่องมือที่ใช้
ออกแบบและสร้าง Turing machine โดยนาเสนอใน รูปแบบของภาพ
graphic สามารถ cut, copy, paste และ undo ได้ สามารถรัน machine
ที่ สร้างขึ้น และทาการ debug breakpoints รวมถึงสามารถมองเห็น
ลาดับการทางานของ machine ในแต่ละขั้นตอนได้อย่างชัดเจน
- 13. จุดด้อยของโปรแกรม
1. แม้จะแสดงขั้นตอนการหา output แต่ก็ขาดส่วนที่เป็น Transition
diagram ทาให้ผู้ใช้อาจเกิด ปัญหาในการจินตนาการภาพของการไหลเวียน
ของ state
2. ไม่สามารถทาการบันทึก Turing machine ที่ผู้ใช้สร้างขึ้นเองไว้ใน
รูปแบบของแฟ้มข้อมูลได้ เมื่อ ผู้ใช้ทาการปิดหน้าต่างเว็บไซต์ หรือ รีเฟรช
หน้าจอ Machine ที่สร้างไว้ก็จะหายไป
3. การสร้าง Turing Machine ด้วยรหัสสัญลักษณ์ ล่าช้ากว่ากว่าการ
สร้างด้วย Transition diagram
4. ผู้ใช้จะต้องติดตั้ง Java Runtime เสียก่อน จึงจะสามารถใช้งาน
โปรแกรมได้
5. สาหรับผู้ใช้ที่ไม่สามารถเชื่อมต่อเข้ากับระบบ Internet ก็ไม่
สามารถใช้งานโปรแกรมได้
- 14. จุดเด่นของโปรแกรม
1. เป็นโปรแกรมบนเว็บไซต์จึงง่ายต่อการเผยแพร่
2. มีตัวอย่าง Turing Machine เพื่อแนวทางในการศึกษา
3. มีความสามารถในการสร้าง Turing Machine โดยการใช้รหัส
สัญลักษณ์และสามารถinput เทป เพื่อการตรวจสอบ Outputได้
4. สามารถ input เทปที่มีความยาวได้ถึง 15,000 ตัวอักษร
5. แสดงข้นตอนการหา output ทั้งแบบ step และ แบบ compute
6. ลักษณะของรหัสสัญลักษณ์ที่ใช้เข้าใจง่ายและเป็นไปตามรูปแบบ
มาตรฐานสากล
7. พัฒนาด้วยภาษาจาวา(Java Applet) จึงทาให้โปรแกรมสามารถใช้
งานได้บนทุกๆ ระบบปฏิบัติการ
- 15. วิธีการศึกษา
1. การศึกษามุ่งเน้นไปที่การเปรียบเทียบความสามารถในการใช้งาน
จุดเด่น จุดด้อย ของโปรแกรม Visual Turing กับโปรแกรมตัวอย่างอื่นๆ
ที่เกี่ยวข้องกับตัวแบบทฤษฎีการคานวณ โดยมุ่งเน้นตัวแบบดังต่อไปนี้
คือ Finite Automata, Pushdown Automata และ Turing Machine
2. ค้นหาเอกสาร บทความ และหนังสือที่เกี่ยวข้องกับ Turing
machine และทฤษฎีการคานวณ
3. ค้นหาบทความและโปรแกรมหรือ demo ที่เกี่ยวข้องกับ Turing
machine และทฤษฎีการคานวณบน web site ทั้งภายในประเทศและ
ต่างประเทศ
- 16. 4. ติดตั้งโปรแกรม Visual Turing และ plug in ต่างๆ เพื่อนามา
ศึกษาการใช้งานและลักษณะการทางาน
5. รวบรวม demo และโปรแกรมตัวอย่าง ของ Finite Automata,
Pushdown Automata และ Turing Machine เพื่อนามาเปรียบเทียบ
ความสามารถในการใช้งาน จุดเด่น และจุดด้อยของตัวแบบแต่ละตัว
6. วิเคราะห์การทางานและเปรียบเทียบความสามารถในการใช้งาน
จุดเด่น และจุดด้อยของตัวแบบแต่ละตัว
- 17. ผลการศึกษาและวิจารณ์
Finite Automata ตัวแบบที่นามาวิเคราะห์ได้แก่ โปรแกรมแบบทดสอบ
Online
จุดเด่นของโปรแกรม Finite Automata
1. เป็นข้อสอบแบบ Online ง่ายต่อการเผยแพร่ความรู้
2. การใช้งานโปรแกรมไม่ยุ่งยากซับซ้อน
3. สามารถเปรียบเทียบความแตกต่างระหว่าง Deterministic Finite
Automata และ Nondeterministic Finite Automata ได้อย่างชัดเจน ด้วย
Transition diagram
- 18. วัตถุประสงค์และเป้าหมาย
1. เพื่อศึกษาความเป็นไปได้ในการพัฒนาโปรแกรมสื่อการเรียน
การสอนวิชาทฤษฎีการคานวณ Online
2. เปรียบเทียบความสามารถในการใช้งาน จุดเด่น จุดด้อย ของ
โปรแกรมVisual Turing กับโปรแกรมตัวอย่างอื่นๆที่เกี่ยวข้องกับตัว
แบบทฤษฎีการคานวณ โดยมุ่งเน้นตัวแบบดังต่อไปนี้คือ Finite
Automata, Pushdown Automata และ Turing Machine
- 19. ข้อสรุป
โปรแกรม Visual Turing มีจุดเด่นในเรื่องการสร้างการจาลอง
Transition diagramของตัวแบบ Turing Machine โดยแสดงเป็น
แผนภาพแสดงการไหลเวียนของ State อย่างชัดเจน แต่รูปแบบของ
Transition diagramไม่ได้อยู่ในรูปมาตรฐาน และโปรแกรม Turing
Machine Simulator มีจุดเด่นในเรื่องการนาเสนอบนเว็บไซต์ และ
รูปแบบของรหัสสัญลักษณ์ที่ใช้สามารถแทนด้วย Transition diagram
ในรูปแบบมาตรฐานได้ แต่มีจุดด้อยคือขาดแผนภาพ Transition
diagram เพื่อแสดงการไหลเวียนของ state ถ้านาเอาจุดเด่นของแต่ละ
โปรแกรมมาผสมผสานกัน และลบล้างจุดด้อยแต่ละโปรแกรมออกไป ก็
จะได้โปรแกรมในการจาลองตัวแบบการคานวณที่สมบูรณ์แบบ
- 21. ผู้ที่คิดค้น Turing Machine คือ Alan Turing เป็นนักคณิตศาสตร์
ชาวอังกฤษ เกิดปี 1912 ที่ลอนดอน อยู่กับพี่ชาย แต่พ่อแม่ไปทางาน
ที่อินเดีย
อลัน ทัวริง เกิดในลอนดอน ปี 1912 บิดาทางานเป็นข้าราชการ
อังกฤษที่ต้องประจาในอินเดีย ซึ่งเป็นสถานที่ที่มารดาของเขาเห็นว่าไม่
เหมาะสมที่จะเป็นสภาพแวดล้อมของลูก ดังนั้นชีวิตในวัยเด็กของทัวริง
จึงเติบโตในอังกฤษในบ้านเลี้ยงเด็ก โดยที่พ่อแม่มาเยี่ยมเป็นครั้งคราว
คาดกันว่าความเดียวดายในวัยเด็กนี้ ทาให้ทัวริงติดใจการทางานของ
จิตใจมนุษย์เป็นพิเศษ
- 22. เมื่ออายุสิบสามปี ทัวริงเข้าโรงเรียน Sherbourne ใน Dorset ใน
สมัยมัธยม ทัวริงสนิทและนับถือรุ่นพี่คนหนึ่ง ชื่อ คริสโตเฟอร์ มอร์คอม
(Christopher Morcom) ซึ่งเสียชีวิตในเวลาต่อมาอย่างกะทันหันด้วยวัณ
โรค ความสูญเสียนี้ทาให้ทัวริงหมดสิ้นศรัทธาในศาสนาและพระเป็นเจ้า
และเชื่อว่าทุกสิ่งที่เกิดขึ้นจะต้องมีคาอธิบายที่เห็นและจับต้องได้จริง ทัว
ริงตั้งคาถามว่าจิตใจคนเราทางานอย่างไร จิตของเพื่อนคนนั้นจะเป็น
อย่างไรเมื่อร่างกายจากไปแล้ว เขาเชื่อว่าในเครื่องจักรกลและสมองของ
มนุษย์นั้นไม่มีจิตวิญญาณอยู่จริง แต่สงสัยว่าความคิด และความมี
สติสัมปชัญญะเกิดได้อย่างไร
- 23. อลัน ทัวริงเข้าเรียนที่ King's College ในเคมบริดจ์ เมื่อเรียนจบได้
ไม่นานก็เผยแพร่ผลงานเครื่องจักรทัวริง ช่วงนั้นเป็นช่วงของ
สงครามโลกครั้งที่สอง จากผลงานของทัวริงที่ปรากฎทาให้รัฐบาลเรียก
ตัวเขาไปร่วมงานชิ้นสาคัญ ในตอนนั้น รัฐบาลอังกฤษรวบรวมนัก
คณิตศาสตร์ แชมเปี้ยนหมากรุก นักภาษา นักวิเคราะห์อักขระอียิปต์
และใครก็ตามที่มีผลงานเกี่ยวกับหลักตรรกศาสตร์ เพื่อพยายาม
ถอดรหัสของเครื่องเอนิกมา (Enigma) ซึ่งเป็นรหัสลับที่นาซีใช้
ติดต่อสื่อสารในช่วงสงคราม งานนี้เป็นความลับระดับชาติ หลังจากทัว
ริงเสียชีวิตไปแล้ว สาธารณชนจึงได้รับรู้ว่าทัวริงมีส่วนในการออกแบบ
เครื่องมือที่ใช้แกะนาซีโค้ดที่ส่งไปที่ U-boats ในแอตแลนติกเหนือ และมี
ส่วนช่วยให้แกะรหัสนี้สาเร็จในเวลาต่อมา
- 25. ผลงานของ Alan Turing
-การคิดโมเดลที่สามารถทางานได้เทียบเท่ากับคอมพิวเตอร์ (แต่
อาจมีความเร็วต่ากว่า) โดยใช้คาสั่งพื้นฐานง่ายๆ คือ เดินหน้า ถอยหลัง
เขียน ลบ เท่านั้นเอง
-ทฤษฎีความสามารถคานวณได้ของคอมพิวเตอร์ (Computability)
-การทดสอบความฉลาดของคอมพิวเตอร์ (Turing test) -
-เครื่องจักรทัวริง (universal Turing machine)