SlideShare a Scribd company logo
1 of 21
Download to read offline
Turing
   Machine
จัดทาโดย
นางสาวจอมขวัญ กล่าอินทร์
ชั้นมัธยมศึกษาปีที่ 4/1 เลขที่ 27
แอลัน แมธิสัน ทัวริง (Alan Mathison Turing)
• แอลัน แมธิสัน ทัวริง (Alan Mathison Turing)
 เป็นนักคณิตศาสตร์, นักตรรกศาสตร์, นักรหัสวิทยา และวีรบุรุษสงคราม
 ชาวอังกฤษ และเป็นที่ยอมรับว่าเป็นบิดาของวิทยาการคอมพิวเตอร์
      เขาได้สร้างรูปแบบที่เป็นทางการทางคณิตศาสตร์ของการระบุ
  อัลกอริทึมและการคานวณ โดยใช้เครื่องจักรทัวริง
  ซึ่งตามข้อปัญหาเชิร์ช-ทัวริงได้กล่าวว่าเป็นรูปแบบของเครื่องจักร
  คานวณเชิงกลที่ครอบคลุมทุกๆ รูปแบบที่เป็นไปได้ในทางปฏิบัติ ในระหว่าง
   สงครามโลกครั้งที่สอง ทัวริงมีส่วนสาคัญในการแกะรหัสลับของฝ่ายเยอรมัน โดย
   เขาเป็นหัวหน้าของกลุ่ม Hut 8 ที่ทาหน้าที่ในการแกะรหัสของเครื่องอีนิกมาที่ใช้
   ในฝ่ายทหารเรือ
        หลังจากสงครามเขาได้ออกแบบเครื่องคอมพิวเตอร์อิเล็กทรอนิกส์ที่สามารถ
   โปรแกรมได้เครื่องแรกๆ ของโลกที่ห้องปฏิบัติการฟิสิกส์แห่งชาติ และได้สร้าง
   เครื่องคอมพิวเตอร์ขึ้นจริงๆ ที่มหาวิทยาลัยแมนเชสเตอร์ รางวัลทัวริงถูกก่อตั้งขึ้น
   เพื่อยกย่องเขาในเรื่องนี้
เครื่องจักรทัวริง (The Turing machine)
• เครื่องจักรทัวริง (the Turing machine) คือเครื่องจักรนามธรรมที่แอ
  ลัน ทัวริงได้คิดค้นขึ้นใน ค.ศ. 1936 (พ.ศ. 2479) เพื่อการนิยาม
  อัลกอริทึมหรือ 'กระบวนการเชิงกล' อย่างชัดเจนแบบคณิตศาสตร์
  เครื่องจักรทัวริงได้ถูกใช้อย่างแพร่หลายในการศึกษาวิทยาการ
  คอมพิวเตอร์เชิงทฤษฎี โดยเฉพาะในทฤษฎีความซับซ้อนในการคานวณ
  และทฤษฎีการคานวณ ข้อปัญหา (thesis) ที่ว่าโมเดลของเครื่องจักรทัว
  ริงนั้นครอบคลุมกระบวนการเชิงกลทั้งหมด ในการคานวณทาง
  ตรรกศาสตร์และคณิตศาสตร์ เป็นที่รู้จักกันในชื่อข้อปัญหาของเชิร์ช-ทัว
  ริง
แนวคิดของเครื่องจักรทัวริง
    แนวคิดของเครื่องจักรทัวริง
นั้นต้องการจะอธิบายการทางานของคนที่ปฏิบัติตาม
 ขั้นตอนที่ระบุไว้อย่างชัดเจน เพื่อแก้ไขข้อมูลที่ถูกบันทึก
 ไว้ในกระดาษที่เรียงต่อกันความยาวไม่จากัด โดยที่
 กระดาษแผ่นหนึ่งจะสามารถเก็บสัญลักษณ์ได้หนึ่งตัว
 จากสัญลักษณ์ที่เป็นไปได้จานวนจากัด ผู้ปฏิบัติงานนัน   ้
 จะต้องจดจาสถานะหนึ่งจากสถานะที่เป็นไปได้ที่มี
 จานวนจากัด และขันตอนที่ระบุให้เขาทางานนันจะอยู่ใน
                       ้                       ้
 ลักษณะเช่น "ถ้าสถานะของคุณคือ 42 และสัญลักษณ์บน
 กระดาษที่คุณเห็นคือ '0', ให้เปลี่ยนสัญลักษณ์นี้เป็น '1',
 จดจาว่าสถานะใหม่เป็น 17 และไปทางานต่อกับกระดาษ
 แผ่นถัดไป"
 เครื่องจักรทัวริงนันไม่เกี่ยวข้องกับการทดสอบของทัวริง
                     ้
 ซึ่งถูกใช้เพื่ออธิบายความหมายของปัญญาประดิษฐ์
 โดยทัวริง
