MAT 231: คณิตศาสตร์ไม่ต่อเนื่อง (3) Function Growth & Time-Complexity

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
E-COMMERCE WEBSITE Smartzap Co., Ltd.. Company Profile บริษัท สมาร์ทแซป จำกัด ก่อตั้งเมื่อปี 2543 (13 ปี ) ในช่วงยุค Internet เพิ่ง เริ่มต้น เป็นบริษัทที่ดำเนินงานทางด้าน.
Advertisements

John Rawls  John Rawls is the most famous American social contract theorist argued that “Justice is fairness” He Thought human natural have a appropriate.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
Probabilistic Robotics
Set is a basic term in Mathematics. There is no precise definition for term “set”, But roughly speaking, a set is a collection of objects, Things or symbols,
INC 551 Artificial Intelligence Lecture 2. Review Environment Action Sense, Perceive Make Decision Agent World Model Deliberative Agent.
จำนวน สถานะ NUMBER OF STATES. ประเด็นที่ สนใจ The number of distinct states the finite state machine needs in order to recognize a language is related.
รายวิชา ง40206 โครงสร้างข้อมูลและขั้นตอนวิธี
Introduction to C Programming
รู้จักกับเทคโนโลยี RFID เบื้องต้น
VARIABLES, EXPRESSION and STATEMENTS. Values and Data Types Value เป็นสิ่งพื้นฐาน มีลักษณะเป็น ตัวอักษร หรือ ตัวเลข อาทิ 2+2 หรือ “Hello world” Value.
อาจารย์ มธ. อธิบายการใช้ โมเดลของ
Chapter 5: Functions of Random Variables. สมมติว่าเรารู้ joint pdf ของ X 1, X 2, …, X n --> ให้หา pdf ของ Y = u (X 1, X 2, …, X n ) 3 วิธี 1. Distribution.
ระบบการจัดเก็บในคลังสินค้า
ภาษาของคณิตศาสตร์ รศ.ดร. สาธิต อินทจักร์
: Chapter 1: Introduction 1 Montri Karnjanadecha ac.th/~montri Image Processing.
Recursion Apirada Thadadech. What is Recursion Resursion is program which called itself. The classic example is the factorial function factorial(0) =
AVL Tree.
ออโตมาตาจำกัด FINITE AUTOMATA
FINITE STATE AUTOMATA WITH OUTPUT
Click when ready  Wang991.wordpress.comWang991.wordpress.com Stand SW 100 SETS.
Chapter 19 Network Layer: Logical Addressing
Inference in Propositional Logic
Chapter 12 Riveted, Bolted & Welded Connections
December 25 th, 2013 Naresuan University Hospital, Faculty of Medicine, Naresuan University December 25 th, 2013 Naresuan University Hospital, Faculty.
INC 551 Artificial Intelligence
Chap 4 Complex Algebra. For application to Laplace Transform Complex Number.
การออกแบบและพัฒนาซอฟต์แวร์ บทที่ 7 การทดสอบโปรแกรม
Functions Standard Library Functions User-defined Functions.
ตัวอย่างFUZZY. ตัวอย่าง ฐานองคความรูฟซซีสามารถแสดงไดเปน Rule 1: If feature1 is high and feature2 is low and feature3 is medium, then class is 1.
Asst.Prof. Dr.Surasak Mungsing
Asst.Prof. Dr.Surasak Mungsing
MAT 231: คณิตศาสตร์ไม่ต่อเนื่อง (4) ความสัมพันธ์ (Relations)
MAT 231: คณิตศาสตร์ไม่ต่อเนื่อง (6) ทรี-ต้นไม้(Trees)
ให้ประหยัดการใช้หน่วยความจำ (space) ด้วยความรวดเร็ว (time)
Chapter 20 Expert System Chapter 20 Expert System Artificial Intelligence ดร. วิภาดา เวทย์ประสิทธิ์ ภาควิชาวิทยาการคอมพิวเตอร์ คณะ วิทยาศาสตร์
8/3/2014The Realities of software Testing1 Software testing Realities What is the realities of software testing Why does the software testing not complete.
Merchant Marine Training Centre วิชาการเป็นเลิศ เชิดชู คุณธรรม ผู้นำ.
บทที่ 2 งบการเงินพื้นฐาน BASIC FINANCIAL STATEMENTS 2.
Dynamic Link Library (DLL)
แนวทางการปฏิบัติโครงการจูงมือ น้องน้อยบนดอยสูง 1.
Algorithm Efficiency There are often many approaches (algorithms) to solve a problem. How do we choose between them? At the heart of computer program.
หน่วยที่ 3 การวิเคราะห์การผลิต.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Java Programming Language.
คำสั่งควบคุมการทำงานของ ActionScripts
ผู้ให้สัมมนา นายธเนศ เกษศิลป์ รหัส ภาควิชานิติวิทยาศาสตร์
การสร้าง WebPage ด้วย Java Script Wachirawut Thamviset.
ทุนทางปัญญา Intellectual Capital KM743 Session 3.1
Chapter 3 Simple Supervised learning
Chapter 1/1 Arrays. Introduction Data structures are classified as either linear or nonlinear Linear structures: elements form a sequence or a linear.
บทที่ 9 เซต (Set) เซต หมายถึงกลุ่ม ฝูง พวก ชุด ของสิ่งใดสิ่งหนึ่ง เช่น เพศ ประกอบด้วย หญิง และ ชาย รายการที่อยู่ในเซต เรียกว่าสมาชิก เซตย่อย (Subset) คือ.
21 August ดรุณี ศมาวรรตกุล 1 2. ADT List - Unsorted list ADT - list implementation - Sorted List - Circular list - Doubly linked list.
Physical Chemistry IV The Ensemble
Fuzzy ART.
School of Information Communication Technology,
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
แบบฝึกหัด จงหาคำตอบที่ดีที่สุด หรือหาค่ากำไรสูงสุด จาก
Recursive Method.
การจัดเรียงข้อมูล (sorting)
Week 13 Basic Algorithm 2 (Searching)
การแบ่งแยกและเอาชนะ Divide & Conquer
Complexity Lecturers : Boontee Kruatrachue Room no Kritawan Siriboon Room no. 913 Text : Data Structures & Algorithm.
การวัดอัลกอริทึม (Analysis of Algorithm)
Data Structure and Algorithm
Dr.Surasak Mungsing CSE 221/ICT221 การวิเคราะห์และออกแบบขั้นตอนวิธี Lecture 04: การวิเคราะห์หาความซับซ้อนด้านเวลา ในรูป.
การนำผลการประเมิน ไปพัฒนาคุณภาพการศึกษา
Problem Solving ขั้นตอนวิธีและการแก้ปัญหาสำหรับวิทยาการคอมพิวเตอร์
Dr.Surasak Mungsing CSE 221/ICT221 การวิเคราะห์และออกแบบขั้นตอนวิธี Lecture 05: การวิเคราะห์ความซับซ้อนของ ขั้นตอนวิธีการเรียงลำดับข้อมูล.
การวิเคราะห์และออกแบบขั้นตอนวิธี
การกู้ยืมเงินทุนประกอบอาชีพ
ใบสำเนางานนำเสนอ:

