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

49

Upload: nuanlaor-nuan

Post on 07-Jul-2015

623 views

Category:

Documents


2 download

TRANSCRIPT

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

โครงสรางแผนการจัดการเรียนรู รายชั่วโมงสาระการเรียนรูพื้นฐาน เทคโนโลยีสารสนเทศ ชั้นมัธยมศึกษาปที่ 5หนวยการเรียนรูที่ 1 เทคโนโลยีการสื่อสารการเรียนรูที่ 1วัตถุประสงคของการจัดการขอมูล หนวยขอมูลและเขตขอมูลคีย .การเรียนรูที่ 2 ชนิดขอมูลและประเภทของแฟมขอมูลการเรียนรูที่ 3 ลักษณะการประมวลผลขอมูลการเรียนรูที่ 4 แฟมโปรแกรมและแฟมขอมูลหนวยการเรียนรูที่ 2 โครงสรางขอมูลการเรียนรูที่ 5 ชนิดของโครงสรางขอมูลการเรียนรูที่ 6 ลักษณะของขอมูลการเรียนรูที่ 7 การเรียงลําดับขอมูลการเรียนรูที่ 8 การคนหาขอมูล

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

หนวยการเรียนรูที่ 1 เทคโนโลยีการสื่อสาร

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

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

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

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

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

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

หนวยของขอมูลคอมพิวเตอรสามารถจัดเรียงเปนลําดับชั้นเล็กไปขนาดใหญไดดังนี้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) คือเขตขอมูลที่ใชสําหรับระบุระเบียนขอมูลอยางเฉพาะเจาะจงขอมูลที่อยูในเขตขอมูลนี้จะไมซํ้ากับระเบียนอื่น ๆ เชน แฟมขอมูลพนักงานอาจใชเลขที่พนักงานเปนตัวระบุระเบีย

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

การเรียนรูท่ี 2 ชนิดขอมูลและประเภทของแฟมขอมูล ชนิดของขอมูล

ขอมูลที่ตองการจัดเก็บนั้นอาจจะมีรูปแบบไดหลายอยาง รูปแบบสําคัญ ๆ ไดแก 3.1 ขอมูลแบบรูปแบบ (formatted data) เปนขอมูลที่รวมอักขระซึ่งอาจหมายถึง

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

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

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

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

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

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

ประเภทของแฟมขอมูล

ประเภทของแฟมขอมูลจําแนกตามลักษณะของการใชงานไดดังนี้6.1แฟมขอมูลหลัก (master file)แฟมขอมูลหลักเปนแฟมขอมูลที่บรรจุขอมูลพ้ืนฐานที่จําเปนสําหรับ

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

6.2 แฟมขอมูลรายการเปล่ียนแปลง (transaction file)แฟมขอมูลรายการเปล่ียนแปลงเปนแฟมขอมูลที่ประกอบดวยระเบียนขอมูลที่มีการเคล่ือนไหว ซ่ึงจะถูกรวบรวมเปนแฟมขอมูลรายการเปล่ียนแปลงที่เกิดข้ึนในแตละงวดในสวนที่เกี่ยวของกับขอมูลนั้น แฟมขอมูลรายการเปล่ียนแปลงนี้จะนําไปปรับรายการในแฟมขอมูลหลัก ใหไดยอดปจจุบัน ตัวอยางเชน แฟมขอมูลลงทะเบียนเรียนของนักศึกษา

6.3 แฟมขอมูลตาราง (table file)แฟมขอมูลตารางเปนแฟมขอมูลที่มีคาคงที่ ซ่ึงประกอบดวยตารางที่เปนขอมูลหรือชุดของขอมูลที่มีความเกี่ยวของกันและถูกจัดใหอยูรวมกันอยางมีระเบียบ โดยแฟมขอมูลตารางนี้จะถูกใชในการประมวลผลกับแฟมขอมูลอื่นเปนประจําอยูเสมอ เชน ตารางอัตราภาษี ตารางราคาสินคาตัวอยางเชน ตารางราคาสินคาของบริษัทขายอะไหลเครื่องคอมพิวเตอรดังนี้

รหัสสินคา รายชื่อสินคา ราคา51 จอภาพ 4,50052 แปนพิมพ 1,20053 แรม 4 M 4,50054 แรม 8 M 7,00055 กระดาษตอเนื่อง 50056 แฟมคอมพิวเตอร 200

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

