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