เครื่องจักรทัวริงสากล

    เครื่องจักรทัวริงที่สามารถจาลองการทางานของ
เครื่องจักรทัวริงเครื่องใด ๆ ก็ได้เรียกว่า เครื่องจักรทัวริง
สากล (universal Turing machine) หรือเรียกสั้นๆ ว่า
เครื่องจักรสากล ทัวริงอธิบายไว้ใน ค.ศ. 1947 (พ.ศ.
2490) ว่า
........สามารถแสดงได้ว่ามีเครื่องจักรพิเศษในรูปแบบนี้ ที่
สามารถทางานของเครื่องจักรอื่น ๆ ในรูปแบบดังกล่าว
ได้ทั้งหมด นอกจากนี้เครื่องจักรนี้ยังสามารถใช้เป็น
โมเดลสาหรับเครื่องจักรในแบบอื่น ๆ เครื่องจักรพิเศษนี้
สามารถเรียกได้ว่าเป็นเครื่องจักรสากล ........
วิธีใช้งานโปรแกรม
• วิธีใช้งานโปรแกรม
             1. เปิดโปรแกรม Visual Turing ขึ้นมา โปรแกมจะสร้างโปรเจคเอาไว้ให้ ดังในรูป
  ที่ 7 หรือหากต้องการสร้างโปรเจคใหม่ให้กดที่ 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 สาหรับสร้างลูกศรเส้นทางให้เดินวน
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
โปรแกรม Visual Turing

•     โปรแกรม Visual Turing
              Visual Turing เป็นเครื่องมือที่ใช้ออกแบบและ
    สร้าง Turing machine โดยนาเสนอในรูปแบบของภาพ
    graphic สามารถ cut, copy, paste และ undo ได้
    สามารถรัน machine ที่สร้างขึ้น และทาการ debug
    breakpoints รวมถึงสามารถมองเห็นลาดับการทางานของ
    machine ในแต่ละขั้นตอนได้อย่างชัดเจน
เปรียบเทียบ Transition Diagram
         แบบVisual Turing กับ แบบมาตรฐาน


      แสดง Main Machine
      ของ Copy String




แสดง Left # Machine
                          แสดง Right # Machine
แสดง Tape ข้อมูลนาเข้า



แสดง Tape ข้อมูลออก




                      แสดง Transition Diagram
                      แบบมาตรฐานของ Copy String
จุดเด่นของโปรแกรม

         1. นาเสนอในรูปแบบของภาพ graphic
     2. มีความยืดหยุ่น สามารถออกแบบและสร้าง Machine ได้ตามที่เราต้องการ
     3. สามารถมองเห็นลาดับการทางานและเส้นทางการเดินไปยังแต่ละโหนด ทาให้
 เข้าใจหลักการทางาน
     4. Turing machine กับ หัวอ่านบนเทป ทางานสัมพันธ์กัน ทาให้สามารถทา
 ความเข้าใจได้ง่าย
     5. ประหยัดทรัพยากรและหน่วยความจาของเครื่อง
           6. มีความสะดวกในการติดตั้งโปรแกรม เนื่องจากตัว
ติดตั้งเป็นไฟล์นามสกุล .exe
     7. มีความรวดเร็วในการ execute โปรแกรม
จุดด้อยของโปรแกรม
       1. มีข้อจากัดเรื่องข้อมูล input และ output
       2. การใช้งานค้อนข้างยาก ต้องใช้เวลาในการเรียนรู้ใหม่
เนื่องจากการเขียน Turing machine ใน Visual Turing ไม่
เหมือนกับการเขียนแบบมาตรฐานสากล
       3. เทปมีความยาวจากัด
       4. ไม่สามารถเปิดไฟล์ได้ครั้งละหลายๆไฟล์ เปิดได้ครั้งละ