ในแฟมขอมูลนี้จะประกอบดวยระเบียนแฟมขอมูลตารางของสินคาที่มีฟลดตาง ๆ ไดแก รหัสสินคา รายชื่อ สินคา และราคาสินคาตอหนวย แฟมขอมูลตารางรายการสินคา จะใชรวมกับแฟมขอมูลหลายแฟมขอมูลในระบบสินคา ไดแก แฟมขอมูลคลังสินคา (inventory master file) แฟมขอมูลใบสั่งซื้อของลูกคา (customer order master file) และแฟมขอมูลรายการสิตคาของฝายผลิต (production master file) มีขอควรสังเกตวาแฟมขอมูลตาราง แฟมขอมูลรายการเปล่ียนแปลง และแฟมขอมูลหลัก ทั้ง 3 แฟม จะมีฟลดที่เกี่ยวกับตัวสินคารวมกัน คือ ฟลดรหัสสินคา (product code) ฟลดรวมกันนี้จะเปนตัวเชื่องโยงระหวางแฟมขอมูลตารางกับฟมขอมูลอื่น ๆ ทั้งหมดที่ตองการจะใชคาของฟดลรายชื่อสินคา (product description) และราคาสินคา (product price) จากแฟมขอมูลตาราง การจัดแฟมขอมูลแบบนี้จะทําใหประหยัดเนื้อที่ในอุปกรณเก็บขอมูลของแฟมขอมูลหลัก กลาวคือในแฟมขอมูลหลักไมตองมี 2 ฟลด คือ ฟลดรายการสินคาและฟลดราคาสินคา มีแตเพียงฟลดรหัสสินคาก็เพียงพอแลว เมื่อใดที่ตองการใชฟลดรายการสินคาในการแสดงผลก็อานคาออกมาจากแฟมขอมูลตารางได นอกจากนั้นยังเปนการลดความซ้ําซอนของขอมูลและเมื่อผูใชระบบตองการเปล่ียนแปลงรายการสินคาหรือราคาสินคาก็จะเปล่ียนในแฟมขอมูลตารางทีเดียว โดยไมตองไปเปล่ียนแปลงในแฟมขอมูลอื่น

6.4 แฟมขอมูลเรียงลําดับ (sort file)แฟมขอมูลเรียงลําดับเปนการจัดเรียงระเบียนที่จะบรรจุในแฟมขอมูลนั้นใหม โดยเรียงตามลําดับคาของฟลดขอมูลหรือคาของขอมูลคาใดคาหนึ่งในระเบียนนั้นก็ได เชน จัดเรียงลําดับตาม วันเดือนป ตามลําดับตัวอักขระเรียงลําดับจากมากไปหานอยหรือจากนอยไปหามาก เปนตน

แฟมขอมูลรายงาน (report file)เปนแฟมขอมูลที่ถูกจัดเรียงระเบียบตามรูปแบบของรายงานที่ตองการแลวจัดเก็บไวในรูปของแฟมขอมูล ตัวอยาง เชน แฟมขอมูลรายงานควบคุมการปรับเปล่ียนขอมูลที่เกิดขึ้นในขณะปฏิบัติงานแตละวัน

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

การเรียนรูที่ 3 ลักษณะการประมวลผลขอมูล ขอมูลและการประมวลผลขอมูล ขอมูล คือขอเท็จจริงที่เราสนใจ สวน สารสนเทศ คือขอมูลที่ผานการประมวลผลดวยวิธีการที่เหมาะสมถูกตอง จน

ไดรูปแบบผลลัพธ ตรงความตองการของผูใช ขอมูลที่จะนํามาประมวลผลใหเปนสารสนเทศ จะตองมีคุณสมบัติพ้ืนฐานดังตอไปน้ี ความถูกตอง หากมีการเก็บรวบรวมขอมูลและขอมูลเหลาน้ันเช่ือถือไมได จะทําใหเกิดผลเสียหายมาก ผูใชจะไมกลา

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

ความรวดเร็วและเปนปจจุบัน การไดมาของขอมูลจําเปนตองใหทันตอความตองการของผูใช มีการตอบสนองตอผูใชไดเร็ว ตีความหมายสารสนเทศไดทันตอเหตุการณหรือความตองการ มีการออกแบบระบบการเรียกคนและรายงาน ตามความตองการของผูใช

ความสมบูรณ ความสมบูรณของสารสนเทศขึ้นกับการรวบรวมและวิธีการทางปฏิบัติ ในการดําเนินการจัดทําสารสนเทศ ตองสํารวจและสอบถามความตองการของผูใช เพ่ือใหไดขอมูลที่มีความสมบูรณเหมาะสม

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

ความสอดคลอง ความตองการเปนเรื่องสําคัญ ดังน้ันจึงตองมีการสํารวจเพ่ือหาความตองการของหนวยงานและองคการ ดูสภาพการใชขอมูล ความลึกหรือความกวางของขอบเขตขอมูล ที่สอดคลองกับความตองการ

