Upload
ratchaneekorn38
View
2.912
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
Turing Machineจดท าโดย นางสาวร ชนกร เลกประเสรฐ
นกเร ยนชนมธยมศกษาปท 4 /1 เลขท 21
ครผสอน คณ คร ณฐพล บวอไ ร
เครองจกรทวรง (the Turing machine)
คอเครองจกรนามธรรมทแอลน ทวรงไดคดคนขนใน ค.ศ. 1936 (พ.ศ. 2479) เพอการนยาม
อลกอรทมหรอ 'กระบวนการเชงกล' อยางชดเจนแบบคณตศาสตร เครองจกรทวรงไดถกใชอยาง
แพรหลายในการศกษาวทยาการคอมพวเตอรเชงทฤษฎ โดยเฉพาะในทฤษฎความซบซอนในการ
ค านวณและทฤษฎการค านวณ ขอปญหา (thesis) ทวาโมเดลของเครองจกรทวรงนนครอบคลม
กระบวนการเชงกลทงหมด ในการค านวณทางตรรกศาสตรและคณตศาสตร เปนทรจกกนในชอขอ
ปญหาของเชรช-ทวรง
แนวคดของเครองจกรทวรงนนตองการจะอธบายการท างานของคนทปฏบตตาม ขนตอนทระบไวอยาง
ชดเจน เพอแกไขขอมลทถกบนทกไวในกระดาษทเรยงตอกนความยาวไมจ ากด โดยทกระดาษแผน
หนงจะสามารถเกบสญลกษณไดหนงตวจากสญลกษณทเปน ไปไดจ านวนจ ากด ผปฏบตงานนน
จะตองจดจ าสถานะหนงจากสถานะทเปนไปไดทมจ านวนจ ากด และขนตอนทระบใหเขาท างานนนจะ
อยในลกษณะเชน "ถาสถานะของคณคอ 42 และสญลกษณบนกระดาษทคณเหนคอ '0', ใหเปลยน
สญลกษณนเปน '1', จดจ าวาสถานะใหมเปน 17 และไปท างานตอกบกระดาษแผนถดไป"
เครองจกรทวรงนนไมเกยวของกบการทดสอบของทวรง ซงถกใชเพออธบายความหมายของ
ปญญาประดษฐโดยทวรงเครองจกรทวรงทสามารถจ าลองการท างานของเครองจกรทวรงเครองใดๆ
กไดเรยกวาเครองจกรทวรงสากล (universal Turing machine) หรอเรยกสนๆ วา เครองจกรสากล
ทวรงอธบายไวใน ค.ศ. 1947 (พ.ศ. 2490) วา
สามารถแสดงไดวามเครอง จกรพเศษในรปแบบน ทสามารถท างานของเครองจกรอน ๆ ในรปแบบ
ดงกลาวไดทงหมด นอกจากนเครองจกรนยงสามารถใชเปนโมเดลส าหรบเครองจกรในแบบอน ๆ
เครองจกรพเศษนสามารถเรยกไดวาเปนเครองจกรสากล
โปรแกรม Visual Turing
Visual Turing เปนเครองมอทใชออกแบบและสราง Turing machine โดยน าเสนอใน
รปแบบของภาพ graphic สามารถ cut, copy, paste และ undo ได สามารถรน machine ท
สรางขน และท าการ debug breakpoints รวมถงสามารถมองเหนล าดบการท างานของ machine
ในแตละขนตอนไดอยางชดเจน
วธใชงานโปรแกรม
1. เปดโปรแกรม Visual Turing ขนมา โปรแกมจะสรางโปรเจคเอาไวให ดงในรป
หรอหากตองการสรางโปรเจคใหมใหกดท New button หรอ File/New หรอ Ctrl+N
2. การสราง machine ใหม ใหกดท Insert machine button หรอ คลกขวาท
tree view ดานซายมอ เลอก Insert machine จากนนเปลยนชอ machine ทหนาตาง
properties ดงรป
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 ส าหรบสราง
ลกศรเสนทางใหเดนวน ดงรป
1
6. การก าหนด
Condition ของ arrow
ท าไดโดยดบเบลคลก
หรอคลกขวาเลอก
properties ทวงกลม
บน arrow ดงรป
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
เปนโปรแกรมบนเวบไซต(http://ironphoenix.org/tril/tm/) ทพฒนาดวย
ภาษาจาวา (Java Applet) ใชจ าลองตวแบบการค านวณ Turing Machine โดย
ผใชสามารถสรางแบบจ าลองของ Turing Machine ในรปแบบของรหสสญลกษณ
และ input เทปเพอทดสอบตวแบบได นอกจากนยงมตวอยางของ Turing Machine
เพอเปนแนวทางในการศกษาและเรยนรอกดวย
โปรแกรม Turing Machine Simulator
เปรยบเทยบ Transition Diagram แบบ Visual Turing กบ แบบ
มาตรฐาน
Main Machine ของ Copy
String
แสดง Left # Machine
แสดง Right # Machine
Tape ขอมลน าเขา
Tape ขอมลออก
Transition
Diagram แบบ
มาตรฐานของ
Copy String
จดดอยของโปรแกรม
1. มขอจ ากดเรองขอมล input และ output
2. การใชงานคอนขางยาก ตองใชเวลาในการเรยนรใหม เนองจากการเขยน Turing machine ใน
Visual Turing ไมเหมอนกบการเขยนแบบมาตรฐานสากล
3. เทปมความยาวจ ากด
4. ไมสามารถเปดไฟลไดครงละหลายๆไฟล เปดไดครงละไฟลเดยว
จดเดนของโปรแกรม
1. น าเสนอในรปแบบของภาพ graphic
2. มความยดหยน สามารถออกแบบและสราง Machine ไดตามทเราตองการ
3. สามารถมองเหนล าดบการท างานและเสนทางการเดนไปยงแตละโหนด ท าใหเขาใจหลกการท างาน
4. Turing machine กบ หวอานบนเทป ท างานสมพนธกน ท าใหสามารถท าความเขาใจไดงาย
5. ประหยดทรพยากรและหนวยความจ าของเครอง
6. มความสะดวกในการตดตงโปรแกรม เนองจากตวตดตงเปนไฟลนามสกล .exe
7. มความรวดเรวในการ execute โปรแกรม
โปรแกรม Turing Machine Simulator
เปนโปรแกรมบนเวบไซต(http://ironphoenix.org/tril/tm/) ทพฒนาดวย
ภาษาจาวา (Java Applet) ใชจ าลองตวแบบการค านวณ Turing Machine โดย
ผใชสามารถสรางแบบจ าลองของ Turing Machine ในรปแบบของรหสสญลกษณ
และ input เทปเพอทดสอบตวแบบได นอกจากนยงมตวอยางของ Turing Machine
เพอเปนแนวทางในการศกษาและเรยนรอกดวย
แสดงรหสสญลกษณทใชแทน Transition diagram ของ Turing Machine
และแสดงเทปท input เขามา
เปน 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
จดเดนของโปรแกรม 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 กไมสามารถใชงานโปรแกรมได
The End http://202.28.94.55/web/320491/2548/web1/g19/doc.html