ไฟล์เดียว
โปรแกรม Turing Machine Simulator

                     เป็นโปรแกรมบนเวบไซต์
(http://ironphoenix.org/tril/tm/) ที่พัฒนาด้วยภาษาจาวา (Java
Applet) ใช้จาลองตัวแบบการคานวณ Turing Machine โดยผู้ใช้สามารถ
สร้างแบบจาลองของ Turing Machine ในรูปแบบของรหัสสัญลักษณ์
และ input เทปเพื่อทดสอบตัวแบบได้ นอกจากนี้ยังมีตัวอย่างของ 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
จุดเด่นของโปรแกรม
                 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 ก็ไม่สามารถใช้งานโปรแกรมได้
อ้างอิง
• http://fuggingitup.blogspot.com
  /2007/08/turing-machine.html
• http://www.atriumtech.com/cgi
  -
  bin/hilightcgi?Home=/home/Int
  erWeb2000&File=/home2/sear
  chdata/Forums/http/www.pantip
  .com/cafe/wahkor/topicstock/X
  1447152/X1447152.html
• http://202.28.94.55/web/320
  491/2548/web1/g19/doc.html

More Related Content

What's hot

Turing machine2
Turing machine2Turing machine2
Turing machine2bewhands
 
การบ้านคอม
การบ้านคอมการบ้านคอม
การบ้านคอมNucharee
 
Turing machine
Turing machineTuring machine
Turing machineair
 
3 software deverlop
3 software deverlop3 software deverlop
3 software deverlopPor Kung
 
ใบงานที่ 4
ใบงานที่ 4ใบงานที่ 4
ใบงานที่ 4Soldic Kalayanee
 
ประโยชน์ของผังงาน
ประโยชน์ของผังงานประโยชน์ของผังงาน
ประโยชน์ของผังงานPannathat Champakul
 
Lesson 8 การเขียนโปรแกรมโดยใช้ตัวแปร
Lesson 8 การเขียนโปรแกรมโดยใช้ตัวแปรLesson 8 การเขียนโปรแกรมโดยใช้ตัวแปร
Lesson 8 การเขียนโปรแกรมโดยใช้ตัวแปรErrorrrrr
 
ใบความรู้ ที่ 1 หลักการเขียนโปรแกรม
ใบความรู้ ที่ 1 หลักการเขียนโปรแกรมใบความรู้ ที่ 1 หลักการเขียนโปรแกรม
ใบความรู้ ที่ 1 หลักการเขียนโปรแกรมmr.somsak phoolpherm
 
ขั้นตอนการเขียนโปรแกรม
ขั้นตอนการเขียนโปรแกรมขั้นตอนการเขียนโปรแกรม
ขั้นตอนการเขียนโปรแกรมbpatra
 
Lesson 4 การใช้คำสั่งในการเขียนโปรแกรม
Lesson 4 การใช้คำสั่งในการเขียนโปรแกรมLesson 4 การใช้คำสั่งในการเขียนโปรแกรม
Lesson 4 การใช้คำสั่งในการเขียนโปรแกรมErrorrrrr
 
Lesson 6 การวาดรูปต่างๆ
Lesson 6 การวาดรูปต่างๆLesson 6 การวาดรูปต่างๆ
Lesson 6 การวาดรูปต่างๆErrorrrrr
 
Lesson 1การเริ่มต้นใช้โปรแกรม
Lesson 1การเริ่มต้นใช้โปรแกรมLesson 1การเริ่มต้นใช้โปรแกรม
Lesson 1การเริ่มต้นใช้โปรแกรมErrorrrrr
 

What's hot (16)

Turing machine2
Turing machine2Turing machine2
Turing machine2
 
การบ้านคอม
การบ้านคอมการบ้านคอม
การบ้านคอม
 
Turing machine
Turing   machineTuring   machine
Turing machine
 
Turing machine
Turing machineTuring machine
Turing machine
 
3 software deverlop
3 software deverlop3 software deverlop
3 software deverlop
 
ใบงานที่ 4
ใบงานที่ 4ใบงานที่ 4
ใบงานที่ 4
 
About
AboutAbout
About
 
ประโยชน์ของผังงาน
ประโยชน์ของผังงานประโยชน์ของผังงาน
ประโยชน์ของผังงาน
 
Unit2
Unit2Unit2
Unit2
 