ในการนําขอมูลไปใชประโยชน หรือการทําขอมูลใหเปนสารสนเทศ ที่จะนําไปใชประโยชนได จําเปนตองมีการประมวลผลขอมูลกอน การประมวลผลขอมูล เปนกระบวนการที่มีกระบวนการยอยหลายอยาง ประกอบกันคือ

การรวบรวมขอมูล การแยกแยะ การตรวจสอบความถูกตอง การคํานวณ การจัดลําดับหรือการเรียงลําดับ การรายงานผล การส่ือสารขอมูลหรือการแจกจายขอมูลน้ัน การประมวลผลขอมูล จึงเปนกิจกรรมที่มีความสําคัญ เพราะขอมูลที่มีอยู รอบๆ ตัวเรามีเปนจํานวนมากในการใชงาน

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

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

การเรียนรูที่ 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

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

หนวยการเรียนรูที่ 2 โครงสรางขอมูล

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

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

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

โครงสรางขอมูลทางกายภาพ (Physical Data Structure)

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

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

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

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

- โครงสรางขอมูลทางตรรกะ (Logical Data Structure)

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

เปนโครงสรางขอมูลท่ีเกิดจากการจินตนาการของผูใช เพื่อใชในการแกปญหาในโปรแกรมท่ีสรางขึ้น แบงเปน 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. การแทนท่ีขอมูลในหนวยความจํา

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

มีอยู 2 วิธี คือการแทนที่ขอมูลแบบสแตติก (Static Memory Representation)

เปน การแทนที่ขอมูลที่มีการจองเน้ือที่แบบคงที่แนนอน ตองมีการกําหนดขนาดกอนการใชงาน แตมีขอเสีย คือ ไมสามารถปรับขนาดใหเพิ่มข้ึนหรือลดลงได โครงสรางขอมูลที่มีการแทนที่หนวยความจําหลักแบบสแตติก คือแถวลําดับ (Array)การแทนทีขอมูลแบบไดนามิก (Dynamic Memory Representation)

เปน การแทนที่ขอมูลที่ไมตองจองเน้ือที่ ขนาดของเน้ือที่ยืดหยุนได ตามความตองการของผูใช โครงสรางขอมูลที่มีการแทนที่หนวยความจําหลักแบบไดนามิก คือ ตัวชี้หรือพอยเตอร (Pointer)5. ลักษณะของโปรแกรมแบบที่มีโครงสรางที่ดี5.1 โครงสรางโปรแกรมแบบคําสั่งตามลําดับ

เปน โครงสรางพื้นฐานที่ประกอบดวยคําสั่งทั่วๆไป เปนโครงสรางที่มีลักษณะการทํางานแบบเรียงลําดับ คือ จะทํางานตั้งแตตนจนจบโดยไมมีการขามข้ันตอนใดๆ

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

5.2 โครงสรางโปรแกรมแบบมีการตัดสินใจ (Decision)มี การตรวจสอบเง่ือนไข เพื่อตัดสินใจวาจะทําการ

ประมวลผลสวนใด โดยผลลัพธของเง่ือนไขจะมีคาของความเปนไปไดอยู 2 ลักษณะ คือ จริงและเท็จ เทาน้ัน5.3 โครงสรางโปรแกรมแบบเปนวงจรปด (Loop)

มีลักษณะการทํางานซ้ําๆกัน อยูในสวนใดสวนหน่ึงของโปรแกรม6. อัลกอริทึม (Algorithm)

อัลกอรึทึม คือ วิธีการแกปญหาตางๆ อยางมีระบบ มีลําดับข้ันตอนตั้งแตตนจนไดผลลัพธ สามารถเขียนไดหลายแบบ การเลือกใชตองเลือกใชข้ันตอนวิธีที่เหมาะสม กระชับ และรัดกุมอัลกอริทึมที่นิยมใชกันมาก ไดแก1. อัลกอริทึมแบบแตกยอย (Divide and conquer)2. อัลกอริทึมแบบเคลื่อนที่ (Dynamic Programming)3. อัลกอริทึมแบบทางเลือก (Greedy Algorithm)

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

การเขียนผังงาน (Flowchart)Flow Chart เปนการอธิบายขั้นตอนการประมวลผลโดยใชสัญลักษณใน

การแสดงความหมายหรือกําหนด ลําดับการทํางาน การใชกรอบรูปสัญลักษณท่ีส่ือความหมาย อธิบายขั้นตอนการทํางานของโปรแกรมการเขียนรหัสเทียม (Pseudo Code)

