algorithm คืออะไร?

0
818

algorithm คืออะไร? มาทำความรู้จักเบื้องต้นกันจ้า

ที่มาของคำว่า “algorithm”

     Algorithm มีที่มาจากชื่อของนักคณิตศาสตร์ชาวเปอร์เซียในยุคศตวรรษที่ 9 อะบู อับดิลลาหฺ บิน มูซา อัลคอวาริซมีย์ (Abu Abdillah Muhammad bin Musa al-Khawarizmi) คำว่า al-Khawarizmi ได้เพี้ยนเป็น Algoritmi เมื่องานเขียนของเขาได้รับการแปลเป็นภาษาละติน แล้วกลายเป็น Algorithm อัลกอริทึม ซึ่งใช้หมายถึงกฎที่ใช้ในการคิดคำนวณเลขคณิต และได้กลายมาเป็นคำ ขั้นตอนวิธี ในช่วงศตวรรษที่ 18. ในปัจจุบัน คำนี้ได้มีความหมายที่กว้างขึ้น

ความหมายของ “algorithm”

     Algorithm อ่านว่า อัลกอริทึม หมายถึง การวิเคราะห์แยกแยะกระบวนการแก้ปัญหาหรือลำดับการประมวลผลในการแก้ปัญหาใดปัญหาหนึ่งอย่างเป็นขั้นตอนให้ชัดเจนและอย่างง่ายขึ้นจนกระทั่งเสร็จสิ้นการทำงาน
โปรแกรมเมอร์ หรือ ผู้พัฒนาโปรแกรม ใช้

     ราชบัณฑิตยสถาน ได้บัญญัติคำว่าอัลกอริทึม (Algorithm) เป็นภาษาไทยว่า เป็นลำดับของขั้นตอนการคำนวณที่ใช้แก้ปัญหา โดยการเปลี่ยนข้อมูลนำเข้าของปัญหา (input) ออกมาเป็นผลลัพธ์ (output) ขั้นตอนวิธีดังกล่าวนั้นจะสามารถนำมาเขียนเป็นโปรแกรมในคอมพิวเตอร์ได้

 

ประเภทของ “algorithm”

รูปแบบการเขียน “algorithm” แบ่งได้ออกเป็น 10 ประเภทดังต่อไปนี้

1.Brute Force Algorithm การแก้ปัญหาโดยสั่งให้ทำงาน ‘วน’ ไปเรื่อยๆจนกว่าจะได้คำตอบ
2.Recursive Algorithm การแก้ปัญหาด้วยการเรียกใช้ตัวเอง ‘ซ้ำ’ ๆ
3.Randomized Algorithm การแก้ปัญหาด้วยการ ‘สุ่ม’ ข้อมูล เพื่อให้ได้ผลตามที่ต้องการ
4.Divide and Conquer Algorithm การใช้หลักการ ‘แยก’ ปัญหาเป็น 2 ส่วน คือ การแบ่งปัญหาแล้วแก้ปัญหาส่วนเล็กๆนก่อน และ การนำผลที่ได้จากส่วนที่ 1 กลับมารวมกันใหม่
5.Decrease and Conquer Algorithm การแก้ปัญหาด้วยการ ‘ลด’ ขนาดของปัญหาลง
6.Transform and Conquer Algorithm การแก้ปัญหาด้วยการ ‘เปลี่ยน’ รูปแบบของปัญหา
7.Dynamic programming Algorithm การแก้ปัญหาจาก ‘ล่างขึ้นบน’
8.Backtracking Algorithm การแก้ปัญหาด้วยการ “ย้อนรอย ถอยหลัง”
9.Branch and bound Algorithms การแก้ปัญหาโดยใช้โครงสร้าง ‘Tree’ หรือเก็บปัญหาเป็น node
10.Greedy Algorithm การแก้ปัญหาด้วยการ ‘เพิ่มประสิทธิภาพ’ ของการแก้ปัญหา คือ “หาคำตอบที่ดีและคุ้มค่าที่สุด

 

   

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