กลับไปหน้าบทความ

อ่าน 4 นาที

อัลกอริทึมเชิงประจักษ์

การวิเคราะห์อัลกอริทึม/ประจักษ์นิยม

ในวิทยาการคอมพิวเตอร์อัลกอริทึมเชิงประจักษ์ (หรืออัลกอริทึมเชิงทดลอง ) คือการปฏิบัติในการใช้วิธีการเชิงประจักษ์เพื่อศึกษาพฤติกรรมของอัลกอริทึมการปฏิบัตินี้รวมการพัฒนาอัลกอริทึมและก...

อัลกอริทึมเชิงประจักษ์

ในวิทยาการคอมพิวเตอร์อัลกอริทึมเชิงประจักษ์ (หรืออัลกอริทึมเชิงทดลอง ) คือการปฏิบัติในการใช้วิธีการเชิงประจักษ์เพื่อศึกษาพฤติกรรมของอัลกอริทึมการปฏิบัตินี้รวมการพัฒนาอัลกอริทึมและการทดลองเข้าด้วยกัน กล่าวคือ อัลกอริทึมไม่ได้ถูกออกแบบเพียงอย่างเดียว แต่ยังถูกนำไปใช้งานและทดสอบในสถานการณ์ต่างๆ ด้วย ในกระบวนการนี้ การออกแบบเบื้องต้นของอัลกอริทึมจะถูกวิเคราะห์เพื่อให้สามารถพัฒนาอัลกอริทึมได้ทีละขั้นตอน[ 1 ]

ภาพรวม

วิธีการจากอัลกอริทึมเชิงประจักษ์ช่วยเสริมวิธีการเชิงทฤษฎีสำหรับการวิเคราะห์อัลกอริทึม [ 2 ] ด้วยการประยุกต์ใช้วิธีการเชิงประจักษ์อย่างมีหลักการ โดยเฉพาะอย่างยิ่งจากสถิติมักจะสามารถได้รับข้อมูลเชิงลึกเกี่ยวกับพฤติกรรมของอัลกอริทึม เช่นอัลกอริทึมฮิวริสติก ประสิทธิภาพสูง สำหรับปัญหาเชิงคอมบินาทอริก ที่ยาก ซึ่ง (ในปัจจุบัน) ไม่สามารถเข้าถึงได้ด้วยการวิเคราะห์เชิงทฤษฎี[ 3 ]วิธีการเชิงประจักษ์ยังสามารถใช้เพื่อให้ได้การปรับปรุงประสิทธิภาพของอัลกอริทึมอย่าง มีนัยสำคัญ [ 4 ]

นักวิทยาศาสตร์คอมพิวเตอร์ชาวอเมริกันCatherine McGeochระบุสาขาหลักสองสาขาของอัลกอริทึมเชิงประจักษ์ ได้แก่ สาขาแรก (เรียกว่าการวิเคราะห์เชิงประจักษ์ ) ซึ่งเกี่ยวข้องกับการวิเคราะห์และลักษณะเฉพาะของพฤติกรรมของอัลกอริทึมและสาขาที่สอง (เรียกว่าการออกแบบอัลกอริทึมหรือวิศวกรรมอัลกอริทึม ) ซึ่งมุ่งเน้นไปที่วิธีการเชิงประจักษ์เพื่อปรับปรุงประสิทธิภาพของ อั ลกอริทึม[ 5 ]สาขาแรกมักอาศัยเทคนิคและเครื่องมือจากสถิติในขณะที่สาขาหลังนั้นอิงตามแนวทางจากสถิติการเรียนรู้ของเครื่องและการเพิ่มประสิทธิภาพเครื่องมือวิเคราะห์แบบไดนามิก ซึ่งโดยทั่วไป คือโปรไฟล์ประสิทธิภาพมักใช้เมื่อนำวิธีการเชิงประจักษ์มาใช้ในการคัดเลือกและปรับปรุงอัลกอริทึมประเภทต่างๆ เพื่อใช้ในบริบทต่างๆ[ 6 ] [ 7 ] [ 8 ]

งานวิจัยด้านอัลกอริทึมเชิงประจักษ์ได้รับการตีพิมพ์ในวารสารหลายฉบับ รวมถึงACM Journal on Experimental Algorithmics (JEA) และJournal of Artificial Intelligence Research (JAIR) นอกจาก Catherine McGeoch แล้ว นักวิจัยที่มีชื่อเสียงในด้านอัลกอริทึมเชิงประจักษ์ ได้แก่Bernard Moret , Giuseppe F. Italiano , Holger H. Hoos , David S. JohnsonและRoberto Battiti [ 9 ]

การวิเคราะห์ประสิทธิภาพในการออกแบบอัลกอริธึมที่ซับซ้อน

