Page 36 - โครงสร้างข้อมูลและขั้นตอนวิธี
P. 36

2-26 โครงสร้างข้อมูลและขั้นตอนวิธี

เรือ่ งท​ ่ี 2.2.1
การ​วเิ คราะหป​์ ระสทิ ธภิ าพ​ของ​ขน้ั ​ตอนว​ ิธี

       การ​วิเคราะห์​ประสิทธิภาพ​ของ​ข้ัน​ตอน​วิธี สามารถ​วัด​ได้​จาก​หลาย​อย่าง เช่น พิจารณา​จาก​จ�ำนวน​เน้ือที่​
หน่วยค​ วามจ​ �ำท​ ่ีใ​ช้ใ​นก​ ารป​ ระมวลผ​ ลห​ รือพ​ ิจารณาจ​ ากค​ วามเร็วใ​นก​ ารท​ �ำงานข​ องโ​ปรแกรม ซึ่งก​ ารว​ ิเคราะห์ ประสิทธิ-
ภาพ​ของ​ขั้น​ตอน​วิธี​สามารถ​เขียน​ให้​อยู่​ใน​รูป​หน่วย​ของ​เวลา​ท่ี​ใช้​ใน​การ​ประมวล​ผล​ข้อ​มูล​ใดๆ ได้​ด้วย​ฟังก์ชัน T(n)
เมื่อ n เป็นจ​ �ำนวนเต็ม​ที่แ​ ทน​จ�ำนวนข​ ้อมูลท​ ี่​จะ​ประมวลผ​ ล

       ใน​เร่ือง​ก่อน​หน้า​ได้​แนะน�ำแ​ นวคิด​เกี่ยว​กับ​ข้ัน​ตอน​วิธี​และ​การ​เปรียบ​เทียบ​การ​เติบโต​ของ​ฟังก์ชัน​ไว้​แล้ว
ในเ​รื่องน​ ้ี​จะศ​ ึกษาเ​ร่ืองก​ ารน​ ับจ​ �ำนวนต​ ัวด​ �ำเนินก​ ารท​ ี่ใ​ช้ใ​นข​ ้ันต​ อนว​ ิธีเ​พื่อใ​ช้ป​ ระมาณเ​วลาใ​นก​ ารป​ ระมวลผ​ ลข​ ้อมูลแ​ ละ​
เปรียบ​เทียบ​ประสิทธิภาพ​ของ​ขั้น​ตอน​วิธี​ต่างๆ ถึง​แม้ว่า​ใน​ความ​เป็น​จริง​เวลา​ที่​ใช้​ใน​การ​แก้​ปัญหา​จะ​ไม่​ได้​ข้ึน​อยู่​กับ​
จ�ำนวน​ตัว​ด�ำเนิน​การ​เพียง​อย่าง​เดียว แต่​ยัง​ข้ึน​อยู่​กับ​ปัจจัย​อื่นๆ อีก เช่น ฮาร์ดแวร์​และ​ซอฟต์แวร์​ท่ีใ​ช้​ประมวล​ผล​โปร​
แกร​ มน​ ั้นๆ ด้วย ดัง​นั้น เพื่อท​ ่ี​จะป​ ระมาณ​เวลา​ท่ีใ​ช้​ประมวล​ผลข​ ้อมูลข​ นาด n ให้​ได้​ใกล้​เคียงท​ ่ีสุด อาจ​ประมาณ​ค่าไ​ด้​
จากผ​ ลค​ ูณ​ของเ​วลา​ที่เ​คย​ใช้​ในก​ าร​ประมวลผ​ ล​กับค​ ่าค​ งต​ ัว​หนึ่งๆ ได้ เช่น ในเ​คร่ืองซ​ ุปเปอร์​คอมพิวเตอร์​อาจแ​ ก้​ปัญหา​
ขนาด n ได้​เร็ว​เป็น​ล้านๆ เท่า​ของ​เวลา​ท่ี​ใช้​ประมวล​ผล​ด้วย​เครื่อง​ไมโคร​คอมพิวเตอร์ จะ​เห็น​ว่า ปัจจัย​หน่ึง​ล้าน​เท่า​นี้​
ไม่​ได้​ขึ้น​อยู่​กับ​ขนาด n ของ​ปัญหา แต่​ขึ้น​อยู่​กับ​ประสิทธิภาพ​เชิง​กายภาพ​ของ​เคร่ือง​คอมพิวเตอร์ ดัง​นั้น
จึง​ใช้​บิ๊ก​โอเ​ข้า​มาช​ ่วย​ใน​การ​ประมาณ​เวลา​ในก​ าร​ประมวล​ผลข​ ้อมูล​ขนาด n ได้ การ​ใช้​บ๊ิก​โอ​จะช​ ่วย​ประมาณ​การ​เติบโต​
ของ​ฟังก์ชัน T(n) ได้ โดย​ปราศจาก​ข้อ​กังวล​ใดๆ เก่ียว​กับ​ตัว​คูณ​ค่า​คงตัว​หรือ​พจน์​ที่​มี​อันดับ​ตํ่า​กว่า (กล่าว​ไว้​ใน​เร่ือง​
ท่ี 2.1.2) กล่าว​อีกอ​ ย่าง​หน่ึงค​ ือ การใ​ช้บ​ ๊ิก​โอท​ �ำให้​ไม่ต​ ้องก​ ังวล​เก่ียวก​ ับฮ​ าร์ดแวร์​หรือ​ซอฟต์แวร์ท​ ี่​ใช้ และย​ ่ิงไ​ปก​ ว่าน​ ้ัน
การ​ใช้บ​ ิ๊ก​โอ​ยังส​ ามารถส​ มมติไ​ด้​ว่า ตัว​ด�ำเนินก​ ารท​ ่ีแ​ ตกต​ ่างก​ ัน​จะใ​ช้​เวลาเ​ท่าก​ ัน​ในก​ ารป​ ระมวล​ผล ซึ่ง​ท�ำให้ง​ ่าย​ต่อ​การ​
วิเคราะห์ป​ ระสิทธิภาพข​ อง​ขั้นต​ อน​วิธี

       บิ๊ก​โอ​ใช้​กัน​มาก​ใน​การ​ประมาณ​ค่า​จ�ำนวน​ตัว​ด�ำเนิน​การ​ที่ใ​ช้​ใน​ขั้น​ตอน​วิธี​เมื่อ​ข้อมูล​เข้า​มีข​ นาด​ใหญ่​ข้ึน เพราะ​
