Strategi Algoritma Kuliah 1 Peran Algoritma E Haodudin

  • Slides: 71
Download presentation
Strategi Algoritma Kuliah 1 : Peran Algoritma E. Haodudin Nurkifli Teknik Informatika Universitas Ahmad

Strategi Algoritma Kuliah 1 : Peran Algoritma E. Haodudin Nurkifli Teknik Informatika Universitas Ahmad Dahlan 07 -Sep-21

Penghargaan l Hand out kuliah Strategi Algoritma ini merupakan ringkasan dari berbagai sumber, yang

Penghargaan l Hand out kuliah Strategi Algoritma ini merupakan ringkasan dari berbagai sumber, yang berkaitan dengan Struktur dan analisis algoritma, Desain and Analisis Algorithm Komputer dari berbagai penjuru. Saya tidak mudah mengingat sumber-sumber tersebut. Namun saya sampaikan penghargaan yang setingginya atas jasa mereka, dan semoga bermannfaat. Eko AB – Analisis dan Perancangan Algoritma 2

Konsep Dasar Menurut Niclaus Wirth : Yang akhirnya ditulis dalam bukunya Algoritma + Struktur

Konsep Dasar Menurut Niclaus Wirth : Yang akhirnya ditulis dalam bukunya Algoritma + Struktur Data = Program Time/proses Efisien Space/memory Engineering product Eko AB – Analisis dan Perancangan Algoritma 3

Dalam menghasilkan PROGRAM sebagai engineering product dlm bidang informatika / komputer, terdapat apa yg

Dalam menghasilkan PROGRAM sebagai engineering product dlm bidang informatika / komputer, terdapat apa yg dikenal dengan Timing Wild Software Schedule Secara umum Terdapat dua hal yaitu : – Man hour (waktu penyelesaian) – Costing (biaya) Eko AB – Analisis dan Perancangan Algoritma 4

Costing Software Apa parameter biaya pengembangan software ? l Per bit / byte l

Costing Software Apa parameter biaya pengembangan software ? l Per bit / byte l Per statement l Per modul l Per baris l Per user interface l ? Eko AB – Analisis dan Perancangan Algoritma 5

Apa yg ada pada berbagai alat berikut l l l Hand phone : antara

Apa yg ada pada berbagai alat berikut l l l Hand phone : antara HP yg satu dengan yg lain memiliki feature dan kinerja yg berbeda Alat rumah tangga ke arah komputasi – Mesin cuci : pengontrolan dgn control panelnya Otomotif – Tipe mobil baru dengan komputasi : pengaturan gas tanpa kabel, kopling, pengaturan bahan bakar Pengaturan Lift gedung tinggi De el el Eko AB – Analisis dan Perancangan Algoritma 6

Apakah perbedaan unjuk kerja pada HP tersebut dibedakan atas besarnya media simpan yang ada?

Apakah perbedaan unjuk kerja pada HP tersebut dibedakan atas besarnya media simpan yang ada? l Apakah kemampuan control panel pada berbagai alat rumah tangga memerlukan media simpan yg besar? l Apakah pengaturan otomasi pada mesin mobil bergantung pd kapasitas media simpan digitalnya? l Apakah otomasi pengaturan lift pada gedung tinggi membutuhkan media simpan digital yg besar? l Eko AB – Analisis dan Perancangan Algoritma 7

Apa yg menentukan unjuk kerja mereka ? Struktur data ? Kapasitas Media simpan digitalnya

Apa yg menentukan unjuk kerja mereka ? Struktur data ? Kapasitas Media simpan digitalnya ? Algoritma ? Programnya ? ……? Eko AB – Analisis dan Perancangan Algoritma 8

Peran Algoritma Dalam mengembangkan berbagai alat kebutuhan manusia ke arah komputasi yg lebih berperan

Peran Algoritma Dalam mengembangkan berbagai alat kebutuhan manusia ke arah komputasi yg lebih berperan adalah Algoritma Bukan Kemampuan / Kapasitas media simpan yg digunakan untuk menyimpan Struktur Data Eko AB – Analisis dan Perancangan Algoritma 9

Lanjt Pengembangan Media simpan untuk struktur data Bersifat Vertikal Pengembangan Algoritma Bersifat Horisontal Vertikal

