เกือบทุกอย่างในโลกของเราอยู่ภายใต้กฎหมายและกฎเกณฑ์บางประการ วิทยาศาสตร์สมัยใหม่ไม่หยุดนิ่ง ต้องขอบคุณมนุษยชาติที่รู้สูตรและอัลกอริธึมมากมาย จากนั้นคุณจะสามารถคำนวณและสร้างการกระทำและโครงสร้างต่างๆ ที่สร้างขึ้นโดยธรรมชาติ และทำให้ความคิดที่มนุษย์ประดิษฐ์ขึ้นเป็นจริงขึ้นมา
ในบทความนี้ เราจะวิเคราะห์แนวคิดพื้นฐานของอัลกอริทึม
ประวัติความเป็นมาของอัลกอริทึม
Algorithm - แนวคิดที่ปรากฏในศตวรรษที่สิบสอง คำว่า "อัลกอริทึม" นั้นมาจากการตีความภาษาละตินของชื่อของนักคณิตศาสตร์ชาวตะวันออกกลางที่มีชื่อเสียง Muhammad al-Khwarizmi ผู้เขียนหนังสือเรื่อง "On Indian Counting" หนังสือเล่มนี้อธิบายวิธีเขียนตัวเลขธรรมชาติอย่างถูกต้องโดยใช้ตัวเลขอารบิก และอธิบายอัลกอริธึมของการกระทำด้วยคอลัมน์เหนือตัวเลขดังกล่าว
ในศตวรรษที่ 12 หนังสือ "ในบัญชีอินเดีย" ได้รับการแปลเป็นภาษาละติน และคำจำกัดความนี้ก็ปรากฏขึ้น
การโต้ตอบของอัลกอริทึมกับมนุษย์และเครื่องจักร
สร้างสรรค์อัลกอริธึมต้องใช้วิธีการที่สร้างสรรค์ ดังนั้นเฉพาะสิ่งมีชีวิตเท่านั้นที่สามารถสร้างรายการการกระทำตามลำดับใหม่ได้ แต่สำหรับการดำเนินการตามคำสั่งที่มีอยู่ ไม่จำเป็นต้องมีจินตนาการ แม้แต่เทคโนโลยีที่ไร้วิญญาณก็สามารถจัดการกับสิ่งนี้ได้
ตัวอย่างที่ดีของการปฏิบัติตามคำแนะนำคือเตาไมโครเวฟเปล่าที่ยังคงทำงานต่อไปแม้จะไม่มีอาหารอยู่ข้างใน
เรื่องหรือวัตถุที่ไม่จำเป็นต้องเข้าใจสาระสำคัญของอัลกอริธึมเรียกว่าผู้ดำเนินการอย่างเป็นทางการ บุคคลสามารถเป็นผู้ดำเนินการที่เป็นทางการได้เช่นกัน แต่ในกรณีที่การกระทำอย่างใดอย่างหนึ่งไม่ได้ผล ผู้ดำเนินการทางความคิดสามารถทำทุกอย่างในแบบของเขาเอง ดังนั้นนักแสดงหลักคือคอมพิวเตอร์ เตาไมโครเวฟ โทรศัพท์และอุปกรณ์อื่น ๆ แนวคิดของอัลกอริทึมในวิทยาการคอมพิวเตอร์มีความสำคัญสูงสุด แต่ละอัลกอริธึมถูกรวบรวมด้วยความคาดหมายของหัวข้อเฉพาะ โดยคำนึงถึงการกระทำที่อนุญาต วัตถุเหล่านั้นที่อาสาสมัครสามารถใช้คำสั่งได้นั้นถือเป็นสภาพแวดล้อมของผู้ดำเนินการ
เกือบทุกอย่างในโลกของเราอยู่ภายใต้กฎหมายและกฎเกณฑ์บางประการ วิทยาศาสตร์สมัยใหม่ไม่หยุดนิ่ง ต้องขอบคุณมนุษยชาติที่รู้สูตรและอัลกอริธึมมากมาย ต่อจากนั้นคุณสามารถคำนวณและสร้างการกระทำและการสร้างสรรค์ของธรรมชาติมากมาย และนำความคิดที่มนุษย์ประดิษฐ์ขึ้นมามีชีวิต ในบทความนี้ เราจะวิเคราะห์แนวคิดพื้นฐานของอัลกอริทึม
อัลกอรึทึมคืออะไร
กิจกรรมส่วนใหญ่ที่เราดำเนินการในช่วงชีวิตของเราจำเป็นต้องปฏิบัติตามกฎเกณฑ์หลายประการ จากที่คนมีความคิดที่ถูกต้องเกี่ยวกับอะไร อย่างไร และลำดับใดที่เขาควรทำ ขึ้นอยู่กับคุณภาพและผลลัพธ์ของงานที่ได้รับมอบหมาย ตั้งแต่วัยเด็ก พ่อแม่ได้พยายามพัฒนาอัลกอริทึมสำหรับการกระทำหลักในลูก เช่น ตื่นนอน ปูเตียง ล้างและแปรงฟัน ออกกำลังกาย รับประทานอาหารเช้า ฯลฯ รายการที่บุคคลทำ ทั้งชีวิตของเขาในตอนเช้าก็ถือได้ว่าเป็นอัลกอริธึมชนิดหนึ่ง
อัลกอริทึมคือแนวคิดที่อ้างถึงชุดคำสั่งที่บุคคลต้องปฏิบัติตามเพื่อแก้ปัญหาบางอย่าง
โดยทั่วไป อัลกอริธึมมีคำจำกัดความมากมาย นักวิทยาศาสตร์หลายคนอธิบายมันต่างกัน
หากอัลกอริทึมที่ใช้ในแต่ละวันของแต่ละคนแตกต่างกัน และสามารถเปลี่ยนแปลงได้ขึ้นอยู่กับอายุและสถานการณ์ที่นักแสดงพบว่าตัวเองเป็นชุดของการกระทำที่ต้องทำเพื่อแก้ปัญหาทางคณิตศาสตร์ หรือการใช้เทคโนโลยีเหมือนกันสำหรับทุกคนและยังคงเหมือนเดิม
อัลกอรึธึมมีแนวคิดที่แตกต่างกัน ประเภทของอัลกอริธึมก็ต่างกัน เช่น สำหรับผู้ที่ไล่ตามเป้าหมาย และเทคโนโลยี
ในยุคของเทคโนโลยีสารสนเทศ ผู้คนทุกวันปฏิบัติตามชุดคำสั่งที่คนอื่นสร้างขึ้นก่อนหน้าพวกเขา เนื่องจากเทคโนโลยีต้องการการดำเนินการที่แม่นยำของชุดการกระทำเมื่อใช้ ดังนั้นงานหลักของครูในโรงเรียนคือการสอนให้เด็กรู้วิธีใช้อัลกอริธึม ทำความเข้าใจและเปลี่ยนแปลงกฎที่มีอยู่อย่างรวดเร็วตามสถานการณ์ปัจจุบัน โครงสร้างของอัลกอริทึมเป็นหนึ่งในนั้นแนวคิดที่ศึกษาในบทเรียนคณิตศาสตร์และวิทยาการคอมพิวเตอร์ทุกโรงเรียน
คุณสมบัติพื้นฐานของอัลกอริทึม
1. ความไม่ต่อเนื่อง (ลำดับของการกระทำแต่ละอย่าง) - อัลกอริธึมใดๆ ควรแสดงเป็นชุดของการกระทำง่ายๆ ซึ่งแต่ละอย่างควรเริ่มต้นหลังจากเสร็จสิ้นขั้นตอนก่อนหน้า
2. ความแน่นอน - การดำเนินการแต่ละขั้นตอนของอัลกอริทึมควรเรียบง่ายและชัดเจนว่าผู้ดำเนินการไม่มีคำถามใดๆ และไม่มีเสรีภาพในการดำเนินการ
3. ประสิทธิภาพ - คำอธิบายของอัลกอริธึมควรชัดเจนและสมบูรณ์ เพื่อที่ว่าหลังจากดำเนินการตามคำสั่งทั้งหมด งานจะถึงจุดสิ้นสุดทางตรรกะ
4. อักขระจำนวนมาก - อัลกอริทึมควรใช้ได้กับปัญหาทั้งระดับ ซึ่งสามารถแก้ไขได้โดยการเปลี่ยนตัวเลขในอัลกอริทึมเท่านั้น แม้ว่าจะมีความเห็นว่าจุดสุดท้ายใช้ไม่ได้กับอัลกอริธึม แต่กับทุกวิธีทางคณิตศาสตร์โดยทั่วไป
บ่อยครั้งในโรงเรียน เพื่อให้เด็กๆ เข้าใจอัลกอริทึมได้ดีขึ้น ครูจะใช้ตัวอย่างการทำอาหารจากตำราอาหาร การทำยาจากใบสั่งยา หรือการทำสบู่ตามชั้นเรียนปริญญาโท อย่างไรก็ตาม เมื่อพิจารณาถึงคุณสมบัติที่สองของอัลกอริธึมซึ่งระบุว่าแต่ละรายการของอัลกอริธึมต้องมีความชัดเจนมากจนสามารถทำได้โดยบุคคลใด ๆ และแม้แต่เครื่องจักรก็สามารถสรุปได้ว่ากระบวนการใด ๆ ที่จำเป็นต้องมีอย่างน้อย ของจินตนาการไม่สามารถตั้งชื่ออัลกอริทึมได้ และการทำอาหารและการเย็บปักถักร้อยต้องใช้ทักษะบางอย่างและจินตนาการที่ได้รับการพัฒนามาอย่างดี
อัลกอรึทึมมีหลายประเภทแต่มีสามตัวหลัก
อัลกอริธึมวงจร
ในประเภทนี้ บางรายการซ้ำหลายครั้ง รายการการกระทำที่ต้องทำซ้ำเพื่อให้บรรลุเป้าหมายเรียกว่าเนื้อหาของอัลกอริทึม
การวนซ้ำคือการดำเนินการของรายการทั้งหมดที่รวมอยู่ในเนื้อหาของลูปส่วนของการวนซ้ำที่ดำเนินการอย่างต่อเนื่องเป็นจำนวนหนึ่งเรียกว่าการวนซ้ำที่มีจำนวนคงที่ ของการทำซ้ำ
ส่วนต่างๆ ของวัฏจักร ความถี่ซึ่งขึ้นกับเงื่อนไขจำนวนหนึ่งเรียกว่าไม่แน่นอน
วงจรที่ง่ายที่สุดได้รับการแก้ไข
อัลกอริธึมแบบวนมีสองประเภท:
- วนรอบแบบมีเงื่อนไข ในกรณีนี้ เนื้อหาของลูปจะตรวจสอบเงื่อนไขก่อนที่จะดำเนินการ
- วนรอบเงื่อนไขภายหลัง ในลูปที่มี postcondition เงื่อนไขจะถูกตรวจสอบหลังจากสิ้นสุดลูป
อัลกอริธึมประเภทเชิงเส้น
คำสั่งของวงจรดังกล่าวจะดำเนินการหนึ่งครั้งตามลำดับที่นำเสนอ ตัวอย่างเช่น ขั้นตอนการทำเตียงหรือแปรงฟันถือได้ว่าเป็นอัลกอริธึมเชิงเส้น ประเภทนี้ยังรวมถึงตัวอย่างทางคณิตศาสตร์ที่มีการดำเนินการบวกและลบเท่านั้น
อัลกอริทึมการแบรนช์
ประเภทการแตกแขนงมีหลายแบบให้เลือก ขึ้นอยู่กับเงื่อนไข
ตัวอย่าง. คำถาม: ฝนตกไหม ตัวเลือกคำตอบ: "ใช่" หรือ "ไม่ใช่" ถ้า"ใช่" - เปิดร่ม ถ้า "ไม่" - ใส่ร่มในกระเป๋า
อัลกอรึทึมเสริม
อัลกอริทึมเสริมสามารถใช้กับอัลกอริธึมอื่นได้โดยการระบุชื่อเท่านั้น
เงื่อนไขที่พบในอัลกอริทึม
เงื่อนไขอยู่ระหว่างคำว่า "ถ้า" กับ "แล้ว"
เช่น ถ้ารู้ภาษาอังกฤษก็กดหนึ่ง ในประโยคนี้ ส่วนของวลี "you know English" จะเป็นเงื่อนไข
ข้อมูลคือข้อมูลที่มีการโหลดเชิงความหมายและนำเสนอในลักษณะที่สามารถส่งและใช้สำหรับอัลกอริธึมนี้ได้
กระบวนการอัลกอริทึม - การแก้ปัญหาตามอัลกอริทึมโดยใช้ข้อมูลบางอย่าง
โครงสร้างของอัลกอริทึม
อัลกอริทึมสามารถมีโครงสร้างที่แตกต่างกัน ในการอธิบายอัลกอริทึม แนวคิดซึ่งขึ้นอยู่กับโครงสร้างของอัลกอริทึมด้วย คุณสามารถใช้วิธีต่างๆ ได้หลายวิธี เช่น วาจา กราฟิค การใช้ภาษาอัลกอริธึมที่พัฒนาขึ้นเป็นพิเศษ
วิธีการที่จะใช้ขึ้นอยู่กับปัจจัยหลายประการ: ความซับซ้อนของงาน ความละเอียดของกระบวนการในการแก้ปัญหาที่ต้องการ ฯลฯ
อัลกอริธึมเวอร์ชันกราฟิก
กราฟิกอัลกอริธึม - แนวคิดที่บ่งบอกถึงการสลายตัวของการกระทำที่จำเป็นต้องดำเนินการเพื่อแก้ปัญหาเฉพาะตามรูปทรงเรขาคณิตบางอย่าง
ไดอะแกรมกราฟิกจะไม่แสดงแบบสุ่ม เพื่อให้พวกเขาสามารถเพื่อทำความเข้าใจบุคคลใด ๆ ผังงานและโครงสร้าง Nassi-Schneiderman มักใช้บ่อยที่สุด
นอกจากนี้ บล็อกไดอะแกรมยังวาดตาม GOST-19001-90 และ GOST-19.003-80กราฟิกที่ใช้ในอัลกอริทึมแบ่งออกเป็น:
- พื้นฐาน. รูปภาพหลักใช้เพื่อระบุการดำเนินการที่จำเป็นในการประมวลผลข้อมูลเมื่อแก้ไขปัญหา
- เสริม. จำเป็นต้องใช้รูปภาพเสริมเพื่อระบุองค์ประกอบในการแก้ปัญหาแต่ละส่วน ไม่ใช่องค์ประกอบที่สำคัญที่สุด
ในอัลกอริธึมแบบกราฟิก รูปทรงเรขาคณิตที่ใช้แสดงข้อมูลเรียกว่าบล็อก
บล็อกทั้งหมดเรียงตามลำดับ "จากบนลงล่าง" และ "ซ้ายไปขวา" - นี่คือทิศทางการไหลที่ถูกต้อง ด้วยลำดับที่ถูกต้อง เส้นที่เชื่อมต่อบล็อกเข้าด้วยกันจะไม่แสดงทิศทาง ในกรณีอื่นๆ ทิศทางของเส้นจะแสดงด้วยลูกศร
รูปแบบอัลกอริธึมที่ถูกต้องไม่ควรมีมากกว่าหนึ่งออกจากบล็อกการประมวลผลและน้อยกว่าสองออกจากบล็อกที่รับผิดชอบสำหรับการดำเนินการเชิงตรรกะและการตรวจสอบเงื่อนไข
วิธีสร้างอัลกอริธึมอย่างถูกต้อง
โครงสร้างของอัลกอริธึมดังที่กล่าวไว้ข้างต้นต้องสร้างขึ้นตาม GOST มิฉะนั้นจะไม่มีใครเข้าใจและเข้าถึงได้
วิธีการบันทึกทั่วไปรวมถึงรายการต่อไปนี้:
ชื่อที่จะบอกได้ชัดเจนว่าปัญหาใดสามารถแก้ไขได้โดยใช้แผนนี้
แต่ละอัลกอริธึมต้องมีจุดเริ่มต้นและจุดสิ้นสุดที่ชัดเจน
อัลกอริทึมข้อมูลทั้งหมดทั้งอินพุตและเอาต์พุตต้องอธิบายอย่างชัดเจนและชัดเจน
เมื่อรวบรวมอัลกอริธึม เราควรสังเกตการกระทำที่จะอนุญาตให้ดำเนินการที่จำเป็นสำหรับการแก้ปัญหาในข้อมูลที่เลือก มุมมองโดยประมาณของอัลกอริทึม:
- ชื่อคีมา
- ข้อมูล
- เริ่ม
- ทีม
- จบ
การสร้างวงจรอย่างเหมาะสมจะช่วยอำนวยความสะดวกในการคำนวณอัลกอริธึมอย่างมาก
รูปทรงเรขาคณิตที่รับผิดชอบการกระทำต่างๆ ในอัลกอริธึม
วงรีแนวนอน - จุดเริ่มต้นและจุดสิ้นสุด (เครื่องหมายสิ้นสุด)
สี่เหลี่ยมแนวนอน - การคำนวณหรือการดำเนินการอื่น ๆ (เครื่องหมายกระบวนการ).
สี่เหลี่ยมด้านขนานแนวนอน - อินพุตหรือเอาต์พุต (สัญญาณข้อมูล).
รูปสี่เหลี่ยมขนมเปียกปูนแนวนอน - ตรวจสอบสภาพ (สัญญาณตัดสินใจ).
หกเหลี่ยมแนวนอนยาว - ดัดแปลง (สัญลักษณ์ของการเตรียมการ).
รูปแบบอัลกอริทึมแสดงอยู่ด้านล่าง
การสร้างอัลกอริธึมเวอร์ชันสูตร-วาจา
อัลกอริธึมสูตร-วาจาถูกเขียนขึ้นในรูปแบบที่กำหนดเอง ในภาษามืออาชีพของพื้นที่ที่เป็นของงาน คำอธิบายของการกระทำในลักษณะนี้ดำเนินการโดยใช้คำและสูตร
แนวคิดของอัลกอริทึมในวิทยาการคอมพิวเตอร์
ในสาขาคอมพิวเตอร์ ทุกอย่างขึ้นอยู่กับอัลกอริธึม หากไม่มีคำแนะนำที่ชัดเจนซึ่งป้อนในรูปแบบของรหัสพิเศษ เทคนิคใด ๆ ก็จะไม่ทำงานหรือโปรแกรม. ในบทเรียนวิทยาการคอมพิวเตอร์ นักเรียนพยายามให้แนวคิดพื้นฐานของอัลกอริทึม สอนวิธีใช้และสร้างขึ้นมาเอง
การสร้างและการใช้อัลกอริธึมในวิทยาการคอมพิวเตอร์เป็นกระบวนการที่สร้างสรรค์มากกว่าการทำตามคำแนะนำในการแก้ปัญหาทางคณิตศาสตร์
นอกจากนี้ยังมีโปรแกรมพิเศษ "Algorithm" ที่ช่วยให้ผู้ที่ไม่มีความรู้ด้านการเขียนโปรแกรมสร้างโปรแกรมของตนเองได้ แหล่งข้อมูลดังกล่าวสามารถกลายเป็นผู้ช่วยที่ขาดไม่ได้สำหรับผู้ที่กำลังก้าวแรกในด้านวิทยาการคอมพิวเตอร์และต้องการสร้างเกมของตนเองหรือโปรแกรมอื่นๆ
ในทางกลับกัน โปรแกรมใดๆ ก็เป็นอัลกอริธึม แต่ถ้าอัลกอริธึมดำเนินการเฉพาะการดำเนินการที่จำเป็นต้องดำเนินการโดยการแทรกข้อมูล แสดงว่าโปรแกรมมีข้อมูลสำเร็จรูปอยู่แล้ว ความแตกต่างอีกประการหนึ่งคือโปรแกรมสามารถจดสิทธิบัตรและเป็นทรัพย์สินส่วนตัวได้ แต่อัลกอริธึมไม่ใช่ อัลกอริทึมเป็นแนวคิดที่กว้างกว่าโปรแกรม
สรุป
ในบทความนี้ เราวิเคราะห์แนวคิดของอัลกอริทึมและประเภทของอัลกอริทึม เรียนรู้วิธีการเขียนโครงร่างกราฟิกอย่างถูกต้อง