turing machine2

22
Turing machine จจจจจจจจจ จจจจจจจจจจจจ จจจจ จจ จจจจจจจจจจจจ จจจจจจจจจจจจจจจ 4/3 จจจจจจ 35 จจจจจจจจจจจจจ จจจจจจจ จจจจจ จจจ

Upload: ninewyuya

Post on 26-Jun-2015

611 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Turing machine2

Turing machine

จั�ดทำ��โดยน�งส�วมน�ชญ� สดวกด�น�กเรี�ยนช��นม�ธยมศึ�กษ�ปี�ทำ��

43/ เลขทำ�� 35อ�จั�รีย ผู้"#สอน อ�จั�รีย ณั�ฐพล บั�วอ(ไรี

Page 2: Turing machine2

แอล�น แมธ+ส�น ทำ�วรี+ง (Alan Mathison Turing)

เปี,นน�กคณั+ตศึ�สตรี , น�กตรีรีกศึ�สตรี , น�กรีหั�สว+ทำย� และว�รีบั(รี(ษสงครี�มช�วอ�งกฤษ และเปี,นทำ��ยอมรี�บัว2�เปี,นบั+ด�ของว+ทำย�ก�รีคอมพ+วเตอรี

เข�ได#สรี#�งรี"ปีแบับัทำ��เปี,นทำ�งก�รีทำ�งคณั+ตศึ�สตรี ของก�รีรีะบั(อ�ลกอรี+ทำ�มและก�รีค��นวณั โดยใช#เครี4�องจั�กทำ�วรี+ง ซึ่��งต�มข#อปี6ญหั�เช+รี ช-ทำ�วรี+งได#กล2�วว2�เปี,นรี"ปีแบับัของเครี4�องจั�กรีค��นวณัเช+งกลทำ��ครีอบัคล(มทำ(กๆ รี"ปีแบับัทำ��เปี,นไปีได#ในทำ�งปีฏิ+บั�ต+

ในรีะหัว2�งสงครี�มโลกครี��งทำ��สอง ทำ�วรี+งม�ส2วนส��ค�ญในก�รีแกะรีหั�สล�บัของฝ่:�ยเยอรีม�น โดยเข�เปี,นหั�วหัน#�ของกล(2ม Hut 8 ทำ��ทำ��หัน#�ทำ��ในก�รีแกะรีหั�สของเครี4�องอ�น+กม�ทำ��ใช#ในฝ่:�ยทำหั�รีเรี4อ

หัล�งจั�กสงครี�มเข�ได#ออกแบับัเครี4�องคอมพ+วเตอรี อ+เล;กทำรีอน+กส ทำ��ส�ม�รีถ โปีรีแกรีมได#เครี4�องแรีกๆ ของโลกทำ��หั#องปีฏิ+บั�ต+ก�รีฟิ>ส+กส แหั2งช�ต+ และได#สรี#�งเครี4�องคอมพ+วเตอรี ข��นจัรี+งๆ ทำ��มหั�ว+ทำย�ล�ยแมนเชสเตอรี รี�งว�ลทำ�วรี+งถ"กก2อต��งข��นเพ4�อยกย2องเข�ในเรี4�องน��

Page 3: Turing machine2

เครื่��องจักรื่ทัวรื่ ง Turing

machine

เครื่��องจักทัวรื่ ง (Turing machine)ค4อเครี4�องจั�กรีน�มธรีรีมทำ��แอล�น ทำ�วรี+ง ได#ค+ดค#นข��นใน ค.ศึ. 1936 ( พ.ศึ.2479) เพ4�อก�รีน+ย�มอ�ลกอรี+ทำ�มหัรี4อ ‘กรีะบัวนก�รีเช+งกล’ อย2�งช�ดเจันแบับัคณั+ตศึ�สตรี เครี4�องจั�กทำ�วรี+งได#ถ"กใช#อย2�งแพรี2หัล�ยในก�รีศึ�กษ�ว+ทำย�ก�รีค+มพ+วเตอรี เช+งทำฤษฎี� โดยเฉพ�ะในทำฤษฎี�คว�มซึ่�บัซึ่#อนในก�รีค��นวณัและทำฤษฎี�ก�รีค��นวณั ข#อปี6ญหั�(thesis) ทำ��ว2�โมเดลของเครี4�องจั�กรีทำ�วรี+งน��นครีอบัคล(มกรีะบัวนก�รีเช+งกลทำ��งหัมด ในก�รีค��นวณัทำ�งตรีรีกศึ�สตรี และคณั+ตศึ�สตรี เปี,นทำ��รี" #จั�กก�นในช4�อข#อปี6ญหั�ของเช+รี ช-ทำ�ว

Page 4: Turing machine2

แนวค+ดของเครี4�องจั�กรีทำ�วรี+ง

แนวค+ดของเครี4�องจั�กรีทำ�วรี+งน��นต#องก�รีจัะอธ+บั�ยก�รีทำ��ง�นของคนทำ��ปีฏิ+บั�ต+ ต�มข��นตอนทำ��รีะบั(ไว#อย2�งช�ดเจัน เพ4�อแก#ไขข#อม"ลทำ��ถ"กบั�นทำ�กไว#ในกรีะด�ษทำ��เรี�ยงต2อก�นคว�มย�วไม2จั��ก�ด โดยทำ��กรีะด�ษแผู้2นหัน��งจัะส�ม�รีถเก;บัส�ญล�กษณั ได#หัน��งต�วจั�กส�ญล�กษณั ทำ��เปี,น ไปีได#จั��นวนจั��ก�ด ผู้"#ปีฏิ+บั�ต+ง�นน��นจัะต#องจัดจั��สถ�นะหัน��งจั�กสถ�นะทำ��เปี,นไปีได#ทำ��ม�จั��นวนจั��ก�ด และข��นตอนทำ��รีะบั(ใหั#เข�ทำ��ง�นน��นจัะอย"2ในล�กษณัะเช2น "ถ#�สถ�นะของค(ณัค4อ 42 และส�ญล�กษณั บันกรีะด�ษทำ��ค(ณัเหั;นค4อ '0', ใหั#เปีล��ยนส�ญล�กษณั น��เปี,น '1', จัดจั��ว2�สถ�นะใหัม2เปี,น 17 และไปีทำ��ง�นต2อก�บักรีะด�ษแผู้2นถ�ดไปี"

เครี4�องจั�กรีทำ�วรี+งน��นไม2เก��ยวข#องก�บัก�รีทำดสอบัของทำ�วรี+ง ซึ่��งถ"กใช#เพ4�ออธ+บั�ยคว�มหัม�ยของปี6ญญ�ปีรีะด+ษฐ โดยทำ�วรี+ง

Page 5: Turing machine2

เครี4�องจั�กรีทำ�วรี+งส�กล

เครี4�องจั�กรีทำ�วรี+งทำ��ส�ม�รีถจั��ลองก�รีทำ��ง�นของเครี4�องจั�กรีทำ�วรี+งเครี4�องใด ๆ ก;ได#เรี�ยกว2� เครื่��องจักรื่ทัวรื่ งสากล (universal Turing machine) หัรี4อเรี�ยกส��นๆ ว2� เครื่��องจักรื่สากล ทำ�วรี+งอธ+บั�ยไว#ใน ค.ศึ. 1947 (พ.ศึ.2490) ว2�

ส�ม�รีถแสดงได#ว2�ม�เครี4�องจั�กรีพ+เศึษในรี"ปีแบับัน�� ทำ��ส�ม�รีถทำ��ง�นของเครี4�องจั�กรีอ4�น ๆ ในรี"ปีแบับัด�งกล2�วได#ทำ��งหัมด นอกจั�กน��เครี4�องจั�กรีน��ย�งส�ม�รีถใช#เปี,นโมเดลส��หัรี�บัเครี4�องจั�กรีในแบับัอ4�น ๆ เครี4�องจั�กรีพ+เศึษน��ส�ม�รีถเรี�ยกได#ว2�เปี,นเครี4�องจั�กรีส�กล

Page 6: Turing machine2

ว ธี�ใช้�งานโปรื่แกรื่ม

1 . เปี>ดโปีรีแกรีม Visual Turing ข��นม� โปีรีแกมจัะสรี#�งโปีรีเจัคเอ�ไว#ใหั# ด�งในรี"ปีทำ�� 7 หัรี4อหั�กต#องก�รีสรี#�งโปีรีเจัคใหัม2ใหั#กดทำ�� New button หัรี4อ File/New หัรี4อ Ctrl+N

Page 7: Turing machine2

  2 . ก�รีสรี#�ง machine ใหัม2 ใหั#กดทำ�� Insert machine button หัรี4อ คล+กขว�ทำ�� tree view ด#�นซึ่#�ยม4อ เล4อก Insert machine จั�กน��นเปีล��ยนช4�อ machine ทำ��หัน#�ต2�ง properties ด�งรี"ปีทำ�� 8

Page 8: Turing machine2

3 . ก�รีสรี#�ง Symbol ใหัม2 ใหั#กดทำ�� Insert symbol button หัรี4อ คล+กขว�ทำ�� tree view ด#�นซึ่#�ยม4อ เล4อก Insert symbol      4 . ก�รีสรี#�ง Symbol ใหัม2 ใหั#กดทำ�� Insert variable button หัรี4อ คล+กขว�ทำ�� tree view ด#�นซึ่#�ยม4อ เล4อก Insert variable      5 . ก�รีทำ�� Machine จัะทำ��ง�นได# ต#องเก+ดจั�กก�รีน��เอ�ค��ส��งแต2ละค��ส��งม�ปีรีะกอบัก�นใหั#เปี,น machine โดยกดทำ�� Insert instruction button ซึ่��งปีรีะกอบัด#วยค��ส��ง nothing, move left, move right และค��ส��ง write นอกจั�กน��ย�งม� Insert branch button ไว#ส��หัรี�บัสรี#�งเส#นทำ�งหัรี4อส�ข�ออกไปี, Insert arrow button ส��หัรี�บัสรี#�งล"กศึรีเส#นทำ�ง และ

Insert self-arrow ส��หัรี�บัสรี#�งล"กศึรีเส#นทำ�งใหั#เด+นวน

Page 9: Turing machine2

6 . การื่ก�าหนด Condition ของ arrow ทั�าได�โดยดบเบ #ลคล กหรื่�อคล กขวาเล�อก properties ทั��วงกลมบน arrow

ดงรื่$ปทั�� 10

7 . ก�รีสรี#�งและแก#ไขเทำปี ทำ��ได#โดยคล+กขว�บันเทำปี เล4อก Symbols ทำ��ต#องก�รี นอกจั�กน��ย�งส�ม�รีถสรี#�งเทำปีใหัม2และบั�นทำ�กเทำปีทำ��สรี#�งไว#ก;ได#โดยก�รีกดทำ�� New tape button หัรี4อไปีทำ�� menu bar เล4อก Tape/New tape เพ4�อสรี#�งเทำปีใหัม2 และกดทำ�� Save tape button หัรี4อไปีทำ�� menu bar เล4อก Tape/Save tape เพ4�อบั�นทำ�กเทำปี

Page 10: Turing machine2

8 . ก�รีก��หันดหั�วอ2�นเทำปี ทำ��ได#โดยคล+กขว�บันเทำปีทำ��ต#องก�รี เล4อก Set head Enter      9 . ก�รีรี�นโปีรีแกรีม ส�ม�รีถทำ��ได#โดยไปีทำ�� Playerbar กด Play button หัรี4อ ไปีทำ�� menu bar เล4อก Run/Play, กด Pause เพ4�อหัย(ดช��วครี�ว, กด Stop เพ4�อหัย(ดก�รีทำ��ง�น, กด Step back เพ4�อย#อนกล�บั 1 step, กด Step into เพ4�อเด+นหัน#� 1 step, กด Step out เพ4�อเด+นหัน#�แบับัก#�วกรีะโดด      10 . ก�รีรี�นโปีรีแกรีมน��นส�ม�รีถปีรี�บัคว�มเรี;วในก�รีรี�น Machine ได# 5 รีะด�บั โดยคล+กทำ�� Speed menu button แล#วเล4อกรีะด�บัคว�มเรี;ว      11 . ก�รีลบั Machine, symbol, variable ทำ��ได#โดยคล+กขว�ทำ�� machine, symbol หัรี4อ variable ทำ��ต#องก�รีลบั ทำ�� tree view ด#�นซึ่#�ยม4อ เล4อก Delete และก�รีลบัค��ส��งแต2ละต��ส��งทำ��ได#โดยเล4อกค��ส��งทำ��ต#องก�รีลบั แล#วกด Delete button หัรี4อ คล+ก

ขว�ทำ��ต�วค��ส��งน��น เล4อก Delete

Page 11: Turing machine2

โปีรีแกรีม Visual Turing

Visual Turing เปี,นเครี4�องม4อทำ��ใช#ออกแบับัและสรี#�ง Turing machine โดยน��เสนอในรี"ปีแบับัของภ�พgraphic ส�ม�รีถ cut, copy, paste และ undo ได#ส�ม�รีถรี�น machine ทำ��สรี#�งข��น และทำ��ก�รี debug breakpoints รีวมถ�งส�ม�รีถมองเหั;นล��ด�บัก�รีทำ��ง�นของmachineในแต2ละข��นตอนได#อย2�งช�ดเจัน

Page 12: Turing machine2

เปรื่�ยบเทั�ยบ Transition Diagram แบบ Visual Turing กบ แบบมาตรื่ฐาน

แสดง Main Machine ของ Copy String

แสดง Left # Machine แสดง Right # Machine

Page 13: Turing machine2

แสดง Tape ข#อม"ลน��เข#�

แสดง Tape ข�อม$ลออก

แสดง Transition Diagram แบบมาตรื่ฐานของ Copy String

Page 14: Turing machine2

จั'ดเด(นของโปรื่แกรื่ม

1 . น��เสนอในรี"ปีแบับัของภ�พ graphic2 . ม�คว�มย4ดหัย(2น ส�ม�รีถออกแบับัและสรี#�ง Machine ได#ต�มทำ��เรี�ต#องก�รี3 . ส�ม�รีถมองเหั;นล��ด�บัก�รีทำ��ง�นและเส#นทำ�งก�รีเด+นไปีย�งแต2ละโหันด ทำ��ใหั#เข#�ใจัหัล�กก�รีทำ��ง�น4 . Turing machine ก�บั หั�วอ2�นบันเทำปี ทำ��ง�นส�มพ�นธ ก�น ทำ��ใหั#ส�ม�รีถทำ��คว�มเข#�ใจัได#ง2�ย5 . ปีรีะหัย�ดทำรี�พย�กรีและหัน2วยคว�มจั��ของเครี4�อง6 . ม�คว�มสะดวกในก�รีต+ดต��งโปีรีแกรีม เน4�องจั�กต�วต+ดต��งเปี,นไฟิล น�มสก(ล .exe7 . ม�คว�มรีวดเรี;วในก�รี execute โปีรีแกรีม

Page 15: Turing machine2

จั'ดด�อยของโปรื่แกรื่ม

1 . ม�ข#อจั��ก�ดเรี4�องข#อม"ล input และ output 2 . ก�รีใช#ง�นค#อนข#�งย�ก ต#องใช#เวล�ในก�รีเรี�ยนรี" #ใหัม2 เน4�องจั�กก�รีเข�ยน Turing machine ใน Visual Turing ไม2เหัม4อนก�บัก�รีเข�ยนแบับัม�ตรีฐ�นส�กล 3 . เทำปีม�คว�มย�วจั��ก�ด

4 . ไม2ส�ม�รีถเปี>ดไฟิล ได#ครี��งละหัล�ยๆไฟิล เปี>ดได#ครี��งละไฟิล เด�ยว

Page 16: Turing machine2

โปีรีแกรีม Turing

Machine Simulator

เปี,นโปีรีแกรีมบันเวบัไซึ่ต (http://ironphoenix.org/tril/tm/ )ทำ��พ�ฒน�ด#วยภ�ษ�จั�ว� (Java Applet ) ใช#จั��ลองต�วแบับัก�รีค��นวณั Turing Machine โดยผู้"#ใช#ส�ม�รีถสรี#�งแบับัจั��ลองของ Turing Machine ในรี"ปีแบับัของรีหั�สส�ญล�กษณั และ input เทำปีเพ4�อทำดสอบัต�วแบับัได# นอกจั�กน��ย�งม�ต�วอย2�งของ Turing Machine เพ4�อเปี,นแนวทำ�งในก�รีศึ�กษ�และเรี�ยนรี" #อ�กด#วย

Page 17: Turing machine2

จั�กรี"ปี เปี,น Turing Machine ส��หัรี�บัก�รีลบัเลข (Subtractor ) ทำ��ปีรีะกอบัด#วยเลข1เพ�ยงอย2�งเด�ยวและผู้ลล�พธ ต#องไม2เปี,นลบั ส�ม�รีถอธ+บั�ยรีหั�สส�ญล�กษณั ทำ��ใช#แทำน Transition diagram ของ Turing Machineได#ด�งน�� 1,_ 1,_,> หัม�ยถ�ง เม4�ออย"2ทำ�� state1 ถ#�หั�วอ2�นread Null ใหั#เข�ยน Null แล#วขย�บัหั�วอ2�นไปีทำ�งขว� และไปีstate11,1 1,1,> หัม�ยถ�ง เม4�ออย"2ทำ�� state1 ถ#�หั�วอ2�น read 1 ใหั#เข�ยน 1 แล#วขย�บัหั�วอ2�นไปีทำ�งขว� และไปี state1

Page 18: Turing machine2

1,- 1,-,> หัม�ยถ�ง เม4�ออย"2ทำ�� state1 ถ#�หั�วอ2�น read - ใหั#เข�ยน - แล#วขย�บัหั�วอ2�นไปีทำ�งขว� และไปี state11, = 2,_,< หัม�ยถ�ง เม4�ออย"2ทำ�� state1 ถ#�หั�วอ2�น read = ใหั#เข�ยน Null แล#วขย�บัหั�วอ2�นไปีทำ�งซึ่#�ย และไปี state22,1 3,=,< หัม�ยถ�ง เม4�ออย"2ทำ�� state2 ถ#�หั�วอ2�น read 1 ใหั#

เข�ยน = แล#วขย�บัหั�วอ2�นไปีทำ�งซึ่#�ย และไปี state3 2,- H,_,< หัม�ยถ�ง เม4�ออย"2ทำ�� state2 ถ#�หั�วอ2�น read - ใหั#เข�ยน Null แล#วขย�บัหั�วอ2�นไปีทำ�งซึ่#�ย และไปี state H (Halt state)3,1 3,1,< หัม�ยถ�ง เม4�ออย"2ทำ�� state3 ถ#�หั�วอ2�น read 1 ใหั#เข�ยน 1 แล#วขย�บัหั�วอ2�นไปีทำ�งซึ่#�ย และไปี state33,- 4,-,< หัม�ยถ�ง เม4�ออย"2ทำ�� state3 ถ#�หั�วอ2�น read - ใหั#เข�ยน - แล#วขย�บัหั�วอ2�นไปีทำ�งซึ่#�ย และไปี state44,_ 4,_,< หัม�ยถ�ง เม4�ออย"2ทำ�� state4 ถ#�หั�วอ2�น read Null ใหั#เข�ยน Null แล#วขย�บัหั�วอ2�นไปีทำ�งซึ่#�ย และไปี state44,1 1,_,> หัม�ยถ�ง เม4�ออย"2ทำ�� state4 ถ#�หั�วอ2�น read 1 ใหั#เข�ยน Null แล#วขย�บัหั�วอ2�นไปีทำ�งขว� และไปี state1

Page 19: Turing machine2

จั'ดเด(นของโปรื่แกรื่ม

1 . เปี,นโปีรีแกรีมบันเวบัไซึ่ต จั�งง2�ยต2อก�รีเผู้ยแพรี2      2 . ม�ต�วอย2�ง Turing Machine เพ4�อแนวทำ�งในก�รีศึ�กษ�      3 . ม�คว�มส�ม�รีถในก�รีสรี#�ง Turing Machine โดยก�รีใช#รีหั�สส�ญล�กษณั และส�ม�รีถinput เทำปีเพ4�อก�รีตรีวจัสอบั Outputได#      4 . ส�ม�รีถ input เทำปีทำ��ม�คว�มย�วได#ถ�ง 15,000 ต�วอ�กษรี      5 . แสดงข#นตอนก�รีหั� output ทำ��งแบับั step และ แบับั compute      6 . ล�กษณัะของรีหั�สส�ญล�กษณั ทำ��ใช#เข#�ใจัง2�ยและเปี,นไปีต�มรี"ปีแบับัม�ตรีฐ�นส�กล      7 . พ�ฒน�ด#วยภ�ษ�จั�ว�(Java Applet ) จั�งทำ��ใหั#โปีรีแกรีมส�ม�รีถใช#ง�นได#บันทำ(กๆรีะบับัปีฏิ+บั�ต+ก�รี

Page 20: Turing machine2

จั'ดด�อยของโปรื่แกรื่ม

1 . แม#จัะแสดงข��นตอนก�รีหั� output แต2ก;ข�ดส2วนทำ��เปี,น Transition diagram ทำ��ใหั#ผู้"#ใช#อ�จัเก+ดปี6ญหั�ในก�รีจั+นตน�ก�รีภ�พของก�รีไหัลเว�ยนของ state      2 . ไม2ส�ม�รีถทำ��ก�รีบั�นทำ�ก Turing machine ทำ��ผู้"#ใช#สรี#�งข��นเองไว#ในรี"ปีแบับัของแฟิDมข#อม"ลได# เม4�อผู้"#ใช#ทำ��ก�รีปี>ดหัน#�ต2�งเว;บัไซึ่ต หัรี4อ รี�เฟิรีชหัน#�จัอ Machine ทำ��สรี#�งไว#ก;จัะหั�ยไปี      3 . ก�รีสรี#�ง Turing Machine ด#วยรีหั�สส�ญล�กษณั ล2�ช#�กว2�กว2�ก�รีสรี#�งด#วย Transition diagram      4 . ผู้"#ใช#จัะต#องต+ดต��ง Java Runtime เส�ยก2อน จั�งจัะส�ม�รีถใช#ง�นโปีรีแกรีมได#      5 . ส��หัรี�บัผู้"#ใช#ทำ��ไม2ส�ม�รีถเช4�อมต2อเข#�ก�บัรีะบับั Internet ก;ไม2ส�ม�รีถใช#ง�นโปีรีแกรีมได#

Page 21: Turing machine2

อ#�งอ+งhttp://th.wikipedia.org/wiki เครี4�องจั�กรีทำ�วรี+ง/

http://202.28.94.55/web/320491/2548/web1/g19/doc.htmlhttp://www.atriumtech.com/cgi-bin/hilightcgi?Home=/home/InterWeb2000&File=/home2/searchdata/Forums/http/www.pantip.com/cafe/wahkor/topicstock/X1447152/X1447152.html

Page 22: Turing machine2

The End