18
Turing Machine จัดทาโดย นางสาวรัชนีกร เล็กประเสริฐ นักเรียนชั้นมัธยมศึกษาปีท่ 4/1 เลขที่ 21 ครผ้สอน คุณคร ณัฐพล บัวอุไร

Turing machine

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Turing machine

Turing Machineจดท าโดย นางสาวร ชนกร เลกประเสรฐ

นกเร ยนชนมธยมศกษาปท 4 /1 เลขท 21

ครผสอน คณ คร ณฐพล บวอไ ร

Page 2: Turing machine

เครองจกรทวรง (the Turing machine)

คอเครองจกรนามธรรมทแอลน ทวรงไดคดคนขนใน ค.ศ. 1936 (พ.ศ. 2479) เพอการนยาม

อลกอรทมหรอ 'กระบวนการเชงกล' อยางชดเจนแบบคณตศาสตร เครองจกรทวรงไดถกใชอยาง

แพรหลายในการศกษาวทยาการคอมพวเตอรเชงทฤษฎ โดยเฉพาะในทฤษฎความซบซอนในการ

ค านวณและทฤษฎการค านวณ ขอปญหา (thesis) ทวาโมเดลของเครองจกรทวรงนนครอบคลม

กระบวนการเชงกลทงหมด ในการค านวณทางตรรกศาสตรและคณตศาสตร เปนทรจกกนในชอขอ

ปญหาของเชรช-ทวรง

แนวคดของเครองจกรทวรงนนตองการจะอธบายการท างานของคนทปฏบตตาม ขนตอนทระบไวอยาง

ชดเจน เพอแกไขขอมลทถกบนทกไวในกระดาษทเรยงตอกนความยาวไมจ ากด โดยทกระดาษแผน

หนงจะสามารถเกบสญลกษณไดหนงตวจากสญลกษณทเปน ไปไดจ านวนจ ากด ผปฏบตงานนน

จะตองจดจ าสถานะหนงจากสถานะทเปนไปไดทมจ านวนจ ากด และขนตอนทระบใหเขาท างานนนจะ

อยในลกษณะเชน "ถาสถานะของคณคอ 42 และสญลกษณบนกระดาษทคณเหนคอ '0', ใหเปลยน

สญลกษณนเปน '1', จดจ าวาสถานะใหมเปน 17 และไปท างานตอกบกระดาษแผนถดไป"

Page 3: Turing machine

เครองจกรทวรงนนไมเกยวของกบการทดสอบของทวรง ซงถกใชเพออธบายความหมายของ

ปญญาประดษฐโดยทวรงเครองจกรทวรงทสามารถจ าลองการท างานของเครองจกรทวรงเครองใดๆ

กไดเรยกวาเครองจกรทวรงสากล (universal Turing machine) หรอเรยกสนๆ วา เครองจกรสากล

ทวรงอธบายไวใน ค.ศ. 1947 (พ.ศ. 2490) วา

สามารถแสดงไดวามเครอง จกรพเศษในรปแบบน ทสามารถท างานของเครองจกรอน ๆ ในรปแบบ

ดงกลาวไดทงหมด นอกจากนเครองจกรนยงสามารถใชเปนโมเดลส าหรบเครองจกรในแบบอน ๆ

เครองจกรพเศษนสามารถเรยกไดวาเปนเครองจกรสากล

Page 4: Turing machine

โปรแกรม Visual Turing

Visual Turing เปนเครองมอทใชออกแบบและสราง Turing machine โดยน าเสนอใน

รปแบบของภาพ graphic สามารถ cut, copy, paste และ undo ได สามารถรน machine ท

สรางขน และท าการ debug breakpoints รวมถงสามารถมองเหนล าดบการท างานของ machine

ในแตละขนตอนไดอยางชดเจน

วธใชงานโปรแกรม

Page 5: Turing machine

1. เปดโปรแกรม Visual Turing ขนมา โปรแกมจะสรางโปรเจคเอาไวให ดงในรป

