More Related Content
What's hot
PDF
Lesson 1การเริ่มต้นใช้โปรแกรม PPT
PDF
PDF
ใบความรู้ ที่ 1 หลักการเขียนโปรแกรม PDF
PDF
Lesson 3 การทำงานของเต่าโลโก PPTX
PDF
PPT
PPT
PPT
PDF
PDF
PPT
PDF
PDF
Lesson 8 การเขียนโปรแกรมโดยใช้ตัวแปร Similar to Turing machine
PDF
PDF
PDF
Robot form University of Phayao PDF
บทที่ 1 คอมพิวเตอร์เบื้องต้น PDF
Withiikaaraichngaanaelahlakkaarchudhunynt sphth radabklaang_suung PDF
ใบความรู้ที่ 1 ความเป็นมาของคอมพิวเตอร์ PPT
PPT
PPT
PPT
DOC
PPT
PPT
PDF
กลุ่มที่ 3 คอมพิวเตอร์ส่วนบุคคล PDF
กลุ่มที่ 3 คอมพิวเตอร์ส่วนบุคคล PPT
PDF
ใบความรู้ที่ 1 ความเป็นมาของคอมพิวเตอร์ PDF
ใบความรู้ที่ 1 ความเป็นมาของคอมพิวเตอร์ PPTX
PPTX
Turing machine
- 1.
- 2.
เครื่องจักรทัวริง (the Turingmachine)
คือเครื่องจักรนามธรรมที่แอลัน ทัวริงได้คิดค้นขึ้นใน ค.ศ. 1936 (พ.ศ. 2479) เพื่อการนิยาม
อัลกอริทึมหรือ 'กระบวนการเชิงกล' อย่างชัดเจนแบบคณิตศาสตร์ เครื่องจักรทัวริงได้ถูกใช้อย่าง
แพร่หลายในการศึกษาวิทยาการคอมพิวเตอร์เชิงทฤษฎี โดยเฉพาะในทฤษฎีความซับซ้อนในการ
คานวณและทฤษฎีการคานวณ ข้อปัญหา (thesis) ที่ว่าโมเดลของเครื่องจักรทัวริงนั้นครอบคลุม
กระบวนการเชิงกลทั้งหมด ในการคานวณทางตรรกศาสตร์และคณิตศาสตร์ เป็นที่รู้จักกันในชื่อข้อ
ปัญหาของเชิร์ช-ทัวริง
แนวคิดของเครื่องจักรทัวริงนั้นต้องการจะอธิบายการทางานของคนที่ปฏิบัติตาม ขั้นตอนที่ระบุไว้อย่าง
ชัดเจน เพื่อแก้ไขข้อมูลที่ถูกบันทึกไว้ในกระดาษที่เรียงต่อกันความยาวไม่จากัด โดยที่กระดาษแผ่น
หนึ่งจะสามารถเก็บสัญลักษณ์ได้หนึ่งตัวจากสัญลักษณ์ที่เป็น ไปได้จานวนจากัด ผู้ปฏิบัติงานนั้น
จะต้องจดจาสถานะหนึ่งจากสถานะที่เป็นไปได้ที่มจานวนจากัด และขั้นตอนที่ระบุให้เขาทางานนั้นจะ
ี
อยู่ในลักษณะเช่น "ถ้าสถานะของคุณคือ 42 และสัญลักษณ์บนกระดาษที่คุณเห็นคือ '0', ให้เปลี่ยน
สัญลักษณ์นี้เป็น '1', จดจาว่าสถานะใหม่เป็น 17 และไปทางานต่อกับกระดาษแผ่นถัดไป"
- 3.
- 4.
โปรแกรม Visual Turing
Visual Turing เป็นเครื่องมือที่ใช้ออกแบบและสร้าง Turing machine โดยนาเสนอใน
รูปแบบของภาพ graphic สามารถ cut, copy, paste และ undo ได้ สามารถรัน machine ที่
สร้างขึ้น และทาการ debug breakpoints รวมถึงสามารถมองเห็นลาดับการทางานของ machine
ในแต่ละขั้นตอนได้อย่างชัดเจน
วิธีใช้งานโปรแกรม
- 5.
1. เปิดโปรแกรม VisualTuring ขึ้นมา โปรแกมจะสร้างโปรเจคเอาไว้ให้ ดังในรูป
หรือหากต้องการสร้างโปรเจคใหม่ให้กดที่ New button หรือ File/New หรือ Ctrl+N
- 6.
2. การสร้าง machineใหม่ ให้กดที่ Insert machine button หรือ คลิกขวาที่
tree view ด้านซ้ายมือ เลือก Insert machine จากนั้นเปลี่ยนชื่อ machine ที่หน้าต่าง
properties ดังรูป
- 7.
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 สาหรับสร้าง
ลูกศรเส้นทางให้เดินวน ดังรูป
- 8.
- 9.
7. การสร้างและแก้ไขเทป ทาได้โดยคลิกขวาบนเทปเลือก Symbols ที่ต้องการนอกจากนี้
ยังสามารถสร้างเทปใหม่และบันทึกเทปที่สร้างไว้ก็ได้โดยการกดที่ New tape button
หรือไปที่ menu bar เลือก Tape/New tape เพื่อสร้างเทปใหม่ และกดที่ Save tape
button หรือไปที่ menu bar เลือก Tape/Save tape เพื่อบันทึกเทป
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
- 10.
โปรแกรม Turing MachineSimulator
เป็นโปรแกรมบนเวบไซต์(http://ironphoenix.org/tril/tm/) ที่พัฒนาด้วย
ภาษาจาวา (Java Applet) ใช้จาลองตัวแบบการคานวณ Turing Machine โดย
ผู้ใช้สามารถสร้างแบบจาลองของ Turing Machine ในรูปแบบของรหัสสัญลักษณ์
และ input เทปเพื่อทดสอบตัวแบบได้ นอกจากนี้ยังมีตวอย่างของ Turing Machine
ั
เพื่อเป็นแนวทางในการศึกษาและเรียนรู้อีกด้วย
- 11.
- 12.
- 13.
จุดด้อยของโปรแกรม
1.มีข้อจากัดเรื่องข้อมูล input และ output
2. การใช้งานค้อนข้างยาก ต้องใช้เวลาในการเรียนรู้ใหม่ เนื่องจากการเขียน Turing machine ใน
Visual Turing ไม่เหมือนกับการเขียนแบบมาตรฐานสากล
3. เทปมีความยาวจากัด
4. ไม่สามารถเปิดไฟล์ได้ครั้งละหลายๆไฟล์ เปิดได้ครั้งละไฟล์เดียว
จุดเด่นของโปรแกรม
1. นาเสนอในรูปแบบของภาพ graphic
2. มีความยืดหยุ่น สามารถออกแบบและสร้าง Machine ได้ตามที่เราต้องการ
3. สามารถมองเห็นลาดับการทางานและเส้นทางการเดินไปยังแต่ละโหนด ทาให้เข้าใจหลักการทางาน
4. Turing machine กับ หัวอ่านบนเทป ทางานสัมพันธ์กัน ทาให้สามารถทาความเข้าใจได้ง่าย
5. ประหยัดทรัพยากรและหน่วยความจาของเครื่อง
6. มีความสะดวกในการติดตั้งโปรแกรม เนื่องจากตัวติดตั้งเป็นไฟล์นามสกุล .exe
7. มีความรวดเร็วในการ execute โปรแกรม
- 14.
โปรแกรม Turing MachineSimulator
เป็นโปรแกรมบนเว็บไซต์(http://ironphoenix.org/tril/tm/) ที่พัฒนาด้วย
ภาษาจาวา (Java Applet) ใช้จาลองตัวแบบการคานวณ Turing Machine โดย
ผู้ใช้สามารถสร้างแบบจาลองของ Turing Machine ในรูปแบบของรหัสสัญลักษณ์
และ input เทปเพื่อทดสอบตัวแบบได้ นอกจากนี้ยังมีตวอย่างของ Turing Machine
ั
เพื่อเป็นแนวทางในการศึกษาและเรียนรู้อีกด้วย
- 15.
- 16.
เป็น Turing Machineสาหรับการลบเลข (Subtractor) ที่ประกอบด้วยเลข1เพียงอย่าง
เดียวและผลลัพธ์ต้องไม่เป็นลบ สามารถอธิบายรหัสสัญลักษณ์ที่ใช้แทน Transition
diagram ของ Turing Machineได้ดังนี้
1,_ 1,_,> หมายถึง เมื่ออยู่ที่ state1 ถ้าหัวอ่านread Null ให้เขียน Null แล้วขยับหัวอ่านไปทางขวา และไปstate1
1,1 1,1,> หมายถึง เมื่ออยู่ที่ state1 ถ้าหัวอ่าน read 1 ให้เขียน 1 แล้วขยับหัวอ่านไปทางขวา และไป state1
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
- 17.
จุดเด่นของโปรแกรม
1. เป็นโปรแกรมบนเวบไซต์จึงง่ายต่อการเผยแพร่
2. มีตัวอย่าง Turing Machine เพื่อแนวทางในการศึกษา
3. มีความสามารถในการสร้าง Turing Machine โดยการใช้รหัสสัญลักษณ์และสามารถinput เทป
เพื่อการตรวจสอบ Outputได้
4. สามารถ input เทปที่มีความยาวได้ถึง 15,000 ตัวอักษร
5. แสดงข้นตอนการหา output ทั้งแบบ step และ แบบ compute
6. ลักษณะของรหัสสัญลักษณ์ที่ใช้เข้าใจง่ายและเป็นไปตามรูปแบบมาตรฐานสากล
7. พัฒนาด้วยภาษาจาวา(Java Applet) จึงทาให้โปรแกรมสามารถใช้งานได้บนทุกๆ
ระบบปฏิบัติการ
จุดด้อยของโปรแกรม
1. แม้จะแสดงขั้นตอนการหา output แต่ก็ขาดส่วนที่เป็น Transition diagram ทาให้ผู้ใช้อาจเกิด
ปัญหาในการจินตนาการภาพของการไหลเวียนของ state
2. ไม่สามารถทาการบันทึก Turing machine ที่ผู้ใช้สร้างขึ้นเองไว้ในรูปแบบของแฟ้มข้อมูลได้ เมื่อ
ผู้ใช้ทาการปิดหน้าต่างเว็บไซต์ หรือ รีเฟรชหน้าจอ Machine ที่สร้างไว้ก็จะหายไป
3. การสร้าง Turing Machine ด้วยรหัสสัญลักษณ์ ล่าช้ากว่ากว่าการสร้างด้วย Transition diagram
4. ผู้ใช้จะต้องติดตั้ง Java Runtime เสียก่อน จึงจะสามารถใช้งานโปรแกรมได้
5. สาหรับผู้ใช้ที่ไม่สามารถเชื่อมต่อเข้ากับระบบ Internet ก็ไม่สามารถใช้งานโปรแกรมได้
- 18.
The End
http://202.28.94.55/web/320491/2548/web1/g19/doc.html