การวิเคราะห์ประสิทธิภาพของอัลกอริธึม (Performance Analysis)

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
Suphot Sawattiwong Function ใน C# Suphot Sawattiwong
Advertisements

Application Development Overview Nithi Thanon Computer Science Prince of Songkla University.
INTRODUCTION TO C LANGUAGE
Introduction to C Introduction to C.
รายวิชา ง40102 หลักการแก้ปัญหาและการโปรแกรม
โครงสร้างโปรแกรมภาษา C
รายวิชา ง40206 โครงสร้างข้อมูลและขั้นตอนวิธี
บทที่ 2 ภาษาปาลคาลเบื้องต้น.
การทำงานแบบเลือกทำ (Selection)
LAB 1 ให้นักศึกษาเขียน Flowchart โดยใช้โปรแกรม Microsoft Word วาดรูป Flowchart ส่ง Flowchart ที่วาดเสร็จแล้วในชั่วโมง และ print ใส่กระดาษ ส่งในครั้งหน้า.
สภาวะแวดล้อมในขณะโปรแกรมทำงาน
Software คือ ชุดคำสั่งหรือ ขั้นตอนการทำงานของคอมพิวเตอร์
Data Structures and Algorithms
Data Structures and Algorithms
Lecture 13: ฟังก์ชันเรียกตัวเอง
CS Assembly Language Programming
Recursion Apirada Thadadech. What is Recursion Resursion is program which called itself. The classic example is the factorial function factorial(0) =
ลักษณะการทำงานของ Stack
การแก้ปัญหาด้วยคอมพิวเตอร์
บทที่ 3 พื้นฐานการเขียนโปรแกรม Visual Basic
หน่วยที่ 1 ระบบคอมพิวเตอร์
วิชา การออกแบบและพัฒนาซอฟต์แวร์
Linked-List (รายการโยง)
ภาษาปาสคาล ผู้สร้าง Dr.Niklaus Wirth ปี 2513
โปรแกรมย่อย : Pascal Procedure
การประกาศตัวแปร “ตัวแปร” คือสิ่งที่เราสร้างขึ้นมาเพื่อใช้เก็บค่าต่างๆและอ้างอิงใช้งานภายในโปรแกรม ตามที่เรากำหนดขึ้น การสร้างตัวแปรขึ้นมาเราเรียกว่า.
ขั้นตอนการแปลงไฟล์.
คิวQueue Circular Queue.
Functions & Sub Program ฟังก์ชันและโปรแกรมย่อย
PROCEDURE <<โปรแกรมย่อย>>
ตัวอย่างการใช้คำสั่ง IF_THEN
WHILE..DO คำสั่งควบคุมให้ทำงานซ้ำ โดยที่ต้องตรวจสอบเงื่อนไขก่อนที่จะทำ
ตัวอย่างคำสั่ง CASE.
การเขียนโปรแกรมคอมพิวเตอร์และอัลกอริธึม
Asst.Prof. Dr.Surasak Mungsing
ข้อมูลพื้นฐานและตัวดำเนินการ
อาจารย์สายสุนีย์ เจริญสุข
สแตค(stack) โครงสร้างข้อมูลแบบ Stack - การสร้าง Stack
หน่วยประมวลผลกลางและหน่วยความจำ Central Processing Unit and Memory
โครงสร้างแบบลำดับ คำสั่ง x คำสั่ง y.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
การออกแบบโปรแกรม ขั้นตอนการแก้ปัญหา การนิยามปัญหา (Problem definition)
เสรี ชิโนดม ฟังก์ชัน เสรี ชิโนดม
บทที่ 5 Link List Link List.
บทที่ 9 เซต (Set) เซต หมายถึงกลุ่ม ฝูง พวก ชุด ของสิ่งใดสิ่งหนึ่ง เช่น เพศ ประกอบด้วย หญิง และ ชาย รายการที่อยู่ในเซต เรียกว่าสมาชิก เซตย่อย (Subset) คือ.
การออกแบบโครงสร้าง (Structured Design)
เกียรติพงษ์ ยอดเยี่ยมแกร
หลักการเขียนโปรแกรม ( )
WATTANAPONG SUTTAPAK SOFTWARE ENGINEERING, SCHOOL OF INFORMATION COMMUNICATION TECHNOLOGY, UNIVERSITY OF PHAYAO Chapter 4 analysis of algorithm efficiency.
Mathematical Model of Physical Systems. Mechanical, electrical, thermal, hydraulic, economic, biological, etc, systems, may be characterized by differential.
การจัดเรียงข้อมูล (sorting)
Programming assignments ชื่องาน (subject) : program เขียนด้วยภาษา C หรือ C++ มีทั้งหมด 7 ข้อ กำหนดส่ง 29 กรกฎาคม 2554.
1 บทที่ 5 โปรแกรมย่อย Part II Function. 2 ฟังก์ชัน (Function) เป็นชุดคำสั่งย่อยที่มีหน้าที่เฉพาะอย่างใดอย่างหนึ่ง เหมือนกับ procedure สามารถมีการรับส่งค่าข้อมูล.
บทที่ 5 โปรแกรมย่อย.
Computer Program คือ ขั้นตอนการทำงาน ของคอมพิวเตอร์
Names, Scopes and Bindings ธนวัฒน์ แซ่ เอียบ. The Concept of Binding Categories of variables by lifetimes –Static bound to memory cells before execution.
อัลกอริทึมและผังงาน อาจารย์สมเกียรติ ช่อเหมือน
Data Structure & Algorithm Concept
Stack Sanchai Yeewiyom
STACK สแตก(stack) เป็นโครงสร้างข้อมูลแบบเชิงเส้น ที่มีการใส่ข้อมูลเข้า และนำข้อมูลออกเพียงด้านเดียว ดังนั้น ข้อมูลที่เข้าไปอยู่ใน stack ก่อนจะออกจาก stack.
การวัดอัลกอริทึม (Analysis of Algorithm)
Dr.Surasak Mungsing CSE 221/ICT221 การวิเคราะห์และออกแบบขั้นตอนวิธี Lecture 04: การวิเคราะห์หาความซับซ้อนด้านเวลา ในรูป.
Problem Solving ขั้นตอนวิธีและการแก้ปัญหาสำหรับวิทยาการคอมพิวเตอร์
บทที่ 3 การจัดการหน่วยความจำ (Memory Management)
โปรแกรมย่อย (Sub Program)
Data Structures and Algorithms 2/2561
การวิเคราะห์และออกแบบขั้นตอนวิธี
ขั้นตอนการเขียนโปรแกรมคอมพิวเตอร์
การสร้างผังงานโปรแกรม
อัลกอริทึม (Algorithm) ???
ใบสำเนางานนำเสนอ:

การวิเคราะห์ประสิทธิภาพของอัลกอริธึม (Performance Analysis) Apirada Thadadech

Performance Analysis แบ่งออกเป็น 2 ส่วน วิเคราะห์หน่วยความจำที่ใช้ในการประมวลผล (Space Complexity) วิเคราะห์เวลาที่ใช้ในการประมวลผล (Time Complexity )

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

องค์ประกอบของ Space Complexity ประกอบด้วย 3 ส่วน Instruction Space: memory for compiler use Data Space: memory for Data each type, constant and variable Static memory Dynamic memory Environment Stack Space: Processing result memory and return back to next process.

Example for Space Complexity Swap between 2 values Procedure Swap (num1, num2 : integer); var temp : integer; Begin temp := num1; num1 := num2; num2 := temp; end

Function Factorial by recursive Function Factorial ( n : integer): integer; Begin If n = 0 then factorial := 1 Else Factorial := n * Factorial ( n -1) End;

วิเคราะห์เวลาที่ใช้ในการประมวลผล(Time Complexity ) สามารถประมาณเวลาที่ใช้ในการประมวลผลได้ เพิ่มประสิทธิภาพ จะได้พิจารณาเฉพาะส่วนที่ใช้ เวลาในการประมวลผล

องค์ประกอบของ Time Complexity เครื่องที่มีความเร็วสูง ขนาดของ Program code ขนาดของตัวแปร เวลาที่ใช้ Compile time Run time/execute time

Operation counts 1. Linear Loops การเพิ่มค่า ในลูปแบบคงที่ ทำให้ Time complexity มีค่า = จำนวนรอบของลูป นั้นคือ f(n) = nเช่น I = 1 loop ( I <= 2000) ….. I = I +1

Operation counts (cont.) 2. Logarithmic Loops: เป็นอัลกอริธึมที่มีการเพิ่ม ลดค่า ในลูปแบบเท่าตัว ทำให้ Time complexity มีค่า = จำนวนรอบของลูป นั้นคือ f(n) = [log2n] เช่น I = 1000 loop ( I >= 1) … I = I / 2 I = 1 loop ( I <= 2000) ... … I = I * 2

จำนวนรอบการประมวลผลของ Logarithmic Loop การคูณ การหาร รอบที่ ค่าของ i 1 2 3 4 5 6 7 8 9 10 End 16 32 64 128 256 512 1024 end 1000 500 250 125 62 31 15

Operation counts (cont.) 3. Nested Loops: เป็นอัลกอริธึมที่มี loop ซ้อนใน loop ทำให้ Time complexity มีค่า = จำนวนลูปทั้งหมดที่ต้องประมวลผล # รอบทั้งหมด = # loop ชั้นนอก x # loop ชั้นใน Linear Logarithmic Dependent Quadratic Quadratic I =1 Loop (I <= 20) j =1 loop ( j <= 10) another code j = j* 2 I = I + 1 Loop (I <= 10) k =1 loop ( k <= i) k = k + 1 loop ( k<= 10) k = k+ 1 F(n) = [nlog2n] F(n) = n((n+1)/2) F(n) = n2

สภาวะประสิทธิภาพของอัลกอริธึม Best-Case: อัลกอริธึมที่ใช้เวลาในการประมวลผลน้อยที่สุด Worst-Case: อัลกอริธึมที่ใช้เวลาในการประมวลผลมากที่สุด Average-Case: อัลกอริธึมที่ใช้เวลาในการประมวลผลเฉลี่ยมีค่าประมาณที่สามารถระบุได้