หรอหากตองการสรางโปรเจคใหมใหกดท New button หรอ File/New หรอ Ctrl+N

Page 6: Turing machine

2. การสราง machine ใหม ใหกดท Insert machine button หรอ คลกขวาท

tree view ดานซายมอ เลอก Insert machine จากนนเปลยนชอ machine ทหนาตาง

properties ดงรป

Page 7: Turing machine

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 ส าหรบสราง

ลกศรเสนทางใหเดนวน ดงรป

Page 8: Turing machine

1

6. การก าหนด

Condition ของ arrow

ท าไดโดยดบเบลคลก

หรอคลกขวาเลอก

properties ทวงกลม

บน arrow ดงรป

Page 9: Turing machine

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

Page 10: Turing machine

เปนโปรแกรมบนเวบไซต(http://ironphoenix.org/tril/tm/) ทพฒนาดวย

ภาษาจาวา (Java Applet) ใชจ าลองตวแบบการค านวณ Turing Machine โดย

ผใชสามารถสรางแบบจ าลองของ Turing Machine ในรปแบบของรหสสญลกษณ

และ input เทปเพอทดสอบตวแบบได นอกจากนยงมตวอยางของ Turing Machine

เพอเปนแนวทางในการศกษาและเรยนรอกดวย

โปรแกรม Turing Machine Simulator

Page 11: Turing machine

เปรยบเทยบ Transition Diagram แบบ Visual Turing กบ แบบ

มาตรฐาน

Main Machine ของ Copy

String

แสดง Left # Machine

แสดง Right # Machine

Page 12: Turing machine

Tape ขอมลน าเขา

Tape ขอมลออก

Transition

Diagram แบบ

มาตรฐานของ

Copy String

Page 13: Turing machine

จดดอยของโปรแกรม

1. มขอจ ากดเรองขอมล input และ output

2. การใชงานคอนขางยาก ตองใชเวลาในการเรยนรใหม เนองจากการเขยน Turing machine ใน

Visual Turing ไมเหมอนกบการเขยนแบบมาตรฐานสากล

3. เทปมความยาวจ ากด

4. ไมสามารถเปดไฟลไดครงละหลายๆไฟล เปดไดครงละไฟลเดยว

จดเดนของโปรแกรม

1. น าเสนอในรปแบบของภาพ graphic

2. มความยดหยน สามารถออกแบบและสราง Machine ไดตามทเราตองการ

3. สามารถมองเหนล าดบการท างานและเสนทางการเดนไปยงแตละโหนด ท าใหเขาใจหลกการท างาน

4. Turing machine กบ หวอานบนเทป ท างานสมพนธกน ท าใหสามารถท าความเขาใจไดงาย

5. ประหยดทรพยากรและหนวยความจ าของเครอง

6. มความสะดวกในการตดตงโปรแกรม เนองจากตวตดตงเปนไฟลนามสกล .exe

7. มความรวดเรวในการ execute โปรแกรม

Page 14: Turing machine

โปรแกรม Turing Machine Simulator

เปนโปรแกรมบนเวบไซต(http://ironphoenix.org/tril/tm/) ทพฒนาดวย

ภาษาจาวา (Java Applet) ใชจ าลองตวแบบการค านวณ Turing Machine โดย

ผใชสามารถสรางแบบจ าลองของ Turing Machine ในรปแบบของรหสสญลกษณ

และ input เทปเพอทดสอบตวแบบได นอกจากนยงมตวอยางของ Turing Machine

เพอเปนแนวทางในการศกษาและเรยนรอกดวย

Page 15: Turing machine

แสดงรหสสญลกษณทใชแทน Transition diagram ของ Turing Machine

และแสดงเทปท input เขามา

Page 16: Turing machine

เปน 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

Page 17: Turing machine

จดเดนของโปรแกรม 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 กไมสามารถใชงานโปรแกรมได

Page 18: Turing machine

The End http://202.28.94.55/web/320491/2548/web1/g19/doc.html