SlideShare a Scribd company logo
1 of 49
Download to read offline
โครงสรางแผนการจัดการเรียนรู รายชั่วโมง
สาระการเรียนรูพื้นฐาน เทคโนโลยีสารสนเทศ ชั้น
มัธยมศึกษาปที่ 5
หนวยการเรียนรูที่ 1 เทคโนโลยีการสื่อสาร
การเรียนรูที่ 1วัตถุประสงคของการจัดการขอมูล หนวย
ขอมูลและเขตขอมูลคีย .
การเรียนรูที่ 2 ชนิดขอมูลและประเภทของแฟมขอมูล
การเรียนรูที่ 3 ลักษณะการประมวลผลขอมูล
การเรียนรูที่ 4 แฟมโปรแกรมและแฟมขอมูล
หนวยการเรียนรูที่ 2 โครงสรางขอมูล
การเรียนรูที่ 5 ชนิดของโครงสรางขอมูล
การเรียนรูที่ 6 ลักษณะของขอมูล
การเรียนรูที่ 7 การเรียงลําดับขอมูล
การเรียนรูที่ 8 การคนหาขอมูล
หนวยการเรียนรูที่ 1 เทคโนโลยีการสื่อสาร

การเรียนรูที่ 1วัตถุประสงคของการจัดการขอมูล หนวยขอมูล
และเขตขอมูลคีย .
วัตถุประสงคในการจัดการขอมูล
       วัตถุประสงคในการจัดการขอมูล
     1. การเก็บขอมูล ตองเก็บขอมูลเพื่อใหสามารถนํากลับมาใชไดในภายหลัง

     2. การจัดขอมูล ตองจัดขอมูลใหอยูในรูปแบบที่สามารถเรียกใชงานไดอยางมี
ประสิทธิภาพ

     3. -การปรับปรุงขอมูล ตองปรับขอมูลใหมีความถูกตองสมบูรณอยูเสมอ

     4. การปกปองขอมูล ตองปกปองขอมูลจากการทําลาย ลักลอบใช หรือแกไข
โดยมิชอบ รวมทั้งปกปองขอมูลจากอุบัติเหตุที่อาจเกิดจากวินาศภัย หรือความ
บกพรองภายในระบบคอมพิวเตอร
หนวยขอมูล (DATA UNITS)
หนวยของขอมูลคอมพิวเตอรสามารถจัดเรียงเปนลําดับชั้นเล็กไปขนาดใหญไดดังนี้
         1.บิต (bit)
          เลขฐาน 2 หนึ่งหลักซึ่งมีคาเปน 0 หรือ 1

      2.ตัวอักษร (charecter)
       กลุมของบิตสามารถแทนคาตัวอักษรได ในชุดอักขระ ASCII 1 ไบต ( 8 บิต) แทน
ตัวอักษรตัว 1 ตัว เชน 01000001 แทนตัวอักษร A ในปจจุบันมีชุดอักขระที่ใชเลขฐานสอง
16 บิต แทนคาตัวอักษร คือ รหัส Unicode เชน 0000 0000 1110 0110 แทนอักษรตัว ?

         3.เขตขอมูล (Field)
          ซึ่งประกอบดวยกลุมตัวอักษรที่แทนขอเท็จจริง

      4.ระเบียน (Record)
       ระเบียน คือโครงสรางขอมูลที่แทนตัววัตถุชิ้นหนึ่ง เชน ระเบียนขอมูลนักศึกษาเลข
ทะเบียน 431999999

         5.แฟม (file)
          คารางที่เปนกลุมของระเบียนที่มีโครงสรางเดียวกัน เชน ตารางการสั่งซืสินคาของ
                                                                               ้
ลูกคา

     6.ฐานขอมูล (Database)
      กลุมของตาราง (และความสัมพันธ)

       การเรียงลําดับชั้นของหนวยขอมูลดังนี้
เขตขอมูลคีย (Key field) คือเขตขอมูลที่ใชสําหรับระบุระเบียนขอมูลอยางเฉพาะเจาะจง
ขอมูลที่อยูในเขตขอมูลนี้จะไมซ้ํากับระเบียนอื่น ๆ เชน แฟมขอมูลพนักงานอาจใชเลขที่
พนักงานเปนตัวระบุระเบีย
   การเรียนรูที่ 2 ชนิดขอมูลและประเภทของแฟมขอมูล
   ชนิดของขอมูล

   ขอมูลที่ตองการจัดเก็บนั้นอาจจะมีรูปแบบไดหลายอยาง รูปแบบสําคัญ ๆ ไดแก
         3.1 ขอมูลแบบรูปแบบ (formatted data) เปนขอมูลที่รวมอักขระซึ่งอาจหมายถึง
    ตัวอักษร ตัวเลข ซึ่งเปนรูปแบบที่แนนอน ในแตละระเบียน ทุกระเบียนที่อยูในแฟมขอมูล
    จะมีรูปแบบที่เหมือนกันหมด ขอมูลที่เก็บนั้นอาจเก็บในรูปของรหัสโดยเมื่ออานขอมูล
    ออกมาอาจจะตองนํารัหสนั้นมาตีความหมายอีกครั้ง เชน แฟมขอมูลประวัตินักศึกษา
         3.2 ขอมูลแบบขอความ (text)เปนขอมูลที่เปนอักขระในแบบขอความ ซึงอาจ
    หมายถึงตัวอักษร ตัวเลข สมการฯ แตไมรวมภาพตาง ๆ นํามารวมกันโดยไมมีรูปแบบที่
    แนนอนในแตละระเบียน เชน ระบบการจัดเก็บขอความตาง ๆ ลักษณะการจัดเก็บแบบนี้จะ
    ไมตองนําขอมูลที่เก็บมาตีความหมายอีก ความหมายจะถูกกําหนดแลวในขอความ
         3.3 ขอมูลแบบภาพลักษณ (images) เปนขอมูลที่เปนภาพ ซึ่งอาจเปนภาพกราฟที่
    ถูกสรางขึ้นจากขอมูลแบบรูปแบบรูปภาพ หรือภาพวาด คอมพิวเตอรสามารถเก็บภาพและ
    จัดสงภาพเหลานี้ไปยังคอมพิวเตอรอื่นได เหมือนกับการสงขอความ โดยคอมพิวเตอรจะ
    ทําการแปลงภาพเหลานี้ ซึ่งจะทําใหคอมพิวเตอรสามารถที่จะปรับขยายภาพและ
    เคลื่อนยายภาพเหลานั้นไดเหมือนกับขอมูลแบบขอความ
         3.4 ขอมูลแบบเสียง (audio) เปนขอมูลที่เปนเสียง ลักษณะของการจัดเก็บก็จะ
    เหมือนกับการจัดเก็บขอมูลแบบภาพ คือ คอมพิวเตอรจะทําการแปลงเสียงเหลานี้ให
    คอมพิวเตอรสามารถนําไปเก็บได ตัวอยางไดแก การตรวจคลื่นหัวใจ จะเก็บเสียงเตนของ
    หัวใจ
         3.5 ขอมูลแบบภาพและเสียง (video) เปนขอมูลที่เปนเสียงและรูปภาพ ที่ถูกจัดเก็บ
    ไวดวยกัน เปนการผสมผสานรูปภาพและเสียงเขาดวยกัน ลักษณะของการจัดเก็บขอมูล
    คอมพิวเตอรจะทําการแปลงเสียงและรูปภาพนี้ เชนเดียวกับขอมูลแบบเสียงและขอมูลแบบ
    ภาพลักษณะซึ่งจะนํามารวมเก็บไวในแฟมขอมูลเดียวกัน
ประเภทของแฟมขอมูล

ประเภทของแฟมขอมูลจําแนกตามลักษณะของการใชงานไดดังนี้
      6.1แฟมขอมูลหลัก (master file)แฟมขอมูลหลักเปนแฟมขอมูลที่บรรจุขอมูลพื้นฐานที่จําเปนสําหรับ
ระบบงาน และเปนขอมูลหลักที่เก็บไวใชประโยชนขอมูลเฉพาะเรื่องไมมีรายการเปลี่ยนแปลงในชวงปจจุบัน มี
สภาพคอนขางคงที่ไมเปลี่ยนแปลงหรือเคลื่อนไหวบอยแตจะถูกเปลี่ยนแปลงเมื่อมีการสิ้นสุดของขอมูล เปน
ขอมูลที่สําคัญที่เก็บไวใชประโยชน ตัวอยาง เชน แฟมขอมูลหลักของนักศึกษาจะแสดงรายละเอียดของ
นักศึกษา ซึ่งมี ชื่อนามสกุล ที่อยู ผลการศึกษา แฟมขอมูลหลักของลูกคาในแตละระเบียนของแฟมขอมูลนีจะ   ้
แสดงรายละเอียดของลูกคา เชน ชื่อสกุล ที่อยู หรือ ประเภทของลูกคา
      6.2 แฟมขอมูลรายการเปลี่ยนแปลง (transaction file)แฟมขอมูลรายการเปลี่ยนแปลงเปนแฟมขอมูลที่
ประกอบดวยระเบียนขอมูลที่มีการเคลื่อนไหว ซึ่งจะถูกรวบรวมเปนแฟมขอมูลรายการเปลี่ยนแปลงที่เกิดขึ้นใน
แตละงวดในสวนที่เกี่ยวของกับขอมูลนั้น แฟมขอมูลรายการเปลี่ยนแปลงนี้จะนําไปปรับรายการในแฟมขอมูล
หลัก ใหไดยอดปจจุบัน ตัวอยางเชน แฟมขอมูลลงทะเบียนเรียนของนักศึกษา
      6.3 แฟมขอมูลตาราง (table file)แฟมขอมูลตารางเปนแฟมขอมูลที่มีคาคงที่ ซึ่งประกอบดวยตารางที่
เปนขอมูลหรือชุดของขอมูลที่มีความเกี่ยวของกันและถูกจัดใหอยูรวมกันอยางมีระเบียบ โดยแฟมขอมูล
ตารางนี้จะถูกใชในการประมวลผลกับแฟมขอมูลอื่นเปนประจําอยูเสมอ เชน ตารางอัตราภาษี ตารางราคา
สินคา
ตัวอยางเชน ตารางราคาสินคาของบริษัทขายอะไหลเครื่องคอมพิวเตอรดังนี้
          รหัสสินคา      รายชื่อสินคา ราคา
               51            จอภาพ          4,500
               52            แปนพิมพ      1,200
               53            แรม 4 M        4,500
               54             แรม 8 M        7,000
               55            กระดาษตอเนื่อง 500
                56            แฟมคอมพิวเตอร 200
          ในแฟมขอมูลนี้จะประกอบดวยระเบียนแฟมขอมูลตารางของสินคาที่มีฟลดตาง ๆ
    ไดแก รหัสสินคา รายชื่อ สินคา และราคาสินคาตอหนวย แฟมขอมูลตารางรายการสินคา
    จะใชรวมกับแฟมขอมูลหลายแฟมขอมูลในระบบสินคา ไดแก แฟมขอมูลคลังสินคา
    (inventory master file) แฟมขอมูลใบสั่งซื้อของลูกคา (customer order master file)
    และแฟมขอมูลรายการสิตคาของฝายผลิต (production master file) มีขอควรสังเกตวา
    แฟมขอมูลตาราง แฟมขอมูลรายการเปลี่ยนแปลง และแฟมขอมูลหลัก ทั้ง 3 แฟม จะมี
    ฟลดที่เกี่ยวกับตัวสินคารวมกัน คือ ฟลดรหัสสินคา (product code) ฟลดรวมกันนี้จะเปน
    ตัวเชื่องโยงระหวางแฟมขอมูลตารางกับฟมขอมูลอื่น ๆ ทั้งหมดที่ตองการจะใชคาของฟดล
    รายชื่อสินคา (product description) และราคาสินคา (product price) จากแฟมขอมูล
    ตาราง การจัดแฟมขอมูลแบบนี้จะทําใหประหยัดเนื้อที่ในอุปกรณเก็บขอมูลของแฟมขอมูล
    หลัก กลาวคือในแฟมขอมูลหลักไมตองมี 2 ฟลด คือ ฟลดรายการสินคาและฟลดราคา
    สินคา มีแตเพียงฟลดรหัสสินคาก็เพียงพอแลว เมื่อใดที่ตองการใชฟลดรายการสินคาใน
    การแสดงผลก็อานคาออกมาจากแฟมขอมูลตารางได นอกจากนั้นยังเปนการลดความ
    ซ้ําซอนของขอมูลและเมื่อผูใชระบบตองการเปลี่ยนแปลงรายการสินคาหรือราคาสินคาก็จะ
    เปลี่ยนในแฟมขอมูลตารางทีเดียว โดยไมตองไปเปลี่ยนแปลงในแฟมขอมูลอื่น

    6.4 แฟมขอมูลเรียงลําดับ (sort file)แฟมขอมูลเรียงลําดับเปนการจัดเรียงระเบียนที่จะ
    บรรจุในแฟมขอมูลนั้นใหม โดยเรียงตามลําดับคาของฟลดขอมูลหรือคาของขอมูลคาใดคา
    หนึ่งในระเบียนนั้นก็ได เชน จัดเรียงลําดับตาม วันเดือนป ตามลําดับตัวอักขระเรียงลําดับ
    จากมากไปหานอยหรือจากนอยไปหามาก เปนตน
         แฟมขอมูลรายงาน (report file)เปนแฟมขอมูลที่ถูกจัดเรียงระเบียบตามรูปแบบของ
    รายงานที่ตองการแลวจัดเก็บไวในรูปของแฟมขอมูล ตัวอยาง เชน แฟมขอมูลรายงาน
    ควบคุมการปรับเปลี่ยนขอมูลที่เกิดขึ้นในขณะปฏิบัติงานแตละวัน
   การเรียนรูที่ 3 ลักษณะการประมวลผลขอมูล
   ขอมูลและการประมวลผลขอมูล
    ขอมูล คือขอเท็จจริงที่เราสนใจ สวน สารสนเทศ คือขอมูลที่ผานการประมวลผลดวยวิธีการที่เหมาะสมถูกตอง จน
    ไดรูปแบบผลลัพธ ตรงความตองการของผูใช
   ขอมูลที่จะนํามาประมวลผลใหเปนสารสนเทศ จะตองมีคุณสมบัติพื้นฐานดังตอไปนี้
   ความถูกตอง หากมีการเก็บรวบรวมขอมูลและขอมูลเหลานั้นเชื่อถือไมได จะทําใหเกิดผลเสียหายมาก ผูใชจะไมกลา
    อางอิงหรือนําเอาไปใชประโยชน ซึ่งเปนเหตุใหการตัดสินใจของผูบริหารขาดความแมนยํา และมีโอกาสผิดพลาดได
    โครงสรางขอมูลที่ออกแบบตองคํานึงถึงกรรมวิธีการดําเนินงานเพื่อใหไดความถูกตองแมนยํามากที่สุด โดยปกติ
    ความผิดพลาดของการประมวลผลสวนใหญ มาจากขอมูลที่ไมมีความถูกตองซึ่งมีสาเหตุมาจากคนหรือเครื่องจักร
    การออกแบบระบบจึงตองคํานึงถึงในเรื่องนี้
   ความรวดเร็วและเปนปจจุบัน การไดมาของขอมูลจําเปนตองใหทันตอความตองการของผูใช มีการตอบสนองตอผู
    ใชไดเร็ว ตีความหมายสารสนเทศไดทันตอเหตุการณหรือความตองการ มีการออกแบบระบบการเรียกคนและรายงาน
    ตามความตองการของผูใช
   ความสมบูรณ ความสมบูรณของสารสนเทศขึ้นกับการรวบรวมและวิธีการทางปฏิบัติ ในการดําเนินการจัดทํา
    สารสนเทศ ตองสํารวจและสอบถามความตองการของผูใช เพื่อใหไดขอมูลที่มีความสมบูรณเหมาะสม
   ความชัดเจนกระทัดรัด การจัดเก็บขอมูลตองใชพื้นที่ในการจัดเก็บขอมูลมาก จึงจําเปนตองออกแบบโครงสรางขอมูล
    ใหกระทัดรัด สื่อความหมายได มีการใชรหัสหรือยอขอมูลใหเหมาะสม เพื่อที่จะจัดเก็บเขาไวในระบบคอมพิวเตอร
   ความสอดคลอง ความตองการเปนเรื่องสําคัญ ดังนั้นจึงตองมีการสํารวจเพื่อหาความตองการของหนวยงานและ
    องคการ ดูสภาพการใชขอมูล ความลึกหรือความกวางของขอบเขตขอมูล ที่สอดคลองกับความตองการ
   ในการนําขอมูลไปใชประโยชน หรือการทําขอมูลใหเปนสารสนเทศ ที่จะนําไปใชประโยชนได จําเปนตองมีการ
    ประมวลผลขอมูลกอน การประมวลผลขอมูล เปนกระบวนการที่มีกระบวนการยอยหลายอยาง ประกอบกันคือ
   การรวบรวมขอมูล
   การแยกแยะ
   การตรวจสอบความถูกตอง
   การคํานวณ
   การจัดลําดับหรือการเรียงลําดับ
   การรายงานผล
   การสื่อสารขอมูลหรือการแจกจายขอมูลนั้น
   การประมวลผลขอมูล จึงเปนกิจกรรมที่มีความสําคัญ เพราะขอมูลที่มีอยู รอบๆ ตัวเรามีเปนจํานวนมากในการใชงาน
    จึงตองมีการประมวลผล เพื่อใหเกิดประโยชน กิจกรรมหลักของการใหไดมาซึ่งสารสนเทศ จึงประกอบดวยกิจกรรม
    การ เก็บรวบรวมขอมูล ซึ่งตองมีการตรวจสอบ ความถูกตองดวย กิจกรรมการประมวลผลซึ่งอาจจะเปนการแบงแยก
    ขอมูล การจัดเรียงขอมูล การคํานวณ และกิจกรรมการเก็บรักษาขอมูลซึ่งอาจตอง มีการทําสําเนา ทํารายงาน เพื่อ
    แจกจาย
   การเรียนรูที่ 4 แฟมโปรแกรมและแฟมขอมูล
                         แฟมโปรแกรมและแฟมขอมูล
         ถาจะแบงประเภทของแฟมในคอมพิวเตอรอีกนัยหนึ่ง อาจแบงเปนแฟมโปรแกรม และ
    แฟมขอมูล แฟมโปรแกรมประกอบดวยชุดคําสั่งตางๆ ที่ทํางานอยางใดอยางหนึ่งเชน โปรแกรม
    ประมวลคํา (word processor) ใชสําหรับพิมพเอกสารและจัดรูปแบบขอความ และโปรแกรมบีบอัด
    ขอมูล (compression utility) ใชสําหรับบีบอัดขอมูลที่มีขนาดเล็กลง เปนตน
          แฟมที่จัดเก็บหรือบันทึกโดยโปรแกรมเหลานี้ จัดเปนประเภทแฟมขอมูล ซึ่งตามปกติจะมีสวน
    ขยาย (file extension) เปนตัวบอกประเภทเชน เอกสารที่สรางดวยโปรแกรมประมวลคํา Microsoft
    Word จะมีสวนขยายหลักเปน .doc สวนแฟมขอมูลที่สรางดวยโปรแกรมบีบอัดขอมูล Winzip จะมีสวน
    ขยายเปน .zip เปนตน ที่กลาววาสวนขยายหลักหมายความวา โปรแกรมหนึ่งอาจสรางแฟมขอมูลที่มี
    สวนขยายไดหลายหยาง ตัวอยางโปรแกรมลักษณะนี้ไดแก Microsoft Word2000 ซึ่งสามารถสราง
    แฟมขอมูลที่มีสวนขยายเปน .doc .htm .html .rtf .txt .mcw และ .wps แต จะเปนสวนขยายหลัก
    เปน .doc
          แฟมขอมูลบางประเภทสรางและเปดดวยโปรแกรมใดโปรแกรมหนึ่งโดยเฉพาะ เชนแฟมที่สราง
    ดวยโปรแกรมแตงภาพ Adobe Photoshop ซึ่งมีสวนขยายเปน .psd ในขณะที่แฟมขอมูลบางประเภท
    เปนประเภทที่มีรูปแบบมาตรฐานที่สามารถสรางและเปดไดโดยโปรแกรมตางๆ เชน ประเภทแฟม
    Bitmap ( BMP) Graphics Interchange Format (GIF) และ Joint Photographic Experts Group
    (JPEG) สามารถสรางและเปดแกไขไดโดย Windows PaintBrush , Adobe Photoshop หรือ
    Microsoft Photo Editor ก็ได แฟมที่มีรูปแบบมาตรฐานเหลานี้มีประโยชนมากในการแลกเปลี่ยน
    ขอมูลระหวางโปรแกรมตางๆ
         แฟมโปรคแกรมที่ประกอบดวยชุดคําสั่งที่ทํางานได ไดแกประเภท .exe , .com , .bat , .dll