MAT 231: คณิตศาสตร์ไม่ต่อเนื่อง (3) Function Growth & Time-Complexity ดร.ธนา สุขวารี ดร.สุรศักดิ์ มังสิงห์ SPU, Computer Science Dept.

วัตถุประสงค์ เพื่อศึกษาวิธีการวิเคราะห์ประสิทธิภาพขั้นตอนวิธี เบื้องต้น โดยใช้สัญญลักษ์ Big-Oh แทนการประมาณค่าความซับซ้อนด้านเวลา(time complexity)ของขั้นตอนวิธี

Orders of Growth For functions over numbers, we often need to know a rough measure of how fast a function grows. If f(x) is faster growing than g(x), then f(x) always eventually becomes larger than g(x) in the limit (for large enough values of x). Useful in engineering for showing that one design scales better or worse than another.

การวัดประสิทธิภาพขั้นตอนวิธี ประสิทธิภาพ -> การใช้ทรัพยากรในระบบ : เวลา (excecution time: e-time) หรือ หน่วยความจำ(memory) ที่ใช้สำหรับการทำงานตามขั้นตอนวิธีจนได้ผลลัพธ์ y1=x y2= x2 y4=log(x) y3=ex data e-time

ประเภทของฟังก์ชัน (types of functions) Linear function: y = mx+b y1 = 2x +1 or y2= 0.5x+1 or y3=20x-4 Polynomial function: y= anxn+an-1xn-1+ ..+a0x0 degree-2 : y1= 5x2 + 3x +4 degree-3 : y2 = 2x3-10x2 Exponential function: y = ax y= ex Logarithmic function : y= log(x)

Linear fuctions e-time y2=0.5x +1 y1=x x1 x2 x3 data

Polynomial fuctions time t3 y1 > y2 > y3 t2 t1 xi data y3=x4

ฟังก์ชัน & ค่าความซับซ้อน (Functions ordered & Complexity) Time complexity: Exponential order> Polynomail order > Linear order > logarithmic order Time complexity (high) -> Algorithm performance(low) How to choose the algorithm’s order for me? expo < polynomail < linear < log avoid <-------------------------- > best

Linear order Vs. Polynomial order y1=x y2= x2 y4=log(x) y3=ex data time t3 t2 t1 x1 x2 x3 y2 better than y1 where xi < x2 y1 better than y2 where xi > x2

Time complexity of MAX() procedure max({ai} : integers) [1] v := a1 ; [2] for i := 2 to n [3] if ai > v then v := ai ; [4] return v ; 1 + (n+1) n-1 + 1 total execution-time time complexity = n+1 (linear ordered)

