SlideShare a Scribd company logo
1 of 45
Download to read offline
ข้อมูล (Data)
        เป็ นองค์ประกอบทีสาคัญของระบบสารสนเทศ
                         ่
คอมพิวเตอร์ การจัดการข ้อมูล (data management)
               ี่ ้
เป็ นกลยุทธ์ทใชในการบริหารองค์การให ้มี
      ิ                        ิ
ประสทธิภาพ และต ้องมีการตัดสนใจทีถกต ้อง รวดเร็ว
                                   ่ ู
และทันต่อเหตุการณ์ในการทาธุรกิจในยุคปั จจุบน
                                           ั
ว ัตถุประสงค์ในการจ ัดการข้อมูล
       1.การเก็บข้อมูล สามารถนากลับมาใช ้
งานได ้อีกในภายหลัง
       2.การจ ัดข้อมูล สามารถนากลับมาใชงาน ้
                    ิ
ได ้อย่างมีประสทธิภาพ
       3.การปร ับปรุงข้อมูล สามารถปรับปรุง
ข ้อมูลให ้เป็ นข ้อมูลปั จจุบนอยูเสมอ
                              ั   ่
       4.การปกปองข้อมูล ป้ องกันข ้อมูลให ้มี
                      ้
                                     ้
ความปลอดภัยจากการลักลอบใชงาน หรือแก ้ไข
หน่วยข้อมูล (Data Unit)
       หน่วยของข ้อมูลคอมพิวเตอร์สามารถจัดเรียงจาก
ขนาดเล็กไปขนาดใหญ่ดงนี้  ั
       *บิต (bit) เชน 0 หรือ 1
                     ่
       *ต ัวอ ักษร (character) ตัวอักษร 1 ตัว
             *ASCII 1 bytes ( 8 bit)
             *Unicode 2 bytes (16 bit)
       *เขตข้อมูล (field) ข ้อความใด ๆ ซงประกอบ
                                          ึ่
ไปด ้วยกลุมตัวอักษรทีแทนข ้อเท็จจริง
           ่           ่

                                       ต ัวอ ักษร

                                       เขตข้อมูล
*ระเบียนข้อมูล (record) กลุมของเขตข ้อมูลต่างๆ
                                   ่
        *แฟม (file) กลุมของระเบียนข ้อมูลทีมโครงสร ้าง
           ้           ่                   ่ ี
เดียวกัน
                 แฟม ตาแหน่ง
                   ้



                                               แฟม
                                                 ้
                                                ระเบียนข้อมูล



                               ่          ่ ี   ั
      *ฐานข้อมูล (database) กลุมของแฟ้ มทีมความสมพันธ์กัน
                     ฐานข้อมูล

                  อาจารย์
                                 ึ
                            น ักศกษา
                    วิชา
เขตข้อมูลคีย ์ (Key Field)
      *เขตข้อมูลคีย ์ (key field)ใชสาหรับระบุระเบียนข ้อมูล
                                   ้
อย่างเฉพาะเจาะจง ข ้อมูลในกลุมนี้จะไม่ซ้ากับระเบียนอืน ๆ
                             ่                       ่




         เขตข้ อมูลคีย์
ชนิดของข้อมูล (Data Types)
       *ค่าตรรกะ (booleans) มีคา จริง กับ เท็จ
                                   ่
                                     ่     ี   ่
       *จานวนเต็ม (integers) เลขทีไม่มเศษสวนหรือ
           ่
ทศนิยม เชน 1, -1, 345, -543
       *จานวนจริง (floating-point values) จานวน
               ่
ตัวเลขใดๆ เชน 23.456, -4755.3333445
       *ตัวอักษร (character) ข ้อมูลทีแทนด ้วยกลุม
                                       ่         ่
                          ั              ่
ของบิต เป็ นตัวอักษรหรือสญลักษณ์ เชน A, S, B
       *สายอักขระ (strings) กลุมของตัวอักษร
                                 ่
       *วันทีและเวลา (date/time) ข ้อมูลวันทีหรือ
             ่                               ่
เวลา
       *ไบนารี (binary) ข ้อมูลทางคอมพิวเตอร์ เชน  ่
แฟ้ ม รูปภาพ ไฟล์วดโอ
                   ิ ี
ประเภทของแฟมข้อมูล      ้
       *แฟมหล ัก (master files) คือแฟ้ มทีเก็บ
             ้                                     ่
ข ้อมูลทีเกิดการเปลียนแปลงน ้อย หรือแทบไม่ม ี
           ่                ่
การเปลียนแปลงเลย อาจเรียกได ้ว่าเป็ น
         ่
แฟ้ มข ้อมูลถาวร หรือกึงถาวร  ่
                                     ิ
                 *แฟ้ มลูกค ้า แฟ้ มสนค ้า แฟ้ มข ้อมูล
การขายประจาเดือน
       *แฟมรายการเปลียนแปลง (transaction
               ้                ่
files) คือแฟ้ มทีเก็บข ้อมูลรายการทีเกิดการ
                      ่                   ่
เปลียนแปลงก่อนทีจะนาไปปรับปรุงให ้กับแฟ้ ม
     ่                    ่
รายการหลัก
                 *แฟ้ มรายการขายในแต่ละวัน
ล ักษณะการประมวลผลข้อมูล(Data Processing)
        *การประมวลผลแบบกลุม (batch processing)
                                 ่
        *การประมวลผลท ันที (real-time processing)
        - การประมวลผลแบบกลุม (batch processing) เป็ นการ
                                   ่
                                                    ่
ประมวลผลโดยรวบรวมข ้อมูลต่างๆ มาประมวลผลตามชวงเวลาที่
                     ่ ้
กาหนด โดยข ้อมูลทีใชในการประมวลผลอาจมาจากเอกสารต่างๆ
ข ้อมูลทีป้อนแบบออนไลน์ แต่ข ้อมูลจะยังไม่ถกประมวลผลทันที
         ่                                 ู
               ่                             ้    ่
จนกว่าจะถึงชวงเวลาทีกาหนดไว ้ เพือลดค่าใชจ่าย เชน ค่า
                        ่            ่
                              ี
น้ าประปา ค่าไฟฟ้ า ยอดบัญชบัตรเครดิต
        - การประมวลผลท ันที (real-time processing) เป็ นการ
                                               ่      ่
ประมวลผลทีได ้ผลลัพธ์ทันทีเมือทารายการเข ้าสูระบบ เชน การ
             ่               ่ ่
ถอนเงินจากตู ้ ATM ทีต ้องมีการปรับเปลียนยอดเงินในบัญช ี ซงถ ้า
                      ่                ่                  ึ่
การประมวลผลทาแบบออนไลน์ จะเรียกว่า online transaction
processing (OLTP)
การเข้าถึงข้อมูล (Data Access)
       การเข้าถึงข้อมูลแบบลาด ับ (sequential data
                                              ั
access) เป็ นการเข ้าถึงข ้อมูลแบบทีต ้องอาศยการอ่าน
                                      ่
ข ้อมูลตังแต่ต ้น จนถึงข ้อมูลทีต ้องการ เหมาะสาหรับการ
         ้                      ่
อ่านข ้อมูลปริมาณมากและเรียงลาดับ
                                   ่
       การเข้าถึงข้อมูลแบบสุม (random data access)
                                        ้
การเข ้าถึงข ้อมูลลักษณะนีจะต ้องใชกลไกการหาตาแหน่ง
                            ้
ระเบียนวิธตางๆ เหมาะสาหรับการค ้นหาข ้อมูลจานวนไม่
           ี ่
มาก และมีการเพิม ลบ แก ้ไขข ้อมูลเป็ นประจา
                   ่
การจ ัดโครงสร้างแฟมข้อมูล
                  ้
• มีปจจ ัยทีตองพิจารณาในการเลือกโครงสร้าง
     ั        ่ ้
  ได้แก่
   – ปริมาณข ้อมูล ความถีในการดึงข ้อมูล ความถีในการ
                            ่                  ่
     ปรับปรุงข ้อมูล จานวนครังทีอานข ้อมูลจาก
                               ้ ่ ่
     หน่วยความจาสากรองต่อการดึงข ้อมูล
• การจ ัดโครงสร้างข้อมูลแบบต่างๆ
   – แฟ้ มลาดับ (sequential file)
            ่
   – แฟ้ มสุม ( direct file หรือ hash file)
   – แฟ้ มดรรชนี (indexed file)
   – แฟ้ มลาดับดรรชนี (indexed sequential file)
ต ัวอย่างแฟมดรรชนี
           ้




ตัวอย่างการแทรก
record
การจ ัดโครงสร้างแฟมข้อมูล
                  ้
แฟมลาด ับดรรชนี (indexed sequential file) คือ
   ้
ตัวระเบียนในแฟ้ มข ้อมูลไม่เรียงตามลาดับ แต่เรียง
เฉพาะคียในดรรชนี และมีการกาหนดดรรชนีบางสวน
          ์                                     ่
(partial indexed)เพิมขึนมา
                     ่ ้
ต ัวอย่างแฟมลาด ับดรรชนี
           ้
ต ัวอย่างการแทรก record




เปรียบเทียบโครงสร้างแฟมข้อมูล
                      ้
แฟมโปรแกรมและแฟมข้อมูล
  ้            ้
• แฟมโปรแกรม คือแฟ้ มโปรแกรมประกอบด ้วย
     ้
        ั่                               ่
  ชุดคาสงต่างๆ ทีทางานอย่างใดอย่างหนึง เชน
                 ่                   ่
  โปรแกรมประมวลผลคา Microsoft Word

    ประเภทแฟมโปรแกรม
            ้              ส่ วนขยาย
    Command                COM
    Application Program    EXE
    Batch Program          BAT
    Dynamic Link Library   DLL
• แฟมข้อมูล คือแฟ้ มทีได ้จากการบันทึกข ้อมูล
      ้                    ่
                        ่ึ
  ด ้วยแฟ้ มโปรแกรม ซงแฟ้ มข ้อมูลบางประเภท
  สร ้างและเปิ ดด ้วยโปรแกรมใดโปรแกรมหนึง ่
  โดยเฉพาะ
    ประเภทแฟมข้ อมูล
            ้          ส่ วนขยาย      โปรแกรม           มาตรฐาน
   Adobe Photoshop     PSD         Adobe
   Drawing                         Photoshop
   Bitmap              BMP                          


   Conceptual Data     CDM         PowerDesigner
   Model                           DataArchitect
   Microsoft Word      DOC         Microsoft Word
   Document
   Visio Drawing       VSD         Visio