หนวยการเรียนรูที่ 2 โครงสรางขอมูล

การเรียนรูที่ 5 ชนิดของโครงสรางขอมูล

ประเภทของโครงสรางขอมูล
    แบงออกเปน 2 ประเภท คือ
โครงสรางขอมูลทางกายภาพ (Physical
Data Structure)
เปนโครงสรางขอมูลที่ใชโดยทั่วไปในภาษาคอมพิวเตอร
แบงออกเปน 2 ประเภท
1.ขอมูลเบื้องตน (Primitive Data Types)
 - จํานวนเต็ม (Integer)
 - จํานวนทศนิยม (Floating point)
 - ขอมูลบูลีน (Boolean)
 - จํานวนจริง (Real)
 - ขอมูลอักขระ (Character)


2.ขอมูลโครงสราง (Structure Data Types)
 - แถวลําดับ (Array)
 - ระเบียนขอมูล (Record)
 - แฟมขอมูล (File)
- โครงสรางขอมูลทางตรรกะ (Logical Data Structure)
เปนโครงสรางขอมูลที่เกิดจากการจินตนาการของผูใช เพื่อใชในการแกปญหา
ในโปรแกรมที่สรางขึ้น แบงเปน 2 ประเภท
1. โครงสรางขอมูลแบบเชิงเสน (Linear Data Structure)
     ความสัมพันธของขอมูลจะเรียงตอเนื่องกัน
   - ลิสต (List)
   - สแตก (Stack)
   - คิว (Queue)
   - สตริง (String)
2. โครงสรางขอมูลแบบไมเชิงเสน (Non-Linear Data Structure)
         ขอมูลแตละตัวสามารถมีความสัมพันธกับขอมูลอื่นไดหลายตัว
   - ทรี (Tree) - กราฟ (Graph)
3. การดําเนินการกับโครงสรางขอมูล(Data Structure Operation)
  วิธีดําเนินการกับขอมูลที่นิยมใชกันมากมี 4 แบบ คือ
 1. การเขาถึงเรคคอรด (Traversing)
 2. การคนหา (Searching)
 3. การเพิ่ม (Inserting)
 4. การลบ (Deleting)
 ยังมีการจัดการกับขอมูลอีก 2 อยาง คือ
 1. การเรียงขอมูล (Sorting)
 2. การรวมขอมูล (Merging)
 4. การแทนที่ขอมูลในหนวยความจํา
มีอยู 2 วิธี คือ
การแทนที่ขอมูลแบบสแตติก (Static Memory Representation)
        เปน การแทนที่ขอมูลที่มีการจองเนื้อที่แบบคงที่แนนอน ตองมี
การกําหนดขนาดกอนการใชงาน แตมีขอเสีย คือ ไมสามารถปรับ
ขนาดใหเพิ่มขึ้นหรือลดลงได โครงสรางขอมูลที่มีการแทนที่
หนวยความจําหลักแบบสแตติก คือแถวลําดับ (Array)
การแทนทีขอมูลแบบไดนามิก (Dynamic Memory
Representation)
       เปน การแทนที่ขอมูลที่ไมตองจองเนื้อที่ ขนาดของเนื้อที่
ยืดหยุนได ตามความตองการของผูใช โครงสรางขอมูลที่มีการ
แทนที่หนวยความจําหลักแบบไดนามิก คือ ตัวชี้หรือพอยเตอร
(Pointer)
5. ลักษณะของโปรแกรมแบบที่มีโครงสรางที่ดี
5.1 โครงสรางโปรแกรมแบบคําสั่งตามลําดับ
        เปน โครงสรางพื้นฐานที่ประกอบดวยคําสั่งทั่วๆไป เปน
โครงสรางที่มีลักษณะการทํางานแบบเรียงลําดับ คือ จะทํางานตั้งแต
ตนจนจบโดยไมมีการขามขั้นตอนใดๆ
5.2 โครงสรางโปรแกรมแบบมีการตัดสินใจ (Decision)
       มี การตรวจสอบเงื่อนไข เพื่อตัดสินใจวาจะทําการ
ประมวลผลสวนใด โดยผลลัพธของเงื่อนไขจะมีคาของความ
เปนไปไดอยู 2 ลักษณะ คือ จริงและเท็จ เทานั้น
5.3 โครงสรางโปรแกรมแบบเปนวงจรปด (Loop)
       มีลักษณะการทํางานซ้ําๆกัน อยูในสวนใดสวนหนึ่งของ
โปรแกรม
6. อัลกอริทึม (Algorithm)
      อัลกอรึทึม คือ วิธีการแกปญหาตางๆ อยางมีระบบ มีลําดับ
ขั้นตอนตั้งแตตนจนไดผลลัพธ สามารถเขียนไดหลายแบบ การ
เลือกใชตองเลือกใชขั้นตอนวิธีที่เหมาะสม กระชับ และรัดกุม
อัลกอริทึมที่นิยมใชกันมาก ไดแก
1. อัลกอริทึมแบบแตกยอย (Divide and conquer)
2. อัลกอริทึมแบบเคลื่อนที่ (Dynamic Programming)
3. อัลกอริทึมแบบทางเลือก (Greedy Algorithm)
การเขียนผังงาน (Flowchart)
       Flow Chart เปนการอธิบายขั้นตอนการประมวลผลโดยใชสัญลักษณใน
การแสดงความหมายหรือกําหนด ลําดับการทํางาน การใชกรอบรูปสัญลักษณที่
สื่อความหมาย อธิบายขั้นตอนการทํางานของโปรแกรม
การเขียนรหัสเทียม (Pseudo Code)
      Pseudo Code การอธิบายขั้นตอนการประมวลผลโดยใชวลีภาษาอังกฤษ
ในการแสดงอธิบาย ใชคําสั้นๆ กะทัดรัด อธิบายขั้นตอนการทํางานของ
โปรแกรม
พัฒนาการของภาษาโปรแกรม
- ภาษาเครื่อง (Machine Language)
- ภาษาแอสเซมบลี (Assembly Language)
- ภาษาระดับสูง (High Level Language)
- ภาษายุคที่ 4 (Fourth Generation Language หรือ 4GL)
การบํารุงรักษาโปรแกรม (Program Maintenance)
      หมาย ถึง การแกไขขอผิดพลาดที่พบระหวางการทดสอบหรือระหวางการ
ใชงาน ซึ่งอาจเปนการเปลี่ยนขอมูลที่ตองการใชใหมการปรับปรุงขอมูล ใหทัน
เหตุการณอยูเสมอ การปรับเปลี่ยนโครงสรางบนหนาจอ เปนตน
การเรียนรูที่ 6 ลักษณะของขอมูล
ลักษณะของขอมูลที่ดี
 ลักษณะของขอมูลที่ดี
ขอมูลที่ดีควรเปนขอมูลที่มีคุณลักษณะดังตอไปนี้
• ขอมูลที่มีความถูกตองและเชื่อถือได (accuracy) ขอมูลจะมีความถูกตองและ
เชื่อถืไดมากนอยเพียงใดนั้น ขึ้นกับวิธีการที่ใชในการควบคุมขอมูลนําเขา และ
การควบคุมการประมวลผลการควบคุมขอมูลนําเขาเปนการกระทําเพื่อใหเกิด
ความมั่นใจวาขอมูลนําเขามีความถูกตองเชื่อถือได เพราะถาขอมูลนําเขาไมมี
ความถูกตองแลวถึงแมจะใชวิธีการวิเคราะหและประมวลผลขอมูลที่ดีเพียงใด
ผลลัพธที่ไดก็จะไมมีความถูกตอง หรือนําไปใชไมได ขอมูลนําเขาจะตองเปน
ขอมูลที่ผานการตรวจสอบวาถูกตองแลว ขอมูลบางอยางอาจตองแปลงใหอยูใน
รูปแบบที่เครื่องคอมพิวเตอรสามารถเขาใจไดอยางถูกตอง ซึ่งอาจตองพิมพ
ขอมูลมาตรวจเช็คดวยมือกอน การประมวลผลถึงแมวาจะมีการตรวจสอบขอมูล
นําเขาแลวก็ตาม ก็อาจทําใหไดขอมูลที่ผิดพลาดได เชน เกิดจากการเขียน
โปรแกรมหรือใชสูตรคํานวณผิดพลาดได ดังนั้นจึงควรกําหนดวิธีการควบคุมการ
ประมวลผลซึ่งไดแก การตรวจเช็คยอดรวมที่ไดจากการประมวลผลแตละครั้ง
หรือการตรวจสอบผลลัพธที่ไดจากการประมวลผลดวยเครื่องคอมพิวเตอรกับ
ขอมูลสมมติที่มีการคํานวณดวยวามีความถูกตองตรงกันหรือไม
• ขอมูลตรงตามความตองการของผูใช (relevancy) ไดแก
การเก็บเฉพาะขอมูลที่ผูใชตองการเทานั้น ไมควร เก็บขอมูล
อื่น ๆ ที่ไมจําเปนหรือไมเกี่ยวของกับการใชงาน เพราะจะทํา
ใหเสียเวลาและเสียเนื้อที่ในหนวยเก็บขอมูล แตทั้งนี้ขอมูลที่
เก็บจะตองมีความครบถวนสมบูรณดวย

• ขอมูลมีความทันสมัย (timeliness) ขอมูลที่ดีนั้นนอกจาก
จะเปนขอมูลที่มีความถูกตองเชื่อถือไดแลวจะ ตองเปนขอมูล
ที่ทันสมัย ทั้งนี้เพื่อใหผูใชสามารถนําเอาผลลัพธที่ไดไปใชได
ทันเวลา นั่นคือจะตองเก็บขอมูลไดรวดเร็วเพื่อทันความ
ตองการของผูใช
การเรียนรูที่ 7 การเรียงลําดับขอมูล
การเรียงลําดับขอมูล
การเรียงลําดับขอมูลเปนเรื่องสําคัญมากเรื่องหนึ่งเนื่องจากทํา
ใหผูตองการใชขอมุลเชน ผูบริหาร,ผูปฏิบัติงาน (พนักงาน)
สามารถทําความเขาใจกับขอมูลหรือทําการคนหาขอมูลได
งายและเร็วยิ่งขึ้นตามที่ตองการ
ประเภทของการจัดการจัดเรียงขอมูลในระบบคอมพิวเตอร
แบงเปน 2 ประเภทคือ

 1. Internal Sorting คือ การเรียงลําดับขอมูลโดยเก็บไวใน
หนวยความจําหลัก และขอมูลของสมาชิกจะถูกเก็บ อยูใน
โครงสรางอะเรย
 2. External Sorting คือ การเรียงลําดับขอมูลโดยเก็บไวใน
หนวยความจําสํารอง ขอมูลสวนใหญมีจํานวนมาก จึงไม
สามารถเก็บไวในหนวยความจําหลักไดทั้งหมด
ในหัวขอการเรียงลําดับ นี้จะอธิบายวิธีการเรียงลําดับขอมูลในแตละวิธีโดยสรุปอยาง
ยอ ๆ เพื่อใชเปนแนวทางในการศึกษาใน ระดับชั้นสูงขึ้นไป คงจะไมไดกลาวถึง
วิธีการขั้นตอนในการจัดเรียงอยางละเอียดแตจะพยายามชี้ใหเห็นถึงจุดเดนตาง ๆ
ของการจัด เรียงลําดับในแตละวิธี
วิธีหรือชนิดของการเรียงลําดับ มีวิธีตาง ๆ ที่มักจะไดพบโดยทั่วไปดังนี้
 1. SELECTION SORT
 2. INSERTION SORT / LINEAR INSERTION SORT
 3. BUBBLE SORT
  4. SHELL SORT
5. BUCKET SORT /RADIX SORT
6. QUICK SORT
7. HEAP SORT / TREE SORT
1. การเรียงลําดับแบบเลือก (Selection Sort)
เปนวิธีที่งายที่สุดในการเรียงลําดับขอมูล โดยเริ่มจาก
- หาตําแหนงของขอมูลที่มีคานอยที่สุดแลวสลับคาของตําแหนงขอมูลนั้นกับคา
ขอมูลในตําแหนง A(1) จะได A(1) มีคานอยที่สุด
- หาตําแหนงของขอมูลที่มีคานอยที่สุดในกลุม A(2), A(3),....,A(n) แลวทํากับสลับ
คาขอมูลในตําแหนง A(2) อยางนี้เรื่อยไปจน กระทั่งไมเกิน N-1 รอบ ก็จะไดขอมูลที่
เรียงลําดับจากนอยไปมาก
2. การเรียงลําดับแบบแทรก (Insertion Sort)
หลักการ คือ