Pseudo Code การอธิบายขั้นตอนการประมวลผลโดยใชวลีภาษาอังกฤษในการแสดงอธิบาย ใชคําส้ันๆ กะทัดรัด อธิบายขั้นตอนการทํางานของโปรแกรมพัฒนาการของภาษาโปรแกรม- ภาษาเครื่อง (Machine Language)- ภาษาแอสเซมบลี (Assembly Language)- ภาษาระดับสูง (High Level Language)- ภาษายุคท่ี 4 (Fourth Generation Language หรือ 4GL)การบํารุงรักษาโปรแกรม (Program Maintenance)

หมาย ถึง การแกไขขอผิดพลาดท่ีพบระหวางการทดสอบหรือระหวางการใชงาน ซ่ึงอาจเปนการเปล่ียนขอมูลท่ีตองการใชใหมการปรับปรุงขอมูล ใหทันเหตุการณอยูเสมอ การปรับเปล่ียนโครงสรางบนหนาจอ เปนตน

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

การเรียนรูท่ี 6 ลักษณะของขอมูลลักษณะของขอมูลท่ีดี

ลักษณะของขอมูลท่ีดีขอมูลท่ีดีควรเปนขอมูลท่ีมีคุณลักษณะดังตอไปนี้• ขอมูลท่ีมีความถูกตองและเชื่อถือได (accuracy) ขอมูลจะมีความถูกตองและเชื่อถไืดมากนอยเพียงใดนั้น ขึ้นกับวิธีการท่ีใชในการควบคุมขอมูลนําเขา และการควบคุมการประมวลผลการควบคุมขอมูลนําเขาเปนการกระทําเพื่อใหเกิดความมั่นใจวาขอมูลนําเขามีความถูกตองเชื่อถือได เพราะถาขอมูลนําเขาไมมีความถูกตองแลวถึงแมจะใชวิธีการวิเคราะหและประมวลผลขอมูลท่ีดีเพียงใด ผลลัพธท่ีไดก็จะไมมีความถูกตอง หรือนําไปใชไมได ขอมูลนําเขาจะตองเปนขอมูลท่ีผานการตรวจสอบวาถูกตองแลว ขอมูลบางอยางอาจตองแปลงใหอยูในรูปแบบท่ีเครื่องคอมพิวเตอรสามารถเขาใจไดอยางถูกตอง ซ่ึงอาจตองพิมพขอมูลมาตรวจเช็คดวยมือกอน การประมวลผลถึงแมวาจะมีการตรวจสอบขอมูลนําเขาแลวก็ตาม ก็อาจทําใหไดขอมูลท่ีผิดพลาดได เชน เกิดจากการเขียนโปรแกรมหรือใชสูตรคํานวณผิดพลาดได ดังนั้นจึงควรกําหนดวิธีการควบคุมการประมวลผลซ่ึงไดแก การตรวจเช็คยอดรวมท่ีไดจากการประมวลผลแตละครั้ง หรือการตรวจสอบผลลัพธท่ีไดจากการประมวลผลดวยเครื่องคอมพิวเตอรกับขอมูลสมมติท่ีมีการคํานวณดวยวามีความถูกตองตรงกันหรือไม

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

• ขอมูลตรงตามความตองการของผูใช (relevancy) ไดแก การเก็บเฉพาะขอมูลที่ผูใชตองการเทาน้ัน ไมควร เก็บขอมูลอื่น ๆ ที่ไมจําเปนหรือไมเกี่ยวของกับการใชงาน เพราะจะทําใหเสียเวลาและเสียเน้ือที่ในหนวยเก็บขอมูล แตทั้งน้ีขอมูลที่เก็บจะตองมีความครบถวนสมบูรณดวย

• ขอมูลมีความทันสมัย (timeliness) ขอมูลที่ดีน้ันนอกจากจะเปนขอมูลที่มีความถูกตองเชื่อถือไดแลวจะ ตองเปนขอมูลที่ทันสมัย ทั้งน้ีเพื่อใหผูใชสามารถนําเอาผลลัพธที่ไดไปใชไดทันเวลา น่ันคือจะตองเก็บขอมูลไดรวดเร็วเพื่อทันความตองการของผูใช

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

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

1. Internal Sorting คือ การเรียงลําดับขอมูลโดยเก็บไวในหนวยความจําหลัก และขอมูลของสมาชิกจะถูกเก็บ อยูในโครงสรางอะเรย2. External Sorting คือ การเรียงลําดับขอมูลโดยเก็บไวใน

หนวยความจําสํารอง ขอมูลสวนใหญมีจํานวนมาก จึงไม สามารถเก็บไวในหนวยความจําหลักไดทั้งหมด

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

