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
โปรแกรม Turing Machine Simulator

         เป็นโปรแกรมบนเวบไซต์(http://ironphoenix.org/tril/tm/) ที่พัฒนาด้วย
ภาษาจาวา (Java Applet) ใช้จาลองตัวแบบการคานวณ Turing Machine โดย
ผู้ใช้สามารถสร้างแบบจาลองของ Turing Machine ในรูปแบบของรหัสสัญลักษณ์
และ input เทปเพื่อทดสอบตัวแบบได้ นอกจากนี้ยังมีตวอย่างของ Turing Machine
                                                 ั
เพื่อเป็นแนวทางในการศึกษาและเรียนรู้อีกด้วย
เปรียบเทียบ 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

Turing machine

  • 1.
    Turing Machine จัดทาโดย นางสาวรัชนีกรเล็กประเสริฐ นักเรียนชั้นมัธยมศึกษาปีที่ 4/1 เลขที่ 21 ครูผู้สอน คุณครู ณัฐพล บัวอุไร
  • 2.
    เครื่องจักรทัวริง (the Turingmachine) คือเครื่องจักรนามธรรมที่แอลัน ทัวริงได้คิดค้นขึ้นใน ค.ศ. 1936 (พ.ศ. 2479) เพื่อการนิยาม อัลกอริทึมหรือ 'กระบวนการเชิงกล' อย่างชัดเจนแบบคณิตศาสตร์ เครื่องจักรทัวริงได้ถูกใช้อย่าง แพร่หลายในการศึกษาวิทยาการคอมพิวเตอร์เชิงทฤษฎี โดยเฉพาะในทฤษฎีความซับซ้อนในการ คานวณและทฤษฎีการคานวณ ข้อปัญหา (thesis) ที่ว่าโมเดลของเครื่องจักรทัวริงนั้นครอบคลุม กระบวนการเชิงกลทั้งหมด ในการคานวณทางตรรกศาสตร์และคณิตศาสตร์ เป็นที่รู้จักกันในชื่อข้อ ปัญหาของเชิร์ช-ทัวริง แนวคิดของเครื่องจักรทัวริงนั้นต้องการจะอธิบายการทางานของคนที่ปฏิบัติตาม ขั้นตอนที่ระบุไว้อย่าง ชัดเจน เพื่อแก้ไขข้อมูลที่ถูกบันทึกไว้ในกระดาษที่เรียงต่อกันความยาวไม่จากัด โดยที่กระดาษแผ่น หนึ่งจะสามารถเก็บสัญลักษณ์ได้หนึ่งตัวจากสัญลักษณ์ที่เป็น ไปได้จานวนจากัด ผู้ปฏิบัติงานนั้น จะต้องจดจาสถานะหนึ่งจากสถานะที่เป็นไปได้ที่มจานวนจากัด และขั้นตอนที่ระบุให้เขาทางานนั้นจะ ี อยู่ในลักษณะเช่น "ถ้าสถานะของคุณคือ 42 และสัญลักษณ์บนกระดาษที่คุณเห็นคือ '0', ให้เปลี่ยน สัญลักษณ์นี้เป็น '1', จดจาว่าสถานะใหม่เป็น 17 และไปทางานต่อกับกระดาษแผ่นถัดไป"
  • 3.
    เครื่องจักรทัวริงนั้นไม่เกี่ยวข้องกับการทดสอบของทัวริง ซึ่งถูกใช้เพื่ออธิบายความหมายของ ปัญญาประดิษฐ์โดยทัวริงเครื่องจักรทัวริงที่สามารถจาลองการทางานของเครื่องจักรทัวริงเครื่องใดๆ ก็ได้เรียกว่าเครืองจักรทัวริงสากล (universalTuring machine) หรือเรียกสั้นๆ ว่า เครืองจักรสากล ่ ่ ทัวริงอธิบายไว้ใน ค.ศ. 1947 (พ.ศ. 2490) ว่า สามารถแสดงได้ว่ามีเครื่อง จักรพิเศษในรูปแบบนี้ ที่สามารถทางานของเครื่องจักรอื่น ๆ ในรูปแบบ ดังกล่าวได้ทั้งหมด นอกจากนี้เครื่องจักรนี้ยังสามารถใช้เป็นโมเดลสาหรับเครื่องจักรในแบบอื่น ๆ เครื่องจักรพิเศษนี้สามารถเรียกได้ว่าเป็นเครื่องจักรสากล
  • 4.
    โปรแกรม Visual Turing Visual Turing เป็นเครื่องมือที่ใช้ออกแบบและสร้าง Turing machine โดยนาเสนอใน รูปแบบของภาพ graphic สามารถ cut, copy, paste และ undo ได้ สามารถรัน machine ที่ สร้างขึ้น และทาการ debug breakpoints รวมถึงสามารถมองเห็นลาดับการทางานของ machine ในแต่ละขั้นตอนได้อย่างชัดเจน วิธีใช้งานโปรแกรม
  • 5.
    1. เปิดโปรแกรม VisualTuring ขึ้นมา โปรแกมจะสร้างโปรเจคเอาไว้ให้ ดังในรูป หรือหากต้องการสร้างโปรเจคใหม่ให้กดที่ New button หรือ File/New หรือ Ctrl+N
  • 6.
    2. การสร้าง machineใหม่ ให้กดที่ Insert machine button หรือ คลิกขวาที่ tree view ด้านซ้ายมือ เลือก Insert machine จากนั้นเปลี่ยนชื่อ machine ที่หน้าต่าง properties ดังรูป
  • 7.
    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 สาหรับสร้าง ลูกศรเส้นทางให้เดินวน ดังรูป
  • 8.
    1 6. การกาหนด Condition ของarrow ทาได้โดยดับเบิ้ลคลิก หรือคลิกขวาเลือก properties ที่วงกลม บน arrow ดังรูป
  • 9.
    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
  • 10.
    โปรแกรม Turing MachineSimulator เป็นโปรแกรมบนเวบไซต์(http://ironphoenix.org/tril/tm/) ที่พัฒนาด้วย ภาษาจาวา (Java Applet) ใช้จาลองตัวแบบการคานวณ Turing Machine โดย ผู้ใช้สามารถสร้างแบบจาลองของ Turing Machine ในรูปแบบของรหัสสัญลักษณ์ และ input เทปเพื่อทดสอบตัวแบบได้ นอกจากนี้ยังมีตวอย่างของ Turing Machine ั เพื่อเป็นแนวทางในการศึกษาและเรียนรู้อีกด้วย
  • 11.
    เปรียบเทียบ Transition Diagramแบบ Visual Turing กับ แบบ มาตรฐาน Main Machine ของ Copy String แสดง Left # Machine แสดง Right # Machine
  • 12.
    Tape ข้อมูลนาเข้า Tape ข้อมูลออก Transition Diagram แบบ มาตรฐานของ Copy String
  • 13.
    จุดด้อยของโปรแกรม 1.มีข้อจากัดเรื่องข้อมูล input และ output 2. การใช้งานค้อนข้างยาก ต้องใช้เวลาในการเรียนรู้ใหม่ เนื่องจากการเขียน Turing machine ใน Visual Turing ไม่เหมือนกับการเขียนแบบมาตรฐานสากล 3. เทปมีความยาวจากัด 4. ไม่สามารถเปิดไฟล์ได้ครั้งละหลายๆไฟล์ เปิดได้ครั้งละไฟล์เดียว จุดเด่นของโปรแกรม 1. นาเสนอในรูปแบบของภาพ graphic 2. มีความยืดหยุ่น สามารถออกแบบและสร้าง Machine ได้ตามที่เราต้องการ 3. สามารถมองเห็นลาดับการทางานและเส้นทางการเดินไปยังแต่ละโหนด ทาให้เข้าใจหลักการทางาน 4. Turing machine กับ หัวอ่านบนเทป ทางานสัมพันธ์กัน ทาให้สามารถทาความเข้าใจได้ง่าย 5. ประหยัดทรัพยากรและหน่วยความจาของเครื่อง 6. มีความสะดวกในการติดตั้งโปรแกรม เนื่องจากตัวติดตั้งเป็นไฟล์นามสกุล .exe 7. มีความรวดเร็วในการ execute โปรแกรม
  • 14.
    โปรแกรม Turing MachineSimulator เป็นโปรแกรมบนเว็บไซต์(http://ironphoenix.org/tril/tm/) ที่พัฒนาด้วย ภาษาจาวา (Java Applet) ใช้จาลองตัวแบบการคานวณ Turing Machine โดย ผู้ใช้สามารถสร้างแบบจาลองของ Turing Machine ในรูปแบบของรหัสสัญลักษณ์ และ input เทปเพื่อทดสอบตัวแบบได้ นอกจากนี้ยังมีตวอย่างของ Turing Machine ั เพื่อเป็นแนวทางในการศึกษาและเรียนรู้อีกด้วย
  • 15.
    แสดงรหัสสัญลักษณ์ที่ใช้แทน Transition diagramของ Turing Machine และแสดงเทปที่ input เข้ามา
  • 16.
    เป็น 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
  • 17.
    จุดเด่นของโปรแกรม 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 ก็ไม่สามารถใช้งานโปรแกรมได้
  • 18.
    The End http://202.28.94.55/web/320491/2548/web1/g19/doc.html