1. อานขอมุลที่ตองการเรียงลําดับเขามาทีละตัวโดยเริ่มจากตัวแรกกอน และหาตําแหนงของขอมูล
ที่ควรจะอยู
2. หาที่วางสําหรับขอ
3. Insert หรือแทรกขอมูล ณ ตําแหนงในขอ
3. การเรียงลําดับแบบบับเบิล (Bubble Sort)
วิธัการเรียงลําดับแบบบับเบิลจะทําการเปรียบเทียบขอมูลที่อยูในตําแหนงที่ติดกัน ถาขอมูลไมอยู
ใลําดับที่ถูกตอง ก็จะทําการสลับตําแหนงของขอมูลที่เปรียบเทียบโดยที่การเปรียบเทียบจะเริ่มที่
ตําแหนงที่ 1 กับตําแหนงที่ 2 กอน ตอไปนี้เทียบกับ ตําแหนงที่ 2 และตําแหนงที่ 3 จนถึงตําแหนง
ที่จัดเรียงแลว จากนั้นจะกลับไปเริ่มตนการเปรียบเทียบอีกจนกระทั่งจัดเรียง เรียบรอยหมดทุก
ตําแหนง
ในวิธีแบบ Bubble Sort คาในการเปรียบเทียบที่นอยที่สุดหรือมากที่สุด จะลอยขึ้นขางบน
เหมือนกับฟองอากาศ
4. การรียงลําดับแบบเชลล(shell sort)
เปนรูปแบบของการ sort ขอมูลโดยการนําเอาขอดีของการคนหาขอมูลแบบ แทรกและแบบเลือก
และหลีกเลี่ยง การเกิดปญหาของทั้งแบบแทรกและแบบเลือก ซึ่งการเปรียบเทียบขอมูลในการ
เรียงลําดับแบบแทรก โดยการเปรียบเทียบ ขอมูลที่อยูไกลออกไป ซึ่งจะทําใหเราสามารถเรียงดับ
ขอมูลในตําแหนงที่อยูไกลออกไปหลังจากนั้นก็จะเรียงลําดับขอมูล ที่อยูใกลกันเขามา(กวาในครั้ง
แรก) และความหางของขอมูลที่เปรียบเทียบก็จะนอยลงจนเหลือ 1
วิธีนี้คิดคนเมื่อป ค.ศ.1959 โดย ดี.แอล.เชลล(D.L.SHELL) เรียกวา การเรียงลําดับแบบเชลล(shell
sort)
5. การเรียงลําดับโดยการใชฐานเลข(radix sort)
การเรียงลําดับแบบนี้การเรียงลําดับ จะอยูบนพื้นฐานของการแทนตําแหนงของตัวเลขที่
ตองการนํามาเรียงลําดับ จะเริ่มจากตัวที่มีเลขนัยสําคัญสูงที่สุด ดําเนินจนกระทั่งถึงตัว
เลขที่มีเลขนัยสําคัญต่ําสุด การเรียงลําดับในวิธีนี้การเรียงลําดับ จะเรียงจากตัวเลขที่มี
นัยสําคัญนอยที่สุดกอน เมื่อตัวเลขทั้งหมดถูกนํามาเรียงลําดับตามเลขนัยสําคัญที่สูงขึ้น
ตัวเลขที่เหมือนกัน ในตําแหนงนน จะตางกันในตําแหนงของเลขนัยสําคัญที่นอยกวา การ
ประมวลผลแบบนี้จะประมวลผลกับขอมูลทั้งหมดได โดยที่ไมตองมีการแบงขอมูลแบบกลุม
ยอย
6. การเรียงลําดับอยางเร็ว(quick sort)
ถูกสรางและตั้งชื่อโดย ซี.เอ.อาร.ฮารเวร (C.A.R HOARE) การเรียงลําดับอยางเร็ว จะแบง
ขอมูลเปนสองกลุม โดยใน การจัดเรียงจะเลือกขอมุลตัวใดตัวหนึ่งออกมา ซึ่งจะเปนตัวที่
แบงขอมูลออกเปนสองกลุม โดยกลุมแรกจะตองมีขอมูลนอยกวา ตัวแบง และกลุมที่มี
ขอมูลนอยกวาตัวแบง และอีกกลุมจะมีขอมูลที่มากกวาตัวแบง ซึ่งเราเรียกตัวแบงวา ตัว
หลัก(pivot) ในการเลือกตัวหลักจะมีอิสระในการเลือกขอมูลตัวใดก็ไดที่เราตองการ การ
เรียงลําดับแบบเร็วเหมาะกับขอมูลที่มีการเรียกซ้ํา
7.การเรียงลําดับฮีพ(heapsort)
เปนการเรียงลําดับที่อยูบนพื้นฐานบนพื้นฐานของโครงสรางแบบไบนารี จะดําเนินการ 2
ขั้นตอน คือ
玨 1. การจัดขอมูลในอะเรยใหสอดคลองกับความตองการของฮีพ
玨 2. การขจัดหนือการเคลื่อนยายขอมูลในตําแหนงสูงสุดหรือตําแหนงยอดของของฮีพอ
อกไปและสนับสนุนขอมูลขอมูล ตัวอื่นไปแทนตําแหนงนั้น
การเรียนรูที่ 8 การคนหาขอมูล
การคนหาขอมูล (searching)
 การคนหาคําตอบ หรือการคนหาขอมูลในทางคอมพิวเตอรมักจะกระทําบนโครงสรางขอมูลแบบตนไม
และกราฟ ทั้งนี้เพราะโครงสรางขอมูลในลักษณะนี้สามารถทําใหการคนหาทําไดสะดวกและสามารถพลิก
แพลงการคนหาไดงาย ในความเปนจริงแลว การคนหาขอมูลบางครั้งสามารถกระทําบนโครงสรางขอมูล
ชนิดอื่นก็ไดเชน อาเรย แสตก และคิว แตการจัดขอมูลในโครงสรางเชนนี้ มีขอจํากัดในการคนหาขอมูล
มาก การคนหาทําไดแบบเรียงลําดับ(Sequencial Search) เทานั้น ซึ่งใชไดกับขอมูลที่มีขนาดเล็ก ดังนั้น
ในการคนหาขอมูลที่มีขนาดใหญ กอนการคนหา หรือระหวางการคนหา ขอมูลที่จะถูกคนจะตองถูกจัดให
อยูในรูปแบบของตนไม หรือกราฟเทานั้น การคนหาขอมูลบนโครงสรางตนไมและกราฟสามารถจํ าแนก
ได 2 แบบคือ การคนหาแบบไบลด(Blind Search) และการคนหาแบบฮิวริสติก(Heuristic Search)

การคนหาแบบไบลด(Blind Search)

    การคนหาแบบไบลด(Blind search) เปนการคนหาแบบที่เดินทางจากโหนดหนึ่งไปยังอีกโหนดหนึ่ง
โดยอาศัยทิศทางเปนตัวกําหนดการคนหา ไมตองมีขอมูลอะไรมาชวยเสริมการตัดสินใจวาจะเดินทาง
ตอไปอยางไร หรือกลาวอยางงาย ๆ คือการจะหยิบขอมูลใดมาชวยในการคนหาตอไป ไมตองอาศัย
ขอมูลใด ๆ ทั้งสิ้น นอกจากทิศทางซึ่งเปนรูปแบบตายตัว การคนหาแบบไบลดสามารถแบงยอยไดดังนี้
คือ การคนหาทั้หมด และการคนหาบางสวน
    - การคนหาทั้งหมด(exhaustive search) คือ การคนหาทั้งหมดของปริภูมิสถานะ
    - การคนหาบางสวน (partial search) การคนหาเพียงบางสวนของปริภูมิสถานะ ซึ่งในความเปน
จริงการคนหาสวนมากใชการคนหาเฉพาะบางสวนเทานั้นเนื่องจากปริภูมิสถานะมักมีขนาดใหญ เทาใหไม
สามารถคนหาไดทั้งหมด ดังนั้นจึงมีความเปนไปไดวาคําตอบที่ไดอาจไมใชคําตอบที่ดีที่สุด การคนหา
แบบนี้สามารถแบงไดเปน 2 ประเภทคือ การคนหาแบบลึกกอน(Depth first search) และการคนหาแบบ
กวางกอน (Breadth first search)
การคนหาแบบลึกกอน(Depth first search)
       การคนหาแบบลึกกอนเปนการคนหาที่กําหนดทิศทางจากรูปของ
โครงสรางตนไม ที่เริ่มตนจากโหนดราก(Root node) ที่อยูบนสุด แลว
เดินลงมาใหลึกที่สุด เมื่อถึงโหนดลางสุด(Terminal node) ใหยอน
ขึ้นมาที่จุดสูงสุดของกิ่งเดี่ยวกันที่มีกิ่งแยกและยังไมไดเดินผาน แลวเริ่ม
เดินลงจนถึงโหนดลึกสุดอีก ทําเชนนี้สลับไปเรื่อยจนพบโหนดที่ตองการ
หาหรือสํารวจครบทุกโหนดแลวตามรูปที่ 1 การคนหาแบบลึกกอนจะมี
ลําดับการเดินตามโหนดดังตัวเลขที่กํากับไวในแตละโหนด
ดังที่ไดกลาวมาแลววา โครงสรางขอมูลที่ใชสําหรับการคนหานี้สามารถใช
กับโครงสรางกราฟไดดวย โดยอาศัยหลักการเดียวกัน แตสําหรับการเดินทางบน
กราฟนั้นจะไมมีโหนดลึกสุดดังนั้นการเดินทางบนกราฟจะตองปรับวิธีการเปนดังนี้
โดยเริ่มจาก
โหนดเริ่มตน จากนั้นใหนําโหนดที่อยูติดกับโหนดทีกําลังสํารวจอยู(ที่ยังไมไดทํา
                                                   ่
การสํารวจและยังไมไดอยูในแสต็กมาใสแสต็ก) มาเก็บไวในสแต็กเมื่อสํารวจ
โหนดนั้นเสร็จ ใหพอพ(pop) ตัวบนสุดของโหนดออกมาทําการสํารวจ แลวนํา
โหนดขางเคียงทั้งหมดที่ยังไมไดสํารวจมาตอทายแสต็ก แลวพอพตัวบนสุด
ออกมาสํารวจ ทําเชนนี้เรื่อย ๆ จนกระทั้งพบโหนดที่ตองการ หรือสํารวจครบทุด
โหนด

รูปที่ 2 โครงสรางขอมูลแบบกราฟ
การสํารวจจะเริ่มตนที่ A และนําโหนดขางเคียง B และ C มาเก็บไวในแสต็ก เมื่อสํารวจ A
เสร็จพอพขอมูลจากแสต็กออกมาได C ทําการสํารวจ C และนําโหนดขางเคียงกับ C ที่ยัง
ไมไดทําการสํารวจและยังไมไดอยูในแสต็กมาใสแสต็ก Dและ F
พุช(Push) ใสแสต็ก ดังนั้นในแสต็กตอนนี้มี B D F อยู เมื่อสํารวจ C เสร็จ พอพ F ออกมาทํา
การสํารวจ แลวนําโหนดขางเคียงที่ยังไมไดสํารวจและยังไมไดอยูในแสต็กมาใสแสต็ก ซึ่งก็
คือ G ดังนั้นขอมูลในแสต็กจะเปน B D G ทํ าเชนนี้ไปเรื่อย ๆ จนจบการทํางานก็จะไดลําดับ
การสํ ารวจคือ (A C F G H E D B) ตามตาราง 1 ดังตอไปนี้

ตารางที่ 1 ลําดับการคนหาแบบลึกกอน




ในการคนหาขอมูลแบบนี้บนโครงสรางของกราฟ มีขอที่นาสังเกตุคือ โหนดที่เริ่มตนการ
สํารวจจะตองมีการกําหนดมาใหวาโหนดใดเปนโหนดเริ่มตน และขอสังเกตุอีกประการหนึ่งคือ
วิธีการคนหาแบบลึกกอนที่ใชสําหรับโครงสรางขอมูลแบบกราฟ สามารถใชกับโครงสราง
ขอมูลแบบตนไมไดดวย
การคนหาแบบกวา่ งกอน (Breadthการคนหาแบบลึกกอน
   ตารางที 1 ลําดับ first search)
   การคนหาแบบกวางกอนเปนการกําหนดทิศทางการคนหาแบบที่ละระดับของโครงสรางตนไมโดยเริ่มจากโหนดราก(ระดับที่ 0) แลวลงมาระดับที่ 1 จากซายไปขวา เมื่อเสร็จระดับที่ 1 ไประดับที่

        ในการคนหาขอมูลแบบนี้บนโครงสรางของกราฟ มีขอที่นาสังเกตุคือ โหนดที่เริ่มตนการสํารวจจะตอง
    มีการกําหนดมาใหวาโหนดใดเปนโหนดเริ่มตน และขอสังเกตุอีกประการหนึ่งคือวิธีการคนหาแบบลึก
    กอนที่ใชสําหรับโครงสรางขอมูลแบบกราฟ สามารถใชกับโครงสรางขอมูลแบบตนไมไดดวย


    การคนหาแบบกวางกอน (Breadth first search)
               การคนหาแบบกวางกอนเปนการกําหนดทิศทางการคนหาแบบที่ละระดับของโครงสรางตนไมโดย
