SlideShare a Scribd company logo
1 of 45
หน่วยการเรียนรู้ที่ 1 เทคโนโลยีการสื่อสาร  ข้อมูล(Data)  เป็นองค์ประกอบที่สำคัญของระบบสารสนเทศคอมพิวเตอร์ การจัดการข้อมูล (data management)  เป็นกลยุทธ์ที่ใช้ในการบริหารองค์การให้มีประสิทธิภาพ และต้องมีการตัดสินใจที่ถูกต้อง รวดเร็วและทันต่อเหตุการณ์ในการทำธุรกิจในยุคปัจจุบัน
วัตถุประสงค์ในการจัดการข้อมูล1.การเก็บข้อมูล สามารถนำกลับมาใช้งานได้อีกในภายหลัง	2.การจัดข้อมูล สามารถนำกลับมาใช้งานได้อย่างมีประสิทธิภาพ	3.การปรับปรุงข้อมูล สามารถปรับปรุงข้อมูลให้เป็นข้อมูลปัจจุบันอยู่เสมอ	4.การปกป้องข้อมูล ป้องกันข้อมูลให้มีความปลอดภัยจากการลักลอบใช้งาน หรือแก้ไข
เขตข้อมูล ตัวอักษร หน่วยข้อมูล (Data Unit)หน่วยของข้อมูลคอมพิวเตอร์สามารถจัดเรียงจากขนาดเล็กไปขนาดใหญ่ดังนี้*บิต(bit)เช่น 0 หรือ 1*ตัวอักษร(character) ตัวอักษร 1 ตัว		*ASCII 1 bytes ( 8 bit)		*Unicode 2 bytes (16 bit)*เขตข้อมูล (field) ข้อความใด ๆ ซึ่งประกอบไปด้วยกลุ่มตัวอักษรที่แทนข้อเท็จจริง
ฐานข้อมูล อาจารย์ นักศึกษา แฟ้ม ระเบียนข้อมูล วิชา *ระเบียนข้อมูล(record) กลุ่มของเขตข้อมูลต่างๆ *แฟ้ม(file) กลุ่มของระเบียนข้อมูลที่มีโครงสร้างเดียวกัน แฟ้ม ตำแหน่ง *ฐานข้อมูล (database) กลุ่มของแฟ้มที่มีความสัมพันธ์กัน
เขตข้อมูลคีย์ เขตข้อมูลคีย์ (Key Field)*เขตข้อมูลคีย์ (key field)ใช้สำหรับระบุระเบียนข้อมูลอย่างเฉพาะเจาะจง ข้อมูลในกลุ่มนี้จะไม่ซ้ำกับระเบียนอื่น ๆ
ชนิดของข้อมูล (Data Types)*ค่าตรรกะ (booleans) มีค่า จริง กับ เท็จ 	*จำนวนเต็ม (integers) เลขที่ไม่มีเศษส่วนหรือทศนิยม เช่น 1, -1, 345, -543	*จำนวนจริง (floating-point values) จำนวนตัวเลขใดๆ เช่น 23.456, -4755.3333445	*ตัวอักษร (character) ข้อมูลที่แทนด้วยกลุ่มของบิต เป็นตัวอักษรหรือสัญลักษณ์ เช่น A, S, B 	*สายอักขระ (strings) กลุ่มของตัวอักษร	*วันที่และเวลา (date/time) ข้อมูลวันที่หรือเวลา	*ไบนารี (binary) ข้อมูลทางคอมพิวเตอร์ เช่น แฟ้ม รูปภาพ ไฟล์วิดีโอ
ประเภทของแฟ้มข้อมูล	*แฟ้มหลัก (master files) คือแฟ้มที่เก็บข้อมูลที่เกิดการเปลี่ยนแปลงน้อย หรือแทบไม่มีการเปลี่ยนแปลงเลย อาจเรียกได้ว่าเป็นแฟ้มข้อมูลถาวร หรือกึ่งถาวร		*แฟ้มลูกค้า แฟ้มสินค้า  แฟ้มข้อมูลการขายประจำเดือน 	*แฟ้มรายการเปลี่ยนแปลง (transaction files) คือแฟ้มที่เก็บข้อมูลรายการที่เกิดการเปลี่ยนแปลงก่อนที่จะนำไปปรับปรุงให้กับแฟ้มรายการหลัก		*แฟ้มรายการขายในแต่ละวัน
ลักษณะการประมวลผลข้อมูล(Data Processing)*การประมวลผลแบบกลุ่ม (batch processing) 	*การประมวลผลทันที (real-time processing)- การประมวลผลแบบกลุ่ม (batch processing) เป็นการประมวลผลโดยรวบรวมข้อมูลต่างๆ มาประมวลผลตามช่วงเวลาที่กำหนด โดยข้อมูลที่ใช้ในการประมวลผลอาจมาจากเอกสารต่างๆ ข้อมูลที่ป้อนแบบออนไลน์ แต่ข้อมูลจะยังไม่ถูกประมวลผลทันที จนกว่าจะถึงช่วงเวลาที่กำหนดไว้ เพื่อลดค่าใช้จ่าย เช่น ค่าน้ำประปา ค่าไฟฟ้า ยอดบัญชีบัตรเครดิต - การประมวลผลทันที (real-time processing) เป็นการประมวลผลที่ได้ผลลัพธ์ทันที่เมื่อทำรายการเข้าสู่ระบบ เช่น การถอนเงินจากตู้ ATM ที่ต้องมีการปรับเปลี่ยนยอดเงินในบัญชี ซึ่งถ้าการประมวลผลทำแบบออนไลน์ จะเรียกว่า online transaction processing (OLTP)
การเข้าถึงข้อมูล (Data Access)การเข้าถึงข้อมูลแบบลำดับ (sequential data access) เป็นการเข้าถึงข้อมูลแบบที่ต้องอาศัยการอ่านข้อมูลตั้งแต่ต้น จนถึงข้อมูลที่ต้องการ เหมาะสำหรับการอ่านข้อมูลปริมาณมากและเรียงลำดับ การเข้าถึงข้อมูลแบบสุ่ม (random data access) การเข้าถึงข้อมูลลักษณะนี้จะต้องใช้กลไกการหาตำแหน่งระเบียนวิธีต่างๆ เหมาะสำหรับการค้นหาข้อมูลจำนวนไม่มาก และมีการเพิ่ม ลบ แก้ไขข้อมูลเป็นประจำ
การจัดโครงสร้างแฟ้มข้อมูล มีปัจจัยที่ต้องพิจารณาในการเลือกโครงสร้าง ได้แก่ ปริมาณข้อมูล ความถี่ในการดึงข้อมูล ความถี่ในการปรับปรุงข้อมูล จำนวนครั้งที่อ่านข้อมูลจากหน่วยความจำสำกรองต่อการดึงข้อมูล การจัดโครงสร้างข้อมูลแบบต่างๆ แฟ้มลำดับ (sequential file) แฟ้มสุ่ม ( direct file หรือ hash file) แฟ้มดรรชนี (indexed file) แฟ้มลำดับดรรชนี (indexed sequential file)
ตัวอย่างแฟ้มดรรชนี ตัวอย่างการแทรก record
การจัดโครงสร้างแฟ้มข้อมูลแฟ้มลำดับดรรชนี (indexed sequential file) คือตัวระเบียนในแฟ้มข้อมูลไม่เรียงตามลำดับ แต่เรียงเฉพาะคีย์ในดรรชนี และมีการกำหนดดรรชนีบางส่วน(partial indexed)เพิ่มขึ้นมาตัวอย่างแฟ้มลำดับดรรชนี
ตัวอย่างการแทรก record เปรียบเทียบโครงสร้างแฟ้มข้อมูล
แฟ้มโปรแกรมและแฟ้มข้อมูล แฟ้มโปรแกรม คือแฟ้มโปรแกรมประกอบด้วยชุดคำสั่งต่างๆ ที่ทำงานอย่างใดอย่างหนึ่ง เช่น โปรแกรมประมวลผลคำ Microsoft Word
แฟ้มข้อมูล คือแฟ้มที่ได้จากการบันทึกข้อมูลด้วยแฟ้มโปรแกรม ซึ่งแฟ้มข้อมูลบางประเภทสร้างและเปิดด้วยโปรแกรมใดโปรแกรมหนึ่งโดยเฉพาะ
ระบบแฟ้มข้อมูล (File Systems)ในอดีตการจัดเก็บข้อมูลด้วยคอมพิวเตอร์มีลักษณะเป็นแฟ้มข้อมูล เมื่อมีการขยายระบบก็เริ่มมีการเก็บข้อมูลที่อิสระต่อกัน ทำให้มีการเก็บข้อมูลอยู่หลายที่ ข้อมูลเหล่านั้นอาจไม่ใช่ข้อมูลที่เป็นปัจจุบัน การขยายระบบจึงจำเป็นอย่างยิ่งที่จะต้องคำนึงถึงการจัดเก็บข้อมูลด้วย ซึ่งการเก็บข้อมูลแบบเดิมทำให้เกิดปัญหาต่างๆ ดังนี้ปัญหาของแฟ้มข้อมูล -ความซ้ำซ้อนของข้อมูล (dataredundancy) -สอดคล้องกันของข้อมูล (datainconsistency) -ข้อมูลแยกอิสระต่อกัน (dataisolation) -ความไม่ปลอดภัยของข้อมูล (poor security) -ขาดบูรณภาพของข้อมูล (lack of data integrity) -ความขึ้นต่อกันระหว่างโปรแกรมประยุกต์กับโครงสร้างของแฟ้มข้อมูล (application / data
ระบบฐานข้อมูล (DATABASE SYSTEMS) ระบบฐานข้อมูล (database) หมายถึง กลุ่มของข้อมูลที่มีความสัมพันธ์กันและถูกนำมาจัดเก็บในที่เดียวกัน โดยข้อมูลอาจเก็บไว้ในแฟ้มข้อมูลเดียวกันหรือแยกเก็บหลาย ๆ แฟ้มข้อมูล แต่ต้องมีการสร้างความสัมพันธ์ระหว่างข้อมูลเพื่อประสิทธิภาพในการจัดการข้อมูล  ระบบจัดการฐานข้อมูล (Database Management System:DBMS) เป็นซอฟต์แวร์ระบบที่ใช้ในการจัดการฐานข้อมูล เปรียบเหมือนสื่อกลางระหว่างผู้ใช้และโปรแกรมประยุกต์ต่างๆที่เกี่ยวข้องกับการใช้ฐานข้อมูล
ข้อดีของระบบฐานข้อมูล -ลดความซ้ำซ้อนของข้อมูล (reducedataredundancy) -การใช้ข้อมูลร่วมกัน (datasharing) -ข้อมูลมีความถูกต้องมากขึ้น (improveddataintegrity)  -เพิ่มความปลอดภัยให้กับข้อมูล (increasedsecurity) -มีความเป็นอิสระของข้อมูล (dataindependency)
หน่วยการเรียนรู้ที่ 2 โครงสร้างข้อมูล ชนิดของโครงสร้างข้อมูล   โครงสร้างข้อมูล -เป็นวิธีจัดเก็บข้อมูลในคอมพิวเตอร์ เพื่อให้สามารถนำมาใช้ได้อย่างมีประสิทธิภาพ  -การใช้งานโครงสร้างข้อมูล ต้องมีขั้นตอนวิธีที่เหมาะสม จึงจะสามารถใช้งานได้อย่างมีประสิทธิภาพ -การออกแบบโครงสร้างข้อมูลที่ดีจะช่วยลดเวลาในการกระทำการและลดการใช้งานในพื้นที่ความจำด้วย วัตถุประสงค์ โครงสร้างข้อมูลใช้เพื่อวัตถุประสงค์ 3 ประการ 1.การจัดเก็บข้อมูลในโลกแห่งความจริง 2.เครื่องมือของนักเขียนโปรแกรม 3.แบบจำลอง
การจัดเก็บข้อมูลในโลกแห่งความจริงเป็นการนำข้อมูลที่มีอยู่เข้าไปเก็บในเครื่องคอมพิวเตอร์ อาทิ-ประวัติส่วนตัว-สินค้าคงคลัง-การขาย-การเงิน-บุคลากร เป็นต้นสมมติมีบัตรข้อมูลจำนวนหนึ่งใช้บันทึกชื่อ ที่อยู่ หมายเลขโทรศัพท์ หากต้องการเขียนโปรแกรมเพื่อจัดการกับบัตรเหล่านี้ จะต้องพิจารณาสิ่งต่างๆ-วิธีการจัดเก็บลงในหน่วยความจำ-วิธีการดังกล่าวสามารถใช้ได้กับข้อมูลปริมาณมากเพียงใด-สามารถเพิ่มข้อมูลใหม่ ลบข้อมูลเก่าได้อย่างรวดเร็วหรือไม่-สามารถค้นหาบัตรที่ต้องการได้เร็วเพียงใด-ถ้าต้องการจัดบัตรให้เรียงตามตัวอักษร จะใช้วิธีใด
เครื่องมือของนักเขียนโปรแกรมแบบจำลองใช้โครงสร้างข้อมูลเพื่อเป็นแบบจำลองโลกแห่งความจริง	-กองซ้อนใช้จำลองการทำงานบางอย่างของคอมพิวเตอร์	-แถวคอย ใช้จำลองการเข้าแถวคอยของลูกค้าในธนาคารลักษณะของข้อมูล •  ข้อมูลที่มีความถูกต้องและเชื่อถือได้ (accuracy) ข้อมูลจะมีความถูกต้องและเชื่อถือได้มากน้อยเพียงใดนั้น และการควบคุมการประมวลผลการควบคุมข้อมูลนำเข้าเป็นการกระทำเพื่อให้เกิดความ มั่นใจว่าข้อมูลนำเข้ามีความถูกต้องเชื่อถือได้ •  ข้อมูลตรงตามความต้องการของผู้ใช้(relevancy) ได้แก่ การเก็บเฉพาะข้อมูลที่ผู้ใช้ต้องการเท่านั้น ไม่ควร เก็บข้อมูลอื่น ๆ ที่ไม่จำเป็นหรือไม่เกี่ยวข้องกับการใช้งาน •  ข้อมูลมีความทันสมัย (timeliness) ข้อมูลที่ดีนั้นนอกจากจะเป็นข้อมูลที่มีความถูกต้องเชื่อถือได้แล้วจะ ต้องเป็นข้อมูลที่ทันสมัย
การเรียงลำดับข้อมูลเป็นการนำเอาข้อมูลในเรคอร์ดมาจัดเรียงลำดับจากน้อยไปหามากหรือจากมากไปหาน้อยโดยใช้ทุกฟิลด์หรือรวมหลาย ๆ ฟิลด์ในการเรียงลำดับก็ได้วิธีการเรียงลำดับอย่างง่ายโดยทำตามลำดับขั้นตอนดังภาพ
การค้นหาข้อมูล (searching)            การค้นหาคําตอบ หรือการค้นหาข้อมูลในทางคอมพิวเตอร์มักจะกระทําบนโครงสร้างข้อมูลแบบต้นไม้ และกราฟ ทั้งนี้เพราะโครงสร้างข้อมูลในลักษณะนี้สามารถทําให้การค้นหาทําได้สะดวกและสามารถพลิกแพลงการค้นหาได้ง่าย ในความเป็นจริงแล้ว การค้นหาข้อมูลบางครั้งสามารถกระทําบนโครงสร้างข้อมูลชนิดอื่นก็ได้เช่น อาเรย์ แสตก และคิว แต่การจัดข้อมูลในโครงสร้างเช่นนี้ มีข้อจํากัดในการค้นหาข้อมูลมาก การค้นหาทําได้แบบเรียงลําดับ(Sequencial Search) เท่านั้น ซึ่งใช้ได้กับข้อมูลที่มีขนาดเล็ก ดังนั้นในการค้นหาข้อมูลที่มีขนาดใหญ่ ก่อนการค้นหา หรือระหว่างการค้นหา ข้อมูลที่จะถูกค้นจะต้องถูกจัดให้อยู่ในรูปแบบของต้นไม้ หรือกราฟเท่านั้น การค้นหาข้อมูลบนโครงสร้างต้นไม้และกราฟสามารถจําแนกได้ 2 แบบคือ การค้นหาแบบไบล์ด(Blind Search) และการค้นหาแบบฮิวริสติก(Heuristic Search)
การค้นหาแบบไบล์ด(Blind Search)     เป็นการค้นหาแบบที่เดินทางจากโหนดหนึ่งไปยังอีกโหนดหนึ่งโดยอาศัยทิศทางเป็นตัวกําหนดการค้นหา ไม่ต้องมีข้อมูลอะไรมาช่วยเสริมการตัดสินใจว่าจะเดินทางต่อไปอย่างไร นอกจากทิศทางซึ่งเป็นรูปแบบตายตัว การค้นหาแบบไบล์ดสามารถแบ่งย่อยได้ดังนี้ คือ การค้นหาทั้หมด  และการค้นหาบางส่วน     -  การค้นหาทั้งหมด(exhaustive search) คือ การค้นหาทั้งหมดของปริภูมิสถานะ     -  การค้นหาบางส่วน (partial search)  การค้นหาเพียงบางส่วนของปริภูมิสถานะ ซึ่งในความเป็นจริงการค้นหาส่วนมากใช้การค้นหาเฉพาะบางส่วนเท่านั้นเนื่องจากปริภูมิสถานะมักมีขนาดใหญ่ เท่าให้ไม่สามารถค้นหาได้ทั้งหมด ดังนั้นจึงมีความเป็นไปได้ว่าคำตอบที่ได้อาจไม่ใช่คำตอบที่ดีที่สุด การค้นหาแบบนี้สามารถแบ่งได้เป็น 2 ประเภทคือ การค้นหาแบบลึกก่อน(Depth first search) และการค้นหาแบบกว้างก่อน (Breadth first search)
การค้นหาแบบลึกก่อน(Depth first search)การค้นหาแบบลึกก่อนเป็นการค้นหาที่กําหนดทิศทางจากรูปของโครงสร้างต้นไม้ ที่เริ่มต้นจากโหนดราก(Root node) ที่อยู่บนสุด แล้วเดินลงมาให้ลึกที่สุด เมื่อถึงโหนดล่างสุด(Terminal node) ให้ย้อนขึ้นมาที่จุดสูงสุดของกิ่งเดี่ยวกันที่มีกิ่งแยกและยังไม่ได้เดินผ่าน แล้วเริ่มเดินลงจนถึงโหนดลึกสุดอีก ทําเช่นนี้สลับไปเรื่อยจนพบโหนดที่ต้องการหาหรือสํารวจครบทุกโหนดแล้วตามรูปที่ 1 การค้นหาแบบลึกก่อนจะมีลําดับการเดินตามโหนดดังตัวเลขที่กํากับไว้ในแต่ละโหนด รูปที่ 1 ลําดับการเดินทางบนโหนดของการค้นหาแบบลึกก่อนบนโครงสร้างต้นไม้
โหนดเริ่มต้น จากนั้นให้นําโหนดที่อยู่ติดกับโหนดที่กําลังสํารวจอยู่(ที่ยังไม่ได้ทําการสํารวจและยังไม่ได้อยู่ในแสต็กมาใส่แสต็ก) มาเก็บไว้ในสแต็กเมื่อสํารวจโหนดนั้นเสร็จ ให้พอพ(pop) ตัวบนสุดของโหนดออกมาทําการสํารวจ แล้วนําโหนดข้างเคียงทั้งหมดที่ยังไม่ได้สํารวจมาต่อท้ายแสต็ก แล้วพอพตัวบนสุดออกมาสํารวจทําเช่นนี้เรื่อย ๆ จนกระทั้งพบโหนดที่ต้องการ หรือสํารวจครบทุดโหนด   รูปที่ 2 โครงสร้างข้อมูลแบบกราฟ
การสํารวจจะเริ่มต้นที่ A และนําโหนดข้างเคียง B และ C มาเก็บไว้ในแสต็ก เมื่อสํารวจAเสร็จพอพข้อมูลจากแสต็กออกมาได้ C ทําการสํารวจC และนําโหนดข้างเคียงกับ C ที่ยังไม่ได้ทําการสํารวจและยังไม่ได้อยู่ในแสต็กมาใส่แสต็กD และ F พุช(Push) ใส่แสต็ก ดังนั้นในแสต็กตอนนี้มี B D F อยู่ เมื่อสํารวจC เสร็จ พอพF ออกมาทําการสํารวจ แล้วนําโหนดข้างเคียงที่ยังไม่ได้สํารวจและยังไม่ได้อยู่ในแสต็กมาใส่แสต็ก ซึ่งก็คือ G ดังนั้นข้อมูลในแสต็กจะเป็น B D G ทํ าเช่นนี้ไปเรื่อย ๆ จนจบการทํางานก็จะได้ลําดับการสํารวจคือ(A C F G H E D B) ตามตาราง 1 ดังต่อไปนี้     ตารางที่ 1 ลําดับการค้นหาแบบลึกก่อน
การค้นหาแบบกว้างก่อน (Breadth first search)การค้นหาแบบกว้างก่อนเป็นการกําหนดทิศทางการค้นหาแบบที่ละระดับของโครงสร้างต้นไม้โดยเริ่มจากโหนดราก(ระดับที่ 0) แล้วลงมาระดับที่ 1 จากซ้ายไปขวา เมื่อเสร็จระดับที่ 1 ไประดับที่ 2จากซ้ายไปขวาเช่นกัน ทําเช่นนี้เรื่อย ๆ จนพบโหนดที่ต้องการตามรูปที่ 3 ลําดับการเดินทางของโหนดเป็นไปตามหมายเลขที่กํากับไว้บนโหนด รูปที่ 3 ลําดับการค้นหาแบบกว้างก่อนบนโครงสร้างต้นไม้
        สําหรับการค้นหาแบบกว้างก่อนบนโครงสร้างต้นไม้ จะอาศัยโครงสร้างข้อมูลแบบคิว(Queue)มาช่วย และด้วยวิธีการเช่นเดียวกับการค้นหาแบบลึกก่อนคือ ให้เริ่มต้นสํารวจที่โหนดเริ่มต้น แล้วนําโหนดข้างเคียงเก็บไว้ในคิว เมื่อสํารวจโหนดเริ่มต้นเสร็จ ให้นําข้อมูลในคิวออกมาสํารวจ แล้วนําโหนดข้างเคียงที่ยังไม่ได้สํารวจและไม่ได้อยู่ในคิวใส่คิวไว้ ทําเช่นนี้ไปเรื่อย ๆ จนพบโหนดที่ต้องการ หรือเมื่อสํารวจครบทุกโหนด รูปที่ 4 โครงสร้างข้อมูลแบบกราฟ 
      การสํารวจเริ่มต้นที่ A นําโหนดข้างเคียง B C ไว้ในคิว เมื่อสํารวจA เสร็จ นําข้อมูลในคิว คือ Bออกมาสํารวจ แล้วนําข้อมูลข้างเคียงคือ D E ใส่คิว ตอนนี้คิวจะมี B D E อยู่ แล้วนําB ออกมาสํารวจทําเช่นนี้เรื่อย ๆ จะได้ลําดับการสํารวจข้อมูลคือ (A B C D E F G H) ตามตารางที่ 2 ตาราง 2 ลําดับการค้นหาแบบกว้างก่อน      เช่นเดียวกับการค้นหาแบบลึกก่อน การค้นหาแบบกว้างก่อนโดยใช้โครงสร้างข้อมูลคิวมาช่วยต้องมีการกําหนดโหนดเริ่มต้น และวิธีการนี้สามารถใช้ได้กับข้อมูลบนโครงสร้างแบบต้นไม้ด้วย 
ตารางเปรียบเทียบ การค้นหาแนวลึกก่อนและแนวกว้างก่อน
การค้นหาแบบฮิวริสติก(Heuristic Search)      มีความความแตกต่างจากการค้นหาข้อมูลแบบธรรมดาและแบบฮิวริสติกนั้นอยู่ที่การค้นหาข้อมูลธรรมดา ผู้ที่ทําการค้นข้อมูลจะต้องตรวจสอบข้อมูลทีละตัวทุกตัวจนครบ แต่ฮิวริสติกจะไม่ลงไปดู ข้อมูลทุกตัว ซึ่งมีข้อดีคือ สามารถทําการ ค้นหาคําตอบจาก ข้อมูลที่มีขนาดใหญ่มาก ๆ ได้ แต่มีข้อเสียคือคําตอบที่ได้เป็นเพียงคําตอบที่ดี เท่านั้นไม่แน่ว่าจะดีที่สุด แต่เนื่องจากว่าปัญหาในบางลักษณะนั้นใหญ่มาก และเป็นไปไม่ได้ที่จะทํา การค้นหาด้วยวิธี ธรรมดากระบวนการของฮิวริสติกจึงเป็นสิ่งที่จําเป็นในเรื่องของฮิวริสติกนั้น นอกจากจะมีการค้นหาแบบฮิวริสติกแล้ว ยังมีอีกสิ่งหนึ่งที่สําคัญคือ  วิธีการดังกล่าวจะกระทําได้โดยการพิจารณาถึงวิธีการ (aspects) ต่าง ๆ ที่ใช้ในการแก้ปัญหา ณ  สถานะหนึ่งว่าจะสามารถแก้ปัญหาได้ตามที่ต้องการหรือไม่ โดยกําหนดเป็นนํ้าหนักที่ให้กับการแก้ปัญหาของแต่ละวิธี โหนดนั้นจะมี ความเป็นไปได้ในการนําไปสู่หนทางการแก้ปัญหาได้มากน้อยแค่ไหนจุดประสงค์ที่ แท้จริงของฮิวริสติก ฟังก์ชันก็คือ การกํากับทิศทางของกระบวนการค้นหา เพื่อให้อยู่ในทิศทางที่ได้ประโยชน์สูงสุด โดยการบอกว่าเราควรเลือกเดินเส้นทางไหนก่อน ในกรณีที่มีเส้น ทางมากกว่าหนึ่งเส้นทางต้องเลือกกระบวนการค้นหาแบบฮิวริสติก โดยปกติแล้วจะต้องอาศัยฮิวริสติกฟังก์ชัน ทําให้การแก้ปัญหาหนึ่ง ๆ จะดีหรือไม่ ก็ขึ้นอยู่กับฮิวริสติกฟังก์ชันดังนั้นการค้นหาแบบนี้จึงไม่มีอะไรเป็นหลัก ประกันว่าจะได้สิ่งที่ไม่ดีออกมาด้วยเหตุนี้เอง เราจึงเรียกการ ค้นหาแบบฮิวริสติกนี้ว่า Weak Methods หรือจะกล่าวอีกนัยหนึ่งคือ Weak Methods เป็นกระบวนการควบคุมโดยทั่วไป (general-purpose control stategies)     ซึ่งการค้นหาแบบนี้ สามารถแบ่งได้เป็น
การค้นหาแบบปีนเขา(Hill climbing)ฟังก์ชันฮิวริสติกสามารถนำมาช่วยในกระบวนการค้นหาเพื่อให้ได้คำตอบอย่างรวด เร็วและมีประสิทธิภาพ วิธีการที่จะนำฟังก์ชันฮิวริสติกมาใช้มีหลายวิธีด้วยกันขึ้นอยู่กับว่าจะใช้ ในลักษณะใด เช่นเลือกสถานะที่มีค่าฮิวริสติกดีขึ้น แล้วเดินไปยังสถานะนั้นเลยโดยไม่ต้องสนใจสถานะที่มีค่าฮิวริสติกแย่กว่า สถานะปัจจุบันหรือว่าจะเก็บสถานะทุกตัวไว้แม้ว่าค่าฮิวริสติกจะแย่ลงแล้ว พิจารณาสถานะเหล่านี้ทีหลัง เป็นต้น ในส่วนต่อไปนี้จะกล่าวถึงอัลกอริทึมต่าง ๆ ที่นำฟังก์ชันฮิวริสติกมาช่วยในการค้นหาคำตอบ โดยเริ่มจากอัลกอริทึมปีนเข้า (Hill climbing algorithm) รูปที่ 5 แสดงลักษณะการค้นหาแบบ Hill climbing
ตัวอย่างการใช้ฟังก์ชันฮิวริสติก โดยอัลกอริทึมปีนเขาอย่างง่ายโดยปัญหาโลกของ บล๊อก รูปที่ 6 การค้นหาแบบ Hill climbing
      ตัวเลข h(i) ในรูปแสดงว่า สถานะที่ i มีค่าฮิวริสติกเท่ากับ h จากรู้จะเห็นได้ว่า เริ่มต้นจากสถานะที่ 1 ที่มีค่าฮิวริสติกเท่ากับ -1 อัลกอริทึมปีนเขาใช้ตัวกระทำการเพื่อสร้างสถานะลูกตัวแรกของสถานะที่ 1 แล้ววัดค่าฮิวริสติกได้ 0 ซึ่งมีค่าดีขึ้น ถ้าสังเกตจากรูปที่  จะพบว่าสถานะที่ 1 มีสถานะลูกทั้งหมด 3 ตัว แต่ในกรณีของอัลกอริทึมปีนเขานี้ เมื่อได้สถานะลูกตัวแรกซึ่งมีค่าอิวริสติกดีขึ้น อัลกอริทึมจะไม่สร้างสถานะลูกที่เหลืออีก 2 ตัว และจะไม่มีการย้อนกลับมาที่สถานะลูกทั้ง 2 นี้ แม้ว่าหลังจากนี้อัลกอริทึมจะค้นไม่พบคำตอบกล่าวคือเป็นการตัดทางเลือกทิ้ง ไปเลย ซึ่งการทำเช่นนี้แม้ว่าจะมีโอกาสไม่พบคำตอบแต่ก็มีข้อดีที่เป็นการช่วยลด เวลาและปริภูมิที่ทำการค้นหาจะลดลงอย่างมากจากนั้นอัลกอริทึมมาสถานะที่ 2 แล้วเริ่มสร้างสถานะลูกได้สถานะที่ 3 ที่มีค่าฮิวริสติก -1 ซึ่งแย่ลงในกรณีที่แย่ลงเช่นนี้ อัลกอริทึมจะไม่ไปยังสถานะลูกตัวนี้และสร้างสถานะลูกตัวต่อไปโดยใช้ตัวกระทำ การที่เหลือได้สถานะที่ 4 มีค่าฮิวริสติกเท่ากับ -1 ไม่ดีขึ้นเช่นกันจึงสร้างสถานะลูกตัวถัดไป เป็นสถานะที่5 มีค่าฮิวริสติกเท่ากับ 1 เป็นค่าที่ดีขึ้น อัลกอริทึมจะมายังสถานะนี้และค้นพบคำตอบในที่สุด
การค้นหาดีสุดก่อน(Best-first search)      เป็นกระบวนการค้นหาข้อมูลที่ได้นําเอาข้อดีของทั้งการค้นหาแบบลึกก่อน(Depth firstsearch) และการค้นหาแบบกว้างก่อน(Breadth first search) มารวมกันเป็นวิธีการเดียว โดยที่แต่ละขั้นของการค้นหาในโหนดลูกนั้น การค้นหาแบบดีที่ดีก่อนจะเลือกเอา โหนดที่ดีที่สุด (most promising)และการที่จะทราบว่าโหนดใดดีที่สุดนี้สามารถทําได้โดยอาศัยฮิวริสติกฟังก์ชัน หน้าที่เหมือนตัววัดผล และให้ผลของการวัดนี้ออกมาเป็นคะแนน รูปที่ 2.7 เป็นตัวอย่างของการค้นหาแบบดีที่สุดก่อน ขั้นตอนนี้เริ่มจากตอน 1 สร้างโหนดราก(root node) ในขั้นตอน 2 สร้างโหนดลูกB และ C แล้วตรวจสอบโหนดB และ C ด้วยฮิวริสติกฟังก์ชัน ได้ผลออกมาเป็นคะแนนคือ 3 และ 1ตามลําดับ จากนั้นให้เลือกโหนดC เป็นโหนดต่อไปที่เราสนใจ เพราะมีค่าน้อยกว่า (หมายเหตุ ในการเลือกนี้จะเลือกค่ามากสุด หรือน้อยสุดก็ได้ ขึ้นอยู่กับลักษณะของปัญหา) แล้วสร้างโหนด ลูกให้กับโหนดC ในขั้นตอน 3 ได้โหนดD และ E แล้วตรวจสอบคะแนนได้ 4 และ 6 ตามลําดับ จากนั้นทํ าการเปรียบเทียบค่าของโหนดท้ายสุด หรือเทอร์มินอล โหนด(terminal node) ทุกโหนด ว่าโหนด ใดมีค่าดีที่สุด ในที่นี้จะต้องเลือกโหนดB เพราะมีคะแนนเพียง 3 (เลือกคะแนนตํ่าสุด) แล้วสร้างโหนด ลูกตามขั้นตอน 4 ได้ F และ G แล้วตรวจ สอบคะแนนได้ 6 และ 5 คะแนนตามลําดับทําเช่นนี้เรื่อย ๆ จนพบคําตอบหรือจนไม่สามารถ สร้างโหนดต่อไปได้อีก
รูปที่ 7 ขั้นตอนของการค้นหาแบบดีที่สุดก่อน รูปที่ 8  การค้นหาแบบดีสุดก่อน
อัลกอริธึม: การค้นหาแบบดีที่สุดก่อน 1. เริ่มด้วย OPEN ที่มีเพียงโหนดเริ่มต้น 2. ทําจนกว่าจะพบเป้าหมาย หรือว่าไม่มีโหนดเหลืออยู่ใน OPEN -เลือกโหนดที่ดีที่สุดใน OPEN  -สร้างโหนดลูกให้กับโหนดที่ดีที่สุดนั้น       -สําหรับโหนดลูกแต่ละตัวให้ทําดังต่อไปนี้      i) ถ้าโหนดนั้นยังไม่เคยถูกสร้างมาก่อนหน้านั้น ให้ตรวจสอบค่าของมันโดยใช้ฮิวริสติกฟังชันแล้วเพิ่มเข้าไปในOPEN แล้วบันทึกว่าเป็นโหนดแม่      ii) ถ้าโหนดนั้นถูกสร้างมาก่อนหน้านี้แล้ว ให้เปลี่ยนโหนดแม่ของมันถ้าเส้นทางใหม่ที่ได้ดีกว่าโหนดแม่ตัวเดิม ในกรณีนี้ ให้ปรับเปลี่ยนค่าตามเส้นทางที่อาจจะเกิดขึ้น
การค้นหาแบบ Greedy (Greedy Algorithm)     กรีดีอัลกอริธึม เป็นการค้นหาแบบดีที่สุดก่อน(Best first search) ที่ง่ายที่สุด หลักการของการค้นหาแบบนี้คือ การเลือกโหนดที่ดีที่สุดตลอดเวลาอัลกอริธึม กรีดี 1. เลือกโหนดเริ่มต้นมาหนึ่งโหนด 2. ให้โหนดที่เลือกมานี้เป็นสถานะปัจจุบัน 3. ให้ทําตามขบวนการข้างล่างนี้จนกว่าจะไม่สามารถสร้างโหนดลูกได้อีก       3.1 สร้างสถานะใหม่ที่เป็นโหนดลูกที่เป็นไปได้ทั้งหมดจากสถานะปัจจุบัน       3.2 จากสถานะใหม่ที่สร้างขึ้นมาทั้งหมด ให้เลือกสถานะ หรือ โหนดลูก ที่ดีที่สุดออกมาเพียงโหนดเดียว 4. กลับไปที่ขึ้นตอนที่ 2 ตัวอย่าง จากเรื่องการเดินทางของเซลแมนที่จะต้องเดินทางไปยังเมือง 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* ค่าของฮิวริสติก ฟังก์ชัน จะวัดจากค่า 2 ค่าคือ ค่าที่วัดจากโหนดปัจจุบันไปยังโหนดราก และจากโหนดปัจจุบันไปยังโหนดเป้าหมาย ถ้าเราให้ตัวแปร f แทนค่าของฮิวริสติก ฟังก์ชัน g เป็นฟังก์ชันที่ใช้วัดค่า cost จากสถานะเริ่มต้นจนถึงสถานะปัจจุบัน h' เป็นฟังก์ชันที่ใช้วัดค่า cost จากสถานะปัจจุบันถึงสถานะเป้าหมาย ดังนั้น
อัลกอริทึม A*(A* Search)  เป็นการขยายอัลกอริทึมดีสุดก่อนโดยพิจารณาเพิ่มเติมถึงต้นทุนจากสถานะเริ่มต้นมายังสถานะปัจจุบันเพื่อใช้คำนวณค่าฮิวริสติกด้วย ในกรณีของอัลกอริทึม A* เราต้องการหาค่าต่ำสุดของฟังก์ชัน  f' ของสถานะ s นิยามดังนี้                                    f'(s)=g(s)+h'(s) โดยที่ g คือฟังก์ชันที่คำนวณต้นทุนจากสถานะเริ่มต้นมายังสถานะปัจจุบัน h' คือฟังก์ชันที่ประมาณต้นทุนจากสถานะปัจจุบันไปยังคำตอบ
อัลกอริทึม A* จะทำการค้นหาโดยวิธีเดียวกันกับอัลกอริทึมดีสุดก่อนทุกประการ ยกเว้น ฟังก์ชันฮิวริสติกที่ใช้เปลี่ยนมาเป็น f' (ต่างจากอัลกอริทึมดีสุดก่อนที่ใช้ h') โดยการใช้ f' อัลกอริทึม A* จึงให้ความสำคัญกับสถานะหนึ่ง ๆ 2 ประการ คือ (1) สถานะที่ดีต้องมี h' ดีคือต้นทุนเพื่อจะนำไปสู่คำตอบหลังจากนี้ต้องน้อย และ (2) ต้นทุนที่จ่ายไปแล้วกว่าจะถึงสถานะนี้ (g) ต้องน้อยด้วย เราจึงได้ว่า A* จะค้นหาเส้นทางที่ให้ต้นทุนโดยรวมน้อยที่สุดตามค่า f' ซึ่งต่างจากอัลกอริทึมดีสุดก่อน ที่เน้นความสำคัญของสถานะที่ต้นทุนหลังจากนี้ที่จะนำไปสู่คำตอบต้องน้อย โดยไม่สนใจว่าต้นทุนที่จ่ายไปแล้วกว่าจะนำมาถึงสถานะนี้ต้องเสียไปเท่าไหร่ รูปที่ 11 แสดงการค้นหาด้วยอัลกอริทึม A* กันสถานะในรูปที่ 8 โดยสมมติให้ต้นทุนหรือระยะห่างระหว่างสถานะพ่อแม่ไปยังสถานะลูกเท่ากับ 1 หน่วย เช่นต้น ทุนจริง (g)  จาก A ไปยัง B,C หรือ D มีค่าเท่ากับ 1 หน่วย
ผู้จัดทำ นางสาว  อรอนงค์ สุขาวรรณ  ชั้นมัธยมศึกษาปีที่ 5	เลขที่ 16