ระบบแฟมข้อมูล (File Systems)
             ้
          ในอดีตการจัดเก็บข ้อมูลด ้วยคอมพิวเตอร์มลักษณะเป็ น
                                                     ี
    แฟ้ มข ้อมูล เมือมีการขยายระบบก็เริมมีการเก็บข ้อมูลทีอสระต่อกัน
                    ่                    ่                ่ ิ
                              ่                    ้          ่
    ทาให ้มีการเก็บข ้อมูลอยูหลายที่ ข ้อมูลเหล่านันอาจไม่ใชข ้อมูลที่
    เป็ นปั จจุบัน การขยายระบบจึงจาเป็ นอย่างยิงทีจะต ้องคานึงถึงการ
                                                ่ ่
                           ึ่
    จัดเก็บข ้อมูลด ้วย ซงการเก็บข ้อมูลแบบเดิมทาให ้เกิดปั ญหาต่างๆ
    ดังนีปญหาของแฟมข้อมูล
         ้ ั             ้
-ความซ้าซอนของข ้อมูล (data redundancy)
               ้
-สอดคล ้องกันของข ้อมูล (data inconsistency)
-ข ้อมูลแยกอิสระต่อกัน (data isolation)
-ความไม่ปลอดภัยของข ้อมูล (poor security)
-ขาดบูรณภาพของข ้อมูล (lack of data integrity)
-ความขึนต่อกันระหว่างโปรแกรมประยุกต์กับโครงสร ้างของ
           ้
    แฟ้ มข ้อมูล (application / data
ระบบฐานข้อมูล (DATABASE SYSTEMS)
• ระบบฐานข้อมูล (database) หมายถึง กลุมของข ้อมูลทีม ี
                                                ่           ่
          ั
  ความสมพันธ์กนและถูกนามาจัดเก็บในทีเดียวกัน โดย
                  ั                           ่
  ข ้อมูลอาจเก็บไว ้ในแฟ้ มข ้อมูลเดียวกันหรือแยกเก็บหลาย
                                          ั
  ๆ แฟ้ มข ้อมูล แต่ต ้องมีการสร ้างความสมพันธ์ระหว่างข ้อมูล
             ิ
  เพือประสทธิภาพในการจัดการข ้อมูล
      ่
• ระบบจ ัดการฐานข้อมูล (Database Management
                                            ่ ้
  System:DBMS) เป็ นซอฟต์แวร์ระบบทีใชในการจัดการ
                               ื่                 ้
  ฐานข ้อมูล เปรียบเหมือนสอกลางระหว่างผู ้ใชและโปรแกรม
               ่    ่ ่                ้
  ประยุกต์ตางๆทีเกียวข ้องกับการใชฐานข ้อมูล
ข้อดีของระบบฐานข้อมูล
            ้ ้
-ลดความซาซอนของข ้อมูล (reduce dataredundancy)
         ้
-การใชข ้อมูลร่วมกัน (data sharing)
-ข ้อมูลมีความถูกต ้องมากขึน (improved data
                           ้
  integrity)
-เพิมความปลอดภัยให ้กับข ้อมูล (increased security)
     ่
-มีความเป็ นอิสระของข ้อมูล (data independency)
ชนิดของโครงสร้างข้อมูล
โครงสร้างข้อมูล
         ี                               ่               ้
-เป็ นวิธจัดเก็บข ้อมูลในคอมพิวเตอร์ เพือให ้สามารถนามาใชได ้อย่างมี
             ิ
    ประสทธิภาพ
-การใชงานโครงสร ้างข ้อมูล ต ้องมีขนตอนวิธทเหมาะสม จึงจะสามารถใช ้
           ้                        ั้        ี ี่
                          ิ
    งานได ้อย่างมีประสทธิภาพ
                                       ่
-การออกแบบโครงสร ้างข ้อมูลทีดจะชวยลดเวลาในการกระทาการและลด
                                ่ ี
               ้
    การใชงานในพืนทีความจาด ้วย
                    ้ ่
ว ัตถุประสงค์
                      ้ ่
โครงสร ้างข ้อมูลใชเพือวัตถุประสงค์ 3 ประการ
1.การจัดเก็บข ้อมูลในโลกแห่งความจริง
2.เครืองมือของนักเขียนโปรแกรม
       ่
3.แบบจาลอง
การจ ัดเก็บข้อมูลในโลกแห่งความจริง
       เป็ นการนาข ้อมูลทีมอยูเข ้าไปเก็บในเครือง
                          ่ ี ่                ่
คอมพิวเตอร์ อาทิ
        ิ ่
-ประวัตสวนตัว
   ิ
-สนค ้าคงคลัง
-การขาย
-การเงิน
-บุคลากร เป็ นต ้น
        ี ั                  ่   ้      ื่
สมมติมบตรข ้อมูลจานวนหนึงใชบันทึกชอ ทีอยู่ ่
                ั
หมายเลขโทรศพท์ หากต ้องการเขียนโปรแกรมเพือ   ่
                                     ่ิ
จัดการกับบัตรเหล่านี้ จะต ้องพิจารณาสงต่างๆ
-วิธการจัดเก็บลงในหน่วยความจา
    ี
                             ้
-วิธการดังกล่าวสามารถใชได ้กับข ้อมูลปริมาณมากเพียงใด
     ี
-สามารถเพิมข ้อมูลใหม่ ลบข ้อมูลเก่าได ้อย่างรวดเร็วหรือไม่
             ่
-สามารถค ้นหาบัตรทีต ้องการได ้เร็วเพียงใด
                      ่
                                             ้ ี
-ถ ้าต ้องการจัดบัตรให ้เรียงตามตัวอักษร จะใชวิธใด
เครืองมือของน ักเขียนโปรแกรม
    ่
แบบจาลอง
  ้
ใชโครงสร ้างข ้อมูลเพือเป็ นแบบจาลองโลกแห่งความจริง
                      ่
                ้       ้
       -กองซอนใชจาลองการทางานบางอย่างของคอมพิวเตอร์
                          ้
       -แถวคอย ใชจาลองการเข ้าแถวคอยของลูกค ้าในธนาคาร
ล ักษณะของข้อมูล
•                                    ื่
       ข้อมูลทีมความถูกต้องและเชอถือได้ (accuracy) ข ้อมูลจะมีความถูกต ้อง
                 ่ ี
          ่ื
และเชอถือได ้มากน ้อยเพียงใดนัน และการควบคุมการประมวลผลการควบคุม
                                   ้
ข ้อมูลนาเข ้าเป็ นการกระทาเพือให ้เกิดความ มั่นใจว่าข ้อมูลนาเข ้ามีความถูกต ้อง
                                ่
    ื่
เชอถือได ้
• ข้อมูลตรงตามความต้องการของผูใช ้ (relevancy) ได ้แก่ การเก็บเฉพาะ
                                           ้
                  ้
ข ้อมูลทีผู ้ใชต ้องการเท่านัน ไม่ควร เก็บข ้อมูลอืน ๆ ทีไม่จาเป็ นหรือไม่เกียวข ้อง
             ่               ้                     ่        ่                ่
กับการใชงาน    ้
• ข้อมูลมีความท ันสม ัย (timeliness) ข ้อมูลทีดนันนอกจากจะเป็ นข ้อมูลทีม ี
                                                      ่ ี ้                     ่
                     ่ื
ความถูกต ้องเชอถือได ้แล ้วจะ ต ้องเป็ นข ้อมูลทีทนสมัย
                                                  ่ ั
การเรียงลาด ับข้อมูล เป็ นการนาเอาข ้อมูลในเรคอร์ดมาจัดเรียงลาดับจากน ้อย
                                      ้
ไปหามากหรือจากมากไปหาน ้อยโดยใชทุกฟิ ลด์หรือรวมหลาย ๆ ฟิ ลด์ในการ
เรียงลาดับก็ได ้
วิธการเรียงลาด ับอย่างง่าย โดยทาตามลาดับขันตอนดังภาพ
    ี                                         ้
การค้นหาข้อมูล (searching)
          การค ้นหาคาตอบ หรือการค ้นหาข ้อมูลในทาง
คอมพิวเตอร์มกจะกระทาบนโครงสร ้างข ้อมูลแบบต ้นไม ้ และกราฟ
                ั
ทังนีเพราะโครงสร ้างข ้อมูลในลักษณะนีสามารถทาให ้การค ้นหาทา
   ้ ้                                   ้
ได ้สะดวกและสามารถพลิกแพลงการค ้นหาได ้ง่าย ในความเป็ นจริง
แล ้ว การค ้นหาข ้อมูลบางครังสามารถกระทาบนโครงสร ้างข ้อมูล
                             ้
                  ่
ชนิดอืนก็ได ้เชน อาเรย์ แสตก และคิว แต่การจัดข ้อมูลใน
        ่
              ่
โครงสร ้างเชนนี้ มีข ้อจากัดในการค ้นหาข ้อมูลมาก การค ้นหาทาได ้
                                                ึ่  ้
แบบเรียงลาดับ(Sequencial Search) เท่านัน ซงใชได ้กับข ้อมูลที่
                                            ้
มีขนาดเล็ก ดังนันในการค ้นหาข ้อมูลทีมขนาดใหญ่ ก่อนการค ้นหา
                    ้                  ่ ี
หรือระหว่างการค ้นหา ข ้อมูลทีจะถูกค ้นจะต ้องถูกจัดให ้อยูใน
                               ่                           ่
รูปแบบของต ้นไม ้ หรือกราฟเท่านัน การค ้นหาข ้อมูลบนโครงสร ้าง
                                 ้
ต ้นไม ้และกราฟสามารถจ าแนกได ้ 2 แบบคือ การค ้นหาแบบไบล์ด
                                     ิ
(Blind Search) และการค ้นหาแบบฮวริสติก(Heuristic Search)
การค้นหาแบบไบล์ด(Blind Search)
        เป็ นการค ้นหาแบบทีเดินทางจากโหนดหนึงไปยังอีกโหนด
                                ่                       ่
หนึงโดยอาศัยทิศทางเป็ นตัวกาหนดการค ้นหา ไม่ต ้องมีข ้อมูล
     ่
             ่                    ิ
อะไรมาชวยเสริมการตัดสนใจว่าจะเดินทางต่อไปอย่างไร นอกจาก
               ึ่
ทิศทางซงเป็ นรูปแบบตายตัว การค ้นหาแบบไบล์ดสามารถ
แบ่งย่อยได ้ดังนี้ คือ การค ้นหาทัหมด และการค ้นหาบางสวน
                                         ้                    ่
       - การค ้นหาทังหมด(exhaustive search) คือ การค ้นหา
                        ้
ทังหมดของปริภมสถานะ
   ้                ู ิ
                          ่
       - การค ้นหาบางสวน (partial search) การค ้นหาเพียง
บางสวนของปริภมสถานะ ซงในความเป็ นจริงการค ้นหาสวนมากใช ้
         ่           ู ิ            ่ึ                    ่
                            ่
การค ้นหาเฉพาะบางสวนเท่านันเนืองจากปริภมสถานะมักมีขนาด
                                       ้      ่       ู ิ
ใหญ่ เท่าให ้ไม่สามารถค ้นหาได ้ทังหมด ดังนันจึงมีความเป็ นไปได ้
                                            ้       ้
                  ่           ่
ว่าคาตอบทีได ้อาจไม่ใชคาตอบทีดทสด การค ้นหาแบบนีสามารถ
                                           ่ ี ี่ ุ         ้
แบ่งได ้เป็ น 2 ประเภทคือ การค ้นหาแบบลึกก่อน(Depth first
search) และการค ้นหาแบบกว ้างก่อน (Breadth first search)
การค้นหาแบบลึกก่อน(Depth first search)
         การค ้นหาแบบลึกก่อนเป็ นการค ้นหาทีกาหนดทิศทาง
                                                ่
จากรูปของโครงสร ้างต ้นไม ้ ทีเริมต ้นจากโหนดราก(Root
                              ่ ่
node) ทีอยูบนสุด แล ้วเดินลงมาให ้ลึกทีสด เมือถึงโหนด
            ่ ่                          ่ ุ      ่
ล่างสุด(Terminal node) ให ้ย ้อนขึนมาทีจดสูงสุดของกิงเดียว
                                   ้      ่ ุ        ่ ่
กันทีมกงแยกและยังไม่ได ้เดินผ่าน แล ้วเริมเดินลงจนถึงโหนด
     ่ ี ิ่                                 ่
                 ่ ้
ลึกสุดอีก ทาเชนนีสลับไปเรือยจนพบโหนดทีต ้องการหาหรือ
                            ่                 ่
สารวจครบทุกโหนดแล ้วตามรูปที่ 1 การค ้นหาแบบลึกก่อนจะมี
ลาดับการเดินตามโหนดดังตัวเลขทีกากับไว ้ในแต่ละโหนด
                                     ่




    รูปที่ 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 first
search)
การค ้นหาแบบกว ้างก่อนเป็ นการกาหนดทิศทางการค ้นหา
แบบทีละระดับของโครงสร ้างต ้นไม ้โดยเริมจากโหนดราก
       ่                                 ่
                                     ้
