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

หนวยการเรียนรูที่ 2 โครงสรางขอมูล
การเรียนรูที่ 5 ชนิดของโครงสรางขอมูล
การเรียนรูที่ 6 ลักษณะของขอมูล
การเรียนรูที่ 7 การเรียงลําดับขอมูล
การเรียนรูที่ 8 การคนหาขอมูล
หนวยการเรียนรูที่ 1 เทคโนโลยีการสื่อสาร

การเรียนรูที่ 1วัตถุประสงคของการจัดการขอมูล หนวยขอมูลและเขต
ขอมูลคีย .

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

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

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

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

         1.บิต (bit)
       เลขฐาน 2 หนึ่งหลักซึ่งมีคาเปน 0 หรือ 1

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

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

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

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

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

ขอมูลที่ตองการจัดเก็บนั้นอาจจะมีรูปแบบไดหลายอยาง รูปแบบสําคัญ ๆ ไดแก

          3.1 ขอมูลแบบรูปแบบ (formatted data) เปนขอมูลที่รวมอักขระซึ่งอาจ
หมายถึงตัวอักษร ตัวเลข ซึ่งเปนรูปแบบที่แนนอน ในแตละระเบียน ทุกระเบียนที่อยูใน
แฟมขอมูลจะมีรูปแบบที่เหมือนกันหมด ขอมูลที่เก็บนั้นอาจเก็บในรูปของรหัสโดยเมื่อ
อานขอมูลออกมาอาจจะตองนํารหัสนั้นมาตีความหมายอีกครั้ง เชน แฟมขอมูลประวัติ
นักศึกษา

          3.2 ขอมูลแบบขอความ (text)เปนขอมูลที่เปนอักขระในแบบขอความ ซึง
อาจหมายถึงตัวอักษร ตัวเลข สมการฯ แตไมรวมภาพตาง ๆ นํามารวมกันโดยไมมี
รูปแบบที่แนนอนในแตละระเบียน เชน ระบบการจัดเก็บขอความตาง ๆ ลักษณะการ
จัดเก็บแบบนี้จะไมตองนําขอมูลที่เก็บมาตีความหมายอีก ความหมายจะถูกกําหนดแลว
ในขอความ

          3.3 ขอมูลแบบภาพลักษณ (images) เปนขอมูลที่เปนภาพ ซึ่งอาจเปนภาพ
กราฟที่ถูกสรางขึ้นจากขอมูลแบบรูปแบบรูปภาพ หรือภาพวาด คอมพิวเตอรสามารถ
เก็บภาพและจัดสงภาพเหลานี้ไปยังคอมพิวเตอรอื่นได เหมือนกับการสงขอความ โดย
คอมพิวเตอรจะทําการแปลงภาพเหลานี้ ซึ่งจะทําใหคอมพิวเตอรสามารถที่จะปรับ
ขยายภาพและเคลื่อนยายภาพเหลานั้นไดเหมือนกับขอมูลแบบขอความ
3.4 ขอมูลแบบเสียง (audio) เปนขอมูลที่เปนเสียง ลักษณะ
ของการจัดเก็บก็จะเหมือนกับการจัดเก็บขอมูลแบบภาพ คือ
คอมพิวเตอรจะทําการแปลงเสียงเหลานี้ใหคอมพิวเตอรสามารถนําไป
เก็บได ตัวอยางไดแก การตรวจคลื่นหัวใจ จะเก็บเสียงเตนของหัวใจ

         3.5 ขอมูลแบบภาพและเสียง (video) เปนขอมูลที่เปนเสียง
และรูปภาพ ทีถูกจัดเก็บไวดวยกัน เปนการผสมผสานรูปภาพและเสียง
               ่
เขาดวยกัน ลักษณะของการจัดเก็บขอมูล คอมพิวเตอรจะทําการแปลง
เสียงและรูปภาพนี้ เชนเดียวกับขอมูลแบบเสียงและขอมูลแบบภาพ
ลักษณะซึ่งจะนํามารวมเก็บไวในแฟมขอมูลเดียวกัน
ประเภทของแฟมขอมูล
ประเภทของแฟมขอมูลจําแนกตามลักษณะของการใชงานไดดังนี้

          6.1แฟมขอมูลหลัก (master file)แฟมขอมูลหลักเปนแฟมขอมูลที่บรรจุ
ขอมูลพื้นฐานที่จําเปนสําหรับระบบงาน และเปนขอมูลหลักที่เก็บไวใชประโยชน
ขอมูลเฉพาะเรื่องไมมีรายการเปลี่ยนแปลงในชวงปจจุบัน มีสภาพคอนขางคงที่ไม
เปลี่ยนแปลงหรือเคลื่อนไหวบอยแตจะถูกเปลี่ยนแปลงเมื่อมีการสิ้นสุดของขอมูล
เปนขอมูลที่สําคัญที่เก็บไวใชประโยชน ตัวอยาง เชน แฟมขอมูลหลักของ
นักศึกษาจะแสดงรายละเอียดของนักศึกษา ซึ่งมี ชื่อนามสกุล ที่อยู ผลการศึกษา
แฟมขอมูลหลักของลูกคาในแตละระเบียนของแฟมขอมูลนี้จะแสดงรายละเอียด
ของลูกคา เชน ชื่อสกุล ที่อยู หรือ ประเภทของลูกคา

           6.2 แฟมขอมูลรายการเปลี่ยนแปลง (transaction file)แฟมขอมูล