More Related Content

What's hot

งานคอม หน่วยที่1
งานคอม หน่วยที่1งานคอม หน่วยที่1
งานคอม หน่วยที่1Ruttikan Munkhan
 
งาคอม
งาคอมงาคอม
งาคอมlookpair
 
หน่วยที่ 1
หน่วยที่ 1หน่วยที่ 1
หน่วยที่ 1palmyZommanow
 
หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์ น่านกร ม.5
หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์  น่านกร ม.5หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์  น่านกร ม.5
หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์ น่านกร ม.5palmyZommanow
 
หน่วยที่ 1
หน่วยที่ 1หน่วยที่ 1
หน่วยที่ 1palmyZommanow
 
ระบบสารสนเทศและข้อมูลข่าวสาร MIS
ระบบสารสนเทศและข้อมูลข่าวสาร MISระบบสารสนเทศและข้อมูลข่าวสาร MIS
ระบบสารสนเทศและข้อมูลข่าวสาร MISsiriporn pongvinyoo
 
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา ปาโจด ม.5
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา  ปาโจด ม.5หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา  ปาโจด ม.5
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา ปาโจด ม.5สิรินยา ปาโจด
 
ระบบสารสนเทศและระบบเครือข่าย
ระบบสารสนเทศและระบบเครือข่ายระบบสารสนเทศและระบบเครือข่าย
ระบบสารสนเทศและระบบเครือข่ายSassygirl Sassyboy
 