(ระดับที่ 0) แล ้วลงมาระดับที่ 1 จากซายไปขวา เมือเสร็จ
                                                ่
                            ้          ่          ่ ้ ่
ระดับที่ 1 ไประดับที่ 2จากซายไปขวาเชนกัน ทาเชนนีเรือย
ๆ จนพบโหนดทีต ้องการตามรูปที่ 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 สถานะอื่นทุกตัวที่
                  ่                                      3. ถ้าคาตอบอยูในระดับ n+1 สถานะทุกตัวที่ระดับ 1
                                                                        ่
  ระดับ 1ถึงระดับ n ไม่จาเป็ นต้องถูกกระจายจนหมด         ถึงระดับ n จะต้องถูกกระจายจนหมด ทาให้มีสถานะที่
                                                         ไม่จาเป็ นในเส้นทางที่จะไปสู่ คาตอบถูกกระจายออก
                                                         ด้วย
                                       ่
  4. เมื่อพบคาตอบไม่สามารถรับประกันได้วาเส้นที่ได้                                       ่
                                                         4. ถ้ามีคาตอบจะรับประกันได้วาจะพบคาตอบแน่ ๆ
  เป็ นเส้นทางที่ส้ ันที่สุดหรื อไม่                     และจะได้เส้นทางสั้นที่สุดด้วย
ิ
การค้นหาแบบฮวริสติก(Heuristic Search)

        มีความความแตกต่างจากการค ้นหาข ้อมูลแบบธรรมดาและแบบฮวริสติกนันอยูท ี่                                         ิ         ้       ่
การค ้นหาข ้อมูลธรรมดา ผู ้ทีทาการค ้นข ้อมูลจะต ้องตรวจสอบข ้อมูลทีละตัวทุกตัวจน
                                                    ่
                     ิ
ครบ แต่ฮวริสติกจะไม่ลงไปดู ข ้อมูลทุกตัว ซงมีข ้อดีคอ สามารถทาการ ค ้นหา                ึ่             ื
คาตอบจาก ข ้อมูลทีมขนาดใหญ่มาก ๆ ได ้ แต่มข ้อเสยคือคาตอบทีได ้เป็ นเพียง
                                    ่ ี                                                      ี     ี            ่
คาตอบทีด ี เท่านันไม่แน่ว่าจะดีทสด แต่เนืองจากว่าปั ญหาในบางลักษณะนันใหญ่
                 ่          ้                             ี่ ุ              ่                                                 ้
มาก และเป็ นไปไม่ได ้ทีจะทา การค ้นหาด ้วยวิธ ี ธรรมดากระบวนการของฮวริสติกจึง
                                          ่                                                                               ิ
        ิ่ ่                                          ิ
เป็ นสงทีจาเป็ นในเรืองของฮวริสติกนัน นอกจากจะมีการค ้นหาแบบฮวริสติกแล ้ว ยังมี
                                  ่                            ้                                                    ิ
     ิ่
อีกสงหนึงทีสาคัญคือ วิธการดังกล่าวจะกระท าได ้โดยการพิจารณาถึงวิธการ
                ่ ่                             ี                                                                           ี
                                 ่ ้
(aspects) ต่าง ๆ ทีใชในการแก ้ปั ญหา ณ สถานะหนึงว่าจะสามารถแก ้ปั ญหาได ้                        ่
ตามทีต ้องการหรือไม่ โดยกาหนดเป็ นน้ าหนักทีให ้กับการแก ้ปั ญหาของแต่ละวิธ ี
          ่                                                                                ่
โหนดนันจะมี ความเป็ นไปได ้ในการนาไปสูหนทางการแก ้ปั ญหาได ้มากน ้อยแค่ไหน
              ้                                                                 ่
                                                  ิ                  ั
จุดประสงค์ท ี่ แท ้จริงของฮวริสติก ฟั งก์ชนก็คอ การกากับทิศทางของกระบวนการ          ื
ค ้นหา เพือให ้อยู่ในทิศทางทีได ้ประโยชน์สงสุด โดยการบอกว่าเราควรเลือกเดินเสน
                   ่                                    ่                     ู                                                       ้
                                        ี่ ี ้
ทางไหนก่อน ในกรณีทมเสน ทางมากกว่าหนึงเสนทางต ้องเลือกกระบวนการค ้นหา                  ่        ้
แบบฮวริสติก โดยปกติแล ้วจะต ้องอาศัยฮวริสติกฟั งก์ชน ทาให ้การแก ้ปั ญหาหนึง ๆ
            ิ                                                             ิ                          ั                            ่
                               ่              ิ                  ั
จะดีหรือไม่ ก็ขนอยูกับฮวริสติกฟั งก์ชนดังนันการค ้นหาแบบนีจงไม่มอะไรเป็ นหลัก
                       ึ้                                                         ้                         ้ ึ   ี
                          ิ่ ่
ประกันว่าจะได ้สงทีไม่ดออกมาด ้วยเหตุนเอง เราจึงเรียกการ ค ้นหาแบบฮวริสติกนีวา
                                            ี                          ้ี                                               ิ           ้ ่
Weak Methods หรือจะกล่าวอีกนัยหนึงคือ Weak Methods เป็ นกระบวนการควบคุม
                                                                   ่
โดยทั่วไป (general-purpose control stategies)                                                            ึ่
                                                                                                     ซงการค ้นหาแบบนี้ สามารถ
แบ่งได ้เป็ น
การค้นหาแบบปี นเขา(Hill climbing)
       ั ิ                     ่
ฟั งก์ชนฮวริสติกสามารถนามาชวยในกระบวนการค ้นหาเพือให ้              ่
                                     ิ
ได ้คาตอบอย่างรวด เร็วและมีประสทธิภาพ วิธการทีจะนา ี          ่
ฟั งก์ชนฮวริสติกมาใชมีหลายวิธด ้วยกันขึนอยูกับว่าจะใช ้ ใน
        ั ิ           ้            ี         ้   ่
              ่              ่ ี ่ ิ
ลักษณะใด เชนเลือกสถานะทีมคาฮวริสติกดีขน แล ้วเดินไปยัง
                                                     ึ้
                                           ่ ี ่ ิ
สถานะนันเลยโดยไม่ต ้องสนใจสถานะทีมคาฮวริสติกแย่กว่า
           ้
สถานะปั จจุบันหรือว่าจะเก็บสถานะทุกตัวไว ้แม ้ว่าค่าฮวริสติก    ิ
จะแย่ลงแล ้ว พิจารณาสถานะเหล่านีทหลัง เป็ นต ้น ในสวน
                                       ้ ี                        ่
ต่อไปนีจะกล่าวถึงอัลกอริทมต่าง ๆ ทีนาฟั งก์ชนฮวริสติกมา
         ้                 ึ             ่                ั ิ
  ่
ชวยในการค ้นหาคาตอบ โดยเริมจากอัลกอริทมปี นเข ้า (Hill
                                 ่                      ึ
climbing algorithm)




       รูปที่ 5 แสดงลักษณะการค ้นหาแบบ Hill climbing
้ ั  ั ิ
ต ัวอย่างการใชฟงก์ชนฮวริสติก โดยอ ัลกอริทมปี นเขาอย่างง่ายโดย
                                         ึ
                    ปัญหาโลกของ บล๊อก




           รูปที่ 6 การค ้นหาแบบ Hill climbing
ตัวเลข h(i) ในรูปแสดงว่า สถานะที่ i มีคาฮวริสติกเท่ากับ h จากรู ้จะเห็น ่ ิ
                                                       ่ ี ่ ิ
ได ้ว่า เริมต ้นจากสถานะที่ 1 ทีมคาฮวริสติกเท่ากับ -1 อัลกอริทมปี นเขาใชตัว
               ่                                                                             ึ              ้
กระทาการเพือสร ้างสถานะลูกตัวแรกของสถานะที่ 1 แล ้ววัดค่าฮวริสติกได ้ 0
                             ่                                                                   ิ
   ึ่     ่        ึ้            ั
ซงมีคาดีขน ถ ้าสงเกตจากรูปที่ จะพบว่าสถานะที่ 1 มีสถานะลูกทังหมด 3 ตัว                             ้
แต่ในกรณีของอัลกอริทมปี นเขานี้ เมือได ้สถานะลูกตัวแรกซงมีคาอิวริสติกดีขน
                                            ึ                      ่                    ึ่     ่              ึ้
อัลกอริทมจะไม่สร ้างสถานะลูกทีเหลืออีก 2 ตัว และจะไม่มการย ้อนกลับมาที่
                 ึ                                         ่                          ี