ในหัวขอการเรียงลําดับ นี้จะอธิบายวิธีการเรียงลําดับขอมูลในแตละวิธีโดยสรุปอยางยอ ๆ เพื่อใชเปนแนวทางในการศึกษาใน ระดับชั้นสูงขึ้นไป คงจะไมไดกลาวถึงวิธีการขั้นตอนในการจัดเรียงอยางละเอียดแตจะพยายามชี้ใหเห็นถึงจุดเดนตาง ๆ ของการจัด เรียงลําดับในแตละวิธีวิธีหรือชนิดของการเรียงลําดับ มีวิธีตาง ๆ ท่ีมักจะไดพบโดยท่ัวไปดังนี้1. SELECTION SORT2. INSERTION SORT / LINEAR INSERTION SORT3. BUBBLE SORT4. SHELL SORT

5. BUCKET SORT /RADIX SORT6. QUICK SORT7. HEAP SORT / TREE SORT1. การเรียงลําดับแบบเลือก (Selection Sort)เปนวิธีท่ีงายท่ีสุดในการเรียงลําดับขอมูล โดยเริ่มจาก- หาตําแหนงของขอมูลท่ีมีคานอยท่ีสุดแลวสลับคาของตําแหนงขอมูลนั้นกับคาขอมูลในตําแหนง A(1) จะได A(1) มีคานอยท่ีสุด- หาตําแหนงของขอมูลท่ีมีคานอยท่ีสุดในกลุม A(2), A(3),....,A(n) แลวทํากับสลับคาขอมูลในตําแหนง A(2) อยางนี้เรื่อยไปจน กระท่ังไมเกิน N-1 รอบ ก็จะไดขอมูลท่ีเรียงลําดับจากนอยไปมาก2. การเรียงลําดับแบบแทรก (Insertion Sort)

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

หลักการ คือ

1. อานขอมุลที่ตองการเรียงลําดับเขามาทีละตัวโดยเร่ิมจากตัวแรกกอน และหาตําแหนงของขอมูลที่ควรจะอยู2. หาที่วางสําหรับขอ3. Insert หรือแทรกขอมูล ณ ตําแหนงในขอ3. การเรียงลําดับแบบบับเบิล (Bubble Sort)วิธัการเรียงลําดับแบบบับเบิลจะทําการเปรียบเทียบขอมูลที่อยูในตําแหนงที่ติดกัน ถาขอมูลไมอยูใลําดับที่ถูกตอง ก็จะทําการสลับตําแหนงของขอมูลที่เปรียบเทียบโดยที่การเปรียบเทียบจะเร่ิมที่ตําแหนงที่ 1 กับตําแหนงที่ 2 กอน ตอไปนี้เทียบกับ ตําแหนงที่ 2 และตําแหนงที่ 3 จนถึงตําแหนงที่จัดเรียงแลว จากนั้นจะกลับไปเร่ิมตนการเปรียบเทียบอีกจนกระทั่งจัดเรียง เรียบรอยหมดทุกตําแหนงในวิธีแบบ Bubble Sort คาในการเปรียบเทียบที่นอยที่สุดหรือมากที่สุด จะลอยขึ้นขางบน เหมือนกับฟองอากาศ4. การรียงลําดับแบบเชลล(shell sort)เปนรูปแบบของการ sort ขอมูลโดยการนําเอาขอดีของการคนหาขอมูลแบบ แทรกและแบบเลือกและหลีกเล่ียง การเกิดปญหาของทั้งแบบแทรกและแบบเลือก ซึ่งการเปรียบเทียบขอมูลในการเรียงลําดับแบบแทรก โดยการเปรียบเทียบ ขอมูลที่อยูไกลออกไป ซึ่งจะทําใหเราสามารถเรียงดับขอมูลในตําแหนงที่อยูไกลออกไปหลังจากนั้นก็จะเรียงลําดับขอมูล ที่อยูใกลกันเขามา(กวาในคร้ังแรก) และความหางของขอมูลที่เปรียบเทียบก็จะนอยลงจนเหลือ 1วิธีนี้คิดคนเมื่อป ค.ศ.1959 โดย ดี.แอล.เชลล(D.L.SHELL) เรียกวา การเรียงลําดับแบบเชลล(shell sort)

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