ช่วยใ​ห้​สามารถ​ตัดสิน​ใจ​ได้ว​ ่า ในท​ าง​ปฏิบัติ​จะ​ดี​หรือไ​ม่ท​ ่ี​จะ​ใช้ข​ ั้น​ตอน​วิธีท​ ่ี​เฉพาะเ​จาะ​จง​หนึ่งๆ กับก​ ารแ​ ก้​ปัญหาน​ ้ันๆ
เม่ือม​ ีข​ นาด​ของข​ ้อมูลเ​พิ่ม​ขึ้น ย่ิงไ​ป​กว่า​นั้น​บ๊ิก​โอย​ ัง​ช่วยใ​ห้​สามารถเ​ปรียบเ​ทียบ​ขั้น​ตอนว​ ิธี 2 ขั้น​ตอน​วิธีไ​ด้ว​ ่า ข้ันต​ อน​
วิธีไ​หนม​ ี​ประสิทธิภาพ​มากกว่าเ​มื่อ​ขนาด​ของ​ข้อมูล​ใหญ่​ข้ึน เช่น ถ้าม​ ีข​ ั้นต​ อน​วิธี 2 ข้ันต​ อน​ในก​ าร​แก้ป​ ัญหา​ปัญหา​หนึ่ง
ข้ัน​ตอน​วิธี​หนึ่ง​ใช้​ตัว​ด�ำเนิน​การ​ท้ังหมด 100n2 + 17n + 4 ตัว และ​อีก​ขั้น​ตอน​วิธี​หน่ึง​ใช้ n3 ตัว บ๊ิก​โอ​สามารถ​ช่วย
​ให้​เห็น​ชัดเจน​ว่า ข้ัน​ตอน​วิธี​แรก​ใช้​ตัว​ด�ำเนิน​การ​น้อย​กว่า​ขั้น​ตอน​วิธี​หลัง​มาก​เม่ือ​ขนาด​ของ​ข้อมูล n มี​ขนาด​ใหญ่​มาก
ถึงแ​ ม้ว่าใ​น​ขณะ​ท่ี n มีข​ นาดเ​ล็ก เช่น n = 10 ข้ัน​ตอนว​ ิธีแ​ รกจ​ ะใ​ช้​ตัว​ด�ำเนิน​การม​ ากกว่าก​ ็ตาม แต่ก​ ารป​ ระมวลผ​ ล​ข้อมูล​
ขนาด​ใหญ่​ได้อ​ ย่างร​ วดเร็วย​ ่อม​มี​ความส​ �ำคัญม​ ากกว่า

1. 	การป​ ระมาณ​เวลา​ทใี่​ช​ป้ ระมวล​ผล

       การป​ ระมาณเ​วลาท​ ี่ใ​ช้ป​ ระมวลผ​ ลข​ องข​ ั้นต​ อนว​ ิธี สามารถป​ ระมาณไ​ด้โ​ดยก​ ารน​ ับจ​ �ำนวนต​ ัวด​ �ำเนินก​ ารท​ ี่ใ​ช้ใ​น​
ข้ัน​ตอน​วิธี ด้วยก​ าร​สมมติ​ว่า ตัว​ด�ำเนินก​ าร​ต่างๆ จะใ​ช้​เวลา​เท่า​กัน​ในก​ าร​ท�ำงาน ตัวด​ �ำเนิน​การท​ ี่พ​ ูด​ถึงน​ ้ี เช่น การ​บวก
(+) การ​ลบ (­—) การ​คูณ (*) การ​หาร (/) หรือ​แม้แต่​การ​ให้​ค่า (:=) และ​การ​เปรียบ​เทียบ​ต่างๆ (==, < หรือ >) เป็นต้น
จะ​เห็น​ว่า ในขั้น​ตอน​วิธี​มี​การ​เรียก​ใช้​ตัว​ด�ำเนิน​การ​ต่างๆ มากมาย เพื่อ​ค�ำนวณ​ให้​ได้ผลลัพธ์​ตาม​ท่ี​ต้องการ ไม่​ว่า​จะ​
เป็นการ​หา​ค่า​เฉล่ีย ขั้น​ตอน​วิธี​จะ​มี​การ​เรียก​ใช้​การ​บวก​ตัวเลข​ต่างๆ เข้า​ด้วย​กัน​และ​ท�ำการ​หาร​ค่าที่​ได้
   31   32   33   34   35   36   37   38   39   40   41