สถานะลูกทัง 2 นี้ แม ้ว่าหลังจากนีอัลกอริทมจะค ้นไม่พบคาตอบกล่าวคือเป็ น
                         ้                                   ้              ึ
                                                    ึ่
การตัดทางเลือกทิง ไปเลย ซงการทาเชนนีแม ้ว่าจะมีโอกาสไม่พบคาตอบแต่ก็
                                     ้                                   ่ ้
            ี่                     ่
มีข ้อดีทเป็ นการชวยลด เวลาและปริภมททาการค ้นหาจะลดลงอย่างมาก        ู ิ ี่
จากนันอัลกอริทมมาสถานะที่ 2 แล ้วเริมสร ้างสถานะลูกได ้สถานะที่ 3 ทีมคาฮว
        ้                      ึ                                       ่                               ่ ี ่ ิ
                      ึ่                                         ่
ริสติก -1 ซงแย่ลงในกรณีทแย่ลงเชนนี้ อัลกอริทมจะไม่ไปยังสถานะลูกตัวนี้
                                                ี่                                ึ
                                                               ้
และสร ้างสถานะลูกตัวต่อไปโดยใชตัวกระทา การทีเหลือได ้สถานะที่ 4 มีคาฮว              ่                      ่ ิ
                                       ี ึ้   ่
ริสติกเท่ากับ -1 ไม่ดขนเชนกันจึงสร ้างสถานะลูกตัวถัดไป เป็ นสถานะที5 มี                              ่
      ิ
ค่าฮวริสติกเท่ากับ 1 เป็ นค่าทีดขน อัลกอริทมจะมายังสถานะนีและค ้นพบ
                                                   ่ ี ึ้                     ึ            ้