นางสาวมลทิรา เอกกุล ม.5
นางสาวมลทิรา   เอกกุล ม.5นางสาวมลทิรา   เอกกุล ม.5
นางสาวมลทิรา เอกกุล ม.5miwmilk
 
ระบบฐานข้อมูล
ระบบฐานข้อมูลระบบฐานข้อมูล
ระบบฐานข้อมูลchanoot29
 
บทที่1
บทที่1บทที่1
บทที่1airly2011
 

What's hot (13)

งานคอม หน่วยที่1
งานคอม หน่วยที่1งานคอม หน่วยที่1
งานคอม หน่วยที่1
 
การจัดการข้อมูลสารสนเทศ
การจัดการข้อมูลสารสนเทศการจัดการข้อมูลสารสนเทศ
การจัดการข้อมูลสารสนเทศ
 
งาคอม
งาคอมงาคอม
งาคอม
 
หน่วยที่ 1
หน่วยที่ 1หน่วยที่ 1
หน่วยที่ 1
 
หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์ น่านกร ม.5
หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์  น่านกร ม.5หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์  น่านกร ม.5
หน่วยที่ 1เรื่อง การจัดการข้อมูล ธนพงษ์ น่านกร ม.5
 
หน่วยที่ 1
หน่วยที่ 1หน่วยที่ 1
หน่วยที่ 1
 