รายการเปลี่ยนแปลงเปนแฟมขอมูลที่ประกอบดวยระเบียนขอมูลที่มีการเคลื่อนไหว
ซึ่งจะถูกรวบรวมเปนแฟมขอมูลรายการเปลี่ยนแปลงที่เกิดขึ้นในแตละงวดในสวนที่
เกี่ยวของกับขอมูลนั้น แฟมขอมูลรายการเปลี่ยนแปลงนี้จะนําไปปรับรายการใน
แฟมขอมูลหลัก ใหไดยอดปจจุบัน ตัวอยางเชน แฟมขอมูลลงทะเบียนเรียนของ
นักศึกษา
6.3 แฟมขอมูลตาราง (table file)แฟมขอมูลตารางเปนแฟมขอมูลที่มี
คาคงที่ ซึ่งประกอบดวยตารางที่เปนขอมูลหรือชุดของขอมูลที่มีความเกี่ยวของกันและ
ถูกจัดใหอยูรวมกันอยางมีระเบียบ โดยแฟมขอมูลตารางนี้จะถูกใชในการประมวลผล
กับแฟมขอมูลอื่นเปนประจําอยูเสมอ เชน ตารางอัตราภาษี ตารางราคาสินคา
ตัวอยางเชน ตารางราคาสินคาของบริษัทขายอะไหลเครื่องคอมพิวเตอรดังนี้
          รหัสสินคา     รายชื่อสินคา ราคา
               51           จอภาพ           4,500
               52           แปนพิมพ       1,200
               53           แรม 4 M         4,500
               54            แรม 8 M           7,000
               55           กระดาษตอเนื่อง 500
                56           แฟมคอมพิวเตอร 200
      ในแฟมขอมูลนี้จะประกอบดวยระเบียนแฟมขอมูลตารางของสินคาที่มีฟลดตางๆ
ไดแก รหัสสินคา รายชื่อ สินคา และราคาสินคาตอหนวย แฟมขอมูลตารางรายการ
สินคา จะใชรวมกับแฟมขอมูลหลายแฟมขอมูลในระบบสินคา ไดแก แฟมขอมูล
คลังสินคา (inventory master file) แฟมขอมูลใบสั่งซื้อของลูกคา (customer order
master file) และแฟมขอมูลรายการสิตคาของฝายผลิต (production master file) มี
ขอควรสังเกตวาแฟมขอมูลตาราง แฟมขอมูลรายการเปลี่ยนแปลง และแฟมขอมูล
หลัก ทั้ง 3 แฟม จะมีฟลดที่เกี่ยวกับตัวสินคารวมกัน คือ ฟลดรหัสสินคา (product
code) ฟลดรวมกันนี้จะเปนตัวเชื่องโยงระหวางแฟมขอมูลตารางกับแฟมขอมูลอื่น ๆ
ทั้งหมดที่ตองการจะใชคาของฟดลรายชื่อสินคา (product description) และราคา
สินคา (product price) จากแฟมขอมูลตาราง
การจัดแฟมขอมูลแบบนี้จะทําใหประหยัดเนื้อที่ในอุปกรณเก็บ
ขอมูลของแฟมขอมูลหลัก กลาวคือในแฟมขอมูลหลักไมตองมี 2 ฟลด
คือ ฟลดรายการสินคาและฟลดราคาสินคา มีแตเพียงฟลดรหัสสินคาก็
เพียงพอแลว เมื่อใดที่ตองการใชฟลดรายการสินคาในการแสดงผลก็อาน
คาออกมาจากแฟมขอมูลตารางได นอกจากนั้นยังเปนการลดความ
ซ้ําซอนของขอมูลและเมื่อผูใชระบบตองการเปลี่ยนแปลงรายการสินคา
หรือราคาสินคาก็จะเปลี่ยนในแฟมขอมูลตารางทีเดียว โดยไมตองไป
เปลี่ยนแปลงในแฟมขอมูลอื่น

             6.4 แฟมขอมูลเรียงลําดับ (sort file)แฟมขอมูลเรียงลําดับ
เปนการจัดเรียงระเบียนที่จะบรรจุในแฟมขอมูลนั้นใหม โดยเรียง
ตามลําดับคาของฟลดขอมูลหรือคาของขอมูลคาใดคาหนึ่งในระเบียนนัน     ้
ก็ได เชน จัดเรียงลําดับตาม วันเดือนป ตามลําดับตัวอักขระเรียงลําดับ
จากมากไปหานอยหรือจากนอยไปหามาก เปนตน
            แฟมขอมูลรายงาน (report file)เปนแฟมขอมูลที่ถูกจัดเรียง
ระเบียบตามรูปแบบของรายงานที่ตองการแลวจัดเก็บไวในรูปของ
แฟมขอมูล ตัวอยาง เชน แฟมขอมูลรายงานควบคุมการปรับเปลี่ยนขอมูล
ที่เกิดขึ้นในขณะปฏิบัติงานแตละวัน
การเรียนรูที่ 3 ลักษณะการประมวลผลขอมูล
          
ขอมูลและการประมวลผลขอมูล
           ขอมูล คือขอเท็จจริงที่เราสนใจ สวน สารสนเทศ คือขอมูลที่ผานการ
ประมวลผลดวยวิธีการที่เหมาะสมถูกตอง จนไดรูปแบบผลลัพธ ตรงความตองการ
ของผูใช
ขอมูลที่จะนํามาประมวลผลใหเปนสารสนเทศ จะตองมีคุณสมบัติพื้นฐาน
ดังตอไปนี้
  ความถูกตอง หากมีการเก็บรวบรวมขอมูลและขอมูลเหลานั้นเชื่อถือไมได จะ