Lesson 8 การเขียนโปรแกรมโดยใช้ตัวแปร
Lesson 8 การเขียนโปรแกรมโดยใช้ตัวแปรLesson 8 การเขียนโปรแกรมโดยใช้ตัวแปร
Lesson 8 การเขียนโปรแกรมโดยใช้ตัวแปร
 
ใบความรู้ ที่ 1 หลักการเขียนโปรแกรม
ใบความรู้ ที่ 1 หลักการเขียนโปรแกรมใบความรู้ ที่ 1 หลักการเขียนโปรแกรม
ใบความรู้ ที่ 1 หลักการเขียนโปรแกรม
 
Flowchart
FlowchartFlowchart
Flowchart
 
ขั้นตอนการเขียนโปรแกรม
ขั้นตอนการเขียนโปรแกรมขั้นตอนการเขียนโปรแกรม
ขั้นตอนการเขียนโปรแกรม
 
Lesson 4 การใช้คำสั่งในการเขียนโปรแกรม
Lesson 4 การใช้คำสั่งในการเขียนโปรแกรมLesson 4 การใช้คำสั่งในการเขียนโปรแกรม
Lesson 4 การใช้คำสั่งในการเขียนโปรแกรม
 
Lesson 6 การวาดรูปต่างๆ
Lesson 6 การวาดรูปต่างๆLesson 6 การวาดรูปต่างๆ
Lesson 6 การวาดรูปต่างๆ
 
Lesson 1การเริ่มต้นใช้โปรแกรม
Lesson 1การเริ่มต้นใช้โปรแกรมLesson 1การเริ่มต้นใช้โปรแกรม
Lesson 1การเริ่มต้นใช้โปรแกรม
 

Viewers also liked

Telepetroleo
TelepetroleoTelepetroleo
TelepetroleoClaximo
 
Grammer m 2
Grammer m 2Grammer m 2
Grammer m 2PU
 
Grammer month sixth
Grammer month sixthGrammer month sixth
Grammer month sixthPU
 
Lessons+from+3+idiot+movie
Lessons+from+3+idiot+movieLessons+from+3+idiot+movie
Lessons+from+3+idiot+moviekarandang
 
Grammer m 1
Grammer m 1Grammer m 1
Grammer m 1PU
 
Documenting the evaluation (a)
Documenting the evaluation (a)Documenting the evaluation (a)
Documenting the evaluation (a)itgapz
 
Grammer month (8)
Grammer month (8)Grammer month (8)
Grammer month (8)PU
 
Morphology matters in learning to read
Morphology matters in learning to readMorphology matters in learning to read
Morphology matters in learning to readPU
 
Machu Picchu in Second Life for Immersive 3D Project USMP
Machu Picchu in Second Life for Immersive 3D Project USMPMachu Picchu in Second Life for Immersive 3D Project USMP
Machu Picchu in Second Life for Immersive 3D Project USMPFernando Pascual
 
Grammer m 5
Grammer m 5Grammer m 5
Grammer m 5PU
 
A historical overview of teaching materials
A historical overview of teaching materialsA historical overview of teaching materials
A historical overview of teaching materialsPU
 
Microarchitecture
MicroarchitectureMicroarchitecture
Microarchitecturemeashi
 
Unix(introduction)
Unix(introduction)Unix(introduction)
Unix(introduction)meashi
 
Digital communication
Digital communicationDigital communication
Digital communicationmeashi
 

Viewers also liked (16)

Telepetroleo
TelepetroleoTelepetroleo
Telepetroleo
 
Grammer m 2
Grammer m 2Grammer m 2
Grammer m 2
 
Grammer month sixth
Grammer month sixthGrammer month sixth
Grammer month sixth
 
Lessons+from+3+idiot+movie
Lessons+from+3+idiot+movieLessons+from+3+idiot+movie
Lessons+from+3+idiot+movie
 
Grammer m 1
Grammer m 1Grammer m 1
Grammer m 1
 
Documenting the evaluation (a)
Documenting the evaluation (a)Documenting the evaluation (a)
Documenting the evaluation (a)
 
Stella's favorite foods
Stella's favorite foodsStella's favorite foods
Stella's favorite foods
 
Grammer month (8)
Grammer month (8)Grammer month (8)
Grammer month (8)
 
Test
TestTest
Test
 
Morphology matters in learning to read
Morphology matters in learning to readMorphology matters in learning to read
Morphology matters in learning to read
 