Lanjt Pengembangan Media simpan untuk struktur data Bersifat Vertikal Pengembangan Algoritma Bersifat Horisontal Vertikal : -Monoton, sekali ada yg mengembangkan ya sudah Eko AB – Analisis dan Perancangan Algoritma Horisontal : -Variatif dan fleksibel : terbuka untuk pengembangan / implementasi dalam semua bidang 10

Lanjt Pengembangan Algoritma masih sangat terbuka untuk semua bidang kehidupan Eko AB – Analisis

Lanjt Pengembangan Algoritma masih sangat terbuka untuk semua bidang kehidupan Eko AB – Analisis dan Perancangan Algoritma Pertanian Kesehatan Keamanan Pendidikan Manajemen …. ? 11

Lanjt Mendasari Eko AB – Analisis dan Perancangan Algoritma Mengembangkan Memperbaiki Meningkatkan implementasi Memahami

Lanjt Mendasari Eko AB – Analisis dan Perancangan Algoritma Mengembangkan Memperbaiki Meningkatkan implementasi Memahami Menjelaskan … ? 12

Algoritma ? l Algoritma – Resep urutan proses yg baik dan benar dalam bentuk

Algoritma ? l Algoritma – Resep urutan proses yg baik dan benar dalam bentuk langkah komputasi untuk menghasilkan sesuatu • Urutan proses • Langkah komputasi • benar • Menghasilkan sesuatu – Suatu cara spesifik untuk memecahkan dengan pasti suatu persoalan )Webster Dictionary( Eko AB – Analisis dan Perancangan Algoritma 13

Program ? Program merupakan ekspresi / implementasi algoritma dalam bahasa pemrograman tertentu l Kumpulan

Program ? Program merupakan ekspresi / implementasi algoritma dalam bahasa pemrograman tertentu l Kumpulan perintah yang mana komputer akan menjalankannya dalam menyelesaikan masalah l Eko AB – Analisis dan Perancangan Algoritma 14

Beberapa aplikasi l Persoalan teknik Strategi algoritma dapat diaplikasikan/dicontohkan pada proses : – sorting

Beberapa aplikasi l Persoalan teknik Strategi algoritma dapat diaplikasikan/dicontohkan pada proses : – sorting – Searching – data retrieval – network routing – Games developing – Graph – dll Eko AB – Analisis dan Perancangan Algoritma 15

Pelajaran Algoritma l How to devise algorithms l Bagaimana Merencanakan algoritma? l How to

Pelajaran Algoritma l How to devise algorithms l Bagaimana Merencanakan algoritma? l How to express algorithms l Bagaimana menjelaskan algoritma l How to validate algorithms l Bagaimana memvalidasi algoritma l How to analyze algorithms l Bagaimana menganalisa algoritma l How to test a program l Bagaimana mengetes program Eko AB – Analisis dan Perancangan Algoritma 16

Pentingnya menganalisa Algoritma Perlunya mengenali batasan dari variasi algoritma untuk penyelesaian persoalan l Perlunya

Pentingnya menganalisa Algoritma Perlunya mengenali batasan dari variasi algoritma untuk penyelesaian persoalan l Perlunya memahami relasi antara ukuran masalah dan running time l – Kapankah running program dinyatakan tidak cukup bagus? Perlunya mempelajari bagaimana menganalisa runing time suatu algortima tanpa coding l Perlunya mempelajari teknik menulis program yang lebih efisien l Need to recognize bottlenecks in code as well as which parts of code are easiest to optimize l Eko AB – Analisis dan Perancangan Algoritma 17

Mengapa kita mengalisa sesuatu? Mengerti perilakunya , dan (Pekerjaan -Memilih, performance / unjuk kerja,

Mengapa kita mengalisa sesuatu? Mengerti perilakunya , dan (Pekerjaan -Memilih, performance / unjuk kerja, memodifikasi( l Meningkatkan kinerja (Research ( l Eko AB – Analisis dan Perancangan Algoritma 18

Apa yang kita analisa atas algoritma? Kebenarannya – Apakah relasi antara input dan ouput

Apa yang kita analisa atas algoritma? Kebenarannya – Apakah relasi antara input dan ouput sesuai dengan kebutuhan algoritma? l Kuantitas pekerjaan yang dikerjakan) time complexity( – Operasi dasar untuk mengerjakan tugas l Jumlah space yg dibutuhkan – Memory yang digunakan (space/memory complexity) l Eko AB – Analisis dan Perancangan Algoritma 19

Lanjutan Kesederhanaan , Kejelasan – Verifikasi dan implementasi. l Optimalitas – Mungkinkah ia bekerja

Lanjutan Kesederhanaan , Kejelasan – Verifikasi dan implementasi. l Optimalitas – Mungkinkah ia bekerja lebih baik ? l Eko AB – Analisis dan Perancangan Algoritma 20

Contoh-Contoh Penerapan Algoritma Kompresi file menggunakan Algoritma Huffman code (greedy algorithm) l Cryptanalys menggunakan

Contoh-Contoh Penerapan Algoritma Kompresi file menggunakan Algoritma Huffman code (greedy algorithm) l Cryptanalys menggunakan Brucefource ( untuk memecahkan cipertext) l Jaringan komputer menggunakan algoritma Minimum Spaning Tree untuk menentukan harga minimum l SIG algoritma MST, Dynamic Programming, Color graphing l Eko AB – Analisis dan Perancangan Algoritma 21

PERTEMUAN CUKUP Eko AB – Analisis dan Perancangan Algoritma 22

PERTEMUAN CUKUP Eko AB – Analisis dan Perancangan Algoritma 22

Kompleksitas l Kompleksitas algoritma adalah tingkat ke-komplek-an / ke-simple-an jumlah pekerjaan yang dikerjakan algortima

Kompleksitas l Kompleksitas algoritma adalah tingkat ke-komplek-an / ke-simple-an jumlah pekerjaan yang dikerjakan algortima untuk melaksanakan suatu pekerjaan tertentu Eko AB – Analisis dan Perancangan Algoritma 23

Model RAM l l l Memiliki satu processor Melaksanakan satu instruksi at a time

Model RAM l l l Memiliki satu processor Melaksanakan satu instruksi at a time Setiap instruksi menyita "unit time“ Memiliki operand ukuran tetap Memiliki fixed size storage (RAM / virtual memory dan disk. ( Eko AB – Analisis dan Perancangan Algoritma 24

Contoh 1: Operasi dasar Apa hasil dari operasi berikut (M div n)*n + (M

Contoh 1: Operasi dasar Apa hasil dari operasi berikut (M div n)*n + (M mod n) = = = Eko AB – Analisis dan Perancangan Algoritma M+n M*n n 2 M n (a) (b) (c) (d) (e) 25

Contoh 2 : Linear Searching PR l buatlah minimal 2 algoritma / prosedure /

Contoh 2 : Linear Searching PR l buatlah minimal 2 algoritma / prosedure / fungsi / pseudocode / program untuk melakukan pencarian (searching) suatu nilai x dalam array A, misalnya l A=(7, 3, 5, 9, 4, 2, 6, 8, 1, 0) 0 1 2 3 4 5 6 7 8 9 Eko AB – Analisis dan Perancangan Algoritma 26

Apa yg anda alami ? Hal tersebut merupakan salah satu contoh apa yang disebut

Apa yg anda alami ? Hal tersebut merupakan salah satu contoh apa yang disebut Timing Wild Nampaknya sepele, namun diluar yang dibayangkan sebelumnya Eko AB – Analisis dan Perancangan Algoritma 27

Ketemu : =false i: =0 While …… ? Do i: =i+1 If i<=9 then

Ketemu : =false i: =0 While …… ? Do i: =i+1 If i<=9 then ketemu: =true else ketemu: =false (a) Apa kontrol perulangan (b) ? yg tepat digunakan (c) untuk statement tsb : (d) (e) Eko AB – Analisis dan Perancangan Algoritma A[i]<> x A[i]=x and i<=9 A[i]<>x and i<=9 and A[i]<>x 28

Any Question ? Eko AB – Analisis dan Perancangan Algoritma 29

Any Question ? Eko AB – Analisis dan Perancangan Algoritma 29

Contoh Algoritma 07 -Sep-21

Contoh Algoritma 07 -Sep-21

Apa running time dari algorithm berikut ? PUZZLE(x ( while x != 1 if

Apa running time dari algorithm berikut ? PUZZLE(x ( while x != 1 if x is even then x = x / 2 else x = 3 x + 1 Sample run: 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1 Eko AB – Analisis dan Perancangan Algoritma 31

The Selection Problem (1/2) l Problem: diberikan sekelompok n angka, ditentukan angka terbesar ke-k

The Selection Problem (1/2) l Problem: diberikan sekelompok n angka, ditentukan angka terbesar ke-k l Algoritma 1 – Simpan angka dalam array – Urutkan array secara descending – Hasil angka pada posisi k Eko AB – Analisis dan Perancangan Algoritma 32

The Selection Problem(2/2) l Algoritma 2 – Simpan angka 2, pertama k pada array

The Selection Problem(2/2) l Algoritma 2 – Simpan angka 2, pertama k pada array – Urutkan array secara descending – Untuk setiap angka sisa, jika angka lebih besar dari angka ke-k, sisipkan angka tsb pd posisi yg benar pd array – Hasil angka pada posisi k Mana algorithm yg lebih baik? Eko AB – Analisis dan Perancangan Algoritma 33

Contoh: Algoritma Apa? I. I What is an Algorithm? Problem: Input adlh urutan bil

Contoh: Algoritma Apa? I. I What is an Algorithm? Problem: Input adlh urutan bil integer yg disimpan dlm array. Outputnya adalah bil minimum. INPUT instance 25, 90, 53, 23, 11, 34 Algoritma m: = a[1]; for I: =2 to size of input if m > a[I] then m: =a[I]; return s m Eko AB – Analisis dan Perancangan Algoritma OUTPUT 11 Data-Structure 34

Definisi Masalah Problem: Deskripsi dari hubungan Input-Output Algoritma: Suatu urutan dari langkah computational yang

Definisi Masalah Problem: Deskripsi dari hubungan Input-Output Algoritma: Suatu urutan dari langkah computational yang memproses input menjadi output. Struktur Data: metode pengelolaan atas penyimpanan dan pengambilan/pengaksesan data. Our task: Diberikan suatu problem, rancangalah secara baik dan benar suatu algoritma yang menyelesaikan problem tersebut. . Eko AB – Analisis dan Perancangan Algoritma 35

Contoh Algoritma A Problem: Input adlh urutan dari integer yg disimpan dlm array. Outputnya

Contoh Algoritma A Problem: Input adlh urutan dari integer yg disimpan dlm array. Outputnya adalah max Algorithm A Max: =Y[0]; For i: =1 to n-1 do 3 If Y[i]>max then max: =Y[i] Eko AB – Analisis dan Perancangan Algoritma 36

Contoh Algoritma B Algoritma ini menggunakan 2 array temporary Max: =0; For i: =

Contoh Algoritma B Algoritma ini menggunakan 2 array temporary Max: =0; For i: = 0 to (n div 2)-1 do Begin If X[2*i]>X[(2*i)+1] then bantu: =X[2*i] else bantu: =X[(2*i)+1]; If bantu>Max then Max: =bantu end; If (n mod 2) = 1 then If Max<X[n-1] then Max: =X[n-1]; Eko AB – Analisis dan Perancangan Algoritma 37

Visualisasi Algoritma B 34 6 5 9 20 8 11 7 Loop 0 34

Visualisasi Algoritma B 34 6 5 9 20 8 11 7 Loop 0 34 9 20 11 Loop 1 34 20 Loop 2 34 Eko AB – Analisis dan Perancangan Algoritma 38

Contoh Algoritma C For i: = 0 to (n div 2)-1 do If X[2*i]<X[(2*i)+1]

Contoh Algoritma C For i: = 0 to (n div 2)-1 do If X[2*i]<X[(2*i)+1] then X[2*i]: =X[(2*i)+1]; For i: = 1 to (n div 2) do If X[i-1]>X[i] then X[i]: =X[i-1]; If (n mod 2) = 1 then If X[1]<X[n-1] then X[i]: =X[n-1]; Eko AB – Analisis dan Perancangan Algoritma 39

Contoh Algoritma D Untuk setiap elemen, test kondisinya minimum. Eko AB – Analisis dan

Contoh Algoritma D Untuk setiap elemen, test kondisinya minimum. Eko AB – Analisis dan Perancangan Algoritma 40

Contoh Pemanfaatan Mengurutkan input secara menaik. Hasil elemen pertama dari data terurut. 34 6

Contoh Pemanfaatan Mengurutkan input secara menaik. Hasil elemen pertama dari data terurut. 34 6 5 6 Eko AB – Analisis dan Perancangan Algoritma 20 8 11 7 black box Sorting 5 9 7 8 9 11 20 34 41

Mana algoritma yg lebih baik? Semua algoritma benar, tetapi mana yang terbaik? Mengukur running

Mana algoritma yg lebih baik? Semua algoritma benar, tetapi mana yang terbaik? Mengukur running time (Jumlah operasi yg dibutuhkan). l Mengukur jumlah memori yg digunakan. l Catatan bahwa peningkatan dari running time algoritma sebagai peningkatan ukuran dari input. l Eko AB – Analisis dan Perancangan Algoritma 42

Apa yg kita perlukan? Kebenaran: kondisi penghitungan algoritma Solusi yg benar untuk semua hal

Apa yg kita perlukan? Kebenaran: kondisi penghitungan algoritma Solusi yg benar untuk semua hal Effisiensi : Resources yg dibutuhkan oleh algoritma 1. Time: Jumlah langkah. 2. Space: Jumlah memori yg dibutuhkan “Model” ukuran : Worst case, Average case and Best case. Eko AB – Analisis dan Perancangan Algoritma 43

Time vs. Ukuran Input Diukur dengan parameter jumlah input 4 Running time (second) Algorihtma

Time vs. Ukuran Input Diukur dengan parameter jumlah input 4 Running time (second) Algorihtma A, B, C di implementasikan dijalankan pada PC Algoritma D is implementasikan dijalankan oada supercomputer. Td(n) Tc (n) Tb (n) 2 Ta (n) 0 Eko AB – Analisis dan Perancangan Algoritma 500 Input Size 1000 44

Methods of Proof l Proof by Contradiction – Assume a theorem is false; show

Methods of Proof l Proof by Contradiction – Assume a theorem is false; show that this assumption implies a property known to be true is false -- therefore original hypothesis must be true l Proof by Counterexample – Use a concrete example to show an inequality cannot hold l Mathematical Induction – Prove a trivial base case, assume true for k, then show hypothesis is true for k+1 – Used to prove recursive algorithms Eko AB – Analisis dan Perancangan Algoritma 45

Review: Induction Suppose – S(k) is true for fixed constant k • Often k

Review: Induction Suppose – S(k) is true for fixed constant k • Often k = 0 – S(n) S(n+1) for all n >= k l Then S(n) is true for all n >= k l Eko AB – Analisis dan Perancangan Algoritma 46

Proof By Induction Claim: S(n) is true for all n >= k l Basis:

Proof By Induction Claim: S(n) is true for all n >= k l Basis: – Show formula is true when n = k l Inductive hypothesis: – Assume formula is true for an arbitrary n l Step: – Show that formula is then true for n+1 l Eko AB – Analisis dan Perancangan Algoritma 47

Induction Example: Gaussian Closed Form l Prove 1 + 2 + 3 + …

Induction Example: Gaussian Closed Form l Prove 1 + 2 + 3 + … + n = n(n+1) / 2 – Basis: • If n = 0, then 0 = 0(0+1) / 2 – Inductive hypothesis: • Assume 1 + 2 + 3 + … + n = n(n+1) / 2 – Step (show true for n+1): 1 + 2 + … + n+1 = (1 + 2 + …+ n) + (n+1) = n(n+1)/2 + n+1 = [n(n+1) + 2(n+1)]/2 = (n+1)(n+2)/2 = (n+1)(n+1 + 1) / 2 Eko AB – Analisis dan Perancangan Algoritma 48

Induction Example: Geometric Closed Form l Prove a 0 + a 1 + …

Induction Example: Geometric Closed Form l Prove a 0 + a 1 + … + an = (an+1 - 1)/(a - 1) for all a 1 – Basis: show that a 0 = (a 0+1 - 1)/(a - 1) a 0 = 1 = (a 1 - 1)/(a - 1) – Inductive hypothesis: • Assume a 0 + a 1 + … + an = (an+1 - 1)/(a - 1) – Step (show true for n+1): a 0 + a 1 + … + an+1 = (an+1 - 1)/(a - 1) + an+1 = (an+1+1 - 1)/(a - 1) Eko AB – Analisis dan Perancangan Algoritma 49

Induction We’ve been using weak induction l Strong induction also holds – Basis: show

Induction We’ve been using weak induction l Strong induction also holds – Basis: show S(0) – Hypothesis: assume S(k) holds for arbitrary k <= n – Step: Show S(n+1) follows l Another variation: – Basis: show S(0), S(1) – Hypothesis: assume S(n) and S(n+1) are true – Step: show S(n+2) follows l Eko AB – Analisis dan Perancangan Algoritma 50

Basic Recursion Base case: value for which function can be evaluated without recursion l

Basic Recursion Base case: value for which function can be evaluated without recursion l Two fundamental rules l – Must always have a base case – Each recursive call must be to a case that eventually leads toward a base case Eko AB – Analisis dan Perancangan Algoritma 51

Bad Example of Recursion Example of non-terminating recursive program (let n=1( int bad(unsigned int

Bad Example of Recursion Example of non-terminating recursive program (let n=1( int bad(unsigned int n( } if(n == 0( return 0; else return(bad(n/3 + 1) + n - 1; ( { Eko AB – Analisis dan Perancangan Algoritma 52

Recursion(1/(2 Problem: write an algorithm that will strip digits from an integer and print

Recursion(1/(2 Problem: write an algorithm that will strip digits from an integer and print them out one by one void print_out(int n( } if(n < 10( print_digit(n); /*outputs single-digit to terminal/* else} print_out(n/10); /*print the quotient/* print_digit(n%10); /*print the remainder/* { { Eko AB – Analisis dan Perancangan Algoritma 53

Recursion(2/2( Prove by induction that the recursive printing program works: – basis: If n

Recursion(2/2( Prove by induction that the recursive printing program works: – basis: If n has one digit, then program is correct – hypothesis: Print_out works for all numbers of k or fewer digits – case k+1: k+1 digits can be written as the first k digits followed by the least significant digit The number expressed by the first k digits is exactly floor( n/10 )? which by hypothesis prints correctly; the last digit is n%10; so the (k+1)-digit is printed correctly By induction, all numbers are correctly printed Eko AB – Analisis dan Perancangan Algoritma 54

Recursion Don't need to know how recursion is being managed l Recursion is expensive

Recursion Don't need to know how recursion is being managed l Recursion is expensive in terms of space requirement; avoid recursion if simple loop will do l l Last two rules – Assume all recursive calls work – Do not duplicate work by solving identical problem in separated recursive calls l Evaluate fib(4) -- use a recursion tree fib(n) = fib(n-1) + fib(n-2( Eko AB – Analisis dan Perancangan Algoritma 55

What is Algorithm Analysis? How to estimate the time required for an algorithm l

What is Algorithm Analysis? How to estimate the time required for an algorithm l Techniques that drastically reduce the running time of an algorithm l A mathemactical framwork that more rigorously describes the running time of an algorithm l Eko AB – Analisis dan Perancangan Algoritma 56

Running time for small inputs Eko AB – Analisis dan Perancangan Algoritma 57

Running time for small inputs Eko AB – Analisis dan Perancangan Algoritma 57

Running time for moderate inputs Eko AB – Analisis dan Perancangan Algoritma 58

Running time for moderate inputs Eko AB – Analisis dan Perancangan Algoritma 58

Important Question Is it always important to be on the most preferred curve? l

Important Question Is it always important to be on the most preferred curve? l How much better is one curve than another? l How do we decide which curve a particular algorithm lies on? l How do we design algorithms that avoid being on the bad curves? l Eko AB – Analisis dan Perancangan Algoritma 59

Algorithm Analysis(1/5) Measures the efficiency of an algorithm or its implementation as a program

Algorithm Analysis(1/5) Measures the efficiency of an algorithm or its implementation as a program as the input size becomes very large l We evaluate a new algorithm by comparing its performance with that of previous approaches l – Comparisons are asymtotic analyses of classes of algorithms l We usually analyze the time required for an algorithm and the space required for a datastructure Eko AB – Analisis dan Perancangan Algoritma 60

Algorithm Analysis (2/5( l Many criteria affect the running time of an algorithm, including

Algorithm Analysis (2/5( l Many criteria affect the running time of an algorithm, including – speed of CPU, bus and peripheral hardware – design think time, programming time and debugging time – language used and coding efficiency of the programmer – quality of input (good, bad or average( Eko AB – Analisis dan Perancangan Algoritma 61

Algorithm Analysis (3/5) l Programs derived from two algorithms for solving the same problem

Algorithm Analysis (3/5) l Programs derived from two algorithms for solving the same problem should both be – – – Machine independent Language independent Environment independent (load on the system(. . . , Amenable to mathematical study Realistic Eko AB – Analisis dan Perancangan Algoritma 62

Algorithm Analysis (4/5( In lieu of some standard benchmark conditions under which two programs

Algorithm Analysis (4/5( In lieu of some standard benchmark conditions under which two programs can be run, we estimate the algorithm's performance based on the number of key and basic operations it requires to process an input of a given size l For a given input size n we express the time T to run the algorithm as a function T(n) l Concept of growth rate allows us to compare running time of two algorithms without writing two programs and running them on the same computer l Eko AB – Analisis dan Perancangan Algoritma 63

Algorithm Analysis (5/5( l Formally, let T(A, L, M) be total run time for

Algorithm Analysis (5/5( l Formally, let T(A, L, M) be total run time for algorithm A if it were implemented with language L on machine M. Then the complexity class of algorithm A is O(T(A, L 1, M 1) U O(T(A, L 2, M 2)) U O(T(A, L 3, M 3)) U. . . Call the complexity class V; then the complexity of A is said to be f if V = O(f( l The class of algorithms to which A belongs is said to be of at most linear/quadratic/ etc. growth in best case if the function TA best(n) is such (the same also for average and worst case. ( l Eko AB – Analisis dan Perancangan Algoritma 64

Asymptotic Performance l In this course, we care most about asymptotic performance – How

Asymptotic Performance l In this course, we care most about asymptotic performance – How does the algorithm behave as the problem size gets very large? • Running time • Memory/storage requirements • Bandwidth/power requirements/logic gates/etc. Eko AB – Analisis dan Perancangan Algoritma 65

Asymptotic Notation By now you should have an intuitive feel for asymptotic (big-O) notation:

Asymptotic Notation By now you should have an intuitive feel for asymptotic (big-O) notation: – What does O(n) running time mean? O(n 2)? O(n lg n)? – How does asymptotic running time relate to asymptotic memory usage? l Our first task is to define this notation more formally and completely l Eko AB – Analisis dan Perancangan Algoritma 66

Analysis of Algorithms Analysis is performed with respect to a computational model l We

Analysis of Algorithms Analysis is performed with respect to a computational model l We will usually use a generic uniprocessor randomaccess machine (RAM) – All memory equally expensive to access – No concurrent operations – All reasonable instructions take unit time • Except, of course, function calls – Constant word size • Unless we are explicitly manipulating bits l Eko AB – Analisis dan Perancangan Algoritma 67

Input Size l Time and space complexity – This is generally a function of

Input Size l Time and space complexity – This is generally a function of the input size • E. g. , sorting, multiplication – How we characterize input size depends: • Sorting: number of input items • Multiplication: total number of bits • Graph algorithms: number of nodes & edges • Etc Eko AB – Analisis dan Perancangan Algoritma 68

Running Time Number of primitive steps that are executed – Except for time of

Running Time Number of primitive steps that are executed – Except for time of executing a function call most statements roughly require the same amount of time • y=m*x+b • c = 5 / 9 * (t - 32 ) • z = f(x) + g(y) l We can be more exact if need be l Eko AB – Analisis dan Perancangan Algoritma 69

Analysis Worst case – Provides an upper bound on running time – An absolute

Analysis Worst case – Provides an upper bound on running time – An absolute guarantee l Average case – Provides the expected running time – Very useful, but treat with care: what is “average”? • Random (equally likely) inputs • Real-life inputs l Eko AB – Analisis dan Perancangan Algoritma 70

Function of Growth rate Eko AB – Analisis dan Perancangan Algoritma 71

Function of Growth rate Eko AB – Analisis dan Perancangan Algoritma 71