ระบบสารสนเทศและข้อมูลข่าวสาร MIS
ระบบสารสนเทศและข้อมูลข่าวสาร MISระบบสารสนเทศและข้อมูลข่าวสาร MIS
ระบบสารสนเทศและข้อมูลข่าวสาร MIS
 
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา ปาโจด ม.5
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา  ปาโจด ม.5หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา  ปาโจด ม.5
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา ปาโจด ม.5
 
ระบบสารสนเทศและระบบเครือข่าย
ระบบสารสนเทศและระบบเครือข่ายระบบสารสนเทศและระบบเครือข่าย
ระบบสารสนเทศและระบบเครือข่าย
 
นางสาวมลทิรา เอกกุล ม.5
นางสาวมลทิรา   เอกกุล ม.5นางสาวมลทิรา   เอกกุล ม.5
นางสาวมลทิรา เอกกุล ม.5
 
ระบบฐานข้อมูล
ระบบฐานข้อมูลระบบฐานข้อมูล
ระบบฐานข้อมูล
 
บทที่1
บทที่1บทที่1
บทที่1
 
บท1
บท1บท1
บท1
 

Similar to นางสาว อรอนงค์ สุขาวรรณ

นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 comนางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 comlovelovejung
 
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 comนางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 comLuckfon Fonew
 
หน่วยที่ 1
หน่วยที่ 1หน่วยที่ 1
หน่วยที่ 1palmyZommanow
 
หน่อยที่ 1
หน่อยที่ 1หน่อยที่ 1
หน่อยที่ 1palmyZommanow
 
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา ปาโจด ม.5
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา  ปาโจด ม.5หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา  ปาโจด ม.5
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา ปาโจด ม.5สิรินยา ปาโจด
 
หน่วยการเรียนรู้ที่ 1 ข้อมูลและระบบฐานข้อมูลวิชา การจัดการฐานข้อมูล
หน่วยการเรียนรู้ที่ 1 ข้อมูลและระบบฐานข้อมูลวิชา การจัดการฐานข้อมูลหน่วยการเรียนรู้ที่ 1 ข้อมูลและระบบฐานข้อมูลวิชา การจัดการฐานข้อมูล
หน่วยการเรียนรู้ที่ 1 ข้อมูลและระบบฐานข้อมูลวิชา การจัดการฐานข้อมูลchaiwat vichianchai
 
38210679 ระบบสารสนเทศ
38210679 ระบบสารสนเทศ38210679 ระบบสารสนเทศ
38210679 ระบบสารสนเทศTippathai Infinity
 
38210679 ระบบสารสนเทศ
38210679 ระบบสารสนเทศ38210679 ระบบสารสนเทศ
38210679 ระบบสารสนเทศTippathai Infinity
 
ใบความรู้ที่ 2 ระบบสารสนเทศ
ใบความรู้ที่ 2 ระบบสารสนเทศใบความรู้ที่ 2 ระบบสารสนเทศ
ใบความรู้ที่ 2 ระบบสารสนเทศKo Kung
 
บทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศ
บทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศบทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศ
บทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศTimmy Printhong
 
บทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศ
บทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศบทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศ
บทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศTimmy Printhong
 
บทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศ
บทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศบทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศ
บทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศTimmy Printhong
 
ระบบสารสนเทศ
ระบบสารสนเทศระบบสารสนเทศ
ระบบสารสนเทศTheerapat Nilchot
 
ระบบสารสนเทศ
ระบบสารสนเทศระบบสารสนเทศ
ระบบสารสนเทศTheerapat Nilchot
 
หน่วยการเรียนรู้ที่ 15
หน่วยการเรียนรู้ที่ 15หน่วยการเรียนรู้ที่ 15
หน่วยการเรียนรู้ที่ 15sangkom
 
นาย ณัฐพงษ์ สุดก้องไพร
นาย ณัฐพงษ์  สุดก้องไพรนาย ณัฐพงษ์  สุดก้องไพร
นาย ณัฐพงษ์ สุดก้องไพรBen Benben
 
ระบบสารสน..[1]
ระบบสารสน..[1]ระบบสารสน..[1]
ระบบสารสน..[1]orathai
 

Similar to นางสาว อรอนงค์ สุขาวรรณ (20)

นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 comนางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
 
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 comนางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
นางสาว อรอนงค์ สุขาวรรณ ม.5 เลขที่ 16 com
 
หน่วยที่ 1
หน่วยที่ 1หน่วยที่ 1
หน่วยที่ 1
 
หน่อยที่ 1
หน่อยที่ 1หน่อยที่ 1
หน่อยที่ 1
 
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา ปาโจด ม.5
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา  ปาโจด ม.5หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา  ปาโจด ม.5
หน่วยที่1 เรื่อง เทคโนโลยีการสื่อสาร นางสาว สิรินยา ปาโจด ม.5
 
หน่วยการเรียนรู้ที่ 1 ข้อมูลและระบบฐานข้อมูลวิชา การจัดการฐานข้อมูล
หน่วยการเรียนรู้ที่ 1 ข้อมูลและระบบฐานข้อมูลวิชา การจัดการฐานข้อมูลหน่วยการเรียนรู้ที่ 1 ข้อมูลและระบบฐานข้อมูลวิชา การจัดการฐานข้อมูล
หน่วยการเรียนรู้ที่ 1 ข้อมูลและระบบฐานข้อมูลวิชา การจัดการฐานข้อมูล
 
บทที่่ 1
บทที่่ 1บทที่่ 1
บทที่่ 1
 
Slide Chapter1
Slide Chapter1Slide Chapter1
Slide Chapter1
 
38210679 ระบบสารสนเทศ
38210679 ระบบสารสนเทศ38210679 ระบบสารสนเทศ
38210679 ระบบสารสนเทศ
 
38210679 ระบบสารสนเทศ
38210679 ระบบสารสนเทศ38210679 ระบบสารสนเทศ
38210679 ระบบสารสนเทศ
 
ใบความรู้ที่ 2 ระบบสารสนเทศ
ใบความรู้ที่ 2 ระบบสารสนเทศใบความรู้ที่ 2 ระบบสารสนเทศ
ใบความรู้ที่ 2 ระบบสารสนเทศ
 
บทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศ
บทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศบทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศ
บทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศ
 
บทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศ
บทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศบทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศ
บทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศ
 
บทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศ
บทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศบทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศ
บทที่ 1-ความรู้เบื้องต้นเกี่ยวกับเทคโนโลยีสารสนเทศ
 
ระบบสารสนเทศ
ระบบสารสนเทศระบบสารสนเทศ
ระบบสารสนเทศ
 
ระบบสารสนเทศ
ระบบสารสนเทศระบบสารสนเทศ
ระบบสารสนเทศ
 
หน่วยการเรียนรู้ที่ 15
หน่วยการเรียนรู้ที่ 15หน่วยการเรียนรู้ที่ 15
หน่วยการเรียนรู้ที่ 15
 
นาย ณัฐพงษ์ สุดก้องไพร
นาย ณัฐพงษ์  สุดก้องไพรนาย ณัฐพงษ์  สุดก้องไพร
นาย ณัฐพงษ์ สุดก้องไพร
 
ระบบสารสน..[1]
ระบบสารสน..[1]ระบบสารสน..[1]
ระบบสารสน..[1]
 
วรกานต์ ต๋าตุ๋น
วรกานต์ ต๋าตุ๋น วรกานต์ ต๋าตุ๋น
วรกานต์ ต๋าตุ๋น
 