รูปทีเริลําดับการคนหาแบบกวางกอนบนโครงสรา0)นไม วลงมาระดับที่ 1 จากซายไปขวา เมื่อเสร็จระดับที่ 1 ไประดับที่ 2จาก
     ่ 3 ่มจากโหนดราก(ระดับที่ งต แล
    ซายไปขวาเชนกัน ทําเชนนี้เรื่อย ๆ จนพบโหนดที่ตองการตามรูปที่ 3 ลําดับการเดินทางของโหนดเปนไป
    ตามหมายเลขทีกํากับไวบนโหนด
                             ่

    รูปที่ 3 ลําดับการคนหาแบบกวางกอนบนโครงสรางตนไม
สําหรับการคนหาแบบกวางกอนบนโครงสรางตนไม จะอาศัยโครงสราง
ขอมูลแบบคิว(Queue)มาชวย และดวยวิธีการเชนเดียวกับการคนหาแบบลึกกอน
คือ ใหเริ่มตนสํารวจที่โหนดเริ่มตน แลวนําโหนดขางเคียงเก็บไวในคิว เมื่อ
สํารวจโหนดเริ่มตนเสร็จ ใหนําขอมูลในคิวออกมาสํารวจ แลวนําโหนดขางเคียง
ที่ยังไมไดสํารวจและไมไดอยูในคิวใสคิวไว ทําเชนนี้ไปเรื่อย ๆ จนพบโหนดที่
ตองการ หรือเมื่อสํารวจครบทุกโหนด

รูปที่ 4 โครงสรางขอมูลแบบกราฟ
การสํารวจเริ่มตนที่ A นําโหนดขางเคียง B C ไวในคิว เมื่อ
สํารวจ A เสร็จ นําขอมูลในคิว คือ Bออกมาสํารวจ แลวนําขอมูลขางเคียง
คือ D E ใสคิว ตอนนี้คิวจะมี B D E อยู แลวนํา B ออกมาสํารวจทําเชนนี้
เรื่อย ๆ จะไดลําดับการสํารวจขอมูลคือ (A B C D E F G H)
ตามตารางที่ 2




ตาราง 2 ลําดับการคนหาแบบกวางกอน
เชนเดียวกับการคนหาแบบลึกกอน การคนหาแบบกวางกอนโดยใชโครงสรางขอมูล
คิวมาชวยตองมีการกําหนดโหนดเริ่มตน และวิธีการนี้สามารถใชไดกับขอมูลบน
โครงสรางแบบตนไมดวย

ตารางเปรียบเทียบ การคนหาแนวลึกกอนและแนวกวางกอน

การคนหาแนวลึกกอน
การคนหาแนวกวางกอน
1.ใชหนวยความจํานอยกวา เพราะวาสถานะในเสนทางคนหาปจจุบันเทานั้นที่ถูกเก็บ
(ในขณะใดๆ จะเก็บเสนทางเดียว พอจะไปเสนทางอื่นเสนทางที่ผานมาก็ไมจําเปนตอง
เก็บ)
1.ใชหนวยความจํามากเพราะตองเก็บสถานะไวทุกตัวเพื่อหาเสนทางจากสถานะเริ่มตน
ไปหาคําตอบ
2. อาจจะติดเสนทางที่ลึกมากโดยไมพบคําตอบ เชนในกรณีที่เสนทางนั้นไมมีคําตอบ
และเปนเสนทางที่ยาวไมสิ้นสุด จะทําไมสามารถไปเสนทางอื่นได
2. จําไมติดเสนทางที่ลึกมาก ๆ โดยไมพบคําตอบ
3. ถาคําตอบอยูในระดับ n+1สถานะอื่นทุกตัวที่ระดับ 1ถึงระดับ n ไมจําเปนตองถูก
กระจายจนหมด
3. ถาคําตอบอยูในระดับn+1 สถานะทุกตัวที่ระดับ 1ถึงระดับ n จะตองถูกกระจายจน
หมด ทําใหมีสถานะที่ไมจําเปนในเสนทางที่จะไปสูคําตอบถูกกระจายออกดวย
4. เมื่อพบคําตอบไมสามารถรับประกันไดวาเสนที่ไดเปนเสนทางที่สั้นที่สุดหรือไม
4. ถามีคําตอบจะรับประกันไดวาจะพบคําตอบแน ๆ และจะไดเสนทางสั้นที่สุดดวย
การคนหาแบบฮิวริสติก(Heuristic Search)

         การคนหาคําตอบอาศัยวิธีการทางฮิวริสติก (heuristic search) มีความ
ความแตกตางจากการคนหาขอมูลแบบธรรมดาและแบบฮิวริสติกนั้นอยูที่การคนหา
ขอมูลธรรมดา ผูททําการคนขอมูลจะตองตรวจสอบขอมูลทีละตัวทุกตัวจนครบ แต
                   ี่
ฮิวริสติกจะไมลงไปดู ขอมูลทุกตัว วิธีการนี้จะเลือกไดคําตอบที่เหมาะสมใหกับการ
คนหา ซึ่งมีขอดีคือ สามารถทําการ คนหาคําตอบจาก ขอมูลที่มีขนาดใหญมาก ๆ
ได แตมีขอเสียคือคําตอบที่ไดเปนเพียงคําตอบที่ดี เทานั้นไมแนวาจะดีที่สุด แต
เนื่องจากวาปญหาในบางลักษณะนั้นใหญมาก และเปนไปไมไดที่จะทํา การคนหา
ดวยวิธี ธรรมดากระบวนการของฮิวริสติกจึงเปนสิ่งที่จําเปนในเรื่องของฮิวริสติกนั้น
นอกจากจะมีการคนหาแบบฮิวริสติกแลว ยังมีอีกสิ่งหนึ่งที่สําคัญคือ ฮิวริสติก
ฟงกชัน (heuristic function) ซึ่งหมายถึงฟงกชันที่ทําหนาที่ในการวัดขนาดของ
ความเปน ไปไดในการแกปญหาซึ่งจะแสดงดวยตัวเลข วิธีการดังกลาวจะกระทํ
าไดโดยการพิจารณาถึงวิธีการ (aspects) ตาง ๆ ที่ใชในการแกปญหา ณ สถานะ
หนึ่งวาจะสามารถแกปญหาไดตามที่ตองการหรือไม โดยกําหนดเปนนํ้าหนักที่
ใหกับการแกปญหาของแตละวิธี นํ้าหนักเหลานี้จะถูกแสดงดวยตัวเลขที่กํากับไว
กับโหนดตาง ๆ ในกระบวนการ คนหา และคาเหลานี้จะเปนตัวที่ใชในการประมาณ
ความเปนไปไดวาเสนทางที่ผานโหนดนั้นจะมีความเปนไปไดในการนําไปสูหนทาง      
การแกปญหาไดมากนอยแคไหน
จุดประสงคที่แทจริงของฮิวริสติก ฟงกชันก็คือ การกํากับทิศทางของ
กระบวนการคนหา เพื่อใหอยูในทิศทางที่ไดประโยชนสูงสุด โดยการ
บอกวาเราควรเลือกเดินเสนทางไหนกอน ในกรณีที่มีเสน ทางมากกวา
หนึ่งเสนทางตองเลือกกระบวนการคนหาแบบฮิวริสติก โดยปกติแลว
จะตองอาศัยฮิวริสติกฟงกชัน ทําใหการแกปญหาหนึ่ง ๆ จะดีหรือไม ก็
ขึ้นอยูกับฮิวริสติกฟงกชันดังนั้นการคนหาแบบนี้จึงไมมีอะไรเปน
       
หลักประกันวาจะไดสิ่งที่ไมดีออกมาดวยเหตุนี้เอง เราจึงเรียกการ คนหา
แบบฮิวริสติกนี้วา Weak Methods หรือจะกลาวอีกนัยหนึ่งคือ Weak
Methodsเปนกระบวนการควบคุมโดยทั่วไป (general-purpose control
stategies)      ซึ่งการคนหาแบบนี้ สามารถแบงไดเปน
การคนหาแบบปนเขา(Hill climbing)
    ฟงกชันฮิวริสติกสามารถนํามาชวยในกระบวนการคนหาเพื่อใหไดคําตอบ
อยางรวดเร็วและมีประสิทธิภาพ วิธีการที่จะนําฟงกชันฮิวริสติกมาใชมีหลายวิธี
ดวยกันขึ้นอยูกับวาจะใชในลักษณะใด เชนเลือกสถานะที่มีคาฮิวริสติกดีขึ้น แลว
เดินไปยังสถานะนั้นเลยโดยไมตองสนใจสถานะที่มีคาฮิวริสติกแยกวา
สถานะปจจุบันหรือวาจะเก็บสถานะทุกตัวไวแมวาคาฮิวริสติกจะแยลงแลว
พิจารณาสถานะเหลานี้ทีหลัง เปนตน ในสวนตอไปนี้จะกลาวถึงอัลกอริทึมตาง
ๆ ที่นําฟงกชันฮิวริสติกมาชวยในการคนหาคําตอบ โดยเริ่มจากอัลกอริทึมปน
เขา (Hill climbing algorithm)
การคนหาแบบฮิลไคลบิง(Hill climbing)
เปนวิธีการคนหาขอมูลที่มีลักษณะคลายกับการปนภูเขา
การที่นักปนภูเขาจะเดินทางไปถึงยอดภูเขา นักปนเขา
จะตองมองกอนวายอดเขาอยูที่ใด แลวนักปนเขาจะตอง
พยายามไปจุดนั้นใหได ลองนึกภาพของการปนภูเขาโลน
ที่มองเห็นแตยอด และนักปเขากําลังปนภูเขาอยูเบื้องลาง
ที่มีเสนทางเต็มไปหมด เพื่อที่จะเดินทางไปถึงยอดภูเขา
โดยเร็วที่สุด นักปน
เขาจะมองไปที่ยอดเขาแลวสังเกตวาทิศทางใดที่เมื่อปน
แลวจะยิ่งใกลยอดเขา และหลีกเลี่ยงทิศทางที่เมื่อไปแลว
จะทําใหตัวเองหางจากยอดเขา นักปนเขาจะตองทําเชนนี้
ไปเรื่อย ๆ จนกระทั่งถึงยอดเขา
ตัวอยางการใชฟงกชันฮิวริสติก โดยอัลกอริทึมปนเขาอยางงายโดยปญหาโลก
ของบลอก
รูปที่ 6 การคนหา
แบบ Hill climbing
ตัวเลข h(i) ในรูปแสดงวา สถานะที่ i มีคาฮิวริสติกเทากับ h จากรูจะเห็นไดวา เริ่มตนจาก
สถานะที่ 1 ที่มคาฮิวริสติกเทากับ -1 อัลกอริทึมปนเขาใชตัวกระทําการเพื่อสรางสถานะลูกตัว
                  ี
แรกของสถานะที่ 1 แลววัดคาฮิวริสติกได 0 ซึ่งมีคาดีขึ้น ถาสังเกตจากรูปที่ จะพบวาสถานะ
ที่ 1 มีสถานะลูกทั้งหมด 3 ตัว แตในกรณีของอัลกอริทึมปนเขานี้ เมื่อไดสถานะลูกตัวแรกซึ่งมี
คาอิวริสติกดีขึ้น อัลกอริทึมจะไมสรางสถานะลูกที่เหลืออีก 2 ตัว และจะไมมีการยอนกลับมาที่
สถานะลูกทั้ง 2 นี้ แมวาหลังจากนี้อัลกอริทึมจะคนไมพบคําตอบกลาวคือเปนการตัดทางเลือก
ทิ้งไปเลย ซึ่งการทําเชนนี้แมวาจะมีโอกาสไมพบคําตอบแตก็มีขอดีที่เปนการชวยลดเวลาและ
ปริภูมิที่ทําการคนหาจะลดลงอยางมากจากนั้นอัลกอริทึมมาสถานะที่ 2 แลวเริ่มสรางสถานะ
ลูกไดสถานะที่ 3 ที่มคาฮิวริสติก -1 ซึ่งแยลงในกรณีที่แยลงเชนนี้ อัลกอริทึมจะไมไปยัง
                        ี
สถานะลูกตัวนี้และสรางสถานะลูกตัวตอไปโดยใชตัวกระทําการที่เหลือไดสถานะที่ 4 มีคาฮิวริ
สติกเทากับ -1 ไมดีขึ้นเชนกันจึงสรางสถานะลูกตัวถัดไป เปนสถานะที่5 มีคาฮิวริสติกเทากับ
1 เปนคาที่ดีขึ้น อัลกอริทึมจะมายังสถานะนี้และคนพบคําตอบในที่สุด
          อัลกอริทึมปนเขานี้จะมีประสิทธิภาพมากดังเชนแสดงในตัวอยางนี้ซึ่งกระจายสถานะ
ทั้งสิ้นเพียง 6 ตัวแลวพบคําตอบ เปรียบเทียบกับอัลกอริทึมการคนหาแนวกวางกอนซึ่งใช
สถานะทั้งสิ้นถึง 11 ตัว อยางไรก็ดีอัลกอริทึมนี้จะมีประสิทธิภาพมาก ถาใชฟงกชันฮิวริสติกที่
ดีมาก ๆ ในกรณีทฟงกชันฮิวริสติกไมดีนัก อัลกอริทึมนี้ก็อาจหลงเสนทางได และอาจไมพบ
                     ี่
คําตอบแมวาปริภูมิที่กําลังคนหามีคําตอบอยูดวยก็ตาม สาเหตุการหลงเสนทางประการหนึ่งมา
จากการเลือกสถานะลูก ซึ่งอัลกอริทึมจะไมไดพิจารณาสถานะลูกทุกตัวโดยเมื่อพบสถานะลูก
ตัวใดตัวหนึ่งที่ดีขึ้นก็จะเลือกเสนทางนั้นทันที อัลกอริทึมนี้สามารถดัดแปลงเล็กนอยให
พิจารณาสถานะลูกทุกตัวใหครบกอน แลวเลือกสถานะลูกตัวที่มคาฮิวริสติกสูงสุด เมื่อทํา
                                                                 ี
เชนนี้ก็จะทําใหอัลกอริทึมไดพิจารณาเสนทางที่ดีที่สุด ณ ขณะหนึ่ง ๆ ไดดีขึ้นเราเรียก
อัลกอริทึมที่ดัดแปลงนี้วาอัลกอริทึมปนเขาชันสุด (Steepest ascent hill climbing)
การคนหาดีสุดกอน(Best-first search)
       เปนกระบวนการคนหาขอมูลที่ไดนําเอาขอดีของทั้งการคนหาแบบลึก
กอน(Depth firstsearch) และการคนหาแบบกวางกอน(Breadth first
search) มารวมกันเปนวิธีการเดียว โดยที่แตละขั้นของการคนหาในโหนดลูก
นั้น การคนหาแบบดีที่ดีกอนจะเลือกเอา โหนดที่ดีที่สุด (most promising)
และการที่จะทราบวาโหนดใดดีที่สุดนี้สามารถทําไดโดยอาศัยฮิวริสติก
ฟงกชัน ซึ่งฮิวริสติก ฟงกชันนี้จะทําหนาที่เหมือนตัววัดผล และใหผลของการ
วัดนี้ออกมาเปนคะแนน รูปที่ 2.7 เปนตัวอยางของการคนหาแบบดีที่สุดกอน
ขั้นตอนนี้เริ่มจากตอน 1 สรางโหนดราก(root node) ในขั้นตอน 2สรางโหนด
ลูกB และ C แลวตรวจสอบโหนด B และ C ดวยฮิวริสติกฟงกชัน ไดผล
ออกมาเปนคะแนนคือ 3 และ 1ตามลํ าดับ จากนั้นใหเลือกโหนด C เปน
โหนดตอไปที่เราสนใจ เพราะมีคานอยกวา (หมายเหตุ ในการเลือกนี้จะเลือก
คามากสุด หรือนอยสุดก็ได ขึ้นอยูกับลักษณะของปญหา) แลวสรางโหนด
ลูกใหกับโหนด C ในขั้นตอน 3 ไดโหนด D และ Eแลวตรวจสอบคะแนน
ได 4 และ 6 ตามลํ าดับ จากนั้นทํ าการเปรียบเทียบคาของโหนดทายสุด
หรือเทอรมินอล โหนด(terminal node) ทุกโหนด วาโหนด ใดมีคาดีที่สุด ใน
ที่นี้จะตองเลือกโหนด B เพราะมีคะแนนเพียง 3 (เลือกคะแนนตํ่าสุด) แลว
สรางโหนด ลูกตามขั้นตอน 4 ได F และ G แลวตรวจ สอบคะแนน
ได 6 และ 5 คะแนนตามลํ าดับ ทําเชนนี้เรื่อย ๆ จนพบคําตอบหรือจนไม
สามารถ สรางโหนดตอไปไดอีก
รูปที่ 7 ขั้นตอนของการคนหาแบบดีที่สุดกอน
รูปที่ 8 การคนหาแบบดีสุดกอน
อัลกอริธึม: การคนหาแบบดีที่สุดกอน
1. เริ่มดวย OPEN ที่มีเพียงโหนดเริ่มตน
2. ทําจนกวาจะพบเปาหมาย หรือวาไมมีโหนดเหลืออยู
ใน OPEN
    � เลือกโหนดที่ดีที่สุดใน OPEN
    � สรางโหนดลูกใหกับโหนดที่ดีที่สุดนั้น
    � สําหรับโหนดลูกแตละตัวใหทําดังตอไปนี้
         i) ถาโหนดนั้นยังไมเคยถูกสรางมากอนหนานั้น ให
ตรวจสอบคาของมันโดย
                 ใชฮิวริสติกฟงชัน แลวเพิ่มเขาไป
ใน OPEN แลวบันทึกวาเปนโหนดแม
        ii) ถาโหนดนั้นถูกสรางมากอนหนานี้แลว ใหเปลี่ยน
โหนดแมของมัน ถาเสน
                 ทางใหมที่ไดดีกวาโหนดแมตัวเดิม ในกรณีนี้ ให
ปรับเปลี่ยนคาตามเสน
                 ทางที่อาจจะเกิดขึ้น
การคนหาแบบ Greedy (Greedy Algorithm)
   กรีดีอัลกอริธึม เปนการคนหาแบบดีที่สุดกอน(Best first
search) ที่งายที่สุด หลักการของการคนหาแบบนี้คือ การเลือก
โหนดที่ดีที่สุดตลอดเวลาอัลกอริธึม กรีดี
1. เลือกโหนดเริ่มตนมาหนึ่งโหนด
2. ใหโหนดที่เลือกมานี้เปนสถานะปจจุบัน
3. ใหทําตามขบวนการขางลางนี้จนกวาจะไมสามารถสราง
โหนดลูกไดอีก
     3.1 สรางสถานะใหมที่เปนโหนดลูกที่เปนไปไดทั้งหมด
จากสถานะปจจุบัน
     3.2 จากสถานะใหมที่สรางขึ้นมาทั้งหมด ใหเลือกสถานะ
หรือ โหนดลูก ที่ดีที่สุดออกมาเพียงโหนดเดียว
4. กลับไปที่ขึ้นตอนที่ 2
ตัวอยาง จากเรื่องการเดินทางของเซลแมนที่จะตองเดินทางไปยัง
เมือง A B C D ซึ่งมีระยะทางตามตารางที่ 3 เราจะแกปญหานี้ดวย
วิธีการของกรีดีบาง




  รูปที่ 9 การแกปญหาการเดินทางของเซลแมนดวยกรีดีอัลกอริธึม
จากรูปที่ 9 การแกปญหาเริ่มจาก การเลือก A เปนเมืองเริ่มแรก จากนั้นทําการ
สรางโหนดลูกB C และ D หารระยะทางระหวาง A ถึงเมืองเหลานี้ได 20
30 และ 50 ตามลําดับ เลือก B เปนเมืองที่จะเดินทางตอมา จากนั้นสรางโหนด
ลูกของB ได C และ D และไดระยะทางเทากับ 15 และ 20 ตามลําดับ
เลือก C เปนเมืองที่จะเดินทางตอไป จากนั้นสรางโหนดลูกให C ได D มีคา
เทากับ 10 เลือกเดินมาที่ D เปนเมืองสุดทายกอนกลับไป A รวมระยะทาง
เทากับ 20 + 15 + 10 + 50 = 95




             รูปที่ 10    ขอมูลในรูปแบบกราฟ
ตาราง 3 การคนหาแบบกรีดี
การคนหาแบบ A*
       การคนหาแบบ A* เปนอีกแบบของการคนหาแบบดีที่สุด
กอน วิธีการเลือกโหนดที่จะใชในการดําเนินการตอจะพิจารณา
จากโหนดที่ดีที่สุด แตในกรณีของ A* นี้จะมีลักษณะพิเศษ
กวาคือ ในสวนของฮิวริสติกฟงกชัน ในกรณีของการคนหา
แบบดีที่สุดกอนนั้น คาที่ไดจากฮิวริสติก ฟงกชัน จะเปนคาที่
วัดจาก โหนดปจจุบัน แตในกรณีของ A* คาของฮิวริสติก
ฟงกชัน จะวัดจากคา 2 คาคือ คาที่วัดจากโหนดปจจุบันไปยัง
โหนดราก และจากโหนดปจจุบันไปยังโหนดเปาหมาย ถาเรา
ใหตัวแปร f แทนคาของฮิวริสติก ฟงกชัน g เปนฟงกชันที่ใช
วัดคา cost จากสถานะเริ่มตนจนถึงสถานะปจจุบัน h' เปน
ฟงกชันที่ใชวัดคา cost จากสถานะปจจุบันถึงสถานะเปาหมาย
ดังนั้น

   f = g + h’
นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5
นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5

More Related Content

What's hot

นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5
นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5
นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5Nuanlaor Nuan
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูลABELE Snvip
 
ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล
ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล
ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล Watuka Wannarun
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูลYongyut Nintakan
 
งานนำเสนอ การจัดการฐานข้อมุล
งานนำเสนอ การจัดการฐานข้อมุลงานนำเสนอ การจัดการฐานข้อมุล
งานนำเสนอ การจัดการฐานข้อมุลchanoot29
 
นางสาวมลทิรา เอกกุล ม.5
นางสาวมลทิรา   เอกกุล ม.5นางสาวมลทิรา   เอกกุล ม.5
นางสาวมลทิรา เอกกุล ม.5miwmilk
 
Lecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูลLecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูลskiats
 
Introduction to Database
Introduction to DatabaseIntroduction to Database
Introduction to DatabaseOpas Kaewtai
 
Introduction to Database
Introduction to DatabaseIntroduction to Database
Introduction to DatabaseOpas Kaewtai
 
หน่วยที่ 6
หน่วยที่ 6หน่วยที่ 6
หน่วยที่ 6niramon_gam
 

What's hot (12)

นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5
นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5
นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5
 
บท3
บท3บท3
บท3
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูล
 
ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล
ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล
ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูล
 
งานนำเสนอ การจัดการฐานข้อมุล
งานนำเสนอ การจัดการฐานข้อมุลงานนำเสนอ การจัดการฐานข้อมุล
งานนำเสนอ การจัดการฐานข้อมุล
 
นางสาวมลทิรา เอกกุล ม.5
นางสาวมลทิรา   เอกกุล ม.5นางสาวมลทิรา   เอกกุล ม.5
นางสาวมลทิรา เอกกุล ม.5
 
ฐานข้อมูลเชิงสัมพันธ์
ฐานข้อมูลเชิงสัมพันธ์ฐานข้อมูลเชิงสัมพันธ์
ฐานข้อมูลเชิงสัมพันธ์
 
Lecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูลLecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูล
 
Introduction to Database
Introduction to DatabaseIntroduction to Database
Introduction to Database
 
Introduction to Database
Introduction to DatabaseIntroduction to Database
Introduction to Database
 
หน่วยที่ 6
หน่วยที่ 6หน่วยที่ 6
หน่วยที่ 6
 

Similar to นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5

นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจtaltan
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจtaltan
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจtaltan
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจtaltan
 
งานคอม Pwp ณัฐพงษ์ ม.5
งานคอม Pwp ณัฐพงษ์ ม.5งานคอม Pwp ณัฐพงษ์ ม.5
งานคอม Pwp ณัฐพงษ์ ม.5Ben Benben
 
นางสาวมลทิรา เอกกุล
นางสาวมลทิรา  เอกกุลนางสาวมลทิรา  เอกกุล
นางสาวมลทิรา เอกกุลmiwmilk
 