Time complexity of Linear search procedure Linear_search (x: integer, {ai}: distinct integers) i := 1 ; while (i  n  x  ai) i := i + 1; if i  n then location := i else location := 0 ; return location; total execution-time 1 + n + n+3 1 + 1 time complexity = n+3 (linear ordered)

Time complexity of Binary_search() procedure binary search (x:integer, {ai}: distinct integers) i := 1; j := n ; while i<j begin m := (i+j)/2 ; if x>am then i := m+1 else j := m; end if x = ai then location := i else location := 0 return location; 1 + 1 + 2log2n + 1 + 1 time complexity = 2log2n +4 (log ordered)

Time complexity of Binary_search() #n = 2h-1 n/2 n/4 h n/8 2 h log2 n = h.log22 1 h=log2n n + n/2 + n/4 + n/8 + . . . + 2 +1

Linear search Vs. Binary search time complexity Linear ordered (n+3) Linear search time complexity Log. ordered (2log2n +4) Binary search Searching performance Binary search > Linear search

Definition: Big-Oh, O(f(x)) ให้ f(x) เป็นฟังก์ชัน f: RR. นิยาม ฟังก์ชัน f(x) จะเขียนอยู่ในรูปO(f(x)) หรือ f(x) = O(f(x)) ก็ต่อเมื่อ { f: R  R | c,k: x>k: |f(x)|  c|g(x)| }

“Big-Oh” Proof Examples Show that 30n+8 is O(n). Show c,k: n>k: 30n+8  cn. Let c=31, k=8. Assume n>8. Then cn = 31n = 30n + n > 30n+8, So 30n+8 < cn #

“Big-Oh” Proof Examples Show that n2+1 is O(n2). Show c,k: n>k: n2+1  cn2. Let c=2, k=1. Assume n>1. Then cn2 = 2n2 = n2+n2 > n2+1, So n2+1< cn2 #

EX-1: Show that n2+n+3 is O(n2) Proof: Show c, k: n>k: n2+n+3  cn2. assume that  n>= 1 , n2+n+3 <= 3n2+3n2+3n2 = 9n2 n2+n+3 <=9n2 ; let k=1 and c=9 then n2+n+3 = O(n2) #

EX-2: Show that 1+2+3+ ..+n is O(n2) Proof: Show c, k: n>k: 1+2+3+ ..+n  cn2. therefore 1+2+3+ ..+n = n(n+1)/2 then 1+2+3+ ..+n = n(n+1)/2 = n2/2 + n/2 assume that  n>= 1; n2/2 + n/2 <= n2/2+n2/2 n2 + n <= n2+n2 = 2n2 n(n + 1) <= 2n2 n(n+1)/2 <= n2 let, k=1 and c=1 then n(n+1)/2 = O(n2) or 1+2+3+ ..+n = O(n2) #

EX-3: Show that 3n3+6n2-4n+2 is O(n3) Proof: Show c, k: n>k: 3n3+6n2-4n+2  cn2. assume that  n>= 1 3n3+6n2-4n+2 <= 6n3+6n3+6n3+6n3 = 24n3 let k=1 and c=24 then 3n3+6n2-4n+2 = O(n3) #

More Big-O facts c>0, O(cf)=O(f+c)=O(fc)=O(f) f1O(g1)  f2O(g2)  f1 f2 O(g1g2) f1+f2 O(g1+g2) = O(max(g1,g2)) = O(g1) if g2O(g1) (Very useful!)

Computer Time Examples (125 kB) (1.25 bytes) Assume time = 1 ns (109 second) per op, problem size = n bits, and #ops is a function of n, as shown.

Exercises 2n3+4logn2 5en+7n2-1 10n6-3n3+5logn+n+1 Use the definition of big-oh to prove that 12 + 22 + ... + n2 is O(n3) Use the definition of big-oh to prove that is O(n2). Arrange these functions form poor to best performance: 2n3+4logn2 5en+7n2-1 10n6-3n3+5logn+n+1 3n-8-4n3 2n-1

Exercises 4. Show the Big-Oh of the algorithm that takes a list of integers a1,a2,…,an (n ≥ 2) and finds the second-largest integer in the sequence which had written in the previous chapter. 5. Show the Big-Oh of the algorithm that takes a list of n integers (n ≥1) and finds the average of the largest and smallest integers in the list which had written in the previous chapter.

Quiz -III ให้วิเคราะห์ค่าความซับซ้อนของขั้นตอนวิธีใน Quiz-IIในเทอมสัญญลักษณ์ Big-oh (10 นาที)

ห้ามใช้เครื่องคิดเลข Guideline Exam 1/2553 1(10) การคำนวณ 1,2 complement 2 ข้อย่อย 2(20) แปลงเลขฐาน 4 ข้อย่อย 3(20) เขียน pseudo code และแสดงผลลัพธ์การsort 4(20) เขียน pseudo code + ประมาณสัญลักษณ์ Big-Oh 5(10) ประมาณประสิทธิาภาพขั้นตอนวิธีในสัญลักษณ์ Big-Oh ห้ามใช้เครื่องคิดเลข