ในกรณีที่ไม่มีอัลกอริธึมเชิงประจักษ์ การวิเคราะห์ความซับซ้อนของอัลกอริธึมอาจเกี่ยวข้องกับวิธีการทางทฤษฎีต่างๆ ที่สามารถนำไปใช้กับสถานการณ์ต่างๆ ที่อาจใช้อัลกอริธึมได้[ 10 ]การพิจารณาเรื่องหน่วยความจำและแคชมักเป็นปัจจัยสำคัญที่ต้องคำนึงถึงในการเลือกอัลกอริธึมที่ซับซ้อนทางทฤษฎี หรือแนวทางในการเพิ่มประสิทธิภาพสำหรับวัตถุประสงค์ที่กำหนด[ 11 ] [ 12 ]การวิเคราะห์ประสิทธิภาพเป็น เทคนิค การวิเคราะห์โปรแกรมแบบไดนามิกที่มักใช้ในการค้นหาและวิเคราะห์คอขวดในโค้ดของแอปพลิเคชันทั้งหมด[ 13 ] [ 14 ] [ 15 ]หรือสำหรับการวิเคราะห์แอปพลิเคชันทั้งหมดเพื่อระบุโค้ดที่ทำงานได้ไม่ดี[ 16 ]โปรไฟล์เลอร์สามารถเปิดเผยโค้ดที่เกี่ยวข้องกับปัญหาด้านประสิทธิภาพของแอปพลิเคชันได้มากที่สุด[ 17 ]

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

การทำโปรไฟล์อาจให้ข้อมูลเชิงลึกที่เข้าใจง่ายเกี่ยวกับพฤติกรรมของอัลกอริทึม[ 20 ]โดยการเปิดเผยผลการค้นพบประสิทธิภาพในรูปแบบภาพ[ 21 ]ตัวอย่างเช่น การทำโปรไฟล์ประสิทธิภาพได้ถูกนำมาใช้ในระหว่างการพัฒนาอัลกอริทึมสำหรับการจับคู่ไวลด์การ์ดอัลกอริทึมยุคแรกสำหรับการจับคู่ไวลด์การ์ด เช่นอัลกอริทึมwildmatของRich Salz [ 22 ]มักจะอาศัยการเรียกซ้ำซึ่งเป็นเทคนิคที่ถูกวิพากษ์วิจารณ์ในด้านประสิทธิภาพ[ 23 ]อัลกอริทึมการจับคู่ไวลด์การ์ดของ Kraussได้รับการพัฒนาโดยอาศัยความพยายามในการกำหนดทางเลือกที่ไม่ใช้การเรียกซ้ำโดยใช้กรณีทดสอบ[ 24 ]ตามด้วยการเพิ่มประสิทธิภาพที่แนะนำผ่านการทำโปรไฟล์ประสิทธิภาพ[ 25 ]ส่งผลให้เกิดกลยุทธ์อัลกอริทึมใหม่ที่คิดขึ้นโดยคำนึงถึงการทำโปรไฟล์และปัจจัยอื่นๆ[ 26 ]โปรไฟล์เลอร์ที่รวบรวมข้อมูลในระดับบล็อกพื้นฐาน[ 27 ]หรือที่อาศัยความช่วยเหลือจากฮาร์ดแวร์[ 28 ]ให้ผลลัพธ์ที่แม่นยำเพียงพอที่จะช่วยนักพัฒนาซอฟต์แวร์ในการเพิ่มประสิทธิภาพอัลกอริธึมสำหรับคอมพิวเตอร์หรือสถานการณ์เฉพาะ[ 29 ]การวิเคราะห์ประสิทธิภาพสามารถช่วยให้นักพัฒนาเข้าใจลักษณะของอัลกอริธึมที่ซับซ้อนซึ่งนำไปใช้ในสถานการณ์ที่ซับซ้อน เช่น อัลกอริธึม วิวัฒนาการร่วมที่ใช้กับปัญหาตามการทดสอบแบบสุ่ม และอาจช่วยนำไปสู่การปรับปรุงการออกแบบ[ 30 ]

ดูเพิ่มเติม

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Empirical_algorithmics&oldid=1306187454 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ อัลกอริทึมเชิงประจักษ์

ในวิทยาการคอมพิวเตอร์อัลกอริทึมเชิงประจักษ์ (หรืออัลกอริทึมเชิงทดลอง ) คือการปฏิบัติในการใช้วิธีการเชิงประจักษ์เพื่อศึกษาพฤติกรรมของอัลกอริทึมการปฏิบัตินี้รวมการพัฒนาอัลกอริทึมและก...

ภาพรวม

วิธีการจากอัลกอริทึมเชิงประจักษ์ช่วยเสริมวิธีการเชิงทฤษฎีสำหรับ การวิเคราะห์อัลกอริทึม [ 2 ] ด้วย การประยุกต์ใช้วิธีการเชิงประจักษ์อย่างมีหลักการ โดยเฉพาะอย่างยิ่งจาก สถิติ มักจะสามารถได้รับข้อมูลเชิงลึกเกี่ยวกับพฤติกรรมของอัลกอริทึม เช่น อัลกอริทึมฮิวริสติก...

การวิเคราะห์ประสิทธิภาพในการออกแบบอัลกอริธึมที่ซับซ้อน

ในกรณีที่ไม่มีอัลกอริธึมเชิงประจักษ์ การวิเคราะห์ความซับซ้อนของอัลกอริธึมอาจเกี่ยวข้องกับวิธีการทางทฤษฎีต่างๆ ที่สามารถนำไปใช้กับสถานการณ์ต่างๆ ที่อาจใช้อัลกอริธึมได้ [ 10 ]...

ดูเพิ่มเติม

วิศวกรรมอัลกอริทึม การวิเคราะห์อัลกอริธึม การวิเคราะห์ประสิทธิภาพ (การเขียนโปรแกรมคอมพิวเตอร์) การปรับแต่งประสิทธิภาพ การพัฒนาซอฟต์แวร์ ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Empirical_algorithmics&oldid=1306187454 "