ทําใหเกิดผลเสียหายมาก ผูใชจะไมกลาอางอิงหรือนําเอาไปใชประโยชน ซึ่งเปน
เหตุใหการตัดสินใจของผูบริหารขาดความแมนยํา และมีโอกาสผิดพลาดได
โครงสรางขอมูลที่ออกแบบตองคํานึงถึงกรรมวิธีการดําเนินงานเพื่อใหไดความถูก
ตองแมนยํามากที่สุด โดยปกติความผิดพลาดของการประมวลผลสวนใหญ มาจาก
ขอมูลที่ไมมีความถูกตองซึ่งมีสาเหตุมาจากคนหรือเครื่องจักร การออกแบบระบบ
จึงตองคํานึงถึงในเรื่องนี้
  ความรวดเร็วและเปนปจจุบัน การไดมาของขอมูลจําเปนตองใหทันตอความ
ตองการของผูใช มีการตอบสนองตอผูใชไดเร็ว ตีความหมายสารสนเทศไดทันตอ
เหตุการณหรือความตองการ มีการออกแบบระบบการเรียกคนและรายงาน ตาม
ความตองการของผูใช
 ความสมบูรณ ความสมบูรณของสารสนเทศขึ้นกับการรวบรวมและวิธีการทาง
ปฏิบัติ ในการดําเนินการจัดทําสารสนเทศ ตองสํารวจและสอบถามความตองการ
ของผูใช เพื่อใหไดขอมูลที่มีความสมบูรณเหมาะสม
ความชัดเจนกะทัดรัด การจัดเก็บขอมูลตองใชพื้นที่ในการจัดเก็บขอมูลมาก จึง
จําเปนตองออกแบบโครงสรางขอมูลใหกะทัดรัด สื่อความหมายได มีการใชรหัสหรือ
ยอขอมูลใหเหมาะสม เพื่อที่จะจัดเก็บเขาไวในระบบคอมพิวเตอร
  ความสอดคลอง ความตองการเปนเรื่องสําคัญ ดังนั้นจึงตองมีการสํารวจเพื่อหา
ความตองการของหนวยงานและองคการ ดูสภาพการใชขอมูล ความลึกหรือความ
กวางของขอบเขตขอมูล ที่สอดคลองกับความตองการ

    ในการนําขอมูลไปใชประโยชน หรือการทําขอมูลใหเปนสารสนเทศ ที่จะ
นําไปใชประโยชนได จําเปนตองมีการประมวลผลขอมูลกอน การประมวลผลขอมูล
เปนกระบวนการที่มีกระบวนการยอยหลายอยาง ประกอบกันคือ
การรวบรวมขอมูล
การแยกแยะ
การตรวจสอบความถูกตอง
การคํานวณ
การจัดลําดับหรือการเรียงลําดับ
การรายงานผล
การสื่อสารขอมูลหรือการแจกจายขอมูลนั้น
การประมวลผลขอมูล จึงเปนกิจกรรมที่มีความสําคัญ เพราะขอมูลที่มีอยู รอบๆ ตัว
เรามีเปนจํานวนมากในการใชงานจึงตองมีการประมวลผล เพื่อใหเกิดประโยชน
กิจกรรมหลักของการใหไดมาซึ่งสารสนเทศ จึงประกอบดวยกิจกรรมการ เก็บ
รวบรวมขอมูล ซึ่งตองมีการตรวจสอบ ความถูกตองดวย กิจกรรมการประมวลผลซึ่ง
อาจจะเปนการแบงแยกขอมูล การจัดเรียงขอมูล การคํานวณ และกิจกรรมการเก็บ
รักษาขอมูลซึ่งอาจตอง มีการทําสําเนา ทํารายงาน เพื่อแจกจาย
วิธีการประมวลผล มี 2 ลักษณะ คือ

  (1) การประมวลผลแบบเชื่อมตรง (online processing)
หมายถึง การทํางานในขณะที่ขอมูลวิ่งไปบนสายสัญญาณเชื่อมตอจากเครื่อง
ปลายทาง (terminal) ไปยังฐานขอมูลของเครื่องหลักที่ใชในการประมวลผล
การประมวลผลแบบเชื่อมตรงจึงเปนการประมวลผลโดยทันทีทันใด เชน การ
จองตั๋วเครื่องบิน การซื้อสินคาในหางสรรพสินคา การฝากถอนเงินเอทีเอ็ม การ
ประมวลผลแบบเชื่อมตรงจึงเปนวิธีที่ใชกันมากวิธีหนึ่ง

   (2) การประมวลผลแบบกลุม (batch processing)
หมายถึง การประมวลผลในเรื่องที่สนใจเปนครั้งๆ เชน เมื่อตองการทราบขอมูล
ผลสํารวจความนิยมของประชาชนตอการเลือกตั้งสมาชิกสภาผูแทน หรือที่
เรียกวา โพล (poll) ก็มีการสํารวจขอมูลเพื่อเก็บรวบรวมขอมูล เมื่อเก็บรวบรวม
ขอมูลไดแลวก็นํามาปอนเขาเครื่องคอมพิวเตอร แลวนําขอมูล นั้นมาประมวลผล
ตามโปรแกรมที่ไดกําหนดไว เพื่อรายงานหรือสรุปผลหาคําตอบ กรณีการ
ประมวลผลแบบกลุมจึงกระทําในลักษณะเปนครั้งๆ เพื่อใหไดผลลัพธโดย
จะตองมีการรวบรวมขอมูลไวกอน
การเรียนรูที่ 4 แฟมโปรแกรมและแฟมขอมูล
          

                      แฟมโปรแกรมและแฟมขอมูล
      ถาจะแบงประเภทของแฟมในคอมพิวเตอรอีกนัยหนึ่ง อาจแบงเปนแฟม
