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

49

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

หนวยการเรยนรท 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 แทนอกษรตว ?0000 0000 1110 0110 แทนอกษรตว ?

3.เขตขอมล (Field)ซงประกอบดวยกลมตวอกษรทแทนขอเทจจรง

4.ระเบยน (Record)ระเบยน คอโครงสรางขอมลทแทนตววตถชนหนง เชน ระเบยนขอมล

นกศกษาเลขทะเบยน 431999999

5.แฟม (file)ตารางทเปนกลมของระเบยนทมโครงสรางเดยวกน เชน ตารางการ

สงซอสนคาของลกคา

6.ฐานขอมล (Database)กลมของตาราง (และความสมพนธ)

การเรยงลาดบชนของหนวยขอมลดงนเขตขอมลคย (Key field) คอเขตขอมลทใชสาหรบระบระเบยนขอมลอยางเขตขอมลคย (Key field) คอเขตขอมลทใชสาหรบระบระเบยนขอมลอยางเฉพาะเจาะจงขอมลทอยในเขตขอมลนจะไมซากบระเบยนอน ๆ เชน แฟมขอมลพนกงานอาจใชเลขทพนกงานเปนตวระบระเบยบ

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

ขอมลทตองการจดเกบนนอาจจะมรปแบบไดหลายอยาง รปแบบสาคญ ๆ ไดแก

3.1 ขอมลแบบรปแบบ (formatted data) เปนขอมลทรวมอกขระซงอาจหมายถงตวอกษร ตวเลข ซงเปนรปแบบทแนนอน ในแตละระเบยน ทกระเบยนทอยในแฟมขอมลจะมรปแบบทเหมอนกนหมด ขอมลทเกบนนอาจเกบในรปของรหสโดยเมออานขอมลออกมาอาจจะตองนารหสนนมาตความหมายอกครง เชน แฟมขอมลประวตนกศกษา

3.2 ขอมลแบบขอความ (text)เปนขอมลทเปนอกขระในแบบขอความ ซง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,50052 แปนพมพ 1,20053 แรม 4 M 4,50054 แรม 8 M 7,00055 กระดาษตอเนอง 50056 แฟมคอมพวเตอร 20056 แฟมคอมพวเตอร 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)(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)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 วธ คอมอย 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)- ภาษาเครอง (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 SORT2. INSERTION SORT / LINEAR INSERTION SORT3. BUBBLE SORT4. SHELL SORT5. BUCKET SORT /RADIX SORT6. QUICK SORT7. 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)เรยงลาดบแบบเชลล(shell sort)5. การเรยงลาดบโดยการใชฐานเลข(radix sort)การเรยงลาดบแบบนการเรยงลาดบ จะอยบนพนฐานของการแทนตาแหนงของตวเลขทตองการนามาเรยงลาดบ จะเรมจากตวทมเลขนยสาคญสงทสด ดาเนนจนกระทงถงตวเลขทมเลขนยสาคญตาสด การเรยงลาดบในวธนการเรยงลาดบ จะเรยงจากตวเลขทมนยสาคญนอยทสดกอน เมอตวเลขทงหมดถกนามาเรยงลาดบตามเลขนยสาคญทสงขน ตวเลขทเหมอนกน ในตาแหนงนน จะตางกนในตาแหนงของเลขนยสาคญทนอยกวา การประมวลผลแบบนจะประมวลผลกบขอมลทงหมดได โดยทไมตองมการแบงขอมลแบบกลมยอย

6. การเรยงลาดบอยางเรว(quick sort)ถกสรางและตงชอโดย ซ.เอ.อาร.ฮารเวร (C.A.R HOARE) การเรยงลาดบอยางเรว จะแบงขอมลเปนสองกลม โดยใน การจดเรยงจะเลอกขอมลตวใดตวหนงออกมา ซงจะเปนตวทแบงขอมลออกเปนสองกลม โดยกลมแรกจะตองมขอมลนอยกวา ตวแบง และกลมทมขอมลนอยกวาตวแบง และอกกลมจะมขอมลทมากกวาตวแบง ซงเราเรยกตวแบงวา ตวหลก(pivot) ในการเลอกตวหลกจะมอสระในการเลอกขอมลตวใดกไดทเราตองการ การเรยงลาดบแบบเรวเหมาะกบขอมลทมการเรยกซา