5. การเรียงลําดับโดยการใชฐานเลข(radix sort)การเรียงลําดับแบบนี้การเรียงลําดับ จะอยูบนพ้ืนฐานของการแทนตําแหนงของตัวเลขที่ตองการนํามาเรียงลําดับ จะเร่ิมจากตัวที่มีเลขนัยสําคัญสูงที่สุด ดําเนินจนกระทั่งถึงตัวเลขที่มีเลขนัยสําคัญตํ่าสุด การเรียงลําดับในวิธีนี้การเรียงลําดับ จะเรียงจากตัวเลขที่มีนัยสําคัญนอยที่สุดกอน เมื่อตัวเลขทั้งหมดถูกนํามาเรียงลําดับตามเลขนัยสําคัญที่สูงขึ้น ตัวเลขที่เหมือนกัน ในตําแหนงนน จะตางกันในตําแหนงของเลขนัยสําคัญที่นอยกวา การประมวลผลแบบนี้จะประมวลผลกับขอมูลทั้งหมดได โดยที่ไมตองมีการแบงขอมูลแบบกลุมยอย6. การเรียงลําดับอยางเร็ว(quick sort)ถูกสรางและต้ังชื่อโดย ซ.ีเอ.อาร.ฮารเวร (C.A.R HOARE) การเรียงลําดับอยางเร็ว จะแบงขอมูลเปนสองกลุม โดยใน การจัดเรียงจะเลือกขอมุลตัวใดตัวหนึ่งออกมา ซึ่งจะเปนตัวที่แบงขอมูลออกเปนสองกลุม โดยกลุมแรกจะตองมีขอมูลนอยกวา ตัวแบง และกลุมที่มีขอมูลนอยกวาตัวแบง และอีกกลุมจะมีขอมูลที่มากกวาตัวแบง ซึ่งเราเรียกตัวแบงวา ตัวหลัก(pivot) ในการเลือกตัวหลักจะมีอิสระในการเลือกขอมูลตัวใดก็ไดที่เราตองการ การเรียงลําดับแบบเร็วเหมาะกับขอมูลที่มีการเรียกซ้ํา7.การเรียงลําดับฮีพ(heapsort)เปนการเรียงลําดับที่อยูบนพ้ืนฐานบนพ้ืนฐานของโครงสรางแบบไบนารี จะดําเนินการ 2 ขั้นตอน คือ玨 1. การจัดขอมูลในอะเรยใหสอดคลองกับความตองการของฮีพ玨 2. การขจัดหนือการเคล่ือนยายขอมูลในตําแหนงสูงสุดหรือตําแหนงยอดของของฮีพออกไปและสนับสนุนขอมูลขอมูล ตัวอื่นไปแทนตําแหนงนั้น

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

การเรียนรูท่ี 8 การคนหาขอมูลการคนหาขอมูล (searching)การคนหาคําตอบ หรือการคนหาขอมูลในทางคอมพิวเตอรมักจะกระทําบนโครงสรางขอมูลแบบตนไม

และกราฟ ทั้งนี้เพราะโครงสรางขอมูลในลักษณะนี้สามารถทําใหการคนหาทําไดสะดวกและสามารถพลิกแพลงการคนหาไดงาย ในความเปนจริงแลว การคนหาขอมูลบางครั้งสามารถกระทําบนโครงสรางขอมูลชนิดอื่นก็ไดเชน อาเรย แสตก และคิว แตการจัดขอมูลในโครงสรางเชนนี้ มีขอจํากัดในการคนหาขอมูลมาก การคนหาทําไดแบบเรียงลําดับ(Sequencial Search) เทานั้น ซ่ึงใชไดกับขอมูลที่มีขนาดเล็ก ดังนั้นในการคนหาขอมูลที่มีขนาดใหญ กอนการคนหา หรือระหวางการคนหา ขอมูลที่จะถูกคนจะตองถูกจัดใหอยูในรูปแบบของตนไม หรือกราฟเทานั้น การคนหาขอมูลบนโครงสรางตนไมและกราฟสามารถจํ าแนกได 2 แบบคือ การคนหาแบบไบลด(Blind Search) และการคนหาแบบฮิวรสิติก(Heuristic Search)

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

การคนหาแบบไบลด(Blind search) เปนการคนหาแบบที่เดินทางจากโหนดหนึ่งไปยังอีกโหนดหนึ่ง โดยอาศัยทิศทางเปนตัวกําหนดการคนหา ไมตองมีขอมูลอะไรมาชวยเสริมการตัดสินใจวาจะเดินทางตอไปอยางไร หรือกลาวอยางงาย ๆ คือการจะหยิบขอมูลใดมาชวยในการคนหาตอไป ไมตองอาศัยขอมูลใด ๆ ทั้งสิ้น นอกจากทิศทางซ่ึงเปนรูปแบบตายตัว การคนหาแบบไบลดสามารถแบงยอยไดดังนี้ คือ การคนหาทั้หมด และการคนหาบางสวน

- การคนหาทั้งหมด(exhaustive search) คือ การคนหาทั้งหมดของปริภูมิสถานะ- การคนหาบางสวน (partial search) การคนหาเพียงบางสวนของปริภูมิสถานะ ซ่ึงในความเปน

จริงการคนหาสวนมากใชการคนหาเฉพาะบางสวนเทานั้นเนื่องจากปริภูมิสถานะมักมีขนาดใหญ เทาใหไมสามารถคนหาไดทั้งหมด ดังนั้นจึงมีความเปนไปไดวาคําตอบที่ไดอาจไมใชคําตอบที่ดีที่สุด การคนหาแบบนี้สามารถแบงไดเปน 2 ประเภทคือ การคนหาแบบลึกกอน(Depth first search) และการคนหาแบบกวางกอน (Breadth first search)

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

การคนหาแบบลึกกอน(Depth first search)การคนหาแบบลึกกอนเปนการคนหาท่ีกําหนดทิศทางจากรูปของ

โครงสรางตนไม ท่ีเริ่มตนจากโหนดราก(Root node) ท่ีอยูบนสุด แลวเดินลงมาใหลึกท่ีสุด เมื่อถึงโหนดลางสุด(Terminal node) ใหยอนขึ้นมาท่ีจุดสูงสุดของก่ิงเดี่ยวกันท่ีมีก่ิงแยกและยังไมไดเดินผาน แลวเริ่มเดินลงจนถึงโหนดลึกสุดอีก ทําเชนนี้สลับไปเรื่อยจนพบโหนดท่ีตองการหาหรือสํารวจครบทุกโหนดแลวตามรูปท่ี 1 การคนหาแบบลึกกอนจะมีลําดับการเดินตามโหนดดังตัวเลขท่ีกํากับไวในแตละโหนด

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

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

รูปท่ี 2 โครงสรางขอมูลแบบกราฟ

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

การสํารวจจะเร่ิมตนที่ 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 ลําดับการคนหาแบบลึกกอน

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

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

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

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

การคนหาแบบกวางกอน (Breadth first search)การคนหาแบบกวางกอนเปนการกําหนดทิศทางการคนหาแบบที่ละระดับของโครงสรางตนไมโดย

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

รูปที่ 3 ลําดับการคนหาแบบกวางกอนบนโครงสรางตนไม

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

รูปท่ี 3 ลําดับการคนหาแบบกวางกอนบนโครงสรางตนไม

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

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

รูปที่ 4 โครงสรางขอมูลแบบกราฟ

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

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

ตาราง 2 ลําดับการคนหาแบบกวางกอน

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

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

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

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

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

การคนหาแบบฮิวริสติก(Heuristic Search)

การคนหาคําตอบอาศัยวิธีการทางฮิวริสติก (heuristic search) มีความความแตกตางจากการคนหาขอมูลแบบธรรมดาและแบบฮิวริสติกนั้นอยูที่การคนหาขอมูลธรรมดา ผูทีท่ําการคนขอมูลจะตองตรวจสอบขอมูลทีละตัวทุกตัวจนครบ แตฮิวริสติกจะไมลงไปดู ขอมูลทุกตัว วิธีการนี้จะเลือกไดคําตอบที่เหมาะสมใหกับการคนหา ซึ่งมีขอดีคือ สามารถทําการ คนหาคําตอบจาก ขอมูลที่มีขนาดใหญมาก ๆ ได แตมีขอเสียคือคําตอบที่ไดเปนเพียงคําตอบที่ดี เทานั้นไมแนวาจะดีที่สุด แตเนื่องจากวาปญหาในบางลักษณะนั้นใหญมาก และเปนไปไมไดที่จะทํา การคนหาดวยวิธี ธรรมดากระบวนการของฮิวริสติกจึงเปนสิ่งที่จําเปนในเร่ืองของฮิวริสติกนั้น นอกจากจะมีการคนหาแบบฮิวริสติกแลว ยังมีอีกสิ่งหนึ่งที่สําคัญคือ ฮิวริสติกฟงกชัน (heuristic function) ซึ่งหมายถึงฟงกชันที่ทําหนาที่ในการวัดขนาดของความเปน ไปไดในการแกปญหาซึ่งจะแสดงดวยตัวเลข วิธีการดังกลาวจะกระท ําไดโดยการพิจารณาถึงวิธีการ (aspects) ตาง ๆ ที่ใชในการแกปญหา ณ สถานะหนึ่งวาจะสามารถแกปญหาไดตามที่ตองการหรือไม โดยกําหนดเปนนํ้าหนักที่ใหกับการแกปญหาของแตละวิธี นํ้าหนักเหลานี้จะถูกแสดงดวยตัวเลขที่กํากับไวกับโหนดตาง ๆ ในกระบวนการ คนหา และคาเหลานี้จะเปนตัวที่ใชในการประมาณความเปนไปไดวาเสนทางที่ผานโหนดนั้นจะมีความเปนไปไดในการนําไปสูหนทางการแกปญหาไดมากนอยแคไหน

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

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

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

การคนหาแบบปนเขา(Hill climbing)ฟงกชันฮิวริสติกสามารถนํามาชวยในกระบวนการคนหาเพื่อใหไดคําตอบ

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

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

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

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

ตัวอยางการใชฟงกชันฮิวริสติก โดยอัลกอริทึมปนเขาอยางงายโดยปญหาโลกของบลอก

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

รูปที่ 6 การคนหาแบบ Hill climbing

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

ตัวเลข 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)

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

การคนหาดีสุดกอน(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 คะแนนตามลํ าดับ ทําเชนนี้เรื่อย ๆ จนพบคําตอบหรือจนไมสามารถ สรางโหนดตอไปไดอีก

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

รูปที่ 7 ขั้นตอนของการคนหาแบบดีที่สุดกอน

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

รูปที่ 8 การคนหาแบบดีสุดกอน

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

อัลกอริธึม: การคนหาแบบดีที่สุดกอน1. เริ่มดวย OPEN ที่มีเพียงโหนดเริ่มตน2. ทําจนกวาจะพบเปาหมาย หรือวาไมมีโหนดเหลืออยูใน OPEN

� เลือกโหนดที่ดีที่สุดใน OPEN� สรางโหนดลูกใหกับโหนดที่ดีที่สุดน้ัน� สําหรับโหนดลูกแตละตัวใหทําดังตอไปน้ี

i) ถาโหนดน้ันยังไมเคยถูกสรางมากอนหนาน้ัน ใหตรวจสอบคาของมันโดย

ใชฮิวริสติกฟงชัน แลวเพิ่มเขาไปใน OPEN แลวบันทึกวาเปนโหนดแม

ii) ถาโหนดน้ันถูกสรางมากอนหนาน้ีแลว ใหเปลี่ยนโหนดแมของมัน ถาเสน

ทางใหมที่ไดดีกวาโหนดแมตัวเดิม ในกรณีน้ี ใหปรับเปลี่ยนคาตามเสน

ทางที่อาจจะเกิดข้ึน

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

การคนหาแบบ Greedy (Greedy Algorithm)กรีดีอัลกอริธึม เปนการคนหาแบบดีที่สุดกอน(Best first

search) ที่งายที่สุด หลักการของการคนหาแบบน้ีคือ การเลือกโหนดที่ดีที่สุดตลอดเวลาอัลกอริธึม กรีดี1. เลือกโหนดเริ่มตนมาหน่ึงโหนด2. ใหโหนดที่เลือกมาน้ีเปนสถานะปจจุบัน3. ใหทําตามขบวนการขางลางน้ีจนกวาจะไมสามารถสรางโหนดลูกไดอีก

3.1 สรางสถานะใหมที่เปนโหนดลูกที่เปนไปไดทั้งหมดจากสถานะปจจุบัน

3.2 จากสถานะใหมที่สรางข้ึนมาทั้งหมด ใหเลือกสถานะ หรือ โหนดลูก ที่ดีที่สุดออกมาเพียงโหนดเดียว4. กลับไปที่ข้ึนตอนที่ 2

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

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

รูปท่ี 9 การแกปญหาการเดินทางของเซลแมนดวยกรีดีอัลกอริธึม

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

จากรูปท่ี 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 ขอมูลในรูปแบบกราฟ

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

ตาราง 3 การคนหาแบบกรีดี

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

การคนหาแบบ A*การคนหาแบบ A* เปนอีกแบบของการคนหาแบบดีที่สุด

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

f = g + h’

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

อัลกอริทึม A* (A* Search) เปนการขยายอัลกอริทึมดีสุดกอนโดยพิจารณาเพ่ิมเติมถึงตนทุนจากสถานะเร่ิมตนมายังสถานะปจจุบันเพ่ือใชคํานวณคาฮิวริสติกดวย ในกรณีของอัลกอริทึม A* เราตองการหาคาตํ่าสุดของฟงกชัน f'ของสถานะ s นิยามดังนี้

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

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

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

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

จากรูปจะเห็นไดวาในขั้นตอนที่ 4 สถานะ C จะถูกเลือกมากระจายโดยอัลกอริทึม A* เนื่องจากมีคา f' นอยสุดเทากับ 3.5 ซึ่งนอยกวา E ที่มีคาเทากับ 4 แมวาคา h' ของ E จะนอยกวาซึ่งตางจากการสรางสถานะของอัลกอริทึมดีสุดกอน