โปรแกรม และ แฟมขอมูล แฟมโปรแกรมประกอบดวยชุดคําสั่งตางๆ ที่ทํางาน
อยางใดอยางหนึ่งเชน โปรแกรมประมวลคํา (word processor) ใชสําหรับ
พิมพเอกสารและจัดรูปแบบขอความ และโปรแกรมบีบอัดขอมูล
(compression utility) ใชสําหรับบีบอัดขอมูลที่มีขนาดเล็กลง เปนตน

       แฟมที่จัดเก็บหรือบันทึกโดยโปรแกรมเหลานี้ จัดเปนประเภทแฟมขอมูล
ซึ่งตามปกติจะมีสวนขยาย (file extension) เปนตัวบอกประเภทเชน เอกสาร
ที่สรางดวยโปรแกรมประมวลคํา Microsoft Word จะมีสวนขยายหลักเปน
.doc สวนแฟมขอมูลที่สรางดวยโปรแกรมบีบอัดขอมูล Winzip จะมีสวนขยาย
เปน .zip เปนตน ที่กลาววาสวนขยายหลักหมายความวา โปรแกรมหนึ่งอาจ
สรางแฟมขอมูลที่มีสวนขยายไดหลายหยาง ตัวอยางโปรแกรมลักษณะนี้
ไดแก Microsoft Word2000 ซึ่งสามารถสรางแฟมขอมูลที่มีสวนขยายเปน
.doc .htm .html .rtf .txt .mcw และ .wps แต จะเปนสวนขยายหลักเปน
.doc
แฟมขอมูลบางประเภทสรางและเปดดวยโปรแกรมใดโปรแกรมหนึ่ง
โดยเฉพาะ เชนแฟมที่สรางดวยโปรแกรมแตงภาพ Adobe Photoshop ซึ่งมีสวน
ขยายเปน .psd ในขณะที่แฟมขอมูลบางประเภทเปนประเภทที่มีรูปแบบมาตรฐาน
ที่สามารถสรางและเปดไดโดยโปรแกรมตางๆ เชน ประเภทแฟม Bitmap ( BMP)
Graphics Interchange Format (GIF) และ Joint Photographic Experts
Group (JPEG) สามารถสรางและเปดแกไขไดโดย Windows PaintBrush ,
Adobe Photoshop หรือ Microsoft Photo Editor ก็ได แฟมที่มีรูปแบบมาตรฐาน
เหลานี้มีประโยชนมากในการแลกเปลี่ยนขอมูลระหวางโปรแกรมตางๆ

    แฟมโปรคแกรมที่ประกอบดวยชุดคําสั่งที่ทํางานได ไดแกประเภท .exe ,
.com , .bat , .dll
หนวยการเรียนรูที่ 2 โครงสรางขอมูล

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

ประเภทของโครงสรางขอมูล
    แบงออกเปน 2 ประเภท คือ




- โครงสรางขอมูลทางกายภาพ (Physical Data Structure)
เปนโครงสรางขอมูลที่ใชโดยทั่วไปในภาษาคอมพิวเตอร แบงออกเปน 2 ประเภท

1.ขอมูลเบื้องตน (Primitive Data Types)
 - จํานวนเต็ม (Integer)
 - จํานวนทศนิยม (Floating point)
 - ขอมูลบูลีน (Boolean)
 - จํานวนจริง (Real)
 - ขอมูลอักขระ (Character)


2.ขอมูลโครงสราง (Structure Data Types)
 - แถวลําดับ (Array)
 - ระเบียนขอมูล (Record)
 - แฟมขอมูล (File)
- โครงสรางขอมูลทางตรรกะ (Logical Data Structure)




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

พัฒนาการของภาษาโปรแกรม
- ภาษาเครื่อง (Machine Language)
- ภาษาแอสเซมบลี (Assembly Language)
- ภาษาระดับสูง (High Level Language)
- ภาษายุคที่ 4 (Fourth Generation Language หรือ 4GL)
การบํารุงรักษาโปรแกรม (Program Maintenance)
      หมาย ถึง การแกไขขอผิดพลาดที่พบระหวางการทดสอบหรือระหวาง
การใชงาน ซึ่งอาจเปนการเปลี่ยนขอมูลที่ตองการใชใหมการปรับปรุงขอมูล ให
ทันเหตุการณอยูเสมอ การปรับเปลี่ยนโครงสรางบนหนาจอ เปนตน
การเรียนรูที่ 6 ลักษณะของขอมูล

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

   1. Internal Sorting คือ การเรียงลําดับขอมูลโดยเก็บไวในหนวยความจําหลัก
และขอมูลของสมาชิกจะถูกเก็บ อยูในโครงสรางอะเรย
   2. External Sorting คือ การเรียงลําดับขอมูลโดยเก็บไวในหนวยความจําสํารอง
ขอมูลสวนใหญมีจํานวนมาก จึงไม สามารถเก็บไวในหนวยความจําหลักไดทั้งหมด
ในหัวขอการเรียงลําดับ นี้จะอธิบายวิธีการเรียงลําดับขอมูลในแตละวิธีโดยสรุปอยาง
ยอ ๆ เพื่อใชเปนแนวทางในการศึกษาใน ระดับชั้นสูงขึ้นไป คงจะไมไดกลาวถึงวิธีการ
ขั้นตอนในการจัดเรียงอยางละเอียดแตจะพยายามชี้ใหเห็นถึงจุดเดนตาง ๆ ของการ
จัด เรียงลําดับในแตละวิธี
วิธีหรือชนิดของการเรียงลําดับ มีวิธีตาง ๆ ที่มักจะไดพบโดยทั่วไปดังนี้
   1. SELECTION SORT
   2. INSERTION SORT / LINEAR INSERTION SORT
   3. BUBBLE SORT
   4. SHELL SORT
   5. BUCKET SORT /RADIX SORT
   6. QUICK SORT
   7. HEAP SORT / TREE SORT
