อัลกอริทึม

จากวิกิพีเดีย สารานุกรมเสรี

อัลกอริทึม (algorithm) หมายถึงขั้นตอนวิธี ที่สามารถเข้าใจได้และมีความยาวจำกัดบอกถึง ลำดับ หรือวิธีการในการแก้ไขปัญหาใดปัญหาหนึ่ง อย่างเป็นขั้นเป็นตอนและชัดเจน ว่าทำอย่างไร เมื่อนำเข้าอะไร แล้วจะได้ผลลัพธ์เช่นไร ซึ่งแตกต่างจากการแก้ปัญหาแบบศึกษาสำนึก หรือฮิวริสติก (heuristic)

โดยทั่วไป อัลกอริทึม จะประกอบด้วย วิธีการเป็นขั้นๆ และมีส่วนที่ต้องทำแบบวนซ้ำ(iterate) หรือ เวียนเกิด(recursive) โดยใช้ตรรกะ (logic) และ/หรือ ในการเปรียบเทียบ (comparison) ในขั้นตอนต่างๆ จนกระทั่งเสร็จสิ้นการทำงาน

ในการทำงานอย่างเดียวกัน เราอาจจะเลือกอัลกอริทึมที่ต่างกันเพื่อแก้ปัญหาได้ โดยที่ผลลัพธ์ที่ได้ในขั้นสุดท้ายจะออกมาเหมือนกันหรือไม่ก็ได้ และจะมีความแตกต่าง ที่จำนวนและชุดคำสั่งที่ใช้ต่างกันซึ่งส่งผลให้ เวลา (time), และขนาดหน่วยความจำ(space)ที่ต้องการต่างกัน หรือเรียกได้อีกอย่างว่ามีความซับซ้อน (complexity) ต่างกัน

การนำอัลกอริทึมไปใช้ ไม่จำกัดเฉพาะการเขียนโปรแกรมคอมพิวเตอร์ แต่สามารถใช้กับปัญหาอื่น ๆ ได้เช่น การออกแบบวงจรไฟฟ้า, การทำงานเครื่องจักรกล, หรือแม้กระทั่งปัญหาในธรรมชาติ เช่น วิธีของสมองมนุษย์ในการคิดเลข หรือวิธีการขนอาหารของแมลง

สารบัญ

[แก้] ตัวอย่าง

หนึ่งในอัลกอริทึมอย่างง่าย คือ อัลกอริทึมที่ใช้หาจำนวนที่มีค่ามากที่สุดในรายการ (ซึ่งไม่ได้เรียงลำดับไว้) ในการแก้ปัญหานี้ เราจะต้องดูจำนวนทุกจำนวนในรายการ ซึ่งมีอัลกอริทึมดังนี้

  1. ดูแต่ละจำนวนในรายการ ถ้ามันมีค่ามากกว่า จำนวนที่มีค่ามากที่สุดที่เราเคยพบเจอ ให้จดค่ามันไว้
  2. จำนวนที่เราจดไว้ตัวสุดท้าย จะเป็นจำนวนที่มีค่ามากที่สุด

และนี่คือรหัสเทียมสำหรับอัลกอริทึมนี้

Algorithm LargestNumber
  Input: รายการจำนวนเต็ม.
  Output: จำนวนเต็มที่มีค่ามากที่สุดในรายการ.

  largest ← -∞
  for each item in รายการ, do
    if the item > largest, then
      largest ← the item
  return largest

หมายเหตุ:

  • "←" เป็นเครื่องหมายแทนคำว่า "ให้มีค่าเป็น" เช่น "largest ← the item" หมายความว่า ให้ largest มีค่าเป็น item
  • "return" เป็นการจบอัลกอริทึม และส่งค่าของตัวแปรที่ตามหลัง ออกไปยังอัลกอริทึมก่อนหน้าที่เรียกใช้

[แก้] ประวัติ

ผู้ให้กำเนิดอัลกอริทึม
ขยาย
ผู้ให้กำเนิดอัลกอริทึม

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

อัลกอริทึมแรกสำหรับคอมพิวเตอร์นั้น เขียนขึ้นในปี ค.ศ. 1842 โดย เอดา ไบรอน ใน notes on the analytical engine ทำให้ถือกันว่า เอดาเป็นนักพัฒนาโปรแกรมหรือโปรแกรมเมอร์คนแรกของโลก แต่เนื่องจาก ชาร์ลส แบบเบจ ไม่ได้สร้าง analytical engine จนเสร็จ อัลกอริทึมของเอดานั้นจึงไม่ได้มีการใช้จริง

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

[แก้] ดูเพิ่ม

[แก้] อ้างอิง


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


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