More Related Content
Similar to งานคอมพิวเตอร์
Similar to งานคอมพิวเตอร์ (20)
งานคอมพิวเตอร์
- 1. Turing
Machine
จัดทาโดย
นางสาวจอมขวัญ กล่าอินทร์
ชั้นมัธยมศึกษาปีที่ 4/1 เลขที่ 27
- 2. แอลัน แมธิสัน ทัวริง (Alan Mathison Turing)
• แอลัน แมธิสัน ทัวริง (Alan Mathison Turing)
เป็นนักคณิตศาสตร์, นักตรรกศาสตร์, นักรหัสวิทยา และวีรบุรุษสงคราม
ชาวอังกฤษ และเป็นที่ยอมรับว่าเป็นบิดาของวิทยาการคอมพิวเตอร์
เขาได้สร้างรูปแบบที่เป็นทางการทางคณิตศาสตร์ของการระบุ
อัลกอริทึมและการคานวณ โดยใช้เครื่องจักรทัวริง
ซึ่งตามข้อปัญหาเชิร์ช-ทัวริงได้กล่าวว่าเป็นรูปแบบของเครื่องจักร
คานวณเชิงกลที่ครอบคลุมทุกๆ รูปแบบที่เป็นไปได้ในทางปฏิบัติ ในระหว่าง
สงครามโลกครั้งที่สอง ทัวริงมีส่วนสาคัญในการแกะรหัสลับของฝ่ายเยอรมัน โดย
เขาเป็นหัวหน้าของกลุ่ม Hut 8 ที่ทาหน้าที่ในการแกะรหัสของเครื่องอีนิกมาที่ใช้
ในฝ่ายทหารเรือ
หลังจากสงครามเขาได้ออกแบบเครื่องคอมพิวเตอร์อิเล็กทรอนิกส์ที่สามารถ
โปรแกรมได้เครื่องแรกๆ ของโลกที่ห้องปฏิบัติการฟิสิกส์แห่งชาติ และได้สร้าง
เครื่องคอมพิวเตอร์ขึ้นจริงๆ ที่มหาวิทยาลัยแมนเชสเตอร์ รางวัลทัวริงถูกก่อตั้งขึ้น
เพื่อยกย่องเขาในเรื่องนี้
- 3. เครื่องจักรทัวริง (The Turing machine)
• เครื่องจักรทัวริง (the Turing machine) คือเครื่องจักรนามธรรมที่แอ
ลัน ทัวริงได้คิดค้นขึ้นใน ค.ศ. 1936 (พ.ศ. 2479) เพื่อการนิยาม
อัลกอริทึมหรือ 'กระบวนการเชิงกล' อย่างชัดเจนแบบคณิตศาสตร์
เครื่องจักรทัวริงได้ถูกใช้อย่างแพร่หลายในการศึกษาวิทยาการ
คอมพิวเตอร์เชิงทฤษฎี โดยเฉพาะในทฤษฎีความซับซ้อนในการคานวณ
และทฤษฎีการคานวณ ข้อปัญหา (thesis) ที่ว่าโมเดลของเครื่องจักรทัว
ริงนั้นครอบคลุมกระบวนการเชิงกลทั้งหมด ในการคานวณทาง
ตรรกศาสตร์และคณิตศาสตร์ เป็นที่รู้จักกันในชื่อข้อปัญหาของเชิร์ช-ทัว
ริง
- 4. แนวคิดของเครื่องจักรทัวริง
แนวคิดของเครื่องจักรทัวริง
นั้นต้องการจะอธิบายการทางานของคนที่ปฏิบัติตาม
ขั้นตอนที่ระบุไว้อย่างชัดเจน เพื่อแก้ไขข้อมูลที่ถูกบันทึก
ไว้ในกระดาษที่เรียงต่อกันความยาวไม่จากัด โดยที่
กระดาษแผ่นหนึ่งจะสามารถเก็บสัญลักษณ์ได้หนึ่งตัว
จากสัญลักษณ์ที่เป็นไปได้จานวนจากัด ผู้ปฏิบัติงานนัน ้
จะต้องจดจาสถานะหนึ่งจากสถานะที่เป็นไปได้ที่มี
จานวนจากัด และขันตอนที่ระบุให้เขาทางานนันจะอยู่ใน
้ ้
ลักษณะเช่น "ถ้าสถานะของคุณคือ 42 และสัญลักษณ์บน
กระดาษที่คุณเห็นคือ '0', ให้เปลี่ยนสัญลักษณ์นี้เป็น '1',
จดจาว่าสถานะใหม่เป็น 17 และไปทางานต่อกับกระดาษ
แผ่นถัดไป"
เครื่องจักรทัวริงนันไม่เกี่ยวข้องกับการทดสอบของทัวริง
้
ซึ่งถูกใช้เพื่ออธิบายความหมายของปัญญาประดิษฐ์
โดยทัวริง
- 5. เครื่องจักรทัวริงสากล
เครื่องจักรทัวริงที่สามารถจาลองการทางานของ
เครื่องจักรทัวริงเครื่องใด ๆ ก็ได้เรียกว่า เครื่องจักรทัวริง
สากล (universal Turing machine) หรือเรียกสั้นๆ ว่า
เครื่องจักรสากล ทัวริงอธิบายไว้ใน ค.ศ. 1947 (พ.ศ.
2490) ว่า
........สามารถแสดงได้ว่ามีเครื่องจักรพิเศษในรูปแบบนี้ ที่
สามารถทางานของเครื่องจักรอื่น ๆ ในรูปแบบดังกล่าว
ได้ทั้งหมด นอกจากนี้เครื่องจักรนี้ยังสามารถใช้เป็น
โมเดลสาหรับเครื่องจักรในแบบอื่น ๆ เครื่องจักรพิเศษนี้
สามารถเรียกได้ว่าเป็นเครื่องจักรสากล ........
- 6. วิธีใช้งานโปรแกรม
• วิธีใช้งานโปรแกรม
1. เปิดโปรแกรม Visual Turing ขึ้นมา โปรแกมจะสร้างโปรเจคเอาไว้ให้ ดังในรูป
ที่ 7 หรือหากต้องการสร้างโปรเจคใหม่ให้กดที่ New button หรือ File/New หรือ Ctrl+N
- 7. • 2. การสร้าง machine ใหม่ ให้กดที่ Insert machine
button หรือ คลิกขวาที่ tree view ด้านซ้ายมือ เลือก Insert
machine จากนั้นเปลี่ยนชื่อ machine ที่หน้าต่าง properties
- 8. 3. การสร้าง Symbol ใหม่ ให้กดที่ Insert symbol button หรือ คลิกขวาที่ tree
view ด้านซ้ายมือ เลือก Insert symbol
4. การสร้าง Symbol ใหม่ ให้กดที่ Insert variable button หรือ คลิกขวาที่ tree view
ด้านซ้ายมือ เลือก Insert variable
5. การที่ Machine จะทางานได้ ต้องเกิดจากการนาเอาคาสั่งแต่ละคาสั่งมาประกอบกัน
ให้เป็น machine โดยกดที่ Insert instruction button ซึ่งประกอบด้วยคาสั่ง nothing, move
left, move right และคาสัง write นอกจากนี้ยังมี Insert branch button ไว้สาหรับสร้าง
่
เส้นทางหรือสาขาออกไป, Insert arrow button สาหรับสร้างลูกศรเส้นทาง และ Insert self-
arrow สาหรับสร้างลูกศรเส้นทางให้เดินวน
- 9. 6. การกาหนด Condition ของ arrow ทาได้โดยดับเบิ้ลคลิกหรือคลิกขวา
เลือก properties ที่วงกลมบน arrow
7. การสร้างและแก้ไขเทป ทาได้โดยคลิกขวาบนเทป เลือก
Symbols ที่ต้องการ นอกจากนี้ยังสามารถสร้างเทปใหม่และบันทึกเทปที่สร้างไว้ก็
ได้โดยการกดที่ New tape button หรือไปที่ menu bar เลือก Tape/New
tape เพื่อสร้างเทปใหม่ และกดที่ Save tape button หรือไปที่ menu bar
เลือก Tape/Save tape เพื่อบันทึกเทป
- 10. 8. การกาหนดหัวอ่านเทป ทาได้โดยคลิกขวาบนเทปที่ต้องการ เลือก Set
head Enter
9. การรันโปรแกรม สามารถทาได้โดยไปที่ Playerbar กด Play button
หรือ ไปที่ menu bar เลือก Run/Play, กด Pause เพื่อหยุดชั่วคราว,
กด Stop เพื่อหยุดการทางาน, กด Step back เพื่อย้อนกลับ 1 step,
กด Step into เพื่อเดินหน้า 1 step, กด Step out เพื่อเดินหน้าแบบ
ก้าวกระโดด
10. การรันโปรแกรมนั้นสามารถปรับความเร็วในการรัน Machine ได้ 5
ระดับ โดยคลิกที่ Speed menu button แล้วเลือกระดับความเร็ว
11. การลบ Machine, symbol, variable ทาได้โดยคลิกขวาที่ machine,
symbol หรือ variable ที่ต้องการลบ ที่ tree view ด้านซ้ายมือ เลือก
Delete และการลบคาสั่งแต่ละตาสั่งทาได้โดยเลือกคาสั่งที่ต้องการลบ แล้ว
กด Delete button หรือ คลิกขวาที่ตัวคาสั่งนั้น เลือก Delete
- 11. โปรแกรม Visual Turing
• โปรแกรม Visual Turing
Visual Turing เป็นเครื่องมือที่ใช้ออกแบบและ
สร้าง Turing machine โดยนาเสนอในรูปแบบของภาพ
graphic สามารถ cut, copy, paste และ undo ได้
สามารถรัน machine ที่สร้างขึ้น และทาการ debug
breakpoints รวมถึงสามารถมองเห็นลาดับการทางานของ
machine ในแต่ละขั้นตอนได้อย่างชัดเจน
- 14. จุดเด่นของโปรแกรม
1. นาเสนอในรูปแบบของภาพ graphic
2. มีความยืดหยุ่น สามารถออกแบบและสร้าง Machine ได้ตามที่เราต้องการ
3. สามารถมองเห็นลาดับการทางานและเส้นทางการเดินไปยังแต่ละโหนด ทาให้
เข้าใจหลักการทางาน
4. Turing machine กับ หัวอ่านบนเทป ทางานสัมพันธ์กัน ทาให้สามารถทา
ความเข้าใจได้ง่าย
5. ประหยัดทรัพยากรและหน่วยความจาของเครื่อง
6. มีความสะดวกในการติดตั้งโปรแกรม เนื่องจากตัว
ติดตั้งเป็นไฟล์นามสกุล .exe
7. มีความรวดเร็วในการ execute โปรแกรม
- 15. จุดด้อยของโปรแกรม
1. มีข้อจากัดเรื่องข้อมูล input และ output
2. การใช้งานค้อนข้างยาก ต้องใช้เวลาในการเรียนรู้ใหม่
เนื่องจากการเขียน Turing machine ใน Visual Turing ไม่
เหมือนกับการเขียนแบบมาตรฐานสากล
3. เทปมีความยาวจากัด
4. ไม่สามารถเปิดไฟล์ได้ครั้งละหลายๆไฟล์ เปิดได้ครั้งละ
ไฟล์เดียว
- 16. โปรแกรม Turing Machine Simulator
เป็นโปรแกรมบนเวบไซต์
(http://ironphoenix.org/tril/tm/) ที่พัฒนาด้วยภาษาจาวา (Java
Applet) ใช้จาลองตัวแบบการคานวณ Turing Machine โดยผู้ใช้สามารถ
สร้างแบบจาลองของ Turing Machine ในรูปแบบของรหัสสัญลักษณ์
และ input เทปเพื่อทดสอบตัวแบบได้ นอกจากนี้ยังมีตัวอย่างของ Turing
Machine เพื่อเป็นแนวทางในการศึกษาและเรียนรู้อีกด้วย
- 17. จากรูป เป็น Turing Machine สาหรับการลบเลข (Subtractor) ที่ประกอบด้วย
เลข1เพียงอย่างเดียวและผลลัพธ์ตองไม่เป็นลบ สามารถอธิบาย รหัสสัญลักษณ์ที่ใช้
้
แทน Transition diagram ของ Turing Machineได้ดังนี้
1,_ 1,_,> หมายถึง เมื่ออยู่ที่ state1 ถ้าหัวอ่านread Null ให้เขียน Null แล้ว
ขยับหัวอ่านไปทางขวา และไปstate1
1,1 1,1,> หมายถึง เมื่ออยู่ที่ state1 ถ้าหัวอ่าน read 1 ให้เขียน 1 แล้วขยับ
หัวอ่านไปทางขวา และไป state1
- 18. 1,- 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 แล้วขยับ
หัวอ่านไปทางซ้าย และไป state3
3,- 4,-,< หมายถึง เมื่ออยู่ที่ state3 ถ้าหัวอ่าน read - ให้เขียน - แล้วขยับ
หัวอ่านไปทางซ้าย และไป state4
4,_ 4,_,< หมายถึง เมื่ออยู่ที่ state4 ถ้าหัวอ่าน read Null
ให้เขียน Null แล้วขยับ
หัวอ่านไปทางซ้าย และไป state4
4,1 1,_,> หมายถึง เมื่ออยู่ที่ state4 ถ้าหัวอ่าน read 1
ให้เขียน Null แล้วขยับหัวอ่านไปทางขวา และไป state1
- 19. จุดเด่นของโปรแกรม
1. เป็นโปรแกรมบนเวบไซต์จึงง่ายต่อการเผยแพร่
2. มีตัวอย่าง Turing Machine เพื่อแนวทางในการศึกษา
3. มีความสามารถในการสร้าง Turing Machine โดยการใช้รหัส
สัญลักษณ์และสามารถinput เทปเพื่อการตรวจสอบ Outputได้
4. สามารถ input เทปที่มีความยาวได้ถึง 15,000 ตัวอักษร
5. แสดงข้นตอนการหา output ทั้งแบบ step และ แบบ compute
6. ลักษณะของรหัสสัญลักษณ์ที่ใช้เข้าใจ
ง่ายและเป็นไปตามรูปแบบมาตรฐานสากล
7. พัฒนาด้วยภาษาจาวา(Java Applet)
จึงทาให้โปรแกรมสามารถใช้งานได้บนทุกๆระบบปฏิบัติการ
- 20. จุดด้อยของโปรแกรม
1. แม้จะแสดงขั้นตอนการหา output แต่กขาดส่วนที่เป็น
็
Transition diagram ทาให้ผู้ใช้อาจเกิดปัญหาในการจินตนาการภาพของการ
ไหลเวียนของ state
2. ไม่สามารถทาการบันทึก Turing machine ที่ผู้ใช้สร้างขึ้นเองไว้ใน
รูปแบบของแฟ้มข้อมูลได้ เมือผู้ใช้ทาการปิดหน้าต่างเว็บไซต์ หรือ รีเฟรชหน้าจอ
่
Machine ที่สร้างไว้ก็จะหายไป
3. การสร้าง Turing Machine ด้วยรหัสสัญลักษณ์ ล่าช้ากว่ากว่าการ
สร้างด้วย Transition diagram
4. ผู้ใช้จะต้องติดตั้ง Java Runtime เสียก่อน
จึงจะสามารถใช้งานโปรแกรมได้
5. สาหรับผู้ใช้ที่ไม่สามารถเชื่อมต่อเข้ากับระบบ
Internet ก็ไม่สามารถใช้งานโปรแกรมได้
- 21. อ้างอิง
• http://fuggingitup.blogspot.com
/2007/08/turing-machine.html
• http://www.atriumtech.com/cgi
-
bin/hilightcgi?Home=/home/Int
erWeb2000&File=/home2/sear
chdata/Forums/http/www.pantip
.com/cafe/wahkor/topicstock/X
1447152/X1447152.html
• http://202.28.94.55/web/320
491/2548/web1/g19/doc.html