1. การเรียงลําดับแบบเลือก (Selection Sort)
เปนวิธีที่งายที่สุดในการเรียงลําดับขอมูล โดยเริ่มจาก
    - หาตําแหนงของขอมูลที่มีคานอยที่สุดแลวสลับคาของตําแหนงขอมูลนั้นกับคา
ขอมูลในตําแหนง A(1) จะได A(1) มีคานอยที่สุด
    - หาตําแหนงของขอมูลที่มีคานอยที่สุดในกลุม A(2), A(3),....,A(n) แลวทํากับ
สลับคาขอมูลในตําแหนง A(2) อยางนี้เรื่อยไปจน กระทั่งไมเกิน N-1 รอบ ก็จะได
ขอมูลที่เรียงลําดับจากนอยไปมาก
2. การเรียงลําดับแบบแทรก (Insertion Sort)
หลักการ คือ
    1. อานขอมุลที่ตองการเรียงลําดับเขามาทีละตัวโดยเริ่มจากตัวแรกกอน และหา
ตําแหนงของขอมูลที่ควรจะอยู
    2. หาที่วางสําหรับขอ 1.
    3. Insert หรือแทรกขอมูล ณ ตําแหนงในขอ 2.
3. การเรียงลําดับแบบบับเบิล (Bubble Sort)
วิธัการเรียงลําดับแบบบับเบิลจะทําการเปรียบเทียบขอมูลที่อยูในตําแหนงที่ติดกัน ถา
ขอมูลไมอยูใลําดับที่ถูกตอง ก็จะทําการสลับตําแหนงของขอมูลที่เปรียบเทียบโดยที่
การเปรียบเทียบจะเริ่มที่ตําแหนงที่ 1 กับตําแหนงที่ 2 กอน ตอไปนี้เทียบกับ ตําแหนง
ที่ 2 และตําแหนงที่ 3 จนถึงตําแหนงที่จัดเรียงแลว จากนั้นจะกลับไปเริ่มตนการ
เปรียบเทียบอีกจนกระทั่งจัดเรียง เรียบรอยหมดทุกตําแหนง
ในวิธีแบบ Bubble Sort คาในการเปรียบเทียบที่นอยที่สุดหรือมากที่สุด จะลอยขึ้น
ขางบน เหมือนกับฟองอากาศ
4. การรียงลําดับแบบเชลล(shell sort)
เปนรูปแบบของการ sort ขอมูลโดยการนําเอาขอดีของการคนหาขอมูลแบบ
แทรกและแบบเลือกและหลีกเลี่ยง การเกิดปญหาของทั้งแบบแทรกและแบบ
เลือก ซึ่งการเปรียบเทียบขอมูลในการเรียงลําดับแบบแทรก โดยการ
เปรียบเทียบ ขอมูลที่อยูไกลออกไป ซึ่งจะทําใหเราสามารถเรียงดับขอมูลใน
ตําแหนงที่อยูไกลออกไปหลังจากนั้นก็จะเรียงลําดับขอมูล ที่อยูใกลกันเขามา
(กวาในครั้งแรก) และความหางของขอมูลที่เปรียบเทียบก็จะนอยลงจนเหลือ
1
วิธีนี้คิดคนเมื่อป ค.ศ.1959 โดย ดี.แอล.เชลล(D.L.SHELL) เรียกวา การ
เรียงลําดับแบบเชลล(shell sort)
5. การเรียงลําดับโดยการใชฐานเลข(radix sort)
การเรียงลําดับแบบนี้การเรียงลําดับ จะอยูบนพื้นฐานของการแทนตําแหนง
ของตัวเลขที่ตองการนํามาเรียงลําดับ จะเริ่มจากตัวที่มีเลขนัยสําคัญสูงที่สุด
ดําเนินจนกระทั่งถึงตัวเลขที่มีเลขนัยสําคัญต่ําสุด การเรียงลําดับในวิธีนี้การ
เรียงลําดับ จะเรียงจากตัวเลขที่มีนัยสําคัญนอยที่สุดกอน เมื่อตัวเลขทั้งหมด
ถูกนํามาเรียงลําดับตามเลขนัยสําคัญที่สูงขึ้น ตัวเลขที่เหมือนกัน ในตําแหนง
นน จะตางกันในตําแหนงของเลขนัยสําคัญที่นอยกวา การประมวลผลแบบนี้จะ
ประมวลผลกับขอมูลทั้งหมดได โดยที่ไมตองมีการแบงขอมูลแบบกลุมยอย
6. การเรียงลําดับอยางเร็ว(quick sort)
ถูกสรางและตั้งชื่อโดย ซี.เอ.อาร.ฮารเวร (C.A.R HOARE) การเรียงลําดับ
อยางเร็ว จะแบงขอมูลเปนสองกลุม โดยใน การจัดเรียงจะเลือกขอมุลตัวใดตัว
หนึ่งออกมา ซึ่งจะเปนตัวที่แบงขอมูลออกเปนสองกลุม โดยกลุมแรกจะตองมี
ขอมูลนอยกวา ตัวแบง และกลุมที่มีขอมูลนอยกวาตัวแบง และอีกกลุมจะมี
ขอมูลที่มากกวาตัวแบง ซึ่งเราเรียกตัวแบงวา ตัวหลัก(pivot) ในการเลือกตัว
หลักจะมีอิสระในการเลือกขอมูลตัวใดก็ไดที่เราตองการ การเรียงลําดับแบบ
เร็วเหมาะกับขอมูลที่มีการเรียกซ้ํา

7.การเรียงลําดับฮีพ(heapsort)
เปนการเรียงลําดับที่อยูบนพื้นฐานบนพื้นฐานของโครงสรางแบบไบนารี จะ
ดําเนินการ 2 ขั้นตอน คือ
  1. การจัดขอมูลในอะเรยใหสอดคลองกับความตองการของฮีพ
  2. การขจัดหนือการเคลื่อนยายขอมูลในตําแหนงสูงสุดหรือตําแหนงยอด