คาตอบในทีสด                ่ ุ
การค้นหาดีสดก่อน(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
                  ่ ึ้
ตัวอย่าง จากเรืองการเดินทางของเซลแมนทีจะต ้องเดินทางไปยังเมือง
                       ่                                ่
ABCD
   ึ่
ซงมีระยะทางตามตารางที่ 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* ค่าของฮวริสติก ฟั งก์ชน จะวัดจากค่า 2 ค่าคือ ค่าทีวดจาก   ่ ั
โหนดปั จจุบน     ั
ไปยังโหนดราก และจากโหนดปั จจุบนไปยังโหนดเป้ าหมาย ถ ้าเราให ้ตัว
                                        ั
แปร f แทนค่า
         ิ             ั             ั ่ ้
ของฮวริสติก ฟั งก์ชน g เป็ นฟั งก์ชนทีใชวัดค่า cost จากสถานะเริมต ้น  ่
จนถึงสถานะ
             ั           ั ่ ้
ปั จจุบน h' เป็ นฟั งก์ชนทีใชวัดค่า cost จากสถานะปั จจุบนถึงสถานะ
                                                              ั
เป้ าหมาย ดังนัน   ้


                               f = g + h’
อัลกอริทม A* (A* Search) เป็ นการขยายอัลกอริทมดี
           ึ                                             ึ
สุดก่อนโดยพิจารณาเพิมเติมถึงต ้นทุนจากสถานะเริมต ้น
                              ่                        ่
                                    ้
มายังสถานะปั จจุบนเพือใชคานวณค่าฮวริสติกด ้วย ใน
                       ั  ่                     ิ
กรณีของอัลกอริทม A* เราต ้องการหาค่าตาสุดของ
                     ึ                              ่
        ั
ฟั งก์ชน f' ของสถานะ s นิยามดังนี้
                                      f'(s)=g(s)+h'(s)
                                  ั ่
          โดยที่ g คือฟั งก์ชนทีคานวณต ้นทุนจากสถานะ
เริมต ้นมายังสถานะปั จจุบน h' คือฟั งก์ชนทีประมาณ
   ่                            ั                 ั ่
ต ้นทุนจากสถานะปั จจุบนไปยังคาตอบ
                            ั
อัลกอริทม A* จะทาการค ้นหาโดยวิธเดียวกันกับอัลกอริทมดีสดก่อนทุกประการ
             ึ                         ี                  ึ       ุ
                 ั ิ        ่ ้ ่
ยกเว ้น ฟั งก์ชนฮวริสติกทีใชเปลียนมาเป็ น f' (ต่างจากอัลกอริทมดีสดก่อนที่
                                                                    ึ ุ
ใช ้ h') โดยการใช ้ f' อัลกอริทม A* จึงให ้ความสาคัญกับสถานะหนึง ๆ 2
                                   ึ                                    ่
                           ่ ี           ื          ่           ่
ประการ คือ (1) สถานะทีดต ้องมี h' ดีคอต ้นทุนเพือจะนาไปสูคาตอบหลังจาก
นีต ้องน ้อย และ (2) ต ้นทุนทีจ่ายไปแล ้วกว่าจะถึงสถานะนี้ (g) ต ้องน ้อยด ้วย
  ้                              ่
                               ้
เราจึงได ้ว่า A* จะค ้นหาเสนทางทีให ้ต ้นทุนโดยรวมน ้อยทีสดตามค่า f' ซงต่าง
                                     ่                      ่ ุ              ึ่
จากอัลกอริทมดีสดก่อน ทีเน ้นความสาคัญของสถานะทีต ้นทุนหลังจากนี้ทจะ
               ึ     ุ       ่                         ่                        ี่
        ่
นาไปสูคาตอบต ้องน ้อย โดยไม่สนใจว่าต ้นทุนทีจายไปแล ้วกว่าจะนามาถึง
                                                ่ ่
                   ี
สถานะนีต ้องเสยไปเท่าไหร่
           ้




รูปที่ 11 แสดงการค ้นหาด ้วยอัลกอริทม A* กันสถานะในรูปที่ 8 โดยสมมติให ้
                                      ึ
ต ้นทุนหรือระยะห่างระหว่างสถานะพ่อแม่ไปยังสถานะลูกเท่ากับ 1 หน่วย เชน่
         ต ้น ทุนจริง (g) จาก A ไปยัง B,C หรือ D มีคาเท่ากับ 1 หน่วย
                                                    ่
นางสาว หัทยา เชื้อสมเกียรติ ม.5 pp

More Related Content

What's hot

การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูลYongyut Nintakan
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูลABELE Snvip
 
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลkruthanyaporn
 
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูลบทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูลRungnapa Rungnapa
 
การจัดการข้อมูล
การจัดการข้อมูลการจัดการข้อมูล
การจัดการข้อมูลWanphen Wirojcharoenwong
 
ประโยชน์ของอินเทอร์เน็ต กศน.ม.ต้น
ประโยชน์ของอินเทอร์เน็ต กศน.ม.ต้นประโยชน์ของอินเทอร์เน็ต กศน.ม.ต้น
ประโยชน์ของอินเทอร์เน็ต กศน.ม.ต้นpeter dontoom
 
ระบบฐานข้อมูลเบื้องต้น
ระบบฐานข้อมูลเบื้องต้นระบบฐานข้อมูลเบื้องต้น
ระบบฐานข้อมูลเบื้องต้นTophuto Piyapan
 
การบริหารจัดการข้อมูลข่าวสารเพื่อเพิ่มประสิทธิภาพในการปฏิบัติงาน
การบริหารจัดการข้อมูลข่าวสารเพื่อเพิ่มประสิทธิภาพในการปฏิบัติงานการบริหารจัดการข้อมูลข่าวสารเพื่อเพิ่มประสิทธิภาพในการปฏิบัติงาน
การบริหารจัดการข้อมูลข่าวสารเพื่อเพิ่มประสิทธิภาพในการปฏิบัติงานSatapon Yosakonkun
 

What's hot (14)

Database
DatabaseDatabase
Database
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูล
 
งานนำเสนอ..
งานนำเสนอ..งานนำเสนอ..
งานนำเสนอ..
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูล
 
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
 
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูลบทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
บทที่ 1 แนวคิดทั่วไปเกี่ยวกับฐานข้อมูล
 
การจัดการข้อมูล
การจัดการข้อมูลการจัดการข้อมูล
การจัดการข้อมูล
 
ประโยชน์ของอินเทอร์เน็ต กศน.ม.ต้น
ประโยชน์ของอินเทอร์เน็ต กศน.ม.ต้นประโยชน์ของอินเทอร์เน็ต กศน.ม.ต้น
ประโยชน์ของอินเทอร์เน็ต กศน.ม.ต้น
 
บท1
บท1บท1
บท1
 
บทที่ 1
บทที่ 1บทที่ 1
บทที่ 1
 
Unit2
Unit2Unit2
Unit2
 
แนวการสอบ ม.4
แนวการสอบ ม.4แนวการสอบ ม.4
แนวการสอบ ม.4
 
ระบบฐานข้อมูลเบื้องต้น
ระบบฐานข้อมูลเบื้องต้นระบบฐานข้อมูลเบื้องต้น
ระบบฐานข้อมูลเบื้องต้น
 
การบริหารจัดการข้อมูลข่าวสารเพื่อเพิ่มประสิทธิภาพในการปฏิบัติงาน
การบริหารจัดการข้อมูลข่าวสารเพื่อเพิ่มประสิทธิภาพในการปฏิบัติงานการบริหารจัดการข้อมูลข่าวสารเพื่อเพิ่มประสิทธิภาพในการปฏิบัติงาน
การบริหารจัดการข้อมูลข่าวสารเพื่อเพิ่มประสิทธิภาพในการปฏิบัติงาน
 

Similar to นางสาว หัทยา เชื้อสมเกียรติ ม.5 pp

หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์ น่านกร ม.5
หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์  น่านกร ม.5หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์  น่านกร ม.5
หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์ น่านกร ม.5palmyZommanow
 
หน่วยที่ 1
หน่วยที่ 1หน่วยที่ 1
หน่วยที่ 1palmyZommanow
 
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา ปาโจด ม.5
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา  ปาโจด ม.5หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา  ปาโจด ม.5
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา ปาโจด ม.5สิรินยา ปาโจด
 
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา ปาโจด ม.5
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา  ปาโจด ม.5หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา  ปาโจด ม.5
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา ปาโจด ม.5สิรินยา ปาโจด
 
งาคอม
งาคอมงาคอม
งาคอมlookpair
 
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลIsareeya Keatwuttikan
 
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูลบทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูลniwat50
 
งานคอม หน่วยที่1
งานคอม หน่วยที่1งานคอม หน่วยที่1
งานคอม หน่วยที่1Ruttikan Munkhan
 
หน่วยที่ 1
หน่วยที่ 1หน่วยที่ 1
หน่วยที่ 1palmyZommanow
 
หน่วยที่ 1
หน่วยที่ 1หน่วยที่ 1
หน่วยที่ 1palmyZommanow
 
เทคโนโลยีการสื่อสาร (พัชรา P)
เทคโนโลยีการสื่อสาร (พัชรา P)เทคโนโลยีการสื่อสาร (พัชรา P)
เทคโนโลยีการสื่อสาร (พัชรา P)Patchara Wioon
 
Database basic new
Database basic newDatabase basic new
Database basic newQoo Kratai
 
เทคโนโลยีการสื่อสาร (พัชรา P)
เทคโนโลยีการสื่อสาร (พัชรา P)เทคโนโลยีการสื่อสาร (พัชรา P)
เทคโนโลยีการสื่อสาร (พัชรา P)Patchara Wioon
 
การพัฒนาเอกสารออนไลน์ขั้นสูง Intro
การพัฒนาเอกสารออนไลน์ขั้นสูง Introการพัฒนาเอกสารออนไลน์ขั้นสูง Intro
การพัฒนาเอกสารออนไลน์ขั้นสูง IntroJenchoke Tachagomain
 
การจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูล
การจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูลการจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูล
การจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูลchanoot29
 

Similar to นางสาว หัทยา เชื้อสมเกียรติ ม.5 pp (20)

หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์ น่านกร ม.5
หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์  น่านกร ม.5หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์  น่านกร ม.5
หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์ น่านกร ม.5
 
หน่วยที่ 1
หน่วยที่ 1หน่วยที่ 1
หน่วยที่ 1
 
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา ปาโจด ม.5
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา  ปาโจด ม.5หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา  ปาโจด ม.5
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา ปาโจด ม.5
 
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา ปาโจด ม.5
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา  ปาโจด ม.5หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา  ปาโจด ม.5
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา ปาโจด ม.5
 
งาคอม
งาคอมงาคอม
งาคอม
 
Database
DatabaseDatabase
Database
 
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
 
บท1
บท1บท1
บท1
 
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูลบทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
 
บทที่1
บทที่1บทที่1
บทที่1
 
งานคอม หน่วยที่1
งานคอม หน่วยที่1งานคอม หน่วยที่1
งานคอม หน่วยที่1
 
หน่วยที่ 1
หน่วยที่ 1หน่วยที่ 1
หน่วยที่ 1
 
หน่วยที่ 1
หน่วยที่ 1หน่วยที่ 1
หน่วยที่ 1
 
เทคโนโลยีการสื่อสาร (พัชรา P)
เทคโนโลยีการสื่อสาร (พัชรา P)เทคโนโลยีการสื่อสาร (พัชรา P)
เทคโนโลยีการสื่อสาร (พัชรา P)
 
Database basic new
Database basic newDatabase basic new
Database basic new
 
เทคโนโลยีการสื่อสาร (พัชรา P)
เทคโนโลยีการสื่อสาร (พัชรา P)เทคโนโลยีการสื่อสาร (พัชรา P)
เทคโนโลยีการสื่อสาร (พัชรา P)
 
งาน Ppt 6401
งาน Ppt 6401 งาน Ppt 6401
งาน Ppt 6401
 
การพัฒนาเอกสารออนไลน์ขั้นสูง Intro
การพัฒนาเอกสารออนไลน์ขั้นสูง Introการพัฒนาเอกสารออนไลน์ขั้นสูง Intro
การพัฒนาเอกสารออนไลน์ขั้นสูง Intro
 
Chapter1
Chapter1Chapter1
Chapter1
 
การจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูล
การจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูลการจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูล
การจัดการข้อมูลด้วยระบบการจัดการฐานข้อมูล
 

นางสาว หัทยา เชื้อสมเกียรติ ม.5 pp

  • 1. ข้อมูล (Data) เป็ นองค์ประกอบทีสาคัญของระบบสารสนเทศ ่ คอมพิวเตอร์ การจัดการข ้อมูล (data management) ี่ ้ เป็ นกลยุทธ์ทใชในการบริหารองค์การให ้มี ิ ิ ประสทธิภาพ และต ้องมีการตัดสนใจทีถกต ้อง รวดเร็ว ่ ู และทันต่อเหตุการณ์ในการทาธุรกิจในยุคปั จจุบน ั
  • 2. ว ัตถุประสงค์ในการจ ัดการข้อมูล 1.การเก็บข้อมูล สามารถนากลับมาใช ้ งานได ้อีกในภายหลัง 2.การจ ัดข้อมูล สามารถนากลับมาใชงาน ้ ิ ได ้อย่างมีประสทธิภาพ 3.การปร ับปรุงข้อมูล สามารถปรับปรุง ข ้อมูลให ้เป็ นข ้อมูลปั จจุบนอยูเสมอ ั ่ 4.การปกปองข้อมูล ป้ องกันข ้อมูลให ้มี ้ ้ ความปลอดภัยจากการลักลอบใชงาน หรือแก ้ไข
  • 3. หน่วยข้อมูล (Data Unit) หน่วยของข ้อมูลคอมพิวเตอร์สามารถจัดเรียงจาก ขนาดเล็กไปขนาดใหญ่ดงนี้ ั *บิต (bit) เชน 0 หรือ 1 ่ *ต ัวอ ักษร (character) ตัวอักษร 1 ตัว *ASCII 1 bytes ( 8 bit) *Unicode 2 bytes (16 bit) *เขตข้อมูล (field) ข ้อความใด ๆ ซงประกอบ ึ่ ไปด ้วยกลุมตัวอักษรทีแทนข ้อเท็จจริง ่ ่ ต ัวอ ักษร เขตข้อมูล
  • 4. *ระเบียนข้อมูล (record) กลุมของเขตข ้อมูลต่างๆ ่ *แฟม (file) กลุมของระเบียนข ้อมูลทีมโครงสร ้าง ้ ่ ่ ี เดียวกัน แฟม ตาแหน่ง ้ แฟม ้ ระเบียนข้อมูล ่ ่ ี ั *ฐานข้อมูล (database) กลุมของแฟ้ มทีมความสมพันธ์กัน ฐานข้อมูล อาจารย์ ึ น ักศกษา วิชา
  • 5. เขตข้อมูลคีย ์ (Key Field) *เขตข้อมูลคีย ์ (key field)ใชสาหรับระบุระเบียนข ้อมูล ้ อย่างเฉพาะเจาะจง ข ้อมูลในกลุมนี้จะไม่ซ้ากับระเบียนอืน ๆ ่ ่ เขตข้ อมูลคีย์
  • 6. ชนิดของข้อมูล (Data Types) *ค่าตรรกะ (booleans) มีคา จริง กับ เท็จ ่ ่ ี ่ *จานวนเต็ม (integers) เลขทีไม่มเศษสวนหรือ ่ ทศนิยม เชน 1, -1, 345, -543 *จานวนจริง (floating-point values) จานวน ่ ตัวเลขใดๆ เชน 23.456, -4755.3333445 *ตัวอักษร (character) ข ้อมูลทีแทนด ้วยกลุม ่ ่ ั ่ ของบิต เป็ นตัวอักษรหรือสญลักษณ์ เชน A, S, B *สายอักขระ (strings) กลุมของตัวอักษร ่ *วันทีและเวลา (date/time) ข ้อมูลวันทีหรือ ่ ่ เวลา *ไบนารี (binary) ข ้อมูลทางคอมพิวเตอร์ เชน ่ แฟ้ ม รูปภาพ ไฟล์วดโอ ิ ี
  • 7. ประเภทของแฟมข้อมูล ้ *แฟมหล ัก (master files) คือแฟ้ มทีเก็บ ้ ่ ข ้อมูลทีเกิดการเปลียนแปลงน ้อย หรือแทบไม่ม ี ่ ่ การเปลียนแปลงเลย อาจเรียกได ้ว่าเป็ น ่ แฟ้ มข ้อมูลถาวร หรือกึงถาวร ่ ิ *แฟ้ มลูกค ้า แฟ้ มสนค ้า แฟ้ มข ้อมูล การขายประจาเดือน *แฟมรายการเปลียนแปลง (transaction ้ ่ files) คือแฟ้ มทีเก็บข ้อมูลรายการทีเกิดการ ่ ่ เปลียนแปลงก่อนทีจะนาไปปรับปรุงให ้กับแฟ้ ม ่ ่ รายการหลัก *แฟ้ มรายการขายในแต่ละวัน
  • 8. ล ักษณะการประมวลผลข้อมูล(Data Processing) *การประมวลผลแบบกลุม (batch processing) ่ *การประมวลผลท ันที (real-time processing) - การประมวลผลแบบกลุม (batch processing) เป็ นการ ่ ่ ประมวลผลโดยรวบรวมข ้อมูลต่างๆ มาประมวลผลตามชวงเวลาที่ ่ ้ กาหนด โดยข ้อมูลทีใชในการประมวลผลอาจมาจากเอกสารต่างๆ ข ้อมูลทีป้อนแบบออนไลน์ แต่ข ้อมูลจะยังไม่ถกประมวลผลทันที ่ ู ่ ้ ่ จนกว่าจะถึงชวงเวลาทีกาหนดไว ้ เพือลดค่าใชจ่าย เชน ค่า ่ ่ ี น้ าประปา ค่าไฟฟ้ า ยอดบัญชบัตรเครดิต - การประมวลผลท ันที (real-time processing) เป็ นการ ่ ่ ประมวลผลทีได ้ผลลัพธ์ทันทีเมือทารายการเข ้าสูระบบ เชน การ ่ ่ ่ ถอนเงินจากตู ้ ATM ทีต ้องมีการปรับเปลียนยอดเงินในบัญช ี ซงถ ้า ่ ่ ึ่ การประมวลผลทาแบบออนไลน์ จะเรียกว่า online transaction processing (OLTP)
  • 9. การเข้าถึงข้อมูล (Data Access) การเข้าถึงข้อมูลแบบลาด ับ (sequential data ั access) เป็ นการเข ้าถึงข ้อมูลแบบทีต ้องอาศยการอ่าน ่ ข ้อมูลตังแต่ต ้น จนถึงข ้อมูลทีต ้องการ เหมาะสาหรับการ ้ ่ อ่านข ้อมูลปริมาณมากและเรียงลาดับ ่ การเข้าถึงข้อมูลแบบสุม (random data access) ้ การเข ้าถึงข ้อมูลลักษณะนีจะต ้องใชกลไกการหาตาแหน่ง ้ ระเบียนวิธตางๆ เหมาะสาหรับการค ้นหาข ้อมูลจานวนไม่ ี ่ มาก และมีการเพิม ลบ แก ้ไขข ้อมูลเป็ นประจา ่
  • 10. การจ ัดโครงสร้างแฟมข้อมูล ้ • มีปจจ ัยทีตองพิจารณาในการเลือกโครงสร้าง ั ่ ้ ได้แก่ – ปริมาณข ้อมูล ความถีในการดึงข ้อมูล ความถีในการ ่ ่ ปรับปรุงข ้อมูล จานวนครังทีอานข ้อมูลจาก ้ ่ ่ หน่วยความจาสากรองต่อการดึงข ้อมูล • การจ ัดโครงสร้างข้อมูลแบบต่างๆ – แฟ้ มลาดับ (sequential file) ่ – แฟ้ มสุม ( direct file หรือ hash file) – แฟ้ มดรรชนี (indexed file) – แฟ้ มลาดับดรรชนี (indexed sequential file)
  • 11. ต ัวอย่างแฟมดรรชนี ้ ตัวอย่างการแทรก record
  • 12. การจ ัดโครงสร้างแฟมข้อมูล ้ แฟมลาด ับดรรชนี (indexed sequential file) คือ ้ ตัวระเบียนในแฟ้ มข ้อมูลไม่เรียงตามลาดับ แต่เรียง เฉพาะคียในดรรชนี และมีการกาหนดดรรชนีบางสวน ์ ่ (partial indexed)เพิมขึนมา ่ ้ ต ัวอย่างแฟมลาด ับดรรชนี ้
  • 14. แฟมโปรแกรมและแฟมข้อมูล ้ ้ • แฟมโปรแกรม คือแฟ้ มโปรแกรมประกอบด ้วย ้ ั่ ่ ชุดคาสงต่างๆ ทีทางานอย่างใดอย่างหนึง เชน ่ ่ โปรแกรมประมวลผลคา Microsoft Word ประเภทแฟมโปรแกรม ้ ส่ วนขยาย Command COM Application Program EXE Batch Program BAT Dynamic Link Library DLL
  • 15. • แฟมข้อมูล คือแฟ้ มทีได ้จากการบันทึกข ้อมูล ้ ่ ่ึ ด ้วยแฟ้ มโปรแกรม ซงแฟ้ มข ้อมูลบางประเภท สร ้างและเปิ ดด ้วยโปรแกรมใดโปรแกรมหนึง ่ โดยเฉพาะ ประเภทแฟมข้ อมูล ้ ส่ วนขยาย โปรแกรม มาตรฐาน Adobe Photoshop PSD Adobe Drawing Photoshop Bitmap BMP  Conceptual Data CDM PowerDesigner Model DataArchitect Microsoft Word DOC Microsoft Word Document Visio Drawing VSD Visio
  • 16. ระบบแฟมข้อมูล (File Systems) ้ ในอดีตการจัดเก็บข ้อมูลด ้วยคอมพิวเตอร์มลักษณะเป็ น ี แฟ้ มข ้อมูล เมือมีการขยายระบบก็เริมมีการเก็บข ้อมูลทีอสระต่อกัน ่ ่ ่ ิ ่ ้ ่ ทาให ้มีการเก็บข ้อมูลอยูหลายที่ ข ้อมูลเหล่านันอาจไม่ใชข ้อมูลที่ เป็ นปั จจุบัน การขยายระบบจึงจาเป็ นอย่างยิงทีจะต ้องคานึงถึงการ ่ ่ ึ่ จัดเก็บข ้อมูลด ้วย ซงการเก็บข ้อมูลแบบเดิมทาให ้เกิดปั ญหาต่างๆ ดังนีปญหาของแฟมข้อมูล ้ ั ้ -ความซ้าซอนของข ้อมูล (data redundancy) ้ -สอดคล ้องกันของข ้อมูล (data inconsistency) -ข ้อมูลแยกอิสระต่อกัน (data isolation) -ความไม่ปลอดภัยของข ้อมูล (poor security) -ขาดบูรณภาพของข ้อมูล (lack of data integrity) -ความขึนต่อกันระหว่างโปรแกรมประยุกต์กับโครงสร ้างของ ้ แฟ้ มข ้อมูล (application / data
  • 17. ระบบฐานข้อมูล (DATABASE SYSTEMS) • ระบบฐานข้อมูล (database) หมายถึง กลุมของข ้อมูลทีม ี ่ ่ ั ความสมพันธ์กนและถูกนามาจัดเก็บในทีเดียวกัน โดย ั ่ ข ้อมูลอาจเก็บไว ้ในแฟ้ มข ้อมูลเดียวกันหรือแยกเก็บหลาย ั ๆ แฟ้ มข ้อมูล แต่ต ้องมีการสร ้างความสมพันธ์ระหว่างข ้อมูล ิ เพือประสทธิภาพในการจัดการข ้อมูล ่ • ระบบจ ัดการฐานข้อมูล (Database Management ่ ้ System:DBMS) เป็ นซอฟต์แวร์ระบบทีใชในการจัดการ ื่ ้ ฐานข ้อมูล เปรียบเหมือนสอกลางระหว่างผู ้ใชและโปรแกรม ่ ่ ่ ้ ประยุกต์ตางๆทีเกียวข ้องกับการใชฐานข ้อมูล
  • 18. ข้อดีของระบบฐานข้อมูล ้ ้ -ลดความซาซอนของข ้อมูล (reduce dataredundancy) ้ -การใชข ้อมูลร่วมกัน (data sharing) -ข ้อมูลมีความถูกต ้องมากขึน (improved data ้ integrity) -เพิมความปลอดภัยให ้กับข ้อมูล (increased security) ่ -มีความเป็ นอิสระของข ้อมูล (data independency)
  • 19. ชนิดของโครงสร้างข้อมูล โครงสร้างข้อมูล ี ่ ้ -เป็ นวิธจัดเก็บข ้อมูลในคอมพิวเตอร์ เพือให ้สามารถนามาใชได ้อย่างมี ิ ประสทธิภาพ -การใชงานโครงสร ้างข ้อมูล ต ้องมีขนตอนวิธทเหมาะสม จึงจะสามารถใช ้ ้ ั้ ี ี่ ิ งานได ้อย่างมีประสทธิภาพ ่ -การออกแบบโครงสร ้างข ้อมูลทีดจะชวยลดเวลาในการกระทาการและลด ่ ี ้ การใชงานในพืนทีความจาด ้วย ้ ่ ว ัตถุประสงค์ ้ ่ โครงสร ้างข ้อมูลใชเพือวัตถุประสงค์ 3 ประการ 1.การจัดเก็บข ้อมูลในโลกแห่งความจริง 2.เครืองมือของนักเขียนโปรแกรม ่ 3.แบบจาลอง
  • 20. การจ ัดเก็บข้อมูลในโลกแห่งความจริง เป็ นการนาข ้อมูลทีมอยูเข ้าไปเก็บในเครือง ่ ี ่ ่ คอมพิวเตอร์ อาทิ ิ ่ -ประวัตสวนตัว ิ -สนค ้าคงคลัง -การขาย -การเงิน -บุคลากร เป็ นต ้น ี ั ่ ้ ื่ สมมติมบตรข ้อมูลจานวนหนึงใชบันทึกชอ ทีอยู่ ่ ั หมายเลขโทรศพท์ หากต ้องการเขียนโปรแกรมเพือ ่ ่ิ จัดการกับบัตรเหล่านี้ จะต ้องพิจารณาสงต่างๆ -วิธการจัดเก็บลงในหน่วยความจา ี ้ -วิธการดังกล่าวสามารถใชได ้กับข ้อมูลปริมาณมากเพียงใด ี -สามารถเพิมข ้อมูลใหม่ ลบข ้อมูลเก่าได ้อย่างรวดเร็วหรือไม่ ่ -สามารถค ้นหาบัตรทีต ้องการได ้เร็วเพียงใด ่ ้ ี -ถ ้าต ้องการจัดบัตรให ้เรียงตามตัวอักษร จะใชวิธใด
  • 21. เครืองมือของน ักเขียนโปรแกรม ่ แบบจาลอง ้ ใชโครงสร ้างข ้อมูลเพือเป็ นแบบจาลองโลกแห่งความจริง ่ ้ ้ -กองซอนใชจาลองการทางานบางอย่างของคอมพิวเตอร์ ้ -แถวคอย ใชจาลองการเข ้าแถวคอยของลูกค ้าในธนาคาร ล ักษณะของข้อมูล • ื่ ข้อมูลทีมความถูกต้องและเชอถือได้ (accuracy) ข ้อมูลจะมีความถูกต ้อง ่ ี ่ื และเชอถือได ้มากน ้อยเพียงใดนัน และการควบคุมการประมวลผลการควบคุม ้ ข ้อมูลนาเข ้าเป็ นการกระทาเพือให ้เกิดความ มั่นใจว่าข ้อมูลนาเข ้ามีความถูกต ้อง ่ ื่ เชอถือได ้ • ข้อมูลตรงตามความต้องการของผูใช ้ (relevancy) ได ้แก่ การเก็บเฉพาะ ้ ้ ข ้อมูลทีผู ้ใชต ้องการเท่านัน ไม่ควร เก็บข ้อมูลอืน ๆ ทีไม่จาเป็ นหรือไม่เกียวข ้อง ่ ้ ่ ่ ่ กับการใชงาน ้ • ข้อมูลมีความท ันสม ัย (timeliness) ข ้อมูลทีดนันนอกจากจะเป็ นข ้อมูลทีม ี ่ ี ้ ่ ่ื ความถูกต ้องเชอถือได ้แล ้วจะ ต ้องเป็ นข ้อมูลทีทนสมัย ่ ั
  • 22. การเรียงลาด ับข้อมูล เป็ นการนาเอาข ้อมูลในเรคอร์ดมาจัดเรียงลาดับจากน ้อย ้ ไปหามากหรือจากมากไปหาน ้อยโดยใชทุกฟิ ลด์หรือรวมหลาย ๆ ฟิ ลด์ในการ เรียงลาดับก็ได ้ วิธการเรียงลาด ับอย่างง่าย โดยทาตามลาดับขันตอนดังภาพ ี ้
  • 23. การค้นหาข้อมูล (searching) การค ้นหาคาตอบ หรือการค ้นหาข ้อมูลในทาง คอมพิวเตอร์มกจะกระทาบนโครงสร ้างข ้อมูลแบบต ้นไม ้ และกราฟ ั ทังนีเพราะโครงสร ้างข ้อมูลในลักษณะนีสามารถทาให ้การค ้นหาทา ้ ้ ้ ได ้สะดวกและสามารถพลิกแพลงการค ้นหาได ้ง่าย ในความเป็ นจริง แล ้ว การค ้นหาข ้อมูลบางครังสามารถกระทาบนโครงสร ้างข ้อมูล ้ ่ ชนิดอืนก็ได ้เชน อาเรย์ แสตก และคิว แต่การจัดข ้อมูลใน ่ ่ โครงสร ้างเชนนี้ มีข ้อจากัดในการค ้นหาข ้อมูลมาก การค ้นหาทาได ้ ึ่ ้ แบบเรียงลาดับ(Sequencial Search) เท่านัน ซงใชได ้กับข ้อมูลที่ ้ มีขนาดเล็ก ดังนันในการค ้นหาข ้อมูลทีมขนาดใหญ่ ก่อนการค ้นหา ้ ่ ี หรือระหว่างการค ้นหา ข ้อมูลทีจะถูกค ้นจะต ้องถูกจัดให ้อยูใน ่ ่ รูปแบบของต ้นไม ้ หรือกราฟเท่านัน การค ้นหาข ้อมูลบนโครงสร ้าง ้ ต ้นไม ้และกราฟสามารถจ าแนกได ้ 2 แบบคือ การค ้นหาแบบไบล์ด ิ (Blind Search) และการค ้นหาแบบฮวริสติก(Heuristic Search)
  • 24. การค้นหาแบบไบล์ด(Blind Search) เป็ นการค ้นหาแบบทีเดินทางจากโหนดหนึงไปยังอีกโหนด ่ ่ หนึงโดยอาศัยทิศทางเป็ นตัวกาหนดการค ้นหา ไม่ต ้องมีข ้อมูล ่ ่ ิ อะไรมาชวยเสริมการตัดสนใจว่าจะเดินทางต่อไปอย่างไร นอกจาก ึ่ ทิศทางซงเป็ นรูปแบบตายตัว การค ้นหาแบบไบล์ดสามารถ แบ่งย่อยได ้ดังนี้ คือ การค ้นหาทัหมด และการค ้นหาบางสวน ้ ่ - การค ้นหาทังหมด(exhaustive search) คือ การค ้นหา ้ ทังหมดของปริภมสถานะ ้ ู ิ ่ - การค ้นหาบางสวน (partial search) การค ้นหาเพียง บางสวนของปริภมสถานะ ซงในความเป็ นจริงการค ้นหาสวนมากใช ้ ่ ู ิ ่ึ ่ ่ การค ้นหาเฉพาะบางสวนเท่านันเนืองจากปริภมสถานะมักมีขนาด ้ ่ ู ิ ใหญ่ เท่าให ้ไม่สามารถค ้นหาได ้ทังหมด ดังนันจึงมีความเป็ นไปได ้ ้ ้ ่ ่ ว่าคาตอบทีได ้อาจไม่ใชคาตอบทีดทสด การค ้นหาแบบนีสามารถ ่ ี ี่ ุ ้ แบ่งได ้เป็ น 2 ประเภทคือ การค ้นหาแบบลึกก่อน(Depth first search) และการค ้นหาแบบกว ้างก่อน (Breadth first search)
  • 25. การค้นหาแบบลึกก่อน(Depth first search) การค ้นหาแบบลึกก่อนเป็ นการค ้นหาทีกาหนดทิศทาง ่ จากรูปของโครงสร ้างต ้นไม ้ ทีเริมต ้นจากโหนดราก(Root ่ ่ node) ทีอยูบนสุด แล ้วเดินลงมาให ้ลึกทีสด เมือถึงโหนด ่ ่ ่ ุ ่ ล่างสุด(Terminal node) ให ้ย ้อนขึนมาทีจดสูงสุดของกิงเดียว ้ ่ ุ ่ ่ กันทีมกงแยกและยังไม่ได ้เดินผ่าน แล ้วเริมเดินลงจนถึงโหนด ่ ี ิ่ ่ ่ ้ ลึกสุดอีก ทาเชนนีสลับไปเรือยจนพบโหนดทีต ้องการหาหรือ ่ ่ สารวจครบทุกโหนดแล ้วตามรูปที่ 1 การค ้นหาแบบลึกก่อนจะมี ลาดับการเดินตามโหนดดังตัวเลขทีกากับไว ้ในแต่ละโหนด ่ รูปที่ 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 first search) การค ้นหาแบบกว ้างก่อนเป็ นการกาหนดทิศทางการค ้นหา แบบทีละระดับของโครงสร ้างต ้นไม ้โดยเริมจากโหนดราก ่ ่ ้ (ระดับที่ 0) แล ้วลงมาระดับที่ 1 จากซายไปขวา เมือเสร็จ ่ ้ ่ ่ ้ ่ ระดับที่ 1 ไประดับที่ 2จากซายไปขวาเชนกัน ทาเชนนีเรือย ๆ จนพบโหนดทีต ้องการตามรูปที่ 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 สถานะอื่นทุกตัวที่ ่ 3. ถ้าคาตอบอยูในระดับ n+1 สถานะทุกตัวที่ระดับ 1 ่ ระดับ 1ถึงระดับ n ไม่จาเป็ นต้องถูกกระจายจนหมด ถึงระดับ n จะต้องถูกกระจายจนหมด ทาให้มีสถานะที่ ไม่จาเป็ นในเส้นทางที่จะไปสู่ คาตอบถูกกระจายออก ด้วย ่ 4. เมื่อพบคาตอบไม่สามารถรับประกันได้วาเส้นที่ได้ ่ 4. ถ้ามีคาตอบจะรับประกันได้วาจะพบคาตอบแน่ ๆ เป็ นเส้นทางที่ส้ ันที่สุดหรื อไม่ และจะได้เส้นทางสั้นที่สุดด้วย
  • 32. ิ การค้นหาแบบฮวริสติก(Heuristic Search) มีความความแตกต่างจากการค ้นหาข ้อมูลแบบธรรมดาและแบบฮวริสติกนันอยูท ี่ ิ ้ ่ การค ้นหาข ้อมูลธรรมดา ผู ้ทีทาการค ้นข ้อมูลจะต ้องตรวจสอบข ้อมูลทีละตัวทุกตัวจน ่ ิ ครบ แต่ฮวริสติกจะไม่ลงไปดู ข ้อมูลทุกตัว ซงมีข ้อดีคอ สามารถทาการ ค ้นหา ึ่ ื คาตอบจาก ข ้อมูลทีมขนาดใหญ่มาก ๆ ได ้ แต่มข ้อเสยคือคาตอบทีได ้เป็ นเพียง ่ ี ี ี ่ คาตอบทีด ี เท่านันไม่แน่ว่าจะดีทสด แต่เนืองจากว่าปั ญหาในบางลักษณะนันใหญ่ ่ ้ ี่ ุ ่ ้ มาก และเป็ นไปไม่ได ้ทีจะทา การค ้นหาด ้วยวิธ ี ธรรมดากระบวนการของฮวริสติกจึง ่ ิ ิ่ ่ ิ เป็ นสงทีจาเป็ นในเรืองของฮวริสติกนัน นอกจากจะมีการค ้นหาแบบฮวริสติกแล ้ว ยังมี ่ ้ ิ ิ่ อีกสงหนึงทีสาคัญคือ วิธการดังกล่าวจะกระท าได ้โดยการพิจารณาถึงวิธการ ่ ่ ี ี ่ ้ (aspects) ต่าง ๆ ทีใชในการแก ้ปั ญหา ณ สถานะหนึงว่าจะสามารถแก ้ปั ญหาได ้ ่ ตามทีต ้องการหรือไม่ โดยกาหนดเป็ นน้ าหนักทีให ้กับการแก ้ปั ญหาของแต่ละวิธ ี ่ ่ โหนดนันจะมี ความเป็ นไปได ้ในการนาไปสูหนทางการแก ้ปั ญหาได ้มากน ้อยแค่ไหน ้ ่ ิ ั จุดประสงค์ท ี่ แท ้จริงของฮวริสติก ฟั งก์ชนก็คอ การกากับทิศทางของกระบวนการ ื ค ้นหา เพือให ้อยู่ในทิศทางทีได ้ประโยชน์สงสุด โดยการบอกว่าเราควรเลือกเดินเสน ่ ่ ู ้ ี่ ี ้ ทางไหนก่อน ในกรณีทมเสน ทางมากกว่าหนึงเสนทางต ้องเลือกกระบวนการค ้นหา ่ ้ แบบฮวริสติก โดยปกติแล ้วจะต ้องอาศัยฮวริสติกฟั งก์ชน ทาให ้การแก ้ปั ญหาหนึง ๆ ิ ิ ั ่ ่ ิ ั จะดีหรือไม่ ก็ขนอยูกับฮวริสติกฟั งก์ชนดังนันการค ้นหาแบบนีจงไม่มอะไรเป็ นหลัก ึ้ ้ ้ ึ ี ิ่ ่ ประกันว่าจะได ้สงทีไม่ดออกมาด ้วยเหตุนเอง เราจึงเรียกการ ค ้นหาแบบฮวริสติกนีวา ี ้ี ิ ้ ่ Weak Methods หรือจะกล่าวอีกนัยหนึงคือ Weak Methods เป็ นกระบวนการควบคุม ่ โดยทั่วไป (general-purpose control stategies) ึ่ ซงการค ้นหาแบบนี้ สามารถ แบ่งได ้เป็ น
  • 33. การค้นหาแบบปี นเขา(Hill climbing) ั ิ ่ ฟั งก์ชนฮวริสติกสามารถนามาชวยในกระบวนการค ้นหาเพือให ้ ่ ิ ได ้คาตอบอย่างรวด เร็วและมีประสทธิภาพ วิธการทีจะนา ี ่ ฟั งก์ชนฮวริสติกมาใชมีหลายวิธด ้วยกันขึนอยูกับว่าจะใช ้ ใน ั ิ ้ ี ้ ่ ่ ่ ี ่ ิ ลักษณะใด เชนเลือกสถานะทีมคาฮวริสติกดีขน แล ้วเดินไปยัง ึ้ ่ ี ่ ิ สถานะนันเลยโดยไม่ต ้องสนใจสถานะทีมคาฮวริสติกแย่กว่า ้ สถานะปั จจุบันหรือว่าจะเก็บสถานะทุกตัวไว ้แม ้ว่าค่าฮวริสติก ิ จะแย่ลงแล ้ว พิจารณาสถานะเหล่านีทหลัง เป็ นต ้น ในสวน ้ ี ่ ต่อไปนีจะกล่าวถึงอัลกอริทมต่าง ๆ ทีนาฟั งก์ชนฮวริสติกมา ้ ึ ่ ั ิ ่ ชวยในการค ้นหาคาตอบ โดยเริมจากอัลกอริทมปี นเข ้า (Hill ่ ึ climbing algorithm) รูปที่ 5 แสดงลักษณะการค ้นหาแบบ Hill climbing
  • 34. ้ ั ั ิ ต ัวอย่างการใชฟงก์ชนฮวริสติก โดยอ ัลกอริทมปี นเขาอย่างง่ายโดย ึ ปัญหาโลกของ บล๊อก รูปที่ 6 การค ้นหาแบบ Hill climbing
  • 35. ตัวเลข h(i) ในรูปแสดงว่า สถานะที่ i มีคาฮวริสติกเท่ากับ h จากรู ้จะเห็น ่ ิ ่ ี ่ ิ ได ้ว่า เริมต ้นจากสถานะที่ 1 ทีมคาฮวริสติกเท่ากับ -1 อัลกอริทมปี นเขาใชตัว ่ ึ ้ กระทาการเพือสร ้างสถานะลูกตัวแรกของสถานะที่ 1 แล ้ววัดค่าฮวริสติกได ้ 0 ่ ิ ึ่ ่ ึ้ ั ซงมีคาดีขน ถ ้าสงเกตจากรูปที่ จะพบว่าสถานะที่ 1 มีสถานะลูกทังหมด 3 ตัว ้ แต่ในกรณีของอัลกอริทมปี นเขานี้ เมือได ้สถานะลูกตัวแรกซงมีคาอิวริสติกดีขน ึ ่ ึ่ ่ ึ้ อัลกอริทมจะไม่สร ้างสถานะลูกทีเหลืออีก 2 ตัว และจะไม่มการย ้อนกลับมาที่ ึ ่ ี สถานะลูกทัง 2 นี้ แม ้ว่าหลังจากนีอัลกอริทมจะค ้นไม่พบคาตอบกล่าวคือเป็ น ้ ้ ึ ึ่ การตัดทางเลือกทิง ไปเลย ซงการทาเชนนีแม ้ว่าจะมีโอกาสไม่พบคาตอบแต่ก็ ้ ่ ้ ี่ ่ มีข ้อดีทเป็ นการชวยลด เวลาและปริภมททาการค ้นหาจะลดลงอย่างมาก ู ิ ี่ จากนันอัลกอริทมมาสถานะที่ 2 แล ้วเริมสร ้างสถานะลูกได ้สถานะที่ 3 ทีมคาฮว ้ ึ ่ ่ ี ่ ิ ึ่ ่ ริสติก -1 ซงแย่ลงในกรณีทแย่ลงเชนนี้ อัลกอริทมจะไม่ไปยังสถานะลูกตัวนี้ ี่ ึ ้ และสร ้างสถานะลูกตัวต่อไปโดยใชตัวกระทา การทีเหลือได ้สถานะที่ 4 มีคาฮว ่ ่ ิ ี ึ้ ่ ริสติกเท่ากับ -1 ไม่ดขนเชนกันจึงสร ้างสถานะลูกตัวถัดไป เป็ นสถานะที5 มี ่ ิ ค่าฮวริสติกเท่ากับ 1 เป็ นค่าทีดขน อัลกอริทมจะมายังสถานะนีและค ้นพบ ่ ี ึ้ ึ ้ คาตอบในทีสด ่ ุ
  • 36. การค้นหาดีสดก่อน(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 คะแนนตามล าดับ ทาเชนนีเรือย ๆ จนพบคาตอบหรือจนไม่ สามารถ สร ้างโหนดต่อไปได ้อีก
  • 37. รูปที่ 7 ขันตอนของการค ้นหาแบบดีทสดก่อน ้ ี่ ุ รูปที่ 8 การค ้นหาแบบดีสดก่อน ุ
  • 38. อ ัลกอริธม: การค้นหาแบบดีทสดก่อน ึ ี่ ุ 1. เริมด ้วย OPEN ทีมเพียงโหนดเริมต ้น ่ ่ ี ่ 2. ทาจนกว่าจะพบเป้ าหมาย หรือว่าไม่มโหนดเหลืออยู่ ี ใน OPEN -เลือกโหนดทีดทสดใน OPEN ่ ี ี่ ุ -สร ้างโหนดลูกให ้กับโหนดทีดทสดนัน ่ ี ี่ ุ ้ -สาหรับโหนดลูกแต่ละตัวให ้ทาดังต่อไปนี้ i) ถ ้าโหนดนันยังไม่เคยถูกสร ้างมาก่อนหน ้านัน ให ้ ้ ้ ตรวจสอบค่าของมันโดย ้ ิ ั ใชฮวริสติกฟั งชนแล ้วเพิมเข ้าไปใน OPEN แล ้วบันทึกว่า ่ เป็ นโหนดแม่ ii) ถ ้าโหนดนันถูกสร ้างมาก่อนหน ้านีแล ้ว ให ้เปลียน ้ ้ ่ โหนดแม่ของมันถ ้าเสน ้ ทางใหม่ทได ้ดีกว่าโหนดแม่ตวเดิม ในกรณีนี้ ให ้ ี่ ั ่ ้ ปรับเปลียนค่าตามเสนทางทีอาจจะเกิดขึน ่ ้
  • 39. การค้นหาแบบ Greedy (Greedy Algorithm) กรีดอลกอริธม เป็ นการค ้นหาแบบดีทสดก่อน(Best first search) ที่ ี ั ึ ี่ ุ ง่ายทีสด ่ ุ หลักการของการค ้นหาแบบนีคอ การเลือกโหนดทีดทสดตลอดเวลา ้ ื ่ ี ี่ ุ อัลกอริธม กรีด ี ึ 1. เลือกโหนดเริมต ้นมาหนึงโหนด ่ ่ 2. ให ้โหนดทีเลือกมานีเป็ นสถานะปั จจุบน ่ ้ ั 3. ให ้ทาตามขบวนการข ้างล่างนีจนกว่าจะไม่สามารถสร ้างโหนดลูกได ้ ้ อีก 3.1 สร ้างสถานะใหม่ทเป็ นโหนดลูกทีเป็ นไปได ้ทังหมดจาก ี่ ่ ้ สถานะปั จจุบน ั 3.2 จากสถานะใหม่ทสร ้างขึนมาทังหมด ให ้เลือกสถานะ หรือ ี่ ้ ้ โหนดลูก ทีดทสดออกมาเพียงโหนดเดียว ่ ี ี่ ุ 4. กลับไปทีขนตอนที่ 2 ่ ึ้ ตัวอย่าง จากเรืองการเดินทางของเซลแมนทีจะต ้องเดินทางไปยังเมือง ่ ่ ABCD ึ่ ซงมีระยะทางตามตารางที่ 3 เราจะแก ้ปั ญหานีด ้วยวิธการของกรีดบ ้าง ้ ี ี
  • 40. รูปที่ 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
  • 41. รูปที่ 10 ข ้อมูลในรูปแบบกราฟ ตาราง 3 การค ้นหาแบบกรีด ี
  • 42. การค ้นหาแบบ A* เป็ นอีกแบบของการค ้นหาแบบดีทสดก่อน ี่ ุ วิธการเลือกโหนดที่ ี ้ จะใชในการดาเนินการต่อจะพิจารณาจากโหนดทีดทสด แต่ในกรณีของ ่ ี ี่ ุ A* นี้ ่ ิ ั จะมีลักษณะพิเศษกว่าคือ ในสวนของฮวริสติกฟั งก์ชน ในกรณีของการ ค ้นหาแบบดี ่ ุ ้ ่ ิ ั ทีสดก่อนนัน ค่าทีได ้จากฮวริสติก ฟั งก์ชน จะเป็ นค่าทีวดจาก โหนด ่ ั ปั จจุบน แต่ใน ั ิ ั กรณีของ A* ค่าของฮวริสติก ฟั งก์ชน จะวัดจากค่า 2 ค่าคือ ค่าทีวดจาก ่ ั โหนดปั จจุบน ั ไปยังโหนดราก และจากโหนดปั จจุบนไปยังโหนดเป้ าหมาย ถ ้าเราให ้ตัว ั แปร f แทนค่า ิ ั ั ่ ้ ของฮวริสติก ฟั งก์ชน g เป็ นฟั งก์ชนทีใชวัดค่า cost จากสถานะเริมต ้น ่ จนถึงสถานะ ั ั ่ ้ ปั จจุบน h' เป็ นฟั งก์ชนทีใชวัดค่า cost จากสถานะปั จจุบนถึงสถานะ ั เป้ าหมาย ดังนัน ้ f = g + h’
  • 43. อัลกอริทม A* (A* Search) เป็ นการขยายอัลกอริทมดี ึ ึ สุดก่อนโดยพิจารณาเพิมเติมถึงต ้นทุนจากสถานะเริมต ้น ่ ่ ้ มายังสถานะปั จจุบนเพือใชคานวณค่าฮวริสติกด ้วย ใน ั ่ ิ กรณีของอัลกอริทม A* เราต ้องการหาค่าตาสุดของ ึ ่ ั ฟั งก์ชน f' ของสถานะ s นิยามดังนี้ f'(s)=g(s)+h'(s) ั ่ โดยที่ g คือฟั งก์ชนทีคานวณต ้นทุนจากสถานะ เริมต ้นมายังสถานะปั จจุบน h' คือฟั งก์ชนทีประมาณ ่ ั ั ่ ต ้นทุนจากสถานะปั จจุบนไปยังคาตอบ ั
  • 44. อัลกอริทม A* จะทาการค ้นหาโดยวิธเดียวกันกับอัลกอริทมดีสดก่อนทุกประการ ึ ี ึ ุ ั ิ ่ ้ ่ ยกเว ้น ฟั งก์ชนฮวริสติกทีใชเปลียนมาเป็ น f' (ต่างจากอัลกอริทมดีสดก่อนที่ ึ ุ ใช ้ h') โดยการใช ้ f' อัลกอริทม A* จึงให ้ความสาคัญกับสถานะหนึง ๆ 2 ึ ่ ่ ี ื ่ ่ ประการ คือ (1) สถานะทีดต ้องมี h' ดีคอต ้นทุนเพือจะนาไปสูคาตอบหลังจาก นีต ้องน ้อย และ (2) ต ้นทุนทีจ่ายไปแล ้วกว่าจะถึงสถานะนี้ (g) ต ้องน ้อยด ้วย ้ ่ ้ เราจึงได ้ว่า A* จะค ้นหาเสนทางทีให ้ต ้นทุนโดยรวมน ้อยทีสดตามค่า f' ซงต่าง ่ ่ ุ ึ่ จากอัลกอริทมดีสดก่อน ทีเน ้นความสาคัญของสถานะทีต ้นทุนหลังจากนี้ทจะ ึ ุ ่ ่ ี่ ่ นาไปสูคาตอบต ้องน ้อย โดยไม่สนใจว่าต ้นทุนทีจายไปแล ้วกว่าจะนามาถึง ่ ่ ี สถานะนีต ้องเสยไปเท่าไหร่ ้ รูปที่ 11 แสดงการค ้นหาด ้วยอัลกอริทม A* กันสถานะในรูปที่ 8 โดยสมมติให ้ ึ ต ้นทุนหรือระยะห่างระหว่างสถานะพ่อแม่ไปยังสถานะลูกเท่ากับ 1 หน่วย เชน่ ต ้น ทุนจริง (g) จาก A ไปยัง B,C หรือ D มีคาเท่ากับ 1 หน่วย ่