Machu Picchu in Second Life for Immersive 3D Project USMP
Machu Picchu in Second Life for Immersive 3D Project USMPMachu Picchu in Second Life for Immersive 3D Project USMP
Machu Picchu in Second Life for Immersive 3D Project USMP
 
Grammer m 5
Grammer m 5Grammer m 5
Grammer m 5
 
A historical overview of teaching materials
A historical overview of teaching materialsA historical overview of teaching materials
A historical overview of teaching materials
 
Microarchitecture
MicroarchitectureMicroarchitecture
Microarchitecture
 
Unix(introduction)
Unix(introduction)Unix(introduction)
Unix(introduction)
 
Digital communication
Digital communicationDigital communication
Digital communication
 

Similar to งานคอมพิวเตอร์

Turing Machine2
Turing Machine2Turing Machine2
Turing Machine2ninewyuya
 
งานคอมพิวเตอร์
งานคอมพิวเตอร์งานคอมพิวเตอร์
งานคอมพิวเตอร์JOMKHWANJAI
 
งานคอมพิวเตอร์
งานคอมพิวเตอร์งานคอมพิวเตอร์
งานคอมพิวเตอร์khwanjai
 
กระบวนการเทคโนโลยีสารสนเทศ
กระบวนการเทคโนโลยีสารสนเทศกระบวนการเทคโนโลยีสารสนเทศ
กระบวนการเทคโนโลยีสารสนเทศABELE Snvip
 
605 สุปราณี 11
605 สุปราณี 11605 สุปราณี 11
605 สุปราณี 11Supranee Panjita
 
(ใบงานที่ 3)
(ใบงานที่ 3)(ใบงานที่ 3)
(ใบงานที่ 3)Aungkana Na Na
 
การใช้เครื่องใช้สำนักงาน
การใช้เครื่องใช้สำนักงานการใช้เครื่องใช้สำนักงาน
การใช้เครื่องใช้สำนักงานPrapisee Nilawongse
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอมPassawan' Koohar
 
ตอนที่ 3 การนำเสนอข้อมูล
ตอนที่ 3 การนำเสนอข้อมูลตอนที่ 3 การนำเสนอข้อมูล
ตอนที่ 3 การนำเสนอข้อมูลKriangx Ch
 
ผังงาน (Flowchart)
ผังงาน (Flowchart)ผังงาน (Flowchart)
ผังงาน (Flowchart)Theruangsit
 
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์ขอบข่ายและประเภทโครงงานคอมพิวเตอร์
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์miiztake
 
โครงงานประเภทการทดลองทฤษฎี
โครงงานประเภทการทดลองทฤษฎีโครงงานประเภทการทดลองทฤษฎี
โครงงานประเภทการทดลองทฤษฎีmcf_cnx1
 
โครงงานคอม 5
โครงงานคอม 5โครงงานคอม 5
โครงงานคอม 5wipawanmmiiww
 
ประเภทของโครงงานคอมพิวเตอร์
ประเภทของโครงงานคอมพิวเตอร์ประเภทของโครงงานคอมพิวเตอร์
ประเภทของโครงงานคอมพิวเตอร์pattanan_hansuek
 
การพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญาการพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญาwinewic199
 

Similar to งานคอมพิวเตอร์ (20)

Turing Machine2
Turing Machine2Turing Machine2
Turing Machine2
 
งานคอมพิวเตอร์
งานคอมพิวเตอร์งานคอมพิวเตอร์
งานคอมพิวเตอร์
 
งานคอมพิวเตอร์
งานคอมพิวเตอร์งานคอมพิวเตอร์
งานคอมพิวเตอร์
 
กระบวนการเทคโนโลยีสารสนเทศ
กระบวนการเทคโนโลยีสารสนเทศกระบวนการเทคโนโลยีสารสนเทศ
กระบวนการเทคโนโลยีสารสนเทศ
 
กำเนิดภาษาซี
กำเนิดภาษาซีกำเนิดภาษาซี
กำเนิดภาษาซี
 
605 สุปราณี 11
605 สุปราณี 11605 สุปราณี 11
605 สุปราณี 11
 
คูมือการใช้ Captivate 5
คูมือการใช้ Captivate 5คูมือการใช้ Captivate 5
คูมือการใช้ Captivate 5
 
(ใบงานที่ 3)
(ใบงานที่ 3)(ใบงานที่ 3)
(ใบงานที่ 3)
 
K5 (1)
K5 (1)K5 (1)
K5 (1)
 
การใช้เครื่องใช้สำนักงาน
การใช้เครื่องใช้สำนักงานการใช้เครื่องใช้สำนักงาน
การใช้เครื่องใช้สำนักงาน
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
งานนำเสนอ1 คอม
งานนำเสนอ1 คอมงานนำเสนอ1 คอม
งานนำเสนอ1 คอม
 
ตอนที่ 3 การนำเสนอข้อมูล
ตอนที่ 3 การนำเสนอข้อมูลตอนที่ 3 การนำเสนอข้อมูล
ตอนที่ 3 การนำเสนอข้อมูล
 
ผังงาน (Flowchart)
ผังงาน (Flowchart)ผังงาน (Flowchart)
ผังงาน (Flowchart)
 
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์ขอบข่ายและประเภทโครงงานคอมพิวเตอร์
ขอบข่ายและประเภทโครงงานคอมพิวเตอร์
 
โครงงานประเภทการทดลองทฤษฎี
โครงงานประเภทการทดลองทฤษฎีโครงงานประเภทการทดลองทฤษฎี
โครงงานประเภทการทดลองทฤษฎี
 
โครงงานคอม 5
โครงงานคอม 5โครงงานคอม 5
โครงงานคอม 5
 
K5
K5K5
K5
 
ประเภทของโครงงานคอมพิวเตอร์
ประเภทของโครงงานคอมพิวเตอร์ประเภทของโครงงานคอมพิวเตอร์
ประเภทของโครงงานคอมพิวเตอร์
 
การพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญาการพัฒนาโปรแกรม วิชญา
การพัฒนาโปรแกรม วิชญา
 

งานคอมพิวเตอร์

  • 1. Turing Machine จัดทาโดย นางสาวจอมขวัญ กล่าอินทร์ ชั้นมัธยมศึกษาปีที่ 4/1 เลขที่ 27
  • 2. แอลัน แมธิสัน ทัวริง (Alan Mathison Turing) • แอลัน แมธิสัน ทัวริง (Alan Mathison Turing) เป็นนักคณิตศาสตร์, นักตรรกศาสตร์, นักรหัสวิทยา และวีรบุรุษสงคราม ชาวอังกฤษ และเป็นที่ยอมรับว่าเป็นบิดาของวิทยาการคอมพิวเตอร์ เขาได้สร้างรูปแบบที่เป็นทางการทางคณิตศาสตร์ของการระบุ อัลกอริทึมและการคานวณ โดยใช้เครื่องจักรทัวริง ซึ่งตามข้อปัญหาเชิร์ช-ทัวริงได้กล่าวว่าเป็นรูปแบบของเครื่องจักร คานวณเชิงกลที่ครอบคลุมทุกๆ รูปแบบที่เป็นไปได้ในทางปฏิบัติ ในระหว่าง สงครามโลกครั้งที่สอง ทัวริงมีส่วนสาคัญในการแกะรหัสลับของฝ่ายเยอรมัน โดย เขาเป็นหัวหน้าของกลุ่ม Hut 8 ที่ทาหน้าที่ในการแกะรหัสของเครื่องอีนิกมาที่ใช้ ในฝ่ายทหารเรือ หลังจากสงครามเขาได้ออกแบบเครื่องคอมพิวเตอร์อิเล็กทรอนิกส์ที่สามารถ โปรแกรมได้เครื่องแรกๆ ของโลกที่ห้องปฏิบัติการฟิสิกส์แห่งชาติ และได้สร้าง เครื่องคอมพิวเตอร์ขึ้นจริงๆ ที่มหาวิทยาลัยแมนเชสเตอร์ รางวัลทัวริงถูกก่อตั้งขึ้น เพื่อยกย่องเขาในเรื่องนี้
  • 3. เครื่องจักรทัวริง (The Turing machine) • เครื่องจักรทัวริง (the 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. 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 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 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://fuggingitup.blogspot.com /2007/08/turing-machine.html • http://www.atriumtech.com/cgi - bin/hilightcgi?Home=/home/Int erWeb2000&File=/home2/sear chdata/Forums/http/www.pantip .com/cafe/wahkor/topicstock/X 1447152/X1447152.html • http://202.28.94.55/web/320 491/2548/web1/g19/doc.html