ของของฮีพออกไปและสนับสนุนขอมูลขอมูล ตัวอื่นไปแทนตําแหนงนั้น
การเรียนรูที่ 8 การคนหาขอมูล
           
การคนหาขอมูล (searching)

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

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

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


                              รูปที่ 5 แสดงลักษณะการคนหาแบบ Hill climbing




        การคนหาแบบฮิลไคลบิง(Hill climbing) เปนวิธีการคนหาขอมูลที่มีลักษณะ
คลายกับการปนภูเขา การที่นักปนภูเขาจะเดินทางไปถึงยอดภูเขา นักปนเขาจะตอง
มองกอนวายอดเขาอยูที่ใด แลวนักปนเขาจะตองพยายามไปจุดนั้นใหได ลองนึก
ภาพของการปนภูเขาโลนที่มองเห็นแตยอด และนักปเขากําลังปนภูเขาอยูเบื้องลาง
ที่มีเสนทางเต็มไปหมด เพื่อที่จะเดินทางไปถึงยอดภูเขาโดยเร็วที่สุด นักปน
เขาจะมองไปที่ยอดเขาแลวสังเกตวาทิศทางใดที่เมื่อปนแลวจะยิ่งใกลยอดเขา และ
หลีกเลี่ยงทิศทางที่เมื่อไปแลวจะทําใหตัวเองหางจากยอดเขา นักปนเขาจะตองทํา
เชนนี้ไปเรื่อย ๆ จนกระทั่งถึงยอดเขา
ตัวอยางการใชฟงกชันฮิวริสติก โดยอัลกอริทึมปนเขาอยางงายโดยปญหาโลกของ
บลอก




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




                                  รูปที่ 8 การคนหาแบบดี
                                  สุดกอน
อัลกอริธึม: การคนหาแบบดีที่สุดกอน
1. เริ่มดวย OPEN ที่มีเพียงโหนดเริ่มตน
2. ทําจนกวาจะพบเปาหมาย หรือวาไมมีโหนดเหลืออยูใน OPEN
     � เลือกโหนดที่ดีที่สุดใน OPEN
     � สรางโหนดลูกใหกับโหนดที่ดีที่สุดนั้น
     � สําหรับโหนดลูกแตละตัวใหทําดังตอไปนี้
         i) ถาโหนดนั้นยังไมเคยถูกสรางมากอนหนานั้น ใหตรวจสอบคาของมัน
โดย
                 ใชฮิวริสติกฟงชัน แลวเพิ่มเขาไปใน OPEN แลวบันทึกวาเปน
โหนดแม
        ii) ถาโหนดนั้นถูกสรางมากอนหนานี้แลว ใหเปลี่ยนโหนดแมของมัน ถา
เสน
                 ทางใหมที่ไดดีกวาโหนดแมตัวเดิม ในกรณีนี้ ใหปรับเปลี่ยนคา
ตามเสน
                 ทางที่อาจจะเกิดขึ้น
การคนหาแบบ Greedy (Greedy Algorithm)
    กรีดีอัลกอริธึม เปนการคนหาแบบดีที่สุดกอน(Best first search) ที่งายที่สุด
หลักการของการคนหาแบบนี้คือ การเลือกโหนดที่ดีที่สุดตลอดเวลาอัลกอริธึม กรีดี
1. เลือกโหนดเริ่มตนมาหนึ่งโหนด
2. ใหโหนดที่เลือกมานี้เปนสถานะปจจุบัน
3. ใหทําตามขบวนการขางลางนี้จนกวาจะไมสามารถสรางโหนดลูกไดอีก
      3.1 สรางสถานะใหมที่เปนโหนดลูกที่เปนไปไดทั้งหมดจากสถานะปจจุบัน
      3.2 จากสถานะใหมที่สรางขึ้นมาทั้งหมด ใหเลือกสถานะ หรือ โหนดลูก ที่ดี
ที่สุดออกมาเพียงโหนดเดียว
4. กลับไปที่ขึ้นตอนที่ 2

ตัวอยาง จากเรื่องการเดินทางของเซลแมนที่จะตองเดินทางไปยังเมือง A B C D ซึ่ง
มีระยะทางตามตารางที่ 3 เราจะแกปญหานี้ดวยวิธีการของกรีดีบาง




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




               รูปที่ 10   ขอมูลในรูปแบบกราฟ
ตาราง 3 การคนหาแบบกรีดี
นาย  ทศพล    จอมใจ
นาย  ทศพล    จอมใจ
นาย  ทศพล    จอมใจ
นาย  ทศพล    จอมใจ

More Related Content

What's hot

ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล
ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล
ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล Watuka Wannarun
 
2. ใบความรู้ที่ 1
2. ใบความรู้ที่ 12. ใบความรู้ที่ 1
2. ใบความรู้ที่ 1ครูเพชร
 
Lecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูลLecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูลskiats
 
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูลความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูลkruthanyaporn
 
หน่วยการเรียนรู้ที่ 4
หน่วยการเรียนรู้ที่ 4หน่วยการเรียนรู้ที่ 4
หน่วยการเรียนรู้ที่ 4chaiwat vichianchai
 
บทที่ 6
บทที่ 6บทที่ 6
บทที่ 6nunzaza
 
งานคอมนางสาว มลทิรา เอกกุล เรื่อง เทคโนโลยีการสื่อสาร
งานคอมนางสาว มลทิรา  เอกกุล เรื่อง เทคโนโลยีการสื่อสารงานคอมนางสาว มลทิรา  เอกกุล เรื่อง เทคโนโลยีการสื่อสาร
งานคอมนางสาว มลทิรา เอกกุล เรื่อง เทคโนโลยีการสื่อสารmiwmilk
 