นางสาว มลทิรา เอกกุล ม.5
นางสาว มลทิรา   เอกกุล ม.5นางสาว มลทิรา   เอกกุล ม.5
นางสาว มลทิรา เอกกุล ม.5miwmilk
 
บทที่3การสร้างตารางฐานข้อมูล
บทที่3การสร้างตารางฐานข้อมูลบทที่3การสร้างตารางฐานข้อมูล
บทที่3การสร้างตารางฐานข้อมูลniwat50
 
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลIsareeya Keatwuttikan
 
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูลบทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูลniwat50
 
งานคอมนางสาว มลทิรา เอกกุล เรื่อง เทคโนโลยีการสื่อสาร
งานคอมนางสาว มลทิรา  เอกกุล เรื่อง เทคโนโลยีการสื่อสารงานคอมนางสาว มลทิรา  เอกกุล เรื่อง เทคโนโลยีการสื่อสาร
งานคอมนางสาว มลทิรา เอกกุล เรื่อง เทคโนโลยีการสื่อสารmiwmilk
 
นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5
นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5
นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5Nuanlaor Nuan
 
นางสาว หัทยา เชื้อสมเกียรติ ม.5 pp
นางสาว หัทยา เชื้อสมเกียรติ ม.5 ppนางสาว หัทยา เชื้อสมเกียรติ ม.5 pp
นางสาว หัทยา เชื้อสมเกียรติ ม.5 pphattayachuesomkiet
 
นางสาว หัทยา เชื้อสมเกียรติ ม.5 pp
นางสาว หัทยา เชื้อสมเกียรติ ม.5 ppนางสาว หัทยา เชื้อสมเกียรติ ม.5 pp
นางสาว หัทยา เชื้อสมเกียรติ ม.5 pphattayachuesomkiet
 
เทคโนโลยีการสื่อสาร (พัชรา P)
เทคโนโลยีการสื่อสาร (พัชรา P)เทคโนโลยีการสื่อสาร (พัชรา P)
เทคโนโลยีการสื่อสาร (พัชรา P)Patchara Wioon
 

Similar to นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5 (20)

นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจ
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจ
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจ
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจ
 
แนวการสอบ ม.4
แนวการสอบ ม.4แนวการสอบ ม.4
แนวการสอบ ม.4
 
งานคอม Pwp ณัฐพงษ์ ม.5
งานคอม Pwp ณัฐพงษ์ ม.5งานคอม Pwp ณัฐพงษ์ ม.5
งานคอม Pwp ณัฐพงษ์ ม.5
 
นางสาวมลทิรา เอกกุล
นางสาวมลทิรา  เอกกุลนางสาวมลทิรา  เอกกุล
นางสาวมลทิรา เอกกุล
 
นางสาว มลทิรา เอกกุล ม.5
นางสาว มลทิรา   เอกกุล ม.5นางสาว มลทิรา   เอกกุล ม.5
นางสาว มลทิรา เอกกุล ม.5
 
บท3
บท3บท3
บท3
 
บทที่3การสร้างตารางฐานข้อมูล
บทที่3การสร้างตารางฐานข้อมูลบทที่3การสร้างตารางฐานข้อมูล
บทที่3การสร้างตารางฐานข้อมูล
 
บท1
บท1บท1
บท1
 
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
 
บท1
บท1บท1
บท1
 
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูลบทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
 
บทที่1
บทที่1บทที่1
บทที่1
 
งานคอมนางสาว มลทิรา เอกกุล เรื่อง เทคโนโลยีการสื่อสาร
งานคอมนางสาว มลทิรา  เอกกุล เรื่อง เทคโนโลยีการสื่อสารงานคอมนางสาว มลทิรา  เอกกุล เรื่อง เทคโนโลยีการสื่อสาร
งานคอมนางสาว มลทิรา เอกกุล เรื่อง เทคโนโลยีการสื่อสาร
 
นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5
นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5
นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5
 
นางสาว หัทยา เชื้อสมเกียรติ ม.5 pp
นางสาว หัทยา เชื้อสมเกียรติ ม.5 ppนางสาว หัทยา เชื้อสมเกียรติ ม.5 pp
นางสาว หัทยา เชื้อสมเกียรติ ม.5 pp
 
นางสาว หัทยา เชื้อสมเกียรติ ม.5 pp
นางสาว หัทยา เชื้อสมเกียรติ ม.5 ppนางสาว หัทยา เชื้อสมเกียรติ ม.5 pp
นางสาว หัทยา เชื้อสมเกียรติ ม.5 pp
 
เทคโนโลยีการสื่อสาร (พัชรา P)
เทคโนโลยีการสื่อสาร (พัชรา P)เทคโนโลยีการสื่อสาร (พัชรา P)
เทคโนโลยีการสื่อสาร (พัชรา P)
 