นางสาว อรอนงค์ สุขาวรรณ

  • 1. หน่วยการเรียนรู้ที่ 1 เทคโนโลยีการสื่อสาร ข้อมูล(Data) เป็นองค์ประกอบที่สำคัญของระบบสารสนเทศคอมพิวเตอร์ การจัดการข้อมูล (data management) เป็นกลยุทธ์ที่ใช้ในการบริหารองค์การให้มีประสิทธิภาพ และต้องมีการตัดสินใจที่ถูกต้อง รวดเร็วและทันต่อเหตุการณ์ในการทำธุรกิจในยุคปัจจุบัน
  • 2. วัตถุประสงค์ในการจัดการข้อมูล1.การเก็บข้อมูล สามารถนำกลับมาใช้งานได้อีกในภายหลัง 2.การจัดข้อมูล สามารถนำกลับมาใช้งานได้อย่างมีประสิทธิภาพ 3.การปรับปรุงข้อมูล สามารถปรับปรุงข้อมูลให้เป็นข้อมูลปัจจุบันอยู่เสมอ 4.การปกป้องข้อมูล ป้องกันข้อมูลให้มีความปลอดภัยจากการลักลอบใช้งาน หรือแก้ไข
  • 3. เขตข้อมูล ตัวอักษร หน่วยข้อมูล (Data Unit)หน่วยของข้อมูลคอมพิวเตอร์สามารถจัดเรียงจากขนาดเล็กไปขนาดใหญ่ดังนี้*บิต(bit)เช่น 0 หรือ 1*ตัวอักษร(character) ตัวอักษร 1 ตัว *ASCII 1 bytes ( 8 bit) *Unicode 2 bytes (16 bit)*เขตข้อมูล (field) ข้อความใด ๆ ซึ่งประกอบไปด้วยกลุ่มตัวอักษรที่แทนข้อเท็จจริง
  • 4. ฐานข้อมูล อาจารย์ นักศึกษา แฟ้ม ระเบียนข้อมูล วิชา *ระเบียนข้อมูล(record) กลุ่มของเขตข้อมูลต่างๆ *แฟ้ม(file) กลุ่มของระเบียนข้อมูลที่มีโครงสร้างเดียวกัน แฟ้ม ตำแหน่ง *ฐานข้อมูล (database) กลุ่มของแฟ้มที่มีความสัมพันธ์กัน
  • 5. เขตข้อมูลคีย์ เขตข้อมูลคีย์ (Key Field)*เขตข้อมูลคีย์ (key field)ใช้สำหรับระบุระเบียนข้อมูลอย่างเฉพาะเจาะจง ข้อมูลในกลุ่มนี้จะไม่ซ้ำกับระเบียนอื่น ๆ
  • 6. ชนิดของข้อมูล (Data Types)*ค่าตรรกะ (booleans) มีค่า จริง กับ เท็จ *จำนวนเต็ม (integers) เลขที่ไม่มีเศษส่วนหรือทศนิยม เช่น 1, -1, 345, -543 *จำนวนจริง (floating-point values) จำนวนตัวเลขใดๆ เช่น 23.456, -4755.3333445 *ตัวอักษร (character) ข้อมูลที่แทนด้วยกลุ่มของบิต เป็นตัวอักษรหรือสัญลักษณ์ เช่น A, S, B *สายอักขระ (strings) กลุ่มของตัวอักษร *วันที่และเวลา (date/time) ข้อมูลวันที่หรือเวลา *ไบนารี (binary) ข้อมูลทางคอมพิวเตอร์ เช่น แฟ้ม รูปภาพ ไฟล์วิดีโอ
  • 7. ประเภทของแฟ้มข้อมูล *แฟ้มหลัก (master files) คือแฟ้มที่เก็บข้อมูลที่เกิดการเปลี่ยนแปลงน้อย หรือแทบไม่มีการเปลี่ยนแปลงเลย อาจเรียกได้ว่าเป็นแฟ้มข้อมูลถาวร หรือกึ่งถาวร *แฟ้มลูกค้า แฟ้มสินค้า แฟ้มข้อมูลการขายประจำเดือน *แฟ้มรายการเปลี่ยนแปลง (transaction files) คือแฟ้มที่เก็บข้อมูลรายการที่เกิดการเปลี่ยนแปลงก่อนที่จะนำไปปรับปรุงให้กับแฟ้มรายการหลัก *แฟ้มรายการขายในแต่ละวัน
  • 8. ลักษณะการประมวลผลข้อมูล(Data Processing)*การประมวลผลแบบกลุ่ม (batch processing) *การประมวลผลทันที (real-time processing)- การประมวลผลแบบกลุ่ม (batch processing) เป็นการประมวลผลโดยรวบรวมข้อมูลต่างๆ มาประมวลผลตามช่วงเวลาที่กำหนด โดยข้อมูลที่ใช้ในการประมวลผลอาจมาจากเอกสารต่างๆ ข้อมูลที่ป้อนแบบออนไลน์ แต่ข้อมูลจะยังไม่ถูกประมวลผลทันที จนกว่าจะถึงช่วงเวลาที่กำหนดไว้ เพื่อลดค่าใช้จ่าย เช่น ค่าน้ำประปา ค่าไฟฟ้า ยอดบัญชีบัตรเครดิต - การประมวลผลทันที (real-time processing) เป็นการประมวลผลที่ได้ผลลัพธ์ทันที่เมื่อทำรายการเข้าสู่ระบบ เช่น การถอนเงินจากตู้ ATM ที่ต้องมีการปรับเปลี่ยนยอดเงินในบัญชี ซึ่งถ้าการประมวลผลทำแบบออนไลน์ จะเรียกว่า online transaction processing (OLTP)
  • 9. การเข้าถึงข้อมูล (Data Access)การเข้าถึงข้อมูลแบบลำดับ (sequential data access) เป็นการเข้าถึงข้อมูลแบบที่ต้องอาศัยการอ่านข้อมูลตั้งแต่ต้น จนถึงข้อมูลที่ต้องการ เหมาะสำหรับการอ่านข้อมูลปริมาณมากและเรียงลำดับ การเข้าถึงข้อมูลแบบสุ่ม (random data access) การเข้าถึงข้อมูลลักษณะนี้จะต้องใช้กลไกการหาตำแหน่งระเบียนวิธีต่างๆ เหมาะสำหรับการค้นหาข้อมูลจำนวนไม่มาก และมีการเพิ่ม ลบ แก้ไขข้อมูลเป็นประจำ
  • 10. การจัดโครงสร้างแฟ้มข้อมูล มีปัจจัยที่ต้องพิจารณาในการเลือกโครงสร้าง ได้แก่ ปริมาณข้อมูล ความถี่ในการดึงข้อมูล ความถี่ในการปรับปรุงข้อมูล จำนวนครั้งที่อ่านข้อมูลจากหน่วยความจำสำกรองต่อการดึงข้อมูล การจัดโครงสร้างข้อมูลแบบต่างๆ แฟ้มลำดับ (sequential file) แฟ้มสุ่ม ( direct file หรือ hash file) แฟ้มดรรชนี (indexed file) แฟ้มลำดับดรรชนี (indexed sequential file)
  • 12. การจัดโครงสร้างแฟ้มข้อมูลแฟ้มลำดับดรรชนี (indexed sequential file) คือตัวระเบียนในแฟ้มข้อมูลไม่เรียงตามลำดับ แต่เรียงเฉพาะคีย์ในดรรชนี และมีการกำหนดดรรชนีบางส่วน(partial indexed)เพิ่มขึ้นมาตัวอย่างแฟ้มลำดับดรรชนี
  • 14. แฟ้มโปรแกรมและแฟ้มข้อมูล แฟ้มโปรแกรม คือแฟ้มโปรแกรมประกอบด้วยชุดคำสั่งต่างๆ ที่ทำงานอย่างใดอย่างหนึ่ง เช่น โปรแกรมประมวลผลคำ Microsoft Word
  • 16. ระบบแฟ้มข้อมูล (File Systems)ในอดีตการจัดเก็บข้อมูลด้วยคอมพิวเตอร์มีลักษณะเป็นแฟ้มข้อมูล เมื่อมีการขยายระบบก็เริ่มมีการเก็บข้อมูลที่อิสระต่อกัน ทำให้มีการเก็บข้อมูลอยู่หลายที่ ข้อมูลเหล่านั้นอาจไม่ใช่ข้อมูลที่เป็นปัจจุบัน การขยายระบบจึงจำเป็นอย่างยิ่งที่จะต้องคำนึงถึงการจัดเก็บข้อมูลด้วย ซึ่งการเก็บข้อมูลแบบเดิมทำให้เกิดปัญหาต่างๆ ดังนี้ปัญหาของแฟ้มข้อมูล -ความซ้ำซ้อนของข้อมูล (dataredundancy) -สอดคล้องกันของข้อมูล (datainconsistency) -ข้อมูลแยกอิสระต่อกัน (dataisolation) -ความไม่ปลอดภัยของข้อมูล (poor security) -ขาดบูรณภาพของข้อมูล (lack of data integrity) -ความขึ้นต่อกันระหว่างโปรแกรมประยุกต์กับโครงสร้างของแฟ้มข้อมูล (application / data
  • 17. ระบบฐานข้อมูล (DATABASE SYSTEMS) ระบบฐานข้อมูล (database) หมายถึง กลุ่มของข้อมูลที่มีความสัมพันธ์กันและถูกนำมาจัดเก็บในที่เดียวกัน โดยข้อมูลอาจเก็บไว้ในแฟ้มข้อมูลเดียวกันหรือแยกเก็บหลาย ๆ แฟ้มข้อมูล แต่ต้องมีการสร้างความสัมพันธ์ระหว่างข้อมูลเพื่อประสิทธิภาพในการจัดการข้อมูล ระบบจัดการฐานข้อมูล (Database Management System:DBMS) เป็นซอฟต์แวร์ระบบที่ใช้ในการจัดการฐานข้อมูล เปรียบเหมือนสื่อกลางระหว่างผู้ใช้และโปรแกรมประยุกต์ต่างๆที่เกี่ยวข้องกับการใช้ฐานข้อมูล
  • 18. ข้อดีของระบบฐานข้อมูล -ลดความซ้ำซ้อนของข้อมูล (reducedataredundancy) -การใช้ข้อมูลร่วมกัน (datasharing) -ข้อมูลมีความถูกต้องมากขึ้น (improveddataintegrity) -เพิ่มความปลอดภัยให้กับข้อมูล (increasedsecurity) -มีความเป็นอิสระของข้อมูล (dataindependency)
  • 19. หน่วยการเรียนรู้ที่ 2 โครงสร้างข้อมูล ชนิดของโครงสร้างข้อมูล โครงสร้างข้อมูล -เป็นวิธีจัดเก็บข้อมูลในคอมพิวเตอร์ เพื่อให้สามารถนำมาใช้ได้อย่างมีประสิทธิภาพ -การใช้งานโครงสร้างข้อมูล ต้องมีขั้นตอนวิธีที่เหมาะสม จึงจะสามารถใช้งานได้อย่างมีประสิทธิภาพ -การออกแบบโครงสร้างข้อมูลที่ดีจะช่วยลดเวลาในการกระทำการและลดการใช้งานในพื้นที่ความจำด้วย วัตถุประสงค์ โครงสร้างข้อมูลใช้เพื่อวัตถุประสงค์ 3 ประการ 1.การจัดเก็บข้อมูลในโลกแห่งความจริง 2.เครื่องมือของนักเขียนโปรแกรม 3.แบบจำลอง
  • 20. การจัดเก็บข้อมูลในโลกแห่งความจริงเป็นการนำข้อมูลที่มีอยู่เข้าไปเก็บในเครื่องคอมพิวเตอร์ อาทิ-ประวัติส่วนตัว-สินค้าคงคลัง-การขาย-การเงิน-บุคลากร เป็นต้นสมมติมีบัตรข้อมูลจำนวนหนึ่งใช้บันทึกชื่อ ที่อยู่ หมายเลขโทรศัพท์ หากต้องการเขียนโปรแกรมเพื่อจัดการกับบัตรเหล่านี้ จะต้องพิจารณาสิ่งต่างๆ-วิธีการจัดเก็บลงในหน่วยความจำ-วิธีการดังกล่าวสามารถใช้ได้กับข้อมูลปริมาณมากเพียงใด-สามารถเพิ่มข้อมูลใหม่ ลบข้อมูลเก่าได้อย่างรวดเร็วหรือไม่-สามารถค้นหาบัตรที่ต้องการได้เร็วเพียงใด-ถ้าต้องการจัดบัตรให้เรียงตามตัวอักษร จะใช้วิธีใด
  • 21. เครื่องมือของนักเขียนโปรแกรมแบบจำลองใช้โครงสร้างข้อมูลเพื่อเป็นแบบจำลองโลกแห่งความจริง -กองซ้อนใช้จำลองการทำงานบางอย่างของคอมพิวเตอร์ -แถวคอย ใช้จำลองการเข้าแถวคอยของลูกค้าในธนาคารลักษณะของข้อมูล •  ข้อมูลที่มีความถูกต้องและเชื่อถือได้ (accuracy) ข้อมูลจะมีความถูกต้องและเชื่อถือได้มากน้อยเพียงใดนั้น และการควบคุมการประมวลผลการควบคุมข้อมูลนำเข้าเป็นการกระทำเพื่อให้เกิดความ มั่นใจว่าข้อมูลนำเข้ามีความถูกต้องเชื่อถือได้ •  ข้อมูลตรงตามความต้องการของผู้ใช้(relevancy) ได้แก่ การเก็บเฉพาะข้อมูลที่ผู้ใช้ต้องการเท่านั้น ไม่ควร เก็บข้อมูลอื่น ๆ ที่ไม่จำเป็นหรือไม่เกี่ยวข้องกับการใช้งาน •  ข้อมูลมีความทันสมัย (timeliness) ข้อมูลที่ดีนั้นนอกจากจะเป็นข้อมูลที่มีความถูกต้องเชื่อถือได้แล้วจะ ต้องเป็นข้อมูลที่ทันสมัย
  • 23. การค้นหาข้อมูล (searching)            การค้นหาคําตอบ หรือการค้นหาข้อมูลในทางคอมพิวเตอร์มักจะกระทําบนโครงสร้างข้อมูลแบบต้นไม้ และกราฟ ทั้งนี้เพราะโครงสร้างข้อมูลในลักษณะนี้สามารถทําให้การค้นหาทําได้สะดวกและสามารถพลิกแพลงการค้นหาได้ง่าย ในความเป็นจริงแล้ว การค้นหาข้อมูลบางครั้งสามารถกระทําบนโครงสร้างข้อมูลชนิดอื่นก็ได้เช่น อาเรย์ แสตก และคิว แต่การจัดข้อมูลในโครงสร้างเช่นนี้ มีข้อจํากัดในการค้นหาข้อมูลมาก การค้นหาทําได้แบบเรียงลําดับ(Sequencial Search) เท่านั้น ซึ่งใช้ได้กับข้อมูลที่มีขนาดเล็ก ดังนั้นในการค้นหาข้อมูลที่มีขนาดใหญ่ ก่อนการค้นหา หรือระหว่างการค้นหา ข้อมูลที่จะถูกค้นจะต้องถูกจัดให้อยู่ในรูปแบบของต้นไม้ หรือกราฟเท่านั้น การค้นหาข้อมูลบนโครงสร้างต้นไม้และกราฟสามารถจําแนกได้ 2 แบบคือ การค้นหาแบบไบล์ด(Blind Search) และการค้นหาแบบฮิวริสติก(Heuristic Search)
  • 24. การค้นหาแบบไบล์ด(Blind Search)     เป็นการค้นหาแบบที่เดินทางจากโหนดหนึ่งไปยังอีกโหนดหนึ่งโดยอาศัยทิศทางเป็นตัวกําหนดการค้นหา ไม่ต้องมีข้อมูลอะไรมาช่วยเสริมการตัดสินใจว่าจะเดินทางต่อไปอย่างไร นอกจากทิศทางซึ่งเป็นรูปแบบตายตัว การค้นหาแบบไบล์ดสามารถแบ่งย่อยได้ดังนี้ คือ การค้นหาทั้หมด  และการค้นหาบางส่วน     -  การค้นหาทั้งหมด(exhaustive search) คือ การค้นหาทั้งหมดของปริภูมิสถานะ     -  การค้นหาบางส่วน (partial search)  การค้นหาเพียงบางส่วนของปริภูมิสถานะ ซึ่งในความเป็นจริงการค้นหาส่วนมากใช้การค้นหาเฉพาะบางส่วนเท่านั้นเนื่องจากปริภูมิสถานะมักมีขนาดใหญ่ เท่าให้ไม่สามารถค้นหาได้ทั้งหมด ดังนั้นจึงมีความเป็นไปได้ว่าคำตอบที่ได้อาจไม่ใช่คำตอบที่ดีที่สุด การค้นหาแบบนี้สามารถแบ่งได้เป็น 2 ประเภทคือ การค้นหาแบบลึกก่อน(Depth first search) และการค้นหาแบบกว้างก่อน (Breadth first search)
  • 25. การค้นหาแบบลึกก่อน(Depth first search)การค้นหาแบบลึกก่อนเป็นการค้นหาที่กําหนดทิศทางจากรูปของโครงสร้างต้นไม้ ที่เริ่มต้นจากโหนดราก(Root node) ที่อยู่บนสุด แล้วเดินลงมาให้ลึกที่สุด เมื่อถึงโหนดล่างสุด(Terminal node) ให้ย้อนขึ้นมาที่จุดสูงสุดของกิ่งเดี่ยวกันที่มีกิ่งแยกและยังไม่ได้เดินผ่าน แล้วเริ่มเดินลงจนถึงโหนดลึกสุดอีก ทําเช่นนี้สลับไปเรื่อยจนพบโหนดที่ต้องการหาหรือสํารวจครบทุกโหนดแล้วตามรูปที่ 1 การค้นหาแบบลึกก่อนจะมีลําดับการเดินตามโหนดดังตัวเลขที่กํากับไว้ในแต่ละโหนด รูปที่ 1 ลําดับการเดินทางบนโหนดของการค้นหาแบบลึกก่อนบนโครงสร้างต้นไม้
  • 26. โหนดเริ่มต้น จากนั้นให้นําโหนดที่อยู่ติดกับโหนดที่กําลังสํารวจอยู่(ที่ยังไม่ได้ทําการสํารวจและยังไม่ได้อยู่ในแสต็กมาใส่แสต็ก) มาเก็บไว้ในสแต็กเมื่อสํารวจโหนดนั้นเสร็จ ให้พอพ(pop) ตัวบนสุดของโหนดออกมาทําการสํารวจ แล้วนําโหนดข้างเคียงทั้งหมดที่ยังไม่ได้สํารวจมาต่อท้ายแสต็ก แล้วพอพตัวบนสุดออกมาสํารวจทําเช่นนี้เรื่อย ๆ จนกระทั้งพบโหนดที่ต้องการ หรือสํารวจครบทุดโหนด  รูปที่ 2 โครงสร้างข้อมูลแบบกราฟ
  • 27. การสํารวจจะเริ่มต้นที่ A และนําโหนดข้างเคียง B และ C มาเก็บไว้ในแสต็ก เมื่อสํารวจAเสร็จพอพข้อมูลจากแสต็กออกมาได้ C ทําการสํารวจC และนําโหนดข้างเคียงกับ C ที่ยังไม่ได้ทําการสํารวจและยังไม่ได้อยู่ในแสต็กมาใส่แสต็กD และ F พุช(Push) ใส่แสต็ก ดังนั้นในแสต็กตอนนี้มี B D F อยู่ เมื่อสํารวจC เสร็จ พอพF ออกมาทําการสํารวจ แล้วนําโหนดข้างเคียงที่ยังไม่ได้สํารวจและยังไม่ได้อยู่ในแสต็กมาใส่แสต็ก ซึ่งก็คือ G ดังนั้นข้อมูลในแสต็กจะเป็น B D G ทํ าเช่นนี้ไปเรื่อย ๆ จนจบการทํางานก็จะได้ลําดับการสํารวจคือ(A C F G H E D B) ตามตาราง 1 ดังต่อไปนี้     ตารางที่ 1 ลําดับการค้นหาแบบลึกก่อน
  • 28. การค้นหาแบบกว้างก่อน (Breadth first search)การค้นหาแบบกว้างก่อนเป็นการกําหนดทิศทางการค้นหาแบบที่ละระดับของโครงสร้างต้นไม้โดยเริ่มจากโหนดราก(ระดับที่ 0) แล้วลงมาระดับที่ 1 จากซ้ายไปขวา เมื่อเสร็จระดับที่ 1 ไประดับที่ 2จากซ้ายไปขวาเช่นกัน ทําเช่นนี้เรื่อย ๆ จนพบโหนดที่ต้องการตามรูปที่ 3 ลําดับการเดินทางของโหนดเป็นไปตามหมายเลขที่กํากับไว้บนโหนด รูปที่ 3 ลําดับการค้นหาแบบกว้างก่อนบนโครงสร้างต้นไม้
  • 29.         สําหรับการค้นหาแบบกว้างก่อนบนโครงสร้างต้นไม้ จะอาศัยโครงสร้างข้อมูลแบบคิว(Queue)มาช่วย และด้วยวิธีการเช่นเดียวกับการค้นหาแบบลึกก่อนคือ ให้เริ่มต้นสํารวจที่โหนดเริ่มต้น แล้วนําโหนดข้างเคียงเก็บไว้ในคิว เมื่อสํารวจโหนดเริ่มต้นเสร็จ ให้นําข้อมูลในคิวออกมาสํารวจ แล้วนําโหนดข้างเคียงที่ยังไม่ได้สํารวจและไม่ได้อยู่ในคิวใส่คิวไว้ ทําเช่นนี้ไปเรื่อย ๆ จนพบโหนดที่ต้องการ หรือเมื่อสํารวจครบทุกโหนด รูปที่ 4 โครงสร้างข้อมูลแบบกราฟ 
  • 30.       การสํารวจเริ่มต้นที่ A นําโหนดข้างเคียง B C ไว้ในคิว เมื่อสํารวจA เสร็จ นําข้อมูลในคิว คือ Bออกมาสํารวจ แล้วนําข้อมูลข้างเคียงคือ D E ใส่คิว ตอนนี้คิวจะมี B D E อยู่ แล้วนําB ออกมาสํารวจทําเช่นนี้เรื่อย ๆ จะได้ลําดับการสํารวจข้อมูลคือ (A B C D E F G H) ตามตารางที่ 2 ตาราง 2 ลําดับการค้นหาแบบกว้างก่อน      เช่นเดียวกับการค้นหาแบบลึกก่อน การค้นหาแบบกว้างก่อนโดยใช้โครงสร้างข้อมูลคิวมาช่วยต้องมีการกําหนดโหนดเริ่มต้น และวิธีการนี้สามารถใช้ได้กับข้อมูลบนโครงสร้างแบบต้นไม้ด้วย 
  • 32. การค้นหาแบบฮิวริสติก(Heuristic Search)      มีความความแตกต่างจากการค้นหาข้อมูลแบบธรรมดาและแบบฮิวริสติกนั้นอยู่ที่การค้นหาข้อมูลธรรมดา ผู้ที่ทําการค้นข้อมูลจะต้องตรวจสอบข้อมูลทีละตัวทุกตัวจนครบ แต่ฮิวริสติกจะไม่ลงไปดู ข้อมูลทุกตัว ซึ่งมีข้อดีคือ สามารถทําการ ค้นหาคําตอบจาก ข้อมูลที่มีขนาดใหญ่มาก ๆ ได้ แต่มีข้อเสียคือคําตอบที่ได้เป็นเพียงคําตอบที่ดี เท่านั้นไม่แน่ว่าจะดีที่สุด แต่เนื่องจากว่าปัญหาในบางลักษณะนั้นใหญ่มาก และเป็นไปไม่ได้ที่จะทํา การค้นหาด้วยวิธี ธรรมดากระบวนการของฮิวริสติกจึงเป็นสิ่งที่จําเป็นในเรื่องของฮิวริสติกนั้น นอกจากจะมีการค้นหาแบบฮิวริสติกแล้ว ยังมีอีกสิ่งหนึ่งที่สําคัญคือ  วิธีการดังกล่าวจะกระทําได้โดยการพิจารณาถึงวิธีการ (aspects) ต่าง ๆ ที่ใช้ในการแก้ปัญหา ณ  สถานะหนึ่งว่าจะสามารถแก้ปัญหาได้ตามที่ต้องการหรือไม่ โดยกําหนดเป็นนํ้าหนักที่ให้กับการแก้ปัญหาของแต่ละวิธี โหนดนั้นจะมี ความเป็นไปได้ในการนําไปสู่หนทางการแก้ปัญหาได้มากน้อยแค่ไหนจุดประสงค์ที่ แท้จริงของฮิวริสติก ฟังก์ชันก็คือ การกํากับทิศทางของกระบวนการค้นหา เพื่อให้อยู่ในทิศทางที่ได้ประโยชน์สูงสุด โดยการบอกว่าเราควรเลือกเดินเส้นทางไหนก่อน ในกรณีที่มีเส้น ทางมากกว่าหนึ่งเส้นทางต้องเลือกกระบวนการค้นหาแบบฮิวริสติก โดยปกติแล้วจะต้องอาศัยฮิวริสติกฟังก์ชัน ทําให้การแก้ปัญหาหนึ่ง ๆ จะดีหรือไม่ ก็ขึ้นอยู่กับฮิวริสติกฟังก์ชันดังนั้นการค้นหาแบบนี้จึงไม่มีอะไรเป็นหลัก ประกันว่าจะได้สิ่งที่ไม่ดีออกมาด้วยเหตุนี้เอง เราจึงเรียกการ ค้นหาแบบฮิวริสติกนี้ว่า Weak Methods หรือจะกล่าวอีกนัยหนึ่งคือ Weak Methods เป็นกระบวนการควบคุมโดยทั่วไป (general-purpose control stategies)     ซึ่งการค้นหาแบบนี้ สามารถแบ่งได้เป็น
  • 33. การค้นหาแบบปีนเขา(Hill climbing)ฟังก์ชันฮิวริสติกสามารถนำมาช่วยในกระบวนการค้นหาเพื่อให้ได้คำตอบอย่างรวด เร็วและมีประสิทธิภาพ วิธีการที่จะนำฟังก์ชันฮิวริสติกมาใช้มีหลายวิธีด้วยกันขึ้นอยู่กับว่าจะใช้ ในลักษณะใด เช่นเลือกสถานะที่มีค่าฮิวริสติกดีขึ้น แล้วเดินไปยังสถานะนั้นเลยโดยไม่ต้องสนใจสถานะที่มีค่าฮิวริสติกแย่กว่า สถานะปัจจุบันหรือว่าจะเก็บสถานะทุกตัวไว้แม้ว่าค่าฮิวริสติกจะแย่ลงแล้ว พิจารณาสถานะเหล่านี้ทีหลัง เป็นต้น ในส่วนต่อไปนี้จะกล่าวถึงอัลกอริทึมต่าง ๆ ที่นำฟังก์ชันฮิวริสติกมาช่วยในการค้นหาคำตอบ โดยเริ่มจากอัลกอริทึมปีนเข้า (Hill climbing algorithm) รูปที่ 5 แสดงลักษณะการค้นหาแบบ Hill climbing
  • 35.       ตัวเลข h(i) ในรูปแสดงว่า สถานะที่ i มีค่าฮิวริสติกเท่ากับ h จากรู้จะเห็นได้ว่า เริ่มต้นจากสถานะที่ 1 ที่มีค่าฮิวริสติกเท่ากับ -1 อัลกอริทึมปีนเขาใช้ตัวกระทำการเพื่อสร้างสถานะลูกตัวแรกของสถานะที่ 1 แล้ววัดค่าฮิวริสติกได้ 0 ซึ่งมีค่าดีขึ้น ถ้าสังเกตจากรูปที่  จะพบว่าสถานะที่ 1 มีสถานะลูกทั้งหมด 3 ตัว แต่ในกรณีของอัลกอริทึมปีนเขานี้ เมื่อได้สถานะลูกตัวแรกซึ่งมีค่าอิวริสติกดีขึ้น อัลกอริทึมจะไม่สร้างสถานะลูกที่เหลืออีก 2 ตัว และจะไม่มีการย้อนกลับมาที่สถานะลูกทั้ง 2 นี้ แม้ว่าหลังจากนี้อัลกอริทึมจะค้นไม่พบคำตอบกล่าวคือเป็นการตัดทางเลือกทิ้ง ไปเลย ซึ่งการทำเช่นนี้แม้ว่าจะมีโอกาสไม่พบคำตอบแต่ก็มีข้อดีที่เป็นการช่วยลด เวลาและปริภูมิที่ทำการค้นหาจะลดลงอย่างมากจากนั้นอัลกอริทึมมาสถานะที่ 2 แล้วเริ่มสร้างสถานะลูกได้สถานะที่ 3 ที่มีค่าฮิวริสติก -1 ซึ่งแย่ลงในกรณีที่แย่ลงเช่นนี้ อัลกอริทึมจะไม่ไปยังสถานะลูกตัวนี้และสร้างสถานะลูกตัวต่อไปโดยใช้ตัวกระทำ การที่เหลือได้สถานะที่ 4 มีค่าฮิวริสติกเท่ากับ -1 ไม่ดีขึ้นเช่นกันจึงสร้างสถานะลูกตัวถัดไป เป็นสถานะที่5 มีค่าฮิวริสติกเท่ากับ 1 เป็นค่าที่ดีขึ้น อัลกอริทึมจะมายังสถานะนี้และค้นพบคำตอบในที่สุด
  • 36. การค้นหาดีสุดก่อน(Best-first search)      เป็นกระบวนการค้นหาข้อมูลที่ได้นําเอาข้อดีของทั้งการค้นหาแบบลึกก่อน(Depth firstsearch) และการค้นหาแบบกว้างก่อน(Breadth first search) มารวมกันเป็นวิธีการเดียว โดยที่แต่ละขั้นของการค้นหาในโหนดลูกนั้น การค้นหาแบบดีที่ดีก่อนจะเลือกเอา โหนดที่ดีที่สุด (most promising)และการที่จะทราบว่าโหนดใดดีที่สุดนี้สามารถทําได้โดยอาศัยฮิวริสติกฟังก์ชัน หน้าที่เหมือนตัววัดผล และให้ผลของการวัดนี้ออกมาเป็นคะแนน รูปที่ 2.7 เป็นตัวอย่างของการค้นหาแบบดีที่สุดก่อน ขั้นตอนนี้เริ่มจากตอน 1 สร้างโหนดราก(root node) ในขั้นตอน 2 สร้างโหนดลูกB และ C แล้วตรวจสอบโหนดB และ C ด้วยฮิวริสติกฟังก์ชัน ได้ผลออกมาเป็นคะแนนคือ 3 และ 1ตามลําดับ จากนั้นให้เลือกโหนดC เป็นโหนดต่อไปที่เราสนใจ เพราะมีค่าน้อยกว่า (หมายเหตุ ในการเลือกนี้จะเลือกค่ามากสุด หรือน้อยสุดก็ได้ ขึ้นอยู่กับลักษณะของปัญหา) แล้วสร้างโหนด ลูกให้กับโหนดC ในขั้นตอน 3 ได้โหนดD และ E แล้วตรวจสอบคะแนนได้ 4 และ 6 ตามลําดับ จากนั้นทํ าการเปรียบเทียบค่าของโหนดท้ายสุด หรือเทอร์มินอล โหนด(terminal node) ทุกโหนด ว่าโหนด ใดมีค่าดีที่สุด ในที่นี้จะต้องเลือกโหนดB เพราะมีคะแนนเพียง 3 (เลือกคะแนนตํ่าสุด) แล้วสร้างโหนด ลูกตามขั้นตอน 4 ได้ F และ G แล้วตรวจ สอบคะแนนได้ 6 และ 5 คะแนนตามลําดับทําเช่นนี้เรื่อย ๆ จนพบคําตอบหรือจนไม่สามารถ สร้างโหนดต่อไปได้อีก
  • 37. รูปที่ 7 ขั้นตอนของการค้นหาแบบดีที่สุดก่อน รูปที่ 8  การค้นหาแบบดีสุดก่อน
  • 38. อัลกอริธึม: การค้นหาแบบดีที่สุดก่อน 1. เริ่มด้วย OPEN ที่มีเพียงโหนดเริ่มต้น 2. ทําจนกว่าจะพบเป้าหมาย หรือว่าไม่มีโหนดเหลืออยู่ใน OPEN -เลือกโหนดที่ดีที่สุดใน OPEN -สร้างโหนดลูกให้กับโหนดที่ดีที่สุดนั้น -สําหรับโหนดลูกแต่ละตัวให้ทําดังต่อไปนี้      i) ถ้าโหนดนั้นยังไม่เคยถูกสร้างมาก่อนหน้านั้น ให้ตรวจสอบค่าของมันโดยใช้ฮิวริสติกฟังชันแล้วเพิ่มเข้าไปในOPEN แล้วบันทึกว่าเป็นโหนดแม่      ii) ถ้าโหนดนั้นถูกสร้างมาก่อนหน้านี้แล้ว ให้เปลี่ยนโหนดแม่ของมันถ้าเส้นทางใหม่ที่ได้ดีกว่าโหนดแม่ตัวเดิม ในกรณีนี้ ให้ปรับเปลี่ยนค่าตามเส้นทางที่อาจจะเกิดขึ้น
  • 39. การค้นหาแบบ Greedy (Greedy Algorithm)     กรีดีอัลกอริธึม เป็นการค้นหาแบบดีที่สุดก่อน(Best first search) ที่ง่ายที่สุด หลักการของการค้นหาแบบนี้คือ การเลือกโหนดที่ดีที่สุดตลอดเวลาอัลกอริธึม กรีดี 1. เลือกโหนดเริ่มต้นมาหนึ่งโหนด 2. ให้โหนดที่เลือกมานี้เป็นสถานะปัจจุบัน 3. ให้ทําตามขบวนการข้างล่างนี้จนกว่าจะไม่สามารถสร้างโหนดลูกได้อีก       3.1 สร้างสถานะใหม่ที่เป็นโหนดลูกที่เป็นไปได้ทั้งหมดจากสถานะปัจจุบัน       3.2 จากสถานะใหม่ที่สร้างขึ้นมาทั้งหมด ให้เลือกสถานะ หรือ โหนดลูก ที่ดีที่สุดออกมาเพียงโหนดเดียว 4. กลับไปที่ขึ้นตอนที่ 2 ตัวอย่าง จากเรื่องการเดินทางของเซลแมนที่จะต้องเดินทางไปยังเมือง A B C D ซึ่งมีระยะทางตามตารางที่ 3 เราจะแก้ปัญหานี้ด้วยวิธีการของกรีดีบ้าง
  • 40. รูปที่ 9 การแก้ปัญหาการเดินทางของเซลแมนด้วยกรีดีอัลกอริธึม จากรูปที่ 9 การแก้ปัญหาเริ่มจาก การเลือก A เป็นเมืองเริ่มแรก จากนั้นทําการสร้างโหนดลูกB C และ D หารระยะทางระหว่าง A ถึงเมืองเหล่านี้ได้ 20 30 และ 50 ตามลําดับ เลือก B เป็นเมืองที่จะเดินทางต่อมา จากนั้นสร้างโหนดลูกของ B ได้ C และ D และได้ระยะทางเท่ากับ 15 และ 20 ตามลําดับ เลือก C เป็นเมืองที่จะเดินทางต่อไป จากนั้นสร้างโหนดลูกให้ C ได้ D มีค่าเท่ากับ 10 เลือกเดินมาที่ D เป็นเมืองสุดท้ายก่อนกลับไป A รวมระยะทางเท่ากับ 20 + 15 + 10 + 50 = 95
  • 41. รูปที่ 10    ข้อมูลในรูปแบบกราฟ ตาราง 3 การค้นหาแบบกรีดี
  • 42.       การค้นหาแบบ A* เป็นอีกแบบของการค้นหาแบบดีที่สุดก่อน วิธีการเลือกโหนดที่จะใช้ในการดําเนินการต่อจะพิจารณาจากโหนดที่ดีที่สุด แต่ในกรณีของ A* นี้จะมีลักษณะพิเศษกว่าคือ ในส่วนของฮิวริสติกฟังก์ชัน ในกรณีของการค้นหาแบบดีที่สุดก่อนนั้น ค่าที่ได้จากฮิวริสติก ฟังก์ชัน จะเป็นค่าที่วัดจาก โหนดปัจจุบัน แต่ในกรณีของ A* ค่าของฮิวริสติก ฟังก์ชัน จะวัดจากค่า 2 ค่าคือ ค่าที่วัดจากโหนดปัจจุบันไปยังโหนดราก และจากโหนดปัจจุบันไปยังโหนดเป้าหมาย ถ้าเราให้ตัวแปร f แทนค่าของฮิวริสติก ฟังก์ชัน g เป็นฟังก์ชันที่ใช้วัดค่า cost จากสถานะเริ่มต้นจนถึงสถานะปัจจุบัน h' เป็นฟังก์ชันที่ใช้วัดค่า cost จากสถานะปัจจุบันถึงสถานะเป้าหมาย ดังนั้น
  • 43. อัลกอริทึม A*(A* Search)  เป็นการขยายอัลกอริทึมดีสุดก่อนโดยพิจารณาเพิ่มเติมถึงต้นทุนจากสถานะเริ่มต้นมายังสถานะปัจจุบันเพื่อใช้คำนวณค่าฮิวริสติกด้วย ในกรณีของอัลกอริทึม A* เราต้องการหาค่าต่ำสุดของฟังก์ชัน  f' ของสถานะ s นิยามดังนี้                                    f'(s)=g(s)+h'(s) โดยที่ g คือฟังก์ชันที่คำนวณต้นทุนจากสถานะเริ่มต้นมายังสถานะปัจจุบัน h' คือฟังก์ชันที่ประมาณต้นทุนจากสถานะปัจจุบันไปยังคำตอบ
  • 44. อัลกอริทึม A* จะทำการค้นหาโดยวิธีเดียวกันกับอัลกอริทึมดีสุดก่อนทุกประการ ยกเว้น ฟังก์ชันฮิวริสติกที่ใช้เปลี่ยนมาเป็น f' (ต่างจากอัลกอริทึมดีสุดก่อนที่ใช้ h') โดยการใช้ f' อัลกอริทึม A* จึงให้ความสำคัญกับสถานะหนึ่ง ๆ 2 ประการ คือ (1) สถานะที่ดีต้องมี h' ดีคือต้นทุนเพื่อจะนำไปสู่คำตอบหลังจากนี้ต้องน้อย และ (2) ต้นทุนที่จ่ายไปแล้วกว่าจะถึงสถานะนี้ (g) ต้องน้อยด้วย เราจึงได้ว่า A* จะค้นหาเส้นทางที่ให้ต้นทุนโดยรวมน้อยที่สุดตามค่า f' ซึ่งต่างจากอัลกอริทึมดีสุดก่อน ที่เน้นความสำคัญของสถานะที่ต้นทุนหลังจากนี้ที่จะนำไปสู่คำตอบต้องน้อย โดยไม่สนใจว่าต้นทุนที่จ่ายไปแล้วกว่าจะนำมาถึงสถานะนี้ต้องเสียไปเท่าไหร่ รูปที่ 11 แสดงการค้นหาด้วยอัลกอริทึม A* กันสถานะในรูปที่ 8 โดยสมมติให้ต้นทุนหรือระยะห่างระหว่างสถานะพ่อแม่ไปยังสถานะลูกเท่ากับ 1 หน่วย เช่นต้น ทุนจริง (g)  จาก A ไปยัง B,C หรือ D มีค่าเท่ากับ 1 หน่วย
  • 45. ผู้จัดทำ นางสาว อรอนงค์ สุขาวรรณ ชั้นมัธยมศึกษาปีที่ 5 เลขที่ 16