หน่วยที่ 3 ระบบฐานข้อมูลเชิงสัมพันธ์
หน่วยที่ 3 ระบบฐานข้อมูลเชิงสัมพันธ์หน่วยที่ 3 ระบบฐานข้อมูลเชิงสัมพันธ์
หน่วยที่ 3 ระบบฐานข้อมูลเชิงสัมพันธ์Kochakorn Noiket
 
บทที่ 3
บทที่ 3บทที่ 3
บทที่ 3nunzaza
 

What's hot (15)

ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล
ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล
ความรู้ทั่วไปเกี่ยวกับระบบฐานข้อมูล
 
Lesson 1
Lesson 1Lesson 1
Lesson 1
 
2. ใบความรู้ที่ 1
2. ใบความรู้ที่ 12. ใบความรู้ที่ 1
2. ใบความรู้ที่ 1
 
แนวการสอบ ม.4
แนวการสอบ ม.4แนวการสอบ ม.4
แนวการสอบ ม.4
 
Lecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูลLecture1 การประมวลผลข้อมูล และฐานข้อมูล
Lecture1 การประมวลผลข้อมูล และฐานข้อมูล
 
Database
DatabaseDatabase
Database
 
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูลความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับระบบฐานข้อมูล
 
หน่วยการเรียนรู้ที่ 4
หน่วยการเรียนรู้ที่ 4หน่วยการเรียนรู้ที่ 4
หน่วยการเรียนรู้ที่ 4
 
บทที่ 6
บทที่ 6บทที่ 6
บทที่ 6
 
งานคอมนางสาว มลทิรา เอกกุล เรื่อง เทคโนโลยีการสื่อสาร
งานคอมนางสาว มลทิรา  เอกกุล เรื่อง เทคโนโลยีการสื่อสารงานคอมนางสาว มลทิรา  เอกกุล เรื่อง เทคโนโลยีการสื่อสาร
งานคอมนางสาว มลทิรา เอกกุล เรื่อง เทคโนโลยีการสื่อสาร
 
53011213054
5301121305453011213054
53011213054
 
Dbchapter4-1
Dbchapter4-1Dbchapter4-1
Dbchapter4-1
 
หน่วยที่ 3 ระบบฐานข้อมูลเชิงสัมพันธ์
หน่วยที่ 3 ระบบฐานข้อมูลเชิงสัมพันธ์หน่วยที่ 3 ระบบฐานข้อมูลเชิงสัมพันธ์
หน่วยที่ 3 ระบบฐานข้อมูลเชิงสัมพันธ์
 
บทที่ 3
บทที่ 3บทที่ 3
บทที่ 3
 
บทที่ 1
บทที่ 1บทที่ 1
บทที่ 1
 

Viewers also liked

Microfinance Fact Sheet
Microfinance Fact SheetMicrofinance Fact Sheet
Microfinance Fact SheetLinda Peng
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจtaltan
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจtaltan
 
Microfinance factsheet
Microfinance factsheetMicrofinance factsheet
Microfinance factsheetLinda Peng
 
Edm ws 100312
Edm ws 100312Edm ws 100312
Edm ws 100312ocean
 
Grizzly Rooster Feather Hair Extensions Catalog
Grizzly Rooster Feather Hair Extensions CatalogGrizzly Rooster Feather Hair Extensions Catalog
Grizzly Rooster Feather Hair Extensions CatalogKrishna Murthy
 
Appendix a student microfinance club survey ppt graphs
Appendix a   student microfinance club survey ppt graphsAppendix a   student microfinance club survey ppt graphs
Appendix a student microfinance club survey ppt graphsLinda Peng
 
Proceso de mecanización y convergencia mediática
Proceso de mecanización y convergencia mediática Proceso de mecanización y convergencia mediática
Proceso de mecanización y convergencia mediática Lyn Mena Puentes
 
Slide teknologi pembuatan norlia binti ab wahid ap090125
Slide teknologi pembuatan norlia binti ab wahid ap090125Slide teknologi pembuatan norlia binti ab wahid ap090125
Slide teknologi pembuatan norlia binti ab wahid ap090125Liya Wahid
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจtaltan
 
Edm acoustics yan tien 2010
Edm acoustics yan tien 2010Edm acoustics yan tien 2010
Edm acoustics yan tien 2010ocean
 
אלבום תמונות
אלבום תמונותאלבום תמונות
אלבום תמונותyznaman
 
Edm frankfurt 2011 uke shantou
Edm frankfurt 2011 uke shantouEdm frankfurt 2011 uke shantou
Edm frankfurt 2011 uke shantouocean
 
אלבום תמונות
אלבום תמונותאלבום תמונות
אלבום תמונותyznaman
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจtaltan
 

Viewers also liked (17)

Microfinance Fact Sheet
Microfinance Fact SheetMicrofinance Fact Sheet
Microfinance Fact Sheet
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจ
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจ
 
Microfinance factsheet
Microfinance factsheetMicrofinance factsheet
Microfinance factsheet
 
Edm ws 100312
Edm ws 100312Edm ws 100312
Edm ws 100312
 
Grizzly Rooster Feather Hair Extensions Catalog
Grizzly Rooster Feather Hair Extensions CatalogGrizzly Rooster Feather Hair Extensions Catalog
Grizzly Rooster Feather Hair Extensions Catalog
 
Appendix a student microfinance club survey ppt graphs
Appendix a   student microfinance club survey ppt graphsAppendix a   student microfinance club survey ppt graphs
Appendix a student microfinance club survey ppt graphs
 
