สวัสดีค่ะ ยินดีต้อนรับเข้าสู่เว็บไซต์ hongkrunan.in.th แหล่งการเรียนรู้ออนไลน์วิชาวิทยาการคำนวณ
สวัสดีค่ะ ยินดีต้อนรับเข้าสู่เว็บไซต์ hongkrunan.in.th แหล่งการเรียนรู้ออนไลน์วิชาวิทยาการคำนวณ
หน่วยการเรียนรู้ที่ 2
การแก้ปัญหาด้วยคอมพิวเตอร์
การแก้ปัญหาด้วยคอมพิวเตอร์
ปัญหาที่สามารถแก้ไขด้วยคอมพิวเตอร์ไม่จำเป็นต้องเป็นปัญหาทางคณิตศาสตร์เสมอไป เนื่องจากโปรแกรมคอมพิวเตอร์ต้องระบุขั้นตอนการทำงาน รวมถึงเงื่อนไขต่าง ๆ ที่ชัดเจน ดังนั้นก่อนจะแก้ปัญหาด้วยคอมพิวเตอร์นักเรียนจะต้องทำความเข้าใจกับปัญหาและความต้องการให้ชัดเจน แล้วจึงพัฒนาขั้นตอนวิธีที่สามารถใช้งานได้ ให้พิจารณาสถานการณ์ต่อไปนี้
ขณะนี้เป็นเวลาเที่ยง นักเรียนเหน็ดเหนื่อยจากการเรียนมาตั้งแต่เช้าจึงต้องการสั่งคอมพิวเตอร์ว่า "เลือกอาหารกลางวันที่เหมาะสมกับฉันให้หน่อย" ปัญหาดังกล่าวคอมพิวเตอร์สามารถช่วยเลือกอาหารที่เหมาะสมกับความต้องการได้ ถ้ามีข้อมูลเพียงพอและเงื่อนไขในการตัดสินใจที่ชัดเจน
ข้อมูล
หมายถึง ข่าวสาร เอกสาร ข้อเท็จจริงเกี่ยวกับบุคคล สิ่งของหรือเหตุการณ์ที่มีอยู่ในรูปของตัวเลข ภาษา ภาพ สัญลักษณ์ต่างๆ ที่มีความหมายเฉพาะตัว ซึ่งยังไม่มีการประมวลไม่เกี่ยวกับการนำไปใช้ได้อย่างมีประสิทธิภาพ
หากต้องการให้คอมพิวเตอร์เลือกอาหารกลางวันที่เหมาะสมได้ จะต้องมีข้อมูลเกี่ยวกับอาหารกลางวัน และถ้าต้องการเลือกอาหารที่เหมาะสม ต้องมีข้อมูลประกอบเพิ่ม เช่น ประเภท ราคา คุณค่าทางโภชนาการ คุณภาพและความนิยม นอกจากนี้ ถ้ามีข้อมูลจำกัดในการเลือกรับประทานอาหาร เช่น การแพ้อาหาร ไม่รับประทานอาหารรสจัด คอมพิวเตอร์จะต้องทราบข้อมูลนี้ด้วย เพื่อป้องกันการเลือกอาหารที่นักเรียนไม่สามารถรับประทานได้
ตัวอย่าง ข้อมูลเมนูอาหาร
เงื่อนไขที่ชัดเจน
หมายถึง ข้อแม้, ข้อจำกัด หรือข้อตกลง เงื่อนไขที่ชัดเจน คือการระบุสิ่งต่างๆ ที่จำเป็นสำหรับการตัดสินใจอย่างใดอย่างหนึ่ง เพื่อให้คอมพิวเตอร์สามารถทำงานตามที่ต้องการ
จากสถานการณ์ข้างต้น คำว่า "เหมาะสม" เป็นคำที่มีความหมายคลุมเครือ เพราะคำว่าเหมาะสมของแต่ละคนแตกต่างกัน ดังนั้น การใช้ข้อมูลเพียงอย่างเดียวอาจไม่เพียงพอที่จะให้คอมพิวเตอร์เลือกอาหารกลางวันตามความเหมาะสมได้ เนื่องจากอาหารกลางวันที่เหมาะสมนั้นมีหลายแบบ เช่น เหมาะสมกับความชอบ เหมาะสมกับราคา ในปัจจุบันคอมพิวเตอร์ไม่สามารถจัดการกับความกลุมเครือนี้ได้ จึงจำเป็นต้องระบุเงื่อนไขให้ชัดเจนมากยิ่งขึ้น
ถ้าปัญหามีการระบุเงื่อนไขที่ชัดเจน จะสามารถช่วยให้การระบุขอบเขตของข้อมูลที่ต้องการได้ชัดจนมากยิ่งขึ้น เช่น คำว่า "อาหารที่เหมาะสม" คือ อาหารที่มีราคาถูกที่สุด ข้อมูลที่ต้องเก็บมีเฉพาะราคาอาหารก็เพียงพอ ไม่จำเป็นต้องเก็บข้อมูลคุณภาพอาหารหรือความนิยมก็ได้ การระบุเงื่อนไขได้ชัดเจนและตรงตามความต้องการนั้นเป็นสิ่งสำคัญที่จะทำให้คอมพิวเตอร์สร้างผลลัพธ์ที่มีคุณภาพ
ขั้นตอนวิธีในการแก้ปัญหา
หมายถึงกระบวนการแก้ปัญหาที่สามารถเข้าใจได้ มีลำดับหรือวิธีการในการแก้ไขปัญหาใดปัญหาหนึ่งอย่างเป็นขั้นเป็นตอนและชัดเจน เมื่อนำเข้าอะไร แล้วจะต้องได้ผลลัพธ์เช่นไร
นอกจากข้อมูลและเงื่อนไขที่ชัดเจนแล้ว การพัฒนาโปรแกรมจำเป็นต้องมีขั้นตอนในการแก้ปัญหาที่ชัดเจนด้วย ในส่วนนี้จะออกแบบขั้นตอนวิธีในการแก้ปัญหาโดยใช้ตัวอย่างข้อมูลรายการอาหารกลางวัน
ถ้านักเรียนต้องการค้นหาอาหารกลางวันประเภท "อาหารหลัก" โดยเลือกอาหารที่มีคะแนนที่คำนวณจาก (0.6 x คะแนนคุณภาพ) + (0.4 x คะแนนความนิยม) สูงที่สุด สามารถแบ่งขั้นตอนการทำงานได้ 3 ขั้นตอน ดังนี้
1. เลือกรายการอาหารทั้งหมดที่เป็นอาหารหลัก
2. จากรายการอาหารหลัก คำนวณคะแนนของอาหารแต่ละชนิดตามเงื่อนไข
3. จากรายการอาหารหลักที่ได้คำนวณคะแนนแล้ว เลือกอาหารที่มีคะแนนสูงที่สุด
1. เลือกรายการอาหารทั้งหมดที่เป็นอาหารหลัก
2. จากรายการอาหารหลัก คำนวณคะแนนของอาหารแต่ละชนิดตามเงื่อนไข
3. จากรายการอาหารหลักที่ได้คำนวณคะแนนแล้ว เลือกอาหารที่มีคะแนนสูงที่สุด
จากขั้นตอนการทำงาน สามารถสรุปได้ว่า รายการอาหารที่ตรงตามเงื่อนไขทั้งหมด คือ ข้าวยำ เมื่อเข้าใจลำดับการทำงานแล้ว จะระบุขั้นตอนวิธีในสองขั้นตอนแรก ได้ดังนี้
ขั้นตอนที่ 1 สร้างรายการคำตอบที่เป็นไปได้ โดยเลือกเฉพาะรายการอาหารหลัก
1.1 พิจารณารายการอาหารทีละรายการ
1.1.1 ถ้าอาหารที่กำลังพิจารณาเป็นอาหารหลักแล้ว ให้เพิ่มอาหารนั้นในรายการคำตอบ
ขั้นตอนที่ 2 คำนวณคะแนนสำหรับเลือกอาหารในรายการ
2.1 พิจารณารายการอาหารหลักจากขั้นตอนที่ 1 ทีละรายการจนครบ
2.1.1 ขณะที่พิจารณาอาหารลำดับที่ i (i แทนลำดับที่ของอาหารที่กำลังพิจารณา)
2.1.2 ให้ Q แทนคะแนนคุณภาพของอาหารลำดับที่ i
2.1.3 ให้ R แทนคะแนนความนิยมของอาหารลำดับที่ i
2.1.4 คำนวณคะแนน S เท่ากับ (0.6 x Q) + (0.4 x R)
2.1.5 ให้คะแนนสำหรับจัดอันดับของอาหารลำดับที่ i เท่ากับ S
สำหรับขั้นตอนที่ 3 ที่เลือกรายการอาหารจากรายการที่มีคะแนนสูงที่สุดนั้น จะแสดงรายละเอียดในหัวข้อ 2.4.1
สังเกตว่า ในการระบุขั้นตอนวิธีข้างต้น มีการระบุให้คอมพิวเตอร์ทำงานซ้ำ ๆ กัน โดยสั่งให้คอมพิวเตอร์พิจารณาอาหารทั้งหมดที่มี รวมทั้งมีการระบุให้คอมพิวเตอร์ทำงานตามเงื่อนไข เช่น ในขั้นตอนที่ 1.1.1 มีการตรวจสอบประเภทอาหาร
โครงสร้างคำสั่งการทำซ้ำและการดำเนินการตามเงื่อนไข สามารถพบได้ทั่วไปในภาษาคอมพิวเตอร์ เช่นภาษาซี ภาษาซีพลัสพลัส ภาษาจาวาหรือภาษาไพทอน ซึ่งขั้นตอนวิธีในสองขั้นตอนแรกจากตัวอย่างนี้ สามารถนำไปแปลงเป็นภาษาคอมพิวเตอร์ได้ไม่ยาก
ตัวแปร
คือ ชื่อที่ใช้แทนข้อมูลขณะใดขณะหนึ่งในขั้นตอนวิธีหรือ เป็นการกำหนดชนิดข้อมูลของตัวแปร เพื่อนำไปใช้ใน
การเขียนโปรแกรม อาจเป็นชนิดตัวเลข ตัวอักขระ หรือสายอักขระ
จากตัวอย่างการเลือกอาหารในรายการอาหารในหัวข้อ 2.1.3 พบว่ามีการใช้งานตัวแปร เช่น ตัวแปร Q , R และ S โดยทั่วไปแล้วในทางคอมพิวเตอร์ ตัวแปรจะถูกใช้เพื่อเก็บข้อมูลและอาจจะมีการเปลี่ยนแปลงค่าได้ตามบริบทการทำงาน
ในการเขียนขั้นตอนวิธีอาจระบุว่า ให้กำหนดค่าให้กับตัวแปร หรืออาจใช้สัญลักษณ์ <--- ในการเขียน เช่น
x <--- 10 จะเป็นการระบุให้ตัวแปร x มีค่าเท่ากับ 10
z <--- z + 1 จะเป็นการกำหนดให้เพิ่มค่าตัวแปร z ขึ้นอีก 1 กล่าวคือ ถ้าก่อนการทำงานตัวแปร z มีค่าเท่ากับ 10 หลังการทำงาน ตัวแปร z มีค่าเท่ากับ 11
การแก้ปัญหาด้วยคอมพิวเตอร์ นอกจากจะช่วยลดระยะเวลาในการตัดสินใจแล้ว ยังเพิ่มขีดความสามารถในการแก้ปัญหาเมื่อข้อมูลมีจำนวนมากเกินกว่าที่มนุษย์จะคำนวณได้ ดังนั้นนักเรียนจึงต้องศึกษาวิธีการและแนวคิดอื่นเพิ่มเติมเพื่อให้สามารถนำไปใช้แก้ปัญหาที่ซับซ้อนได้