นวลลออ ถาวรโรจน์เสถียร เลขที่20 ม.5

  • 1.
  • 2. โครงสรางแผนการจัดการเรียนรู รายชั่วโมง สาระการเรียนรูพื้นฐาน เทคโนโลยีสารสนเทศ ชั้น มัธยมศึกษาปที่ 5 หนวยการเรียนรูที่ 1 เทคโนโลยีการสื่อสาร การเรียนรูที่ 1วัตถุประสงคของการจัดการขอมูล หนวย ขอมูลและเขตขอมูลคีย . การเรียนรูที่ 2 ชนิดขอมูลและประเภทของแฟมขอมูล การเรียนรูที่ 3 ลักษณะการประมวลผลขอมูล การเรียนรูที่ 4 แฟมโปรแกรมและแฟมขอมูล หนวยการเรียนรูที่ 2 โครงสรางขอมูล การเรียนรูที่ 5 ชนิดของโครงสรางขอมูล การเรียนรูที่ 6 ลักษณะของขอมูล การเรียนรูที่ 7 การเรียงลําดับขอมูล การเรียนรูที่ 8 การคนหาขอมูล
  • 3. หนวยการเรียนรูที่ 1 เทคโนโลยีการสื่อสาร การเรียนรูที่ 1วัตถุประสงคของการจัดการขอมูล หนวยขอมูล และเขตขอมูลคีย . วัตถุประสงคในการจัดการขอมูล วัตถุประสงคในการจัดการขอมูล 1. การเก็บขอมูล ตองเก็บขอมูลเพื่อใหสามารถนํากลับมาใชไดในภายหลัง 2. การจัดขอมูล ตองจัดขอมูลใหอยูในรูปแบบที่สามารถเรียกใชงานไดอยางมี ประสิทธิภาพ 3. -การปรับปรุงขอมูล ตองปรับขอมูลใหมีความถูกตองสมบูรณอยูเสมอ 4. การปกปองขอมูล ตองปกปองขอมูลจากการทําลาย ลักลอบใช หรือแกไข โดยมิชอบ รวมทั้งปกปองขอมูลจากอุบัติเหตุที่อาจเกิดจากวินาศภัย หรือความ บกพรองภายในระบบคอมพิวเตอร หนวยขอมูล (DATA UNITS)
  • 4. หนวยของขอมูลคอมพิวเตอรสามารถจัดเรียงเปนลําดับชั้นเล็กไปขนาดใหญไดดังนี้ 1.บิต (bit) เลขฐาน 2 หนึ่งหลักซึ่งมีคาเปน 0 หรือ 1 2.ตัวอักษร (charecter) กลุมของบิตสามารถแทนคาตัวอักษรได ในชุดอักขระ ASCII 1 ไบต ( 8 บิต) แทน ตัวอักษรตัว 1 ตัว เชน 01000001 แทนตัวอักษร A ในปจจุบันมีชุดอักขระที่ใชเลขฐานสอง 16 บิต แทนคาตัวอักษร คือ รหัส Unicode เชน 0000 0000 1110 0110 แทนอักษรตัว ? 3.เขตขอมูล (Field) ซึ่งประกอบดวยกลุมตัวอักษรที่แทนขอเท็จจริง 4.ระเบียน (Record) ระเบียน คือโครงสรางขอมูลที่แทนตัววัตถุชิ้นหนึ่ง เชน ระเบียนขอมูลนักศึกษาเลข ทะเบียน 431999999 5.แฟม (file) คารางที่เปนกลุมของระเบียนที่มีโครงสรางเดียวกัน เชน ตารางการสั่งซืสินคาของ ้ ลูกคา 6.ฐานขอมูล (Database) กลุมของตาราง (และความสัมพันธ) การเรียงลําดับชั้นของหนวยขอมูลดังนี้ เขตขอมูลคีย (Key field) คือเขตขอมูลที่ใชสําหรับระบุระเบียนขอมูลอยางเฉพาะเจาะจง ขอมูลที่อยูในเขตขอมูลนี้จะไมซ้ํากับระเบียนอื่น ๆ เชน แฟมขอมูลพนักงานอาจใชเลขที่ พนักงานเปนตัวระบุระเบีย
  • 5. การเรียนรูที่ 2 ชนิดขอมูลและประเภทของแฟมขอมูล  ชนิดของขอมูล  ขอมูลที่ตองการจัดเก็บนั้นอาจจะมีรูปแบบไดหลายอยาง รูปแบบสําคัญ ๆ ไดแก  3.1 ขอมูลแบบรูปแบบ (formatted data) เปนขอมูลที่รวมอักขระซึ่งอาจหมายถึง ตัวอักษร ตัวเลข ซึ่งเปนรูปแบบที่แนนอน ในแตละระเบียน ทุกระเบียนที่อยูในแฟมขอมูล จะมีรูปแบบที่เหมือนกันหมด ขอมูลที่เก็บนั้นอาจเก็บในรูปของรหัสโดยเมื่ออานขอมูล ออกมาอาจจะตองนํารัหสนั้นมาตีความหมายอีกครั้ง เชน แฟมขอมูลประวัตินักศึกษา  3.2 ขอมูลแบบขอความ (text)เปนขอมูลที่เปนอักขระในแบบขอความ ซึงอาจ หมายถึงตัวอักษร ตัวเลข สมการฯ แตไมรวมภาพตาง ๆ นํามารวมกันโดยไมมีรูปแบบที่ แนนอนในแตละระเบียน เชน ระบบการจัดเก็บขอความตาง ๆ ลักษณะการจัดเก็บแบบนี้จะ ไมตองนําขอมูลที่เก็บมาตีความหมายอีก ความหมายจะถูกกําหนดแลวในขอความ  3.3 ขอมูลแบบภาพลักษณ (images) เปนขอมูลที่เปนภาพ ซึ่งอาจเปนภาพกราฟที่ ถูกสรางขึ้นจากขอมูลแบบรูปแบบรูปภาพ หรือภาพวาด คอมพิวเตอรสามารถเก็บภาพและ จัดสงภาพเหลานี้ไปยังคอมพิวเตอรอื่นได เหมือนกับการสงขอความ โดยคอมพิวเตอรจะ ทําการแปลงภาพเหลานี้ ซึ่งจะทําใหคอมพิวเตอรสามารถที่จะปรับขยายภาพและ เคลื่อนยายภาพเหลานั้นไดเหมือนกับขอมูลแบบขอความ  3.4 ขอมูลแบบเสียง (audio) เปนขอมูลที่เปนเสียง ลักษณะของการจัดเก็บก็จะ เหมือนกับการจัดเก็บขอมูลแบบภาพ คือ คอมพิวเตอรจะทําการแปลงเสียงเหลานี้ให คอมพิวเตอรสามารถนําไปเก็บได ตัวอยางไดแก การตรวจคลื่นหัวใจ จะเก็บเสียงเตนของ หัวใจ  3.5 ขอมูลแบบภาพและเสียง (video) เปนขอมูลที่เปนเสียงและรูปภาพ ที่ถูกจัดเก็บ ไวดวยกัน เปนการผสมผสานรูปภาพและเสียงเขาดวยกัน ลักษณะของการจัดเก็บขอมูล คอมพิวเตอรจะทําการแปลงเสียงและรูปภาพนี้ เชนเดียวกับขอมูลแบบเสียงและขอมูลแบบ ภาพลักษณะซึ่งจะนํามารวมเก็บไวในแฟมขอมูลเดียวกัน
  • 6. ประเภทของแฟมขอมูล ประเภทของแฟมขอมูลจําแนกตามลักษณะของการใชงานไดดังนี้ 6.1แฟมขอมูลหลัก (master file)แฟมขอมูลหลักเปนแฟมขอมูลที่บรรจุขอมูลพื้นฐานที่จําเปนสําหรับ ระบบงาน และเปนขอมูลหลักที่เก็บไวใชประโยชนขอมูลเฉพาะเรื่องไมมีรายการเปลี่ยนแปลงในชวงปจจุบัน มี สภาพคอนขางคงที่ไมเปลี่ยนแปลงหรือเคลื่อนไหวบอยแตจะถูกเปลี่ยนแปลงเมื่อมีการสิ้นสุดของขอมูล เปน ขอมูลที่สําคัญที่เก็บไวใชประโยชน ตัวอยาง เชน แฟมขอมูลหลักของนักศึกษาจะแสดงรายละเอียดของ นักศึกษา ซึ่งมี ชื่อนามสกุล ที่อยู ผลการศึกษา แฟมขอมูลหลักของลูกคาในแตละระเบียนของแฟมขอมูลนีจะ ้ แสดงรายละเอียดของลูกคา เชน ชื่อสกุล ที่อยู หรือ ประเภทของลูกคา 6.2 แฟมขอมูลรายการเปลี่ยนแปลง (transaction file)แฟมขอมูลรายการเปลี่ยนแปลงเปนแฟมขอมูลที่ ประกอบดวยระเบียนขอมูลที่มีการเคลื่อนไหว ซึ่งจะถูกรวบรวมเปนแฟมขอมูลรายการเปลี่ยนแปลงที่เกิดขึ้นใน แตละงวดในสวนที่เกี่ยวของกับขอมูลนั้น แฟมขอมูลรายการเปลี่ยนแปลงนี้จะนําไปปรับรายการในแฟมขอมูล หลัก ใหไดยอดปจจุบัน ตัวอยางเชน แฟมขอมูลลงทะเบียนเรียนของนักศึกษา 6.3 แฟมขอมูลตาราง (table file)แฟมขอมูลตารางเปนแฟมขอมูลที่มีคาคงที่ ซึ่งประกอบดวยตารางที่ เปนขอมูลหรือชุดของขอมูลที่มีความเกี่ยวของกันและถูกจัดใหอยูรวมกันอยางมีระเบียบ โดยแฟมขอมูล ตารางนี้จะถูกใชในการประมวลผลกับแฟมขอมูลอื่นเปนประจําอยูเสมอ เชน ตารางอัตราภาษี ตารางราคา สินคา ตัวอยางเชน ตารางราคาสินคาของบริษัทขายอะไหลเครื่องคอมพิวเตอรดังนี้ รหัสสินคา รายชื่อสินคา ราคา 51 จอภาพ 4,500 52 แปนพิมพ 1,200 53 แรม 4 M 4,500 54 แรม 8 M 7,000 55 กระดาษตอเนื่อง 500 56 แฟมคอมพิวเตอร 200
  • 7. ในแฟมขอมูลนี้จะประกอบดวยระเบียนแฟมขอมูลตารางของสินคาที่มีฟลดตาง ๆ ไดแก รหัสสินคา รายชื่อ สินคา และราคาสินคาตอหนวย แฟมขอมูลตารางรายการสินคา จะใชรวมกับแฟมขอมูลหลายแฟมขอมูลในระบบสินคา ไดแก แฟมขอมูลคลังสินคา (inventory master file) แฟมขอมูลใบสั่งซื้อของลูกคา (customer order master file) และแฟมขอมูลรายการสิตคาของฝายผลิต (production master file) มีขอควรสังเกตวา แฟมขอมูลตาราง แฟมขอมูลรายการเปลี่ยนแปลง และแฟมขอมูลหลัก ทั้ง 3 แฟม จะมี ฟลดที่เกี่ยวกับตัวสินคารวมกัน คือ ฟลดรหัสสินคา (product code) ฟลดรวมกันนี้จะเปน ตัวเชื่องโยงระหวางแฟมขอมูลตารางกับฟมขอมูลอื่น ๆ ทั้งหมดที่ตองการจะใชคาของฟดล รายชื่อสินคา (product description) และราคาสินคา (product price) จากแฟมขอมูล ตาราง การจัดแฟมขอมูลแบบนี้จะทําใหประหยัดเนื้อที่ในอุปกรณเก็บขอมูลของแฟมขอมูล หลัก กลาวคือในแฟมขอมูลหลักไมตองมี 2 ฟลด คือ ฟลดรายการสินคาและฟลดราคา สินคา มีแตเพียงฟลดรหัสสินคาก็เพียงพอแลว เมื่อใดที่ตองการใชฟลดรายการสินคาใน การแสดงผลก็อานคาออกมาจากแฟมขอมูลตารางได นอกจากนั้นยังเปนการลดความ ซ้ําซอนของขอมูลและเมื่อผูใชระบบตองการเปลี่ยนแปลงรายการสินคาหรือราคาสินคาก็จะ เปลี่ยนในแฟมขอมูลตารางทีเดียว โดยไมตองไปเปลี่ยนแปลงในแฟมขอมูลอื่น   6.4 แฟมขอมูลเรียงลําดับ (sort file)แฟมขอมูลเรียงลําดับเปนการจัดเรียงระเบียนที่จะ บรรจุในแฟมขอมูลนั้นใหม โดยเรียงตามลําดับคาของฟลดขอมูลหรือคาของขอมูลคาใดคา หนึ่งในระเบียนนั้นก็ได เชน จัดเรียงลําดับตาม วันเดือนป ตามลําดับตัวอักขระเรียงลําดับ จากมากไปหานอยหรือจากนอยไปหามาก เปนตน  แฟมขอมูลรายงาน (report file)เปนแฟมขอมูลที่ถูกจัดเรียงระเบียบตามรูปแบบของ รายงานที่ตองการแลวจัดเก็บไวในรูปของแฟมขอมูล ตัวอยาง เชน แฟมขอมูลรายงาน ควบคุมการปรับเปลี่ยนขอมูลที่เกิดขึ้นในขณะปฏิบัติงานแตละวัน
  • 8. การเรียนรูที่ 3 ลักษณะการประมวลผลขอมูล  ขอมูลและการประมวลผลขอมูล  ขอมูล คือขอเท็จจริงที่เราสนใจ สวน สารสนเทศ คือขอมูลที่ผานการประมวลผลดวยวิธีการที่เหมาะสมถูกตอง จน ไดรูปแบบผลลัพธ ตรงความตองการของผูใช  ขอมูลที่จะนํามาประมวลผลใหเปนสารสนเทศ จะตองมีคุณสมบัติพื้นฐานดังตอไปนี้  ความถูกตอง หากมีการเก็บรวบรวมขอมูลและขอมูลเหลานั้นเชื่อถือไมได จะทําใหเกิดผลเสียหายมาก ผูใชจะไมกลา อางอิงหรือนําเอาไปใชประโยชน ซึ่งเปนเหตุใหการตัดสินใจของผูบริหารขาดความแมนยํา และมีโอกาสผิดพลาดได โครงสรางขอมูลที่ออกแบบตองคํานึงถึงกรรมวิธีการดําเนินงานเพื่อใหไดความถูกตองแมนยํามากที่สุด โดยปกติ ความผิดพลาดของการประมวลผลสวนใหญ มาจากขอมูลที่ไมมีความถูกตองซึ่งมีสาเหตุมาจากคนหรือเครื่องจักร การออกแบบระบบจึงตองคํานึงถึงในเรื่องนี้  ความรวดเร็วและเปนปจจุบัน การไดมาของขอมูลจําเปนตองใหทันตอความตองการของผูใช มีการตอบสนองตอผู ใชไดเร็ว ตีความหมายสารสนเทศไดทันตอเหตุการณหรือความตองการ มีการออกแบบระบบการเรียกคนและรายงาน ตามความตองการของผูใช  ความสมบูรณ ความสมบูรณของสารสนเทศขึ้นกับการรวบรวมและวิธีการทางปฏิบัติ ในการดําเนินการจัดทํา สารสนเทศ ตองสํารวจและสอบถามความตองการของผูใช เพื่อใหไดขอมูลที่มีความสมบูรณเหมาะสม  ความชัดเจนกระทัดรัด การจัดเก็บขอมูลตองใชพื้นที่ในการจัดเก็บขอมูลมาก จึงจําเปนตองออกแบบโครงสรางขอมูล ใหกระทัดรัด สื่อความหมายได มีการใชรหัสหรือยอขอมูลใหเหมาะสม เพื่อที่จะจัดเก็บเขาไวในระบบคอมพิวเตอร  ความสอดคลอง ความตองการเปนเรื่องสําคัญ ดังนั้นจึงตองมีการสํารวจเพื่อหาความตองการของหนวยงานและ องคการ ดูสภาพการใชขอมูล ความลึกหรือความกวางของขอบเขตขอมูล ที่สอดคลองกับความตองการ  ในการนําขอมูลไปใชประโยชน หรือการทําขอมูลใหเปนสารสนเทศ ที่จะนําไปใชประโยชนได จําเปนตองมีการ ประมวลผลขอมูลกอน การประมวลผลขอมูล เปนกระบวนการที่มีกระบวนการยอยหลายอยาง ประกอบกันคือ  การรวบรวมขอมูล  การแยกแยะ  การตรวจสอบความถูกตอง  การคํานวณ  การจัดลําดับหรือการเรียงลําดับ  การรายงานผล  การสื่อสารขอมูลหรือการแจกจายขอมูลนั้น  การประมวลผลขอมูล จึงเปนกิจกรรมที่มีความสําคัญ เพราะขอมูลที่มีอยู รอบๆ ตัวเรามีเปนจํานวนมากในการใชงาน จึงตองมีการประมวลผล เพื่อใหเกิดประโยชน กิจกรรมหลักของการใหไดมาซึ่งสารสนเทศ จึงประกอบดวยกิจกรรม การ เก็บรวบรวมขอมูล ซึ่งตองมีการตรวจสอบ ความถูกตองดวย กิจกรรมการประมวลผลซึ่งอาจจะเปนการแบงแยก ขอมูล การจัดเรียงขอมูล การคํานวณ และกิจกรรมการเก็บรักษาขอมูลซึ่งอาจตอง มีการทําสําเนา ทํารายงาน เพื่อ แจกจาย
  • 9. การเรียนรูที่ 4 แฟมโปรแกรมและแฟมขอมูล  แฟมโปรแกรมและแฟมขอมูล  ถาจะแบงประเภทของแฟมในคอมพิวเตอรอีกนัยหนึ่ง อาจแบงเปนแฟมโปรแกรม และ แฟมขอมูล แฟมโปรแกรมประกอบดวยชุดคําสั่งตางๆ ที่ทํางานอยางใดอยางหนึ่งเชน โปรแกรม ประมวลคํา (word processor) ใชสําหรับพิมพเอกสารและจัดรูปแบบขอความ และโปรแกรมบีบอัด ขอมูล (compression utility) ใชสําหรับบีบอัดขอมูลที่มีขนาดเล็กลง เปนตน แฟมที่จัดเก็บหรือบันทึกโดยโปรแกรมเหลานี้ จัดเปนประเภทแฟมขอมูล ซึ่งตามปกติจะมีสวน ขยาย (file extension) เปนตัวบอกประเภทเชน เอกสารที่สรางดวยโปรแกรมประมวลคํา Microsoft Word จะมีสวนขยายหลักเปน .doc สวนแฟมขอมูลที่สรางดวยโปรแกรมบีบอัดขอมูล Winzip จะมีสวน ขยายเปน .zip เปนตน ที่กลาววาสวนขยายหลักหมายความวา โปรแกรมหนึ่งอาจสรางแฟมขอมูลที่มี สวนขยายไดหลายหยาง ตัวอยางโปรแกรมลักษณะนี้ไดแก Microsoft Word2000 ซึ่งสามารถสราง แฟมขอมูลที่มีสวนขยายเปน .doc .htm .html .rtf .txt .mcw และ .wps แต จะเปนสวนขยายหลัก เปน .doc แฟมขอมูลบางประเภทสรางและเปดดวยโปรแกรมใดโปรแกรมหนึ่งโดยเฉพาะ เชนแฟมที่สราง ดวยโปรแกรมแตงภาพ Adobe Photoshop ซึ่งมีสวนขยายเปน .psd ในขณะที่แฟมขอมูลบางประเภท เปนประเภทที่มีรูปแบบมาตรฐานที่สามารถสรางและเปดไดโดยโปรแกรมตางๆ เชน ประเภทแฟม Bitmap ( BMP) Graphics Interchange Format (GIF) และ Joint Photographic Experts Group (JPEG) สามารถสรางและเปดแกไขไดโดย Windows PaintBrush , Adobe Photoshop หรือ Microsoft Photo Editor ก็ได แฟมที่มีรูปแบบมาตรฐานเหลานี้มีประโยชนมากในการแลกเปลี่ยน ขอมูลระหวางโปรแกรมตางๆ แฟมโปรคแกรมที่ประกอบดวยชุดคําสั่งที่ทํางานได ไดแกประเภท .exe , .com , .bat , .dll 
  • 10. หนวยการเรียนรูที่ 2 โครงสรางขอมูล การเรียนรูที่ 5 ชนิดของโครงสรางขอมูล ประเภทของโครงสรางขอมูล แบงออกเปน 2 ประเภท คือ
  • 12. เปนโครงสรางขอมูลที่ใชโดยทั่วไปในภาษาคอมพิวเตอร แบงออกเปน 2 ประเภท 1.ขอมูลเบื้องตน (Primitive Data Types) - จํานวนเต็ม (Integer) - จํานวนทศนิยม (Floating point) - ขอมูลบูลีน (Boolean) - จํานวนจริง (Real) - ขอมูลอักขระ (Character) 2.ขอมูลโครงสราง (Structure Data Types) - แถวลําดับ (Array) - ระเบียนขอมูล (Record) - แฟมขอมูล (File)
  • 14. เปนโครงสรางขอมูลที่เกิดจากการจินตนาการของผูใช เพื่อใชในการแกปญหา ในโปรแกรมที่สรางขึ้น แบงเปน 2 ประเภท 1. โครงสรางขอมูลแบบเชิงเสน (Linear Data Structure) ความสัมพันธของขอมูลจะเรียงตอเนื่องกัน - ลิสต (List) - สแตก (Stack) - คิว (Queue) - สตริง (String) 2. โครงสรางขอมูลแบบไมเชิงเสน (Non-Linear Data Structure) ขอมูลแตละตัวสามารถมีความสัมพันธกับขอมูลอื่นไดหลายตัว - ทรี (Tree) - กราฟ (Graph) 3. การดําเนินการกับโครงสรางขอมูล(Data Structure Operation) วิธีดําเนินการกับขอมูลที่นิยมใชกันมากมี 4 แบบ คือ 1. การเขาถึงเรคคอรด (Traversing) 2. การคนหา (Searching) 3. การเพิ่ม (Inserting) 4. การลบ (Deleting) ยังมีการจัดการกับขอมูลอีก 2 อยาง คือ 1. การเรียงขอมูล (Sorting) 2. การรวมขอมูล (Merging) 4. การแทนที่ขอมูลในหนวยความจํา
  • 15. มีอยู 2 วิธี คือ การแทนที่ขอมูลแบบสแตติก (Static Memory Representation) เปน การแทนที่ขอมูลที่มีการจองเนื้อที่แบบคงที่แนนอน ตองมี การกําหนดขนาดกอนการใชงาน แตมีขอเสีย คือ ไมสามารถปรับ ขนาดใหเพิ่มขึ้นหรือลดลงได โครงสรางขอมูลที่มีการแทนที่ หนวยความจําหลักแบบสแตติก คือแถวลําดับ (Array) การแทนทีขอมูลแบบไดนามิก (Dynamic Memory Representation) เปน การแทนที่ขอมูลที่ไมตองจองเนื้อที่ ขนาดของเนื้อที่ ยืดหยุนได ตามความตองการของผูใช โครงสรางขอมูลที่มีการ แทนที่หนวยความจําหลักแบบไดนามิก คือ ตัวชี้หรือพอยเตอร (Pointer) 5. ลักษณะของโปรแกรมแบบที่มีโครงสรางที่ดี 5.1 โครงสรางโปรแกรมแบบคําสั่งตามลําดับ เปน โครงสรางพื้นฐานที่ประกอบดวยคําสั่งทั่วๆไป เปน โครงสรางที่มีลักษณะการทํางานแบบเรียงลําดับ คือ จะทํางานตั้งแต ตนจนจบโดยไมมีการขามขั้นตอนใดๆ
  • 16. 5.2 โครงสรางโปรแกรมแบบมีการตัดสินใจ (Decision) มี การตรวจสอบเงื่อนไข เพื่อตัดสินใจวาจะทําการ ประมวลผลสวนใด โดยผลลัพธของเงื่อนไขจะมีคาของความ เปนไปไดอยู 2 ลักษณะ คือ จริงและเท็จ เทานั้น 5.3 โครงสรางโปรแกรมแบบเปนวงจรปด (Loop) มีลักษณะการทํางานซ้ําๆกัน อยูในสวนใดสวนหนึ่งของ โปรแกรม 6. อัลกอริทึม (Algorithm) อัลกอรึทึม คือ วิธีการแกปญหาตางๆ อยางมีระบบ มีลําดับ ขั้นตอนตั้งแตตนจนไดผลลัพธ สามารถเขียนไดหลายแบบ การ เลือกใชตองเลือกใชขั้นตอนวิธีที่เหมาะสม กระชับ และรัดกุม อัลกอริทึมที่นิยมใชกันมาก ไดแก 1. อัลกอริทึมแบบแตกยอย (Divide and conquer) 2. อัลกอริทึมแบบเคลื่อนที่ (Dynamic Programming) 3. อัลกอริทึมแบบทางเลือก (Greedy Algorithm)
  • 17. การเขียนผังงาน (Flowchart) Flow Chart เปนการอธิบายขั้นตอนการประมวลผลโดยใชสัญลักษณใน การแสดงความหมายหรือกําหนด ลําดับการทํางาน การใชกรอบรูปสัญลักษณที่ สื่อความหมาย อธิบายขั้นตอนการทํางานของโปรแกรม การเขียนรหัสเทียม (Pseudo Code) Pseudo Code การอธิบายขั้นตอนการประมวลผลโดยใชวลีภาษาอังกฤษ ในการแสดงอธิบาย ใชคําสั้นๆ กะทัดรัด อธิบายขั้นตอนการทํางานของ โปรแกรม พัฒนาการของภาษาโปรแกรม - ภาษาเครื่อง (Machine Language) - ภาษาแอสเซมบลี (Assembly Language) - ภาษาระดับสูง (High Level Language) - ภาษายุคที่ 4 (Fourth Generation Language หรือ 4GL) การบํารุงรักษาโปรแกรม (Program Maintenance) หมาย ถึง การแกไขขอผิดพลาดที่พบระหวางการทดสอบหรือระหวางการ ใชงาน ซึ่งอาจเปนการเปลี่ยนขอมูลที่ตองการใชใหมการปรับปรุงขอมูล ใหทัน เหตุการณอยูเสมอ การปรับเปลี่ยนโครงสรางบนหนาจอ เปนตน
  • 18. การเรียนรูที่ 6 ลักษณะของขอมูล ลักษณะของขอมูลที่ดี ลักษณะของขอมูลที่ดี ขอมูลที่ดีควรเปนขอมูลที่มีคุณลักษณะดังตอไปนี้ • ขอมูลที่มีความถูกตองและเชื่อถือได (accuracy) ขอมูลจะมีความถูกตองและ เชื่อถืไดมากนอยเพียงใดนั้น ขึ้นกับวิธีการที่ใชในการควบคุมขอมูลนําเขา และ การควบคุมการประมวลผลการควบคุมขอมูลนําเขาเปนการกระทําเพื่อใหเกิด ความมั่นใจวาขอมูลนําเขามีความถูกตองเชื่อถือได เพราะถาขอมูลนําเขาไมมี ความถูกตองแลวถึงแมจะใชวิธีการวิเคราะหและประมวลผลขอมูลที่ดีเพียงใด ผลลัพธที่ไดก็จะไมมีความถูกตอง หรือนําไปใชไมได ขอมูลนําเขาจะตองเปน ขอมูลที่ผานการตรวจสอบวาถูกตองแลว ขอมูลบางอยางอาจตองแปลงใหอยูใน รูปแบบที่เครื่องคอมพิวเตอรสามารถเขาใจไดอยางถูกตอง ซึ่งอาจตองพิมพ ขอมูลมาตรวจเช็คดวยมือกอน การประมวลผลถึงแมวาจะมีการตรวจสอบขอมูล นําเขาแลวก็ตาม ก็อาจทําใหไดขอมูลที่ผิดพลาดได เชน เกิดจากการเขียน โปรแกรมหรือใชสูตรคํานวณผิดพลาดได ดังนั้นจึงควรกําหนดวิธีการควบคุมการ ประมวลผลซึ่งไดแก การตรวจเช็คยอดรวมที่ไดจากการประมวลผลแตละครั้ง หรือการตรวจสอบผลลัพธที่ไดจากการประมวลผลดวยเครื่องคอมพิวเตอรกับ ขอมูลสมมติที่มีการคํานวณดวยวามีความถูกตองตรงกันหรือไม
  • 19. • ขอมูลตรงตามความตองการของผูใช (relevancy) ไดแก การเก็บเฉพาะขอมูลที่ผูใชตองการเทานั้น ไมควร เก็บขอมูล อื่น ๆ ที่ไมจําเปนหรือไมเกี่ยวของกับการใชงาน เพราะจะทํา ใหเสียเวลาและเสียเนื้อที่ในหนวยเก็บขอมูล แตทั้งนี้ขอมูลที่ เก็บจะตองมีความครบถวนสมบูรณดวย • ขอมูลมีความทันสมัย (timeliness) ขอมูลที่ดีนั้นนอกจาก จะเปนขอมูลที่มีความถูกตองเชื่อถือไดแลวจะ ตองเปนขอมูล ที่ทันสมัย ทั้งนี้เพื่อใหผูใชสามารถนําเอาผลลัพธที่ไดไปใชได ทันเวลา นั่นคือจะตองเก็บขอมูลไดรวดเร็วเพื่อทันความ ตองการของผูใช
  • 20. การเรียนรูที่ 7 การเรียงลําดับขอมูล การเรียงลําดับขอมูล การเรียงลําดับขอมูลเปนเรื่องสําคัญมากเรื่องหนึ่งเนื่องจากทํา ใหผูตองการใชขอมุลเชน ผูบริหาร,ผูปฏิบัติงาน (พนักงาน) สามารถทําความเขาใจกับขอมูลหรือทําการคนหาขอมูลได งายและเร็วยิ่งขึ้นตามที่ตองการ ประเภทของการจัดการจัดเรียงขอมูลในระบบคอมพิวเตอร แบงเปน 2 ประเภทคือ 1. Internal Sorting คือ การเรียงลําดับขอมูลโดยเก็บไวใน หนวยความจําหลัก และขอมูลของสมาชิกจะถูกเก็บ อยูใน โครงสรางอะเรย 2. External Sorting คือ การเรียงลําดับขอมูลโดยเก็บไวใน หนวยความจําสํารอง ขอมูลสวนใหญมีจํานวนมาก จึงไม สามารถเก็บไวในหนวยความจําหลักไดทั้งหมด
  • 21. ในหัวขอการเรียงลําดับ นี้จะอธิบายวิธีการเรียงลําดับขอมูลในแตละวิธีโดยสรุปอยาง ยอ ๆ เพื่อใชเปนแนวทางในการศึกษาใน ระดับชั้นสูงขึ้นไป คงจะไมไดกลาวถึง วิธีการขั้นตอนในการจัดเรียงอยางละเอียดแตจะพยายามชี้ใหเห็นถึงจุดเดนตาง ๆ ของการจัด เรียงลําดับในแตละวิธี วิธีหรือชนิดของการเรียงลําดับ มีวิธีตาง ๆ ที่มักจะไดพบโดยทั่วไปดังนี้ 1. SELECTION SORT 2. INSERTION SORT / LINEAR INSERTION SORT 3. BUBBLE SORT 4. SHELL SORT 5. BUCKET SORT /RADIX SORT 6. QUICK SORT 7. HEAP SORT / TREE SORT 1. การเรียงลําดับแบบเลือก (Selection Sort) เปนวิธีที่งายที่สุดในการเรียงลําดับขอมูล โดยเริ่มจาก - หาตําแหนงของขอมูลที่มีคานอยที่สุดแลวสลับคาของตําแหนงขอมูลนั้นกับคา ขอมูลในตําแหนง A(1) จะได A(1) มีคานอยที่สุด - หาตําแหนงของขอมูลที่มีคานอยที่สุดในกลุม A(2), A(3),....,A(n) แลวทํากับสลับ คาขอมูลในตําแหนง A(2) อยางนี้เรื่อยไปจน กระทั่งไมเกิน N-1 รอบ ก็จะไดขอมูลที่ เรียงลําดับจากนอยไปมาก 2. การเรียงลําดับแบบแทรก (Insertion Sort)
  • 22. หลักการ คือ 1. อานขอมุลที่ตองการเรียงลําดับเขามาทีละตัวโดยเริ่มจากตัวแรกกอน และหาตําแหนงของขอมูล ที่ควรจะอยู 2. หาที่วางสําหรับขอ 3. Insert หรือแทรกขอมูล ณ ตําแหนงในขอ 3. การเรียงลําดับแบบบับเบิล (Bubble Sort) วิธัการเรียงลําดับแบบบับเบิลจะทําการเปรียบเทียบขอมูลที่อยูในตําแหนงที่ติดกัน ถาขอมูลไมอยู ใลําดับที่ถูกตอง ก็จะทําการสลับตําแหนงของขอมูลที่เปรียบเทียบโดยที่การเปรียบเทียบจะเริ่มที่ ตําแหนงที่ 1 กับตําแหนงที่ 2 กอน ตอไปนี้เทียบกับ ตําแหนงที่ 2 และตําแหนงที่ 3 จนถึงตําแหนง ที่จัดเรียงแลว จากนั้นจะกลับไปเริ่มตนการเปรียบเทียบอีกจนกระทั่งจัดเรียง เรียบรอยหมดทุก ตําแหนง ในวิธีแบบ Bubble Sort คาในการเปรียบเทียบที่นอยที่สุดหรือมากที่สุด จะลอยขึ้นขางบน เหมือนกับฟองอากาศ 4. การรียงลําดับแบบเชลล(shell sort) เปนรูปแบบของการ sort ขอมูลโดยการนําเอาขอดีของการคนหาขอมูลแบบ แทรกและแบบเลือก และหลีกเลี่ยง การเกิดปญหาของทั้งแบบแทรกและแบบเลือก ซึ่งการเปรียบเทียบขอมูลในการ เรียงลําดับแบบแทรก โดยการเปรียบเทียบ ขอมูลที่อยูไกลออกไป ซึ่งจะทําใหเราสามารถเรียงดับ ขอมูลในตําแหนงที่อยูไกลออกไปหลังจากนั้นก็จะเรียงลําดับขอมูล ที่อยูใกลกันเขามา(กวาในครั้ง แรก) และความหางของขอมูลที่เปรียบเทียบก็จะนอยลงจนเหลือ 1 วิธีนี้คิดคนเมื่อป ค.ศ.1959 โดย ดี.แอล.เชลล(D.L.SHELL) เรียกวา การเรียงลําดับแบบเชลล(shell sort)
  • 23. 5. การเรียงลําดับโดยการใชฐานเลข(radix sort) การเรียงลําดับแบบนี้การเรียงลําดับ จะอยูบนพื้นฐานของการแทนตําแหนงของตัวเลขที่ ตองการนํามาเรียงลําดับ จะเริ่มจากตัวที่มีเลขนัยสําคัญสูงที่สุด ดําเนินจนกระทั่งถึงตัว เลขที่มีเลขนัยสําคัญต่ําสุด การเรียงลําดับในวิธีนี้การเรียงลําดับ จะเรียงจากตัวเลขที่มี นัยสําคัญนอยที่สุดกอน เมื่อตัวเลขทั้งหมดถูกนํามาเรียงลําดับตามเลขนัยสําคัญที่สูงขึ้น ตัวเลขที่เหมือนกัน ในตําแหนงนน จะตางกันในตําแหนงของเลขนัยสําคัญที่นอยกวา การ ประมวลผลแบบนี้จะประมวลผลกับขอมูลทั้งหมดได โดยที่ไมตองมีการแบงขอมูลแบบกลุม ยอย 6. การเรียงลําดับอยางเร็ว(quick sort) ถูกสรางและตั้งชื่อโดย ซี.เอ.อาร.ฮารเวร (C.A.R HOARE) การเรียงลําดับอยางเร็ว จะแบง ขอมูลเปนสองกลุม โดยใน การจัดเรียงจะเลือกขอมุลตัวใดตัวหนึ่งออกมา ซึ่งจะเปนตัวที่ แบงขอมูลออกเปนสองกลุม โดยกลุมแรกจะตองมีขอมูลนอยกวา ตัวแบง และกลุมที่มี ขอมูลนอยกวาตัวแบง และอีกกลุมจะมีขอมูลที่มากกวาตัวแบง ซึ่งเราเรียกตัวแบงวา ตัว หลัก(pivot) ในการเลือกตัวหลักจะมีอิสระในการเลือกขอมูลตัวใดก็ไดที่เราตองการ การ เรียงลําดับแบบเร็วเหมาะกับขอมูลที่มีการเรียกซ้ํา 7.การเรียงลําดับฮีพ(heapsort) เปนการเรียงลําดับที่อยูบนพื้นฐานบนพื้นฐานของโครงสรางแบบไบนารี จะดําเนินการ 2 ขั้นตอน คือ 玨 1. การจัดขอมูลในอะเรยใหสอดคลองกับความตองการของฮีพ 玨 2. การขจัดหนือการเคลื่อนยายขอมูลในตําแหนงสูงสุดหรือตําแหนงยอดของของฮีพอ อกไปและสนับสนุนขอมูลขอมูล ตัวอื่นไปแทนตําแหนงนั้น
  • 24. การเรียนรูที่ 8 การคนหาขอมูล การคนหาขอมูล (searching) การคนหาคําตอบ หรือการคนหาขอมูลในทางคอมพิวเตอรมักจะกระทําบนโครงสรางขอมูลแบบตนไม และกราฟ ทั้งนี้เพราะโครงสรางขอมูลในลักษณะนี้สามารถทําใหการคนหาทําไดสะดวกและสามารถพลิก แพลงการคนหาไดงาย ในความเปนจริงแลว การคนหาขอมูลบางครั้งสามารถกระทําบนโครงสรางขอมูล ชนิดอื่นก็ไดเชน อาเรย แสตก และคิว แตการจัดขอมูลในโครงสรางเชนนี้ มีขอจํากัดในการคนหาขอมูล มาก การคนหาทําไดแบบเรียงลําดับ(Sequencial Search) เทานั้น ซึ่งใชไดกับขอมูลที่มีขนาดเล็ก ดังนั้น ในการคนหาขอมูลที่มีขนาดใหญ กอนการคนหา หรือระหวางการคนหา ขอมูลที่จะถูกคนจะตองถูกจัดให อยูในรูปแบบของตนไม หรือกราฟเทานั้น การคนหาขอมูลบนโครงสรางตนไมและกราฟสามารถจํ าแนก ได 2 แบบคือ การคนหาแบบไบลด(Blind Search) และการคนหาแบบฮิวริสติก(Heuristic Search) การคนหาแบบไบลด(Blind Search) การคนหาแบบไบลด(Blind search) เปนการคนหาแบบที่เดินทางจากโหนดหนึ่งไปยังอีกโหนดหนึ่ง โดยอาศัยทิศทางเปนตัวกําหนดการคนหา ไมตองมีขอมูลอะไรมาชวยเสริมการตัดสินใจวาจะเดินทาง ตอไปอยางไร หรือกลาวอยางงาย ๆ คือการจะหยิบขอมูลใดมาชวยในการคนหาตอไป ไมตองอาศัย ขอมูลใด ๆ ทั้งสิ้น นอกจากทิศทางซึ่งเปนรูปแบบตายตัว การคนหาแบบไบลดสามารถแบงยอยไดดังนี้ คือ การคนหาทั้หมด และการคนหาบางสวน - การคนหาทั้งหมด(exhaustive search) คือ การคนหาทั้งหมดของปริภูมิสถานะ - การคนหาบางสวน (partial search) การคนหาเพียงบางสวนของปริภูมิสถานะ ซึ่งในความเปน จริงการคนหาสวนมากใชการคนหาเฉพาะบางสวนเทานั้นเนื่องจากปริภูมิสถานะมักมีขนาดใหญ เทาใหไม สามารถคนหาไดทั้งหมด ดังนั้นจึงมีความเปนไปไดวาคําตอบที่ไดอาจไมใชคําตอบที่ดีที่สุด การคนหา แบบนี้สามารถแบงไดเปน 2 ประเภทคือ การคนหาแบบลึกกอน(Depth first search) และการคนหาแบบ กวางกอน (Breadth first search)
  • 25. การคนหาแบบลึกกอน(Depth first search) การคนหาแบบลึกกอนเปนการคนหาที่กําหนดทิศทางจากรูปของ โครงสรางตนไม ที่เริ่มตนจากโหนดราก(Root node) ที่อยูบนสุด แลว เดินลงมาใหลึกที่สุด เมื่อถึงโหนดลางสุด(Terminal node) ใหยอน ขึ้นมาที่จุดสูงสุดของกิ่งเดี่ยวกันที่มีกิ่งแยกและยังไมไดเดินผาน แลวเริ่ม เดินลงจนถึงโหนดลึกสุดอีก ทําเชนนี้สลับไปเรื่อยจนพบโหนดที่ตองการ หาหรือสํารวจครบทุกโหนดแลวตามรูปที่ 1 การคนหาแบบลึกกอนจะมี ลําดับการเดินตามโหนดดังตัวเลขที่กํากับไวในแตละโหนด
  • 26. ดังที่ไดกลาวมาแลววา โครงสรางขอมูลที่ใชสําหรับการคนหานี้สามารถใช กับโครงสรางกราฟไดดวย โดยอาศัยหลักการเดียวกัน แตสําหรับการเดินทางบน กราฟนั้นจะไมมีโหนดลึกสุดดังนั้นการเดินทางบนกราฟจะตองปรับวิธีการเปนดังนี้ โดยเริ่มจาก โหนดเริ่มตน จากนั้นใหนําโหนดที่อยูติดกับโหนดทีกําลังสํารวจอยู(ที่ยังไมไดทํา ่ การสํารวจและยังไมไดอยูในแสต็กมาใสแสต็ก) มาเก็บไวในสแต็กเมื่อสํารวจ โหนดนั้นเสร็จ ใหพอพ(pop) ตัวบนสุดของโหนดออกมาทําการสํารวจ แลวนํา โหนดขางเคียงทั้งหมดที่ยังไมไดสํารวจมาตอทายแสต็ก แลวพอพตัวบนสุด ออกมาสํารวจ ทําเชนนี้เรื่อย ๆ จนกระทั้งพบโหนดที่ตองการ หรือสํารวจครบทุด โหนด รูปที่ 2 โครงสรางขอมูลแบบกราฟ
  • 27. การสํารวจจะเริ่มตนที่ A และนําโหนดขางเคียง B และ C มาเก็บไวในแสต็ก เมื่อสํารวจ A เสร็จพอพขอมูลจากแสต็กออกมาได C ทําการสํารวจ C และนําโหนดขางเคียงกับ C ที่ยัง ไมไดทําการสํารวจและยังไมไดอยูในแสต็กมาใสแสต็ก Dและ F พุช(Push) ใสแสต็ก ดังนั้นในแสต็กตอนนี้มี B D F อยู เมื่อสํารวจ C เสร็จ พอพ F ออกมาทํา การสํารวจ แลวนําโหนดขางเคียงที่ยังไมไดสํารวจและยังไมไดอยูในแสต็กมาใสแสต็ก ซึ่งก็ คือ G ดังนั้นขอมูลในแสต็กจะเปน B D G ทํ าเชนนี้ไปเรื่อย ๆ จนจบการทํางานก็จะไดลําดับ การสํ ารวจคือ (A C F G H E D B) ตามตาราง 1 ดังตอไปนี้ ตารางที่ 1 ลําดับการคนหาแบบลึกกอน ในการคนหาขอมูลแบบนี้บนโครงสรางของกราฟ มีขอที่นาสังเกตุคือ โหนดที่เริ่มตนการ สํารวจจะตองมีการกําหนดมาใหวาโหนดใดเปนโหนดเริ่มตน และขอสังเกตุอีกประการหนึ่งคือ วิธีการคนหาแบบลึกกอนที่ใชสําหรับโครงสรางขอมูลแบบกราฟ สามารถใชกับโครงสราง ขอมูลแบบตนไมไดดวย
  • 28. การคนหาแบบกวา่ งกอน (Breadthการคนหาแบบลึกกอน ตารางที 1 ลําดับ first search) การคนหาแบบกวางกอนเปนการกําหนดทิศทางการคนหาแบบที่ละระดับของโครงสรางตนไมโดยเริ่มจากโหนดราก(ระดับที่ 0) แลวลงมาระดับที่ 1 จากซายไปขวา เมื่อเสร็จระดับที่ 1 ไประดับที่ ในการคนหาขอมูลแบบนี้บนโครงสรางของกราฟ มีขอที่นาสังเกตุคือ โหนดที่เริ่มตนการสํารวจจะตอง มีการกําหนดมาใหวาโหนดใดเปนโหนดเริ่มตน และขอสังเกตุอีกประการหนึ่งคือวิธีการคนหาแบบลึก กอนที่ใชสําหรับโครงสรางขอมูลแบบกราฟ สามารถใชกับโครงสรางขอมูลแบบตนไมไดดวย การคนหาแบบกวางกอน (Breadth first search) การคนหาแบบกวางกอนเปนการกําหนดทิศทางการคนหาแบบที่ละระดับของโครงสรางตนไมโดย รูปทีเริลําดับการคนหาแบบกวางกอนบนโครงสรา0)นไม วลงมาระดับที่ 1 จากซายไปขวา เมื่อเสร็จระดับที่ 1 ไประดับที่ 2จาก ่ 3 ่มจากโหนดราก(ระดับที่ งต แล ซายไปขวาเชนกัน ทําเชนนี้เรื่อย ๆ จนพบโหนดที่ตองการตามรูปที่ 3 ลําดับการเดินทางของโหนดเปนไป ตามหมายเลขทีกํากับไวบนโหนด ่ รูปที่ 3 ลําดับการคนหาแบบกวางกอนบนโครงสรางตนไม
  • 29. สําหรับการคนหาแบบกวางกอนบนโครงสรางตนไม จะอาศัยโครงสราง ขอมูลแบบคิว(Queue)มาชวย และดวยวิธีการเชนเดียวกับการคนหาแบบลึกกอน คือ ใหเริ่มตนสํารวจที่โหนดเริ่มตน แลวนําโหนดขางเคียงเก็บไวในคิว เมื่อ สํารวจโหนดเริ่มตนเสร็จ ใหนําขอมูลในคิวออกมาสํารวจ แลวนําโหนดขางเคียง ที่ยังไมไดสํารวจและไมไดอยูในคิวใสคิวไว ทําเชนนี้ไปเรื่อย ๆ จนพบโหนดที่ ตองการ หรือเมื่อสํารวจครบทุกโหนด รูปที่ 4 โครงสรางขอมูลแบบกราฟ
  • 30. การสํารวจเริ่มตนที่ A นําโหนดขางเคียง B C ไวในคิว เมื่อ สํารวจ A เสร็จ นําขอมูลในคิว คือ Bออกมาสํารวจ แลวนําขอมูลขางเคียง คือ D E ใสคิว ตอนนี้คิวจะมี B D E อยู แลวนํา B ออกมาสํารวจทําเชนนี้ เรื่อย ๆ จะไดลําดับการสํารวจขอมูลคือ (A B C D E F G H) ตามตารางที่ 2 ตาราง 2 ลําดับการคนหาแบบกวางกอน
  • 31. เชนเดียวกับการคนหาแบบลึกกอน การคนหาแบบกวางกอนโดยใชโครงสรางขอมูล คิวมาชวยตองมีการกําหนดโหนดเริ่มตน และวิธีการนี้สามารถใชไดกับขอมูลบน โครงสรางแบบตนไมดวย ตารางเปรียบเทียบ การคนหาแนวลึกกอนและแนวกวางกอน การคนหาแนวลึกกอน การคนหาแนวกวางกอน 1.ใชหนวยความจํานอยกวา เพราะวาสถานะในเสนทางคนหาปจจุบันเทานั้นที่ถูกเก็บ (ในขณะใดๆ จะเก็บเสนทางเดียว พอจะไปเสนทางอื่นเสนทางที่ผานมาก็ไมจําเปนตอง เก็บ) 1.ใชหนวยความจํามากเพราะตองเก็บสถานะไวทุกตัวเพื่อหาเสนทางจากสถานะเริ่มตน ไปหาคําตอบ 2. อาจจะติดเสนทางที่ลึกมากโดยไมพบคําตอบ เชนในกรณีที่เสนทางนั้นไมมีคําตอบ และเปนเสนทางที่ยาวไมสิ้นสุด จะทําไมสามารถไปเสนทางอื่นได 2. จําไมติดเสนทางที่ลึกมาก ๆ โดยไมพบคําตอบ 3. ถาคําตอบอยูในระดับ n+1สถานะอื่นทุกตัวที่ระดับ 1ถึงระดับ n ไมจําเปนตองถูก กระจายจนหมด 3. ถาคําตอบอยูในระดับn+1 สถานะทุกตัวที่ระดับ 1ถึงระดับ n จะตองถูกกระจายจน หมด ทําใหมีสถานะที่ไมจําเปนในเสนทางที่จะไปสูคําตอบถูกกระจายออกดวย 4. เมื่อพบคําตอบไมสามารถรับประกันไดวาเสนที่ไดเปนเสนทางที่สั้นที่สุดหรือไม 4. ถามีคําตอบจะรับประกันไดวาจะพบคําตอบแน ๆ และจะไดเสนทางสั้นที่สุดดวย
  • 32. การคนหาแบบฮิวริสติก(Heuristic Search) การคนหาคําตอบอาศัยวิธีการทางฮิวริสติก (heuristic search) มีความ ความแตกตางจากการคนหาขอมูลแบบธรรมดาและแบบฮิวริสติกนั้นอยูที่การคนหา ขอมูลธรรมดา ผูททําการคนขอมูลจะตองตรวจสอบขอมูลทีละตัวทุกตัวจนครบ แต ี่ ฮิวริสติกจะไมลงไปดู ขอมูลทุกตัว วิธีการนี้จะเลือกไดคําตอบที่เหมาะสมใหกับการ คนหา ซึ่งมีขอดีคือ สามารถทําการ คนหาคําตอบจาก ขอมูลที่มีขนาดใหญมาก ๆ ได แตมีขอเสียคือคําตอบที่ไดเปนเพียงคําตอบที่ดี เทานั้นไมแนวาจะดีที่สุด แต เนื่องจากวาปญหาในบางลักษณะนั้นใหญมาก และเปนไปไมไดที่จะทํา การคนหา ดวยวิธี ธรรมดากระบวนการของฮิวริสติกจึงเปนสิ่งที่จําเปนในเรื่องของฮิวริสติกนั้น นอกจากจะมีการคนหาแบบฮิวริสติกแลว ยังมีอีกสิ่งหนึ่งที่สําคัญคือ ฮิวริสติก ฟงกชัน (heuristic function) ซึ่งหมายถึงฟงกชันที่ทําหนาที่ในการวัดขนาดของ ความเปน ไปไดในการแกปญหาซึ่งจะแสดงดวยตัวเลข วิธีการดังกลาวจะกระทํ าไดโดยการพิจารณาถึงวิธีการ (aspects) ตาง ๆ ที่ใชในการแกปญหา ณ สถานะ หนึ่งวาจะสามารถแกปญหาไดตามที่ตองการหรือไม โดยกําหนดเปนนํ้าหนักที่ ใหกับการแกปญหาของแตละวิธี นํ้าหนักเหลานี้จะถูกแสดงดวยตัวเลขที่กํากับไว กับโหนดตาง ๆ ในกระบวนการ คนหา และคาเหลานี้จะเปนตัวที่ใชในการประมาณ ความเปนไปไดวาเสนทางที่ผานโหนดนั้นจะมีความเปนไปไดในการนําไปสูหนทาง  การแกปญหาไดมากนอยแคไหน
  • 33. จุดประสงคที่แทจริงของฮิวริสติก ฟงกชันก็คือ การกํากับทิศทางของ กระบวนการคนหา เพื่อใหอยูในทิศทางที่ไดประโยชนสูงสุด โดยการ บอกวาเราควรเลือกเดินเสนทางไหนกอน ในกรณีที่มีเสน ทางมากกวา หนึ่งเสนทางตองเลือกกระบวนการคนหาแบบฮิวริสติก โดยปกติแลว จะตองอาศัยฮิวริสติกฟงกชัน ทําใหการแกปญหาหนึ่ง ๆ จะดีหรือไม ก็ ขึ้นอยูกับฮิวริสติกฟงกชันดังนั้นการคนหาแบบนี้จึงไมมีอะไรเปน  หลักประกันวาจะไดสิ่งที่ไมดีออกมาดวยเหตุนี้เอง เราจึงเรียกการ คนหา แบบฮิวริสติกนี้วา Weak Methods หรือจะกลาวอีกนัยหนึ่งคือ Weak Methodsเปนกระบวนการควบคุมโดยทั่วไป (general-purpose control stategies) ซึ่งการคนหาแบบนี้ สามารถแบงไดเปน
  • 34. การคนหาแบบปนเขา(Hill climbing) ฟงกชันฮิวริสติกสามารถนํามาชวยในกระบวนการคนหาเพื่อใหไดคําตอบ อยางรวดเร็วและมีประสิทธิภาพ วิธีการที่จะนําฟงกชันฮิวริสติกมาใชมีหลายวิธี ดวยกันขึ้นอยูกับวาจะใชในลักษณะใด เชนเลือกสถานะที่มีคาฮิวริสติกดีขึ้น แลว เดินไปยังสถานะนั้นเลยโดยไมตองสนใจสถานะที่มีคาฮิวริสติกแยกวา สถานะปจจุบันหรือวาจะเก็บสถานะทุกตัวไวแมวาคาฮิวริสติกจะแยลงแลว พิจารณาสถานะเหลานี้ทีหลัง เปนตน ในสวนตอไปนี้จะกลาวถึงอัลกอริทึมตาง ๆ ที่นําฟงกชันฮิวริสติกมาชวยในการคนหาคําตอบ โดยเริ่มจากอัลกอริทึมปน เขา (Hill climbing algorithm)
  • 35. การคนหาแบบฮิลไคลบิง(Hill climbing) เปนวิธีการคนหาขอมูลที่มีลักษณะคลายกับการปนภูเขา การที่นักปนภูเขาจะเดินทางไปถึงยอดภูเขา นักปนเขา จะตองมองกอนวายอดเขาอยูที่ใด แลวนักปนเขาจะตอง พยายามไปจุดนั้นใหได ลองนึกภาพของการปนภูเขาโลน ที่มองเห็นแตยอด และนักปเขากําลังปนภูเขาอยูเบื้องลาง ที่มีเสนทางเต็มไปหมด เพื่อที่จะเดินทางไปถึงยอดภูเขา โดยเร็วที่สุด นักปน เขาจะมองไปที่ยอดเขาแลวสังเกตวาทิศทางใดที่เมื่อปน แลวจะยิ่งใกลยอดเขา และหลีกเลี่ยงทิศทางที่เมื่อไปแลว จะทําใหตัวเองหางจากยอดเขา นักปนเขาจะตองทําเชนนี้ ไปเรื่อย ๆ จนกระทั่งถึงยอดเขา
  • 38. ตัวเลข h(i) ในรูปแสดงวา สถานะที่ i มีคาฮิวริสติกเทากับ h จากรูจะเห็นไดวา เริ่มตนจาก สถานะที่ 1 ที่มคาฮิวริสติกเทากับ -1 อัลกอริทึมปนเขาใชตัวกระทําการเพื่อสรางสถานะลูกตัว ี แรกของสถานะที่ 1 แลววัดคาฮิวริสติกได 0 ซึ่งมีคาดีขึ้น ถาสังเกตจากรูปที่ จะพบวาสถานะ ที่ 1 มีสถานะลูกทั้งหมด 3 ตัว แตในกรณีของอัลกอริทึมปนเขานี้ เมื่อไดสถานะลูกตัวแรกซึ่งมี คาอิวริสติกดีขึ้น อัลกอริทึมจะไมสรางสถานะลูกที่เหลืออีก 2 ตัว และจะไมมีการยอนกลับมาที่ สถานะลูกทั้ง 2 นี้ แมวาหลังจากนี้อัลกอริทึมจะคนไมพบคําตอบกลาวคือเปนการตัดทางเลือก ทิ้งไปเลย ซึ่งการทําเชนนี้แมวาจะมีโอกาสไมพบคําตอบแตก็มีขอดีที่เปนการชวยลดเวลาและ ปริภูมิที่ทําการคนหาจะลดลงอยางมากจากนั้นอัลกอริทึมมาสถานะที่ 2 แลวเริ่มสรางสถานะ ลูกไดสถานะที่ 3 ที่มคาฮิวริสติก -1 ซึ่งแยลงในกรณีที่แยลงเชนนี้ อัลกอริทึมจะไมไปยัง ี สถานะลูกตัวนี้และสรางสถานะลูกตัวตอไปโดยใชตัวกระทําการที่เหลือไดสถานะที่ 4 มีคาฮิวริ สติกเทากับ -1 ไมดีขึ้นเชนกันจึงสรางสถานะลูกตัวถัดไป เปนสถานะที่5 มีคาฮิวริสติกเทากับ 1 เปนคาที่ดีขึ้น อัลกอริทึมจะมายังสถานะนี้และคนพบคําตอบในที่สุด อัลกอริทึมปนเขานี้จะมีประสิทธิภาพมากดังเชนแสดงในตัวอยางนี้ซึ่งกระจายสถานะ ทั้งสิ้นเพียง 6 ตัวแลวพบคําตอบ เปรียบเทียบกับอัลกอริทึมการคนหาแนวกวางกอนซึ่งใช สถานะทั้งสิ้นถึง 11 ตัว อยางไรก็ดีอัลกอริทึมนี้จะมีประสิทธิภาพมาก ถาใชฟงกชันฮิวริสติกที่ ดีมาก ๆ ในกรณีทฟงกชันฮิวริสติกไมดีนัก อัลกอริทึมนี้ก็อาจหลงเสนทางได และอาจไมพบ ี่ คําตอบแมวาปริภูมิที่กําลังคนหามีคําตอบอยูดวยก็ตาม สาเหตุการหลงเสนทางประการหนึ่งมา จากการเลือกสถานะลูก ซึ่งอัลกอริทึมจะไมไดพิจารณาสถานะลูกทุกตัวโดยเมื่อพบสถานะลูก ตัวใดตัวหนึ่งที่ดีขึ้นก็จะเลือกเสนทางนั้นทันที อัลกอริทึมนี้สามารถดัดแปลงเล็กนอยให พิจารณาสถานะลูกทุกตัวใหครบกอน แลวเลือกสถานะลูกตัวที่มคาฮิวริสติกสูงสุด เมื่อทํา ี เชนนี้ก็จะทําใหอัลกอริทึมไดพิจารณาเสนทางที่ดีที่สุด ณ ขณะหนึ่ง ๆ ไดดีขึ้นเราเรียก อัลกอริทึมที่ดัดแปลงนี้วาอัลกอริทึมปนเขาชันสุด (Steepest ascent hill climbing)
  • 39. การคนหาดีสุดกอน(Best-first search) เปนกระบวนการคนหาขอมูลที่ไดนําเอาขอดีของทั้งการคนหาแบบลึก กอน(Depth firstsearch) และการคนหาแบบกวางกอน(Breadth first search) มารวมกันเปนวิธีการเดียว โดยที่แตละขั้นของการคนหาในโหนดลูก นั้น การคนหาแบบดีที่ดีกอนจะเลือกเอา โหนดที่ดีที่สุด (most promising) และการที่จะทราบวาโหนดใดดีที่สุดนี้สามารถทําไดโดยอาศัยฮิวริสติก ฟงกชัน ซึ่งฮิวริสติก ฟงกชันนี้จะทําหนาที่เหมือนตัววัดผล และใหผลของการ วัดนี้ออกมาเปนคะแนน รูปที่ 2.7 เปนตัวอยางของการคนหาแบบดีที่สุดกอน ขั้นตอนนี้เริ่มจากตอน 1 สรางโหนดราก(root node) ในขั้นตอน 2สรางโหนด ลูกB และ C แลวตรวจสอบโหนด B และ C ดวยฮิวริสติกฟงกชัน ไดผล ออกมาเปนคะแนนคือ 3 และ 1ตามลํ าดับ จากนั้นใหเลือกโหนด C เปน โหนดตอไปที่เราสนใจ เพราะมีคานอยกวา (หมายเหตุ ในการเลือกนี้จะเลือก คามากสุด หรือนอยสุดก็ได ขึ้นอยูกับลักษณะของปญหา) แลวสรางโหนด ลูกใหกับโหนด C ในขั้นตอน 3 ไดโหนด D และ Eแลวตรวจสอบคะแนน ได 4 และ 6 ตามลํ าดับ จากนั้นทํ าการเปรียบเทียบคาของโหนดทายสุด หรือเทอรมินอล โหนด(terminal node) ทุกโหนด วาโหนด ใดมีคาดีที่สุด ใน ที่นี้จะตองเลือกโหนด B เพราะมีคะแนนเพียง 3 (เลือกคะแนนตํ่าสุด) แลว สรางโหนด ลูกตามขั้นตอน 4 ได F และ G แลวตรวจ สอบคะแนน ได 6 และ 5 คะแนนตามลํ าดับ ทําเชนนี้เรื่อย ๆ จนพบคําตอบหรือจนไม สามารถ สรางโหนดตอไปไดอีก
  • 42. อัลกอริธึม: การคนหาแบบดีที่สุดกอน 1. เริ่มดวย OPEN ที่มีเพียงโหนดเริ่มตน 2. ทําจนกวาจะพบเปาหมาย หรือวาไมมีโหนดเหลืออยู ใน OPEN � เลือกโหนดที่ดีที่สุดใน OPEN � สรางโหนดลูกใหกับโหนดที่ดีที่สุดนั้น � สําหรับโหนดลูกแตละตัวใหทําดังตอไปนี้ i) ถาโหนดนั้นยังไมเคยถูกสรางมากอนหนานั้น ให ตรวจสอบคาของมันโดย ใชฮิวริสติกฟงชัน แลวเพิ่มเขาไป ใน OPEN แลวบันทึกวาเปนโหนดแม ii) ถาโหนดนั้นถูกสรางมากอนหนานี้แลว ใหเปลี่ยน โหนดแมของมัน ถาเสน ทางใหมที่ไดดีกวาโหนดแมตัวเดิม ในกรณีนี้ ให ปรับเปลี่ยนคาตามเสน ทางที่อาจจะเกิดขึ้น
  • 43. การคนหาแบบ Greedy (Greedy Algorithm) กรีดีอัลกอริธึม เปนการคนหาแบบดีที่สุดกอน(Best first search) ที่งายที่สุด หลักการของการคนหาแบบนี้คือ การเลือก โหนดที่ดีที่สุดตลอดเวลาอัลกอริธึม กรีดี 1. เลือกโหนดเริ่มตนมาหนึ่งโหนด 2. ใหโหนดที่เลือกมานี้เปนสถานะปจจุบัน 3. ใหทําตามขบวนการขางลางนี้จนกวาจะไมสามารถสราง โหนดลูกไดอีก 3.1 สรางสถานะใหมที่เปนโหนดลูกที่เปนไปไดทั้งหมด จากสถานะปจจุบัน 3.2 จากสถานะใหมที่สรางขึ้นมาทั้งหมด ใหเลือกสถานะ หรือ โหนดลูก ที่ดีที่สุดออกมาเพียงโหนดเดียว 4. กลับไปที่ขึ้นตอนที่ 2
  • 44. ตัวอยาง จากเรื่องการเดินทางของเซลแมนที่จะตองเดินทางไปยัง เมือง A B C D ซึ่งมีระยะทางตามตารางที่ 3 เราจะแกปญหานี้ดวย วิธีการของกรีดีบาง รูปที่ 9 การแกปญหาการเดินทางของเซลแมนดวยกรีดีอัลกอริธึม
  • 45. จากรูปที่ 9 การแกปญหาเริ่มจาก การเลือก A เปนเมืองเริ่มแรก จากนั้นทําการ สรางโหนดลูกB C และ D หารระยะทางระหวาง A ถึงเมืองเหลานี้ได 20 30 และ 50 ตามลําดับ เลือก B เปนเมืองที่จะเดินทางตอมา จากนั้นสรางโหนด ลูกของB ได C และ D และไดระยะทางเทากับ 15 และ 20 ตามลําดับ เลือก C เปนเมืองที่จะเดินทางตอไป จากนั้นสรางโหนดลูกให C ได D มีคา เทากับ 10 เลือกเดินมาที่ D เปนเมืองสุดทายกอนกลับไป A รวมระยะทาง เทากับ 20 + 15 + 10 + 50 = 95 รูปที่ 10 ขอมูลในรูปแบบกราฟ
  • 47. การคนหาแบบ A* การคนหาแบบ A* เปนอีกแบบของการคนหาแบบดีที่สุด กอน วิธีการเลือกโหนดที่จะใชในการดําเนินการตอจะพิจารณา จากโหนดที่ดีที่สุด แตในกรณีของ A* นี้จะมีลักษณะพิเศษ กวาคือ ในสวนของฮิวริสติกฟงกชัน ในกรณีของการคนหา แบบดีที่สุดกอนนั้น คาที่ไดจากฮิวริสติก ฟงกชัน จะเปนคาที่ วัดจาก โหนดปจจุบัน แตในกรณีของ A* คาของฮิวริสติก ฟงกชัน จะวัดจากคา 2 คาคือ คาที่วัดจากโหนดปจจุบันไปยัง โหนดราก และจากโหนดปจจุบันไปยังโหนดเปาหมาย ถาเรา ใหตัวแปร f แทนคาของฮิวริสติก ฟงกชัน g เปนฟงกชันที่ใช วัดคา cost จากสถานะเริ่มตนจนถึงสถานะปจจุบัน h' เปน ฟงกชันที่ใชวัดคา cost จากสถานะปจจุบันถึงสถานะเปาหมาย ดังนั้น f = g + h’