Proceso de mecanización y convergencia mediática
Proceso de mecanización y convergencia mediática Proceso de mecanización y convergencia mediática
Proceso de mecanización y convergencia mediática
 
Slide teknologi pembuatan norlia binti ab wahid ap090125
Slide teknologi pembuatan norlia binti ab wahid ap090125Slide teknologi pembuatan norlia binti ab wahid ap090125
Slide teknologi pembuatan norlia binti ab wahid ap090125
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจ
 
Our favorites
Our favoritesOur favorites
Our favorites
 
Edm acoustics yan tien 2010
Edm acoustics yan tien 2010Edm acoustics yan tien 2010
Edm acoustics yan tien 2010
 
אלבום תמונות
אלבום תמונותאלבום תמונות
אלבום תמונות
 
Edm frankfurt 2011 uke shantou
Edm frankfurt 2011 uke shantouEdm frankfurt 2011 uke shantou
Edm frankfurt 2011 uke shantou
 
אלבום תמונות
אלבום תמונותאלבום תמונות
אלבום תמונות
 
นาย ทศพล จอมใจ
นาย  ทศพล    จอมใจนาย  ทศพล    จอมใจ
นาย ทศพล จอมใจ
 
Redes
RedesRedes
Redes
 

Similar to นาย ทศพล จอมใจ

บทที่3การสร้างตารางฐานข้อมูล
บทที่3การสร้างตารางฐานข้อมูลบทที่3การสร้างตารางฐานข้อมูล
บทที่3การสร้างตารางฐานข้อมูลniwat50
 
นาย ณัฐพงษ์ สุดก้องไพร
นาย ณัฐพงษ์  สุดก้องไพรนาย ณัฐพงษ์  สุดก้องไพร
นาย ณัฐพงษ์ สุดก้องไพรBen Benben
 
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลIsareeya Keatwuttikan
 
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูลบทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูลniwat50
 
ลักษณะของข้อมูลที่ดีและการจัดเก็บข้อมูล
ลักษณะของข้อมูลที่ดีและการจัดเก็บข้อมูลลักษณะของข้อมูลที่ดีและการจัดเก็บข้อมูล
ลักษณะของข้อมูลที่ดีและการจัดเก็บข้อมูลปิยะดนัย วิเคียน
 
หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์ น่านกร ม.5
หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์  น่านกร ม.5หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์  น่านกร ม.5
หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์ น่านกร ม.5palmyZommanow
 
หน่วยที่ 1
หน่วยที่ 1หน่วยที่ 1
หน่วยที่ 1palmyZommanow
 
ใบความรู้ที่ 1การออกแบบฐานข้อมูล
ใบความรู้ที่ 1การออกแบบฐานข้อมูลใบความรู้ที่ 1การออกแบบฐานข้อมูล
ใบความรู้ที่ 1การออกแบบฐานข้อมูลKo Kung
 
Data processing
Data processingData processing
Data processingchukiat008
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูลYongyut Nintakan
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูลYongyut Nintakan
 
Introduction to Database
Introduction to DatabaseIntroduction to Database
Introduction to DatabaseOpas Kaewtai
 
Introduction to Database
Introduction to DatabaseIntroduction to Database
Introduction to DatabaseOpas Kaewtai
 

Similar to นาย ทศพล จอมใจ (20)

บท3
บท3บท3
บท3
 
บทที่3การสร้างตารางฐานข้อมูล
บทที่3การสร้างตารางฐานข้อมูลบทที่3การสร้างตารางฐานข้อมูล
บทที่3การสร้างตารางฐานข้อมูล
 
Chapter1
Chapter1Chapter1
Chapter1
 
นาย ณัฐพงษ์ สุดก้องไพร
นาย ณัฐพงษ์  สุดก้องไพรนาย ณัฐพงษ์  สุดก้องไพร
นาย ณัฐพงษ์ สุดก้องไพร
 
บท1
บท1บท1
บท1
 
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูลความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล
 
บท1
บท1บท1
บท1
 
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูลบทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
บทที่1ความรู้พื้นฐานเกี่ยวกับฐานข้อมูล และหลักการออกแบบฐานข้อมูล
 
บทที่1
บทที่1บทที่1
บทที่1
 
Unit1
Unit1Unit1
Unit1
 
ลักษณะของข้อมูลที่ดีและการจัดเก็บข้อมูล
ลักษณะของข้อมูลที่ดีและการจัดเก็บข้อมูลลักษณะของข้อมูลที่ดีและการจัดเก็บข้อมูล
ลักษณะของข้อมูลที่ดีและการจัดเก็บข้อมูล
 
หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์ น่านกร ม.5
หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์  น่านกร ม.5หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์  น่านกร ม.5
หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์ น่านกร ม.5
 
หน่วยที่ 1
หน่วยที่ 1หน่วยที่ 1
หน่วยที่ 1
 
การจัดเก็บข้อมูล
การจัดเก็บข้อมูลการจัดเก็บข้อมูล
การจัดเก็บข้อมูล
 
ใบความรู้ที่ 1การออกแบบฐานข้อมูล
ใบความรู้ที่ 1การออกแบบฐานข้อมูลใบความรู้ที่ 1การออกแบบฐานข้อมูล
ใบความรู้ที่ 1การออกแบบฐานข้อมูล
 
Data processing
Data processingData processing
Data processing
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูล
 
การจัดการฐานข้อมูล
การจัดการฐานข้อมูลการจัดการฐานข้อมูล
การจัดการฐานข้อมูล
 
Introduction to Database
Introduction to DatabaseIntroduction to Database
Introduction to Database
 
Introduction to Database
Introduction to DatabaseIntroduction to Database
Introduction to Database
 

นาย ทศพล จอมใจ

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