ข้อมูล (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

นางสาว หัทยา เชื้อสมเกียรติ ม.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.
    เขตข้อมูลคีย ์ (KeyField) *เขตข้อมูลคีย ์ (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)เพิมขึนมา ่ ้ ต ัวอย่างแฟมลาด ับดรรชนี ้
  • 13.
  • 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 (GreedyAlgorithm) กรีดอลกอริธม เป็ นการค ้นหาแบบดีทสดก่อน(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 หน่วย ่