More Related Content
What's hot (19)
อัลกอริทึมและการวิเคราะห์ปัญหา บทที่4การกำหนดและวิเคราะห์ปัญหา อัลกอริทึมและการวิเคราะห์ปัญหา Lesson 4 การใช้คำสั่งในการเขียนโปรแกรม ความรู้เบื้องต้นเกี่ยวกับโครงสร้างข้อมูลและอัลกอริทึม การสร้างบทเรียน Cai ด้วย Flash Lesson 8 การเขียนโปรแกรมโดยใช้ตัวแปร Viewers also liked (20)
Dr. Yaron Brook on TheMarker 12/2013 Canada's rank in OECD studies 20100610 08 14 248bהוצאה לאומית לחינוך Dissertations - Writing with Power, OR "Academic" Is No One's First Language Airplanes: Sailboats :: Mobile : Desktop הצעת החוק להגנה על הסופרים והספרים - נסיון בינלאומי Z STREET: IRS continues Constitutional violations concerning Israel - A Social Media Analytics Tel-Aviv College 29-jan2012 IIW 13 - Scalability Point to Point Federation מדיניות סבסוד ביודלק ומחירי מזון Westfield Health Care Reform Webinar Power Point Global petroleum-survey-2013 Similar to Turing machine (20)
Robot form University of Phayao ความหมายของเทคโนโลยีสารสนเทศ กลุ่มที่ 3 คอมพิวเตอร์ส่วนบุคคล กลุ่มที่ 3 คอมพิวเตอร์ส่วนบุคคล ขั้นตอนการเขียนโปรแกรมคอมพิวเตอร์ การแก้ปัญหาด้วยกระบวนการเทคโนโลยีสารสนเทศ บทที่ 1 คอมพิวเตอร์เบื้องต้น Turing machine
- 1. T u r i n g m a c h i n e จัดทำโดย นางสาวมนัชญา สดวกดี นักเรียนชั้นมัธยมศึกษาปีที่ 4/3 เลขที่ 35 อาจารย์ผู้สอน อาจารย์ ณัฐพล บัวอุไร
- 2. แอลัน แมธิสัน ทัวริง ( Alan Mathison Turing ) เป็นนักคณิตศาสตร์ , นักตรรกศาสตร์ , นักรหัสวิทยา และวีรบุรุษสงครามชาวอังกฤษ และเป็นที่ยอมรับว่าเป็นบิดาของวิทยาการคอมพิวเตอร์ เขาได้สร้างรูปแบบที่เป็นทางการทางคณิตศาสตร์ของการระบุอัลกอริทึมและการคำนวณ โดยใช้เครื่องจักทัวริง ซึ่งตามข้อปัญหาเชิร์ช - ทัวริงได้กล่าวว่าเป็นรูปแบบของเครื่องจักรคำนวณเชิงกลที่ครอบคลุมทุกๆ รูปแบบที่เป็นไปได้ในทางปฏิบัติ ในระหว่างสงครามโลกครั้งที่สอง ทัวริงมีส่วนสำคัญในการแกะรหัสลับของฝ่ายเยอรมัน โดยเขาเป็นหัวหน้าของกลุ่ม Hut 8 ที่ทำหน้าที่ในการแกะรหัสของเครื่องอีนิกมาที่ใช้ในฝ่ายทหารเรือ หลังจากสงครามเขาได้ออกแบบเครื่องคอมพิวเตอร์อิเล็กทรอนิกส์ที่สามารถ โปรแกรมได้เครื่องแรกๆ ของโลกที่ห้องปฏิบัติการฟิสิกส์แห่งชาติ และได้สร้างเครื่องคอมพิวเตอร์ขึ้นจริงๆ ที่มหาวิทยาลัยแมนเชสเตอร์ รางวัลทัวริงถูกก่อตั้งขึ้นเพื่อยกย่องเขาในเรื่องนี้
- 3. เครื่องจักรทัวริง Turing machine เครื่องจักทัวริง ( 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
- 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 ดังรูปที่ 10 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 เป็นเครื่องมือที่ใช้ออกแบบและสร้าง Turing machine โดยนำเสนอในรูปแบบของภาพ graphic สามารถ cut , copy , paste และ undo ได้สามารถรัน machine ที่สร้างขึ้น และทำการ debug breakpoints รวมถึงสามารถมองเห็นลำดับการทำงานของ machine ในแต่ละขั้นตอนได้อย่างชัดเจน
- 12. เปรียบเทียบ Transition Diagram แบบ Visual Turing กับ แบบมาตรฐาน แสดง Main Machine ของ Copy String แสดง Left # Machine แสดง Right # Machine
- 13. แสดง Tape ข้อมูลนำเข้า แสดง Tape ข้อมูลออก แสดง Transition Diagram แบบมาตรฐานของ Copy String
- 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 :// th . wikipedia . org / wiki /เครื่องจักรทัวริง http :// 202.28.94.55 / web / 320491/2548 / web1 / g19 / doc . html http :// www . atriumtech . com / cgi - bin / hilightcgi?Home =/ home / InterWeb2000&File =/ home2 / searchdata / Forums / http / www . pantip . com / cafe / wahkor / topicstock / X1447152 / X1447152 . html