7.การเรยงลาดบฮพ(heapsort)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สถานะอนทกตวทระดบ 1ถงระดบ n ไมจาเปนตองถกกระจายจนหมด

3. ถาคาตอบอยในระดบn+1 สถานะทกตวทระดบ 1ถงระดบ n จะตองถกกระจายจนหมด ทาใหมสถานะทไมจาเปนในเสนทางทจะไปสคาตอบถกกระจายออกดวย

4. เมอพบคาตอบไมสามารถรบประกนไดวาเสนทไดเปนเสนทางทสนทสดหรอไม

4. ถามคาตอบจะรบประกนไดวาจะพบคาตอบแน ๆ และจะไดเสนทางสนทสดดวย

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

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

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

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

รวดเรวและมประสทธภาพ วธการทจะนาฟงกชนฮวรสตกมาใชมหลายวธดวยกนขนอยกบวาจะใชในลกษณะใด เชนเลอกสถานะทมคาฮวรสตกดขน แลวเดนไปยงสถานะนนเลยโดยไมตองสนใจสถานะทมคาฮวรสตกแยกวาสถานะปจจบนหรอวาจะเกบสถานะทกตวไวแมวาคาฮวรสตกจะแยลงแลวพจารณาสถานะเหลานทหลง เปนตน ในสวนตอไปนจะกลาวถงอลกอรทมตาง ๆ ทนาฟงกชนฮวรสตกมาชวยในการคนหาคาตอบ โดยเรมจากอลกอรทมปนเขา (Hill climbing algorithm)

รปท 5 แสดงลกษณะการคนหาแบบ Hill climbingรปท 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 เปนคาทดขน อลกอรทมจะมายงสถานะนและคนพบคาตอบในทสดสตกเทากบ 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ตามล าดบ จากนนใหเลอกสตกฟงกชน ไดผลออกมาเปนคะแนนคอ 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 ซงตวอยาง จากเรองการเดนทางของเซลแมนทจะตองเดนทางไปยงเมอง 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 การคนหาแบบกรด

การคนหาแบบ A*การคนหาแบบ A* เปนอกแบบของการคนหาแบบดทสดกอน วธการเลอก

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

f = g + h’f = g + h’

อลกอรทม 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' ดคอตนทนเพอจะนาไปสคาตอบหลงจากนประการ คอ (1) สถานะทดตองม h' ดคอตนทนเพอจะนาไปสคาตอบหลงจากนตองนอย และ (2) ตนทนทจายไปแลวกวาจะถงสถานะน (g) ตองนอยดวย เราจงไดวา A* จะคนหาเสนทางทใหตนทนโดยรวมนอยทสดตามคา f' ซงตางจากอลกอรทมดสดกอน ทเนนความสาคญของสถานะทตนทนหลงจากนทจะนาไปสคาตอบตองนอย โดยไมสนใจวาตนทนทจายไปแลวกวาจะนามาถงสถานะนตองเสยไปเทาไหร

รปท 11 แสดงการคนหาดวยอลกอรทม A* กนสถานะในรปท 8 โดยสมมตใหตนทนหรอระยะหางระหวางสถานะพอแมไปยงสถานะลกเทากบ 1 หนวย เชนตน ทนจรง (g) จาก A ไปยง B,C หรอ D มคาเทากบ 1 หนวยจากรปจะเหนไดวาในขนตอนท 4 สถานะ C จะถกเลอกมากระจายโดยอลกอรทม A* เนองจากมคา f' นอยสดเทากบ 3.5 ซงนอยกวา E ทมคาเทากบ 4 แมวาคา h' ของ E จะนอยกวาซงตางจากการสรางสถานะของอลกอรทมดสดกอน

จดทาโดย

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

ชน ม.5