71
Jun 9, 2022 Strategi Algoritma Kuliah 1 : Peran Algoritma E. Haodudin Nurkifli Teknik Informatika Universitas Ahmad Dahlan

Strategi Algoritma Kuliah 1 : Peran Algoritma

  • Upload
    hashim

  • View
    190

  • Download
    5

Embed Size (px)

DESCRIPTION

Strategi Algoritma Kuliah 1 : Peran Algoritma. E. Haodudin Nurkifli Teknik Informatika Universitas Ahmad Dahlan. Penghargaan. - PowerPoint PPT Presentation

Citation preview

Page 1: Strategi Algoritma Kuliah  1 : Peran Algoritma

Apr 21, 2023

Strategi Algoritma

Kuliah 1 : Peran Algoritma

E. Haodudin Nurkifli

Teknik Informatika

Universitas Ahmad Dahlan

Page 2: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 2

Penghargaan

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.

Page 3: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 3

Konsep Dasar

Algoritma + Struktur Data = Program

Efisien Space/memoryTime/proses

Engineering product

Menurut Niclaus Wirth :Yang akhirnya ditulis dalam bukunya

Page 4: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 4

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)

Page 5: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 5

Costing Software

Apa parameter biaya pengembangan software ?

Per bit / byte Per statement Per modul Per baris Per user interface ?

Page 6: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 6

Apa yg ada pada berbagai alat berikut

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

Page 7: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 7

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

Apakah kemampuan control panel pada berbagai alat rumah tangga memerlukan media simpan yg besar?

Apakah pengaturan otomasi pada mesin mobil bergantung pd kapasitas media simpan digitalnya?

Apakah otomasi pengaturan lift pada gedung tinggi membutuhkan media simpan digital yg besar?

Page 8: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 8

Struktur data ?

Kapasitas Media simpan digitalnya ?

Algoritma ?

Programnya ?

……?

Apa yg menentukan unjuk kerja mereka ?

Page 9: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 9

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

Page 10: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 10

Lanjt

Pengembangan Media simpan untuk struktur data

Bersifat Vertikal

Pengembangan Algoritma

Bersifat Horisontal

Vertikal :-Monoton, sekali ada yg mengembangkan ya sudah

Horisontal :-Variatif dan fleksibel : terbuka untuk pengembangan / implementasi dalam semua bidang

Page 11: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 11

Lanjt

Pengembangan Algoritma masih sangat terbuka untuk semua bidang kehidupan

Pertanian KesehatanKeamananPendidikanManajemen….?

Page 12: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 12

Lanjt

Mengembangkan

Memperbaiki

Meningkatkan

implementasi

Memahami

Menjelaskan

?

Mendasari

Page 13: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 13

Algoritma ?

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)

Page 14: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 14

Program ?

Program merupakan ekspresi / implementasi algoritma dalam bahasa pemrograman tertentu

Kumpulan perintah yang mana komputer akan menjalankannya dalam menyelesaikan masalah

Page 15: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 15

Beberapa aplikasi

Persoalan teknik Strategi algoritma dapat diaplikasikan/dicontohkan pada proses :

– sorting

– Searching

– data retrieval

– network routing

– Games developing

– Graph

– dll

Page 16: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 16

Pelajaran Algoritma

How to devise algorithms Bagaimana Merencanakan algoritma ? How to express algorithms Bagaimana menjelaskan algoritma How to validate algorithms Bagaimana memvalidasi algoritma How to analyze algorithms Bagaimana menganalisa algoritma How to test a program Bagaimana mengetes program

Page 17: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 17

Pentingnya menganalisa Algoritma

Perlunya mengenali batasan dari variasi algoritma untuk penyelesaian persoalan

Perlunya memahami relasi antara ukuran masalah dan running time– Kapankah running program dinyatakan tidak cukup bagus?

Perlunya mempelajari bagaimana menganalisa runing time suatu algortima tanpa coding

Perlunya mempelajari teknik menulis program yang lebih efisien

Need to recognize bottlenecks in code as well as which parts of code are easiest to optimize

Page 18: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 18

Mengapa kita mengalisa sesuatu?

Mengerti perilakunya, dan (Pekerjaan -- Memilih,performance / unjuk kerja, memodifikasi)

Meningkatkan kinerja (Research)

Page 19: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 19

Apa yang kita analisa atas algoritma?

Kebenarannya– Apakah relasi antara input dan ouput

sesuai dengan kebutuhan algoritma? Kuantitas pekerjaan yang dikerjakan (time co

mplexity) – Operasi dasar untuk mengerjakan tugas

Jumlah space yg dibutuhkan– Memory yang digunakan (space/memory

complexity)

Page 20: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 20

Lanjutan

Kesederhanaan, Kejelasan– Verifikasi dan implementasi.

Optimalitas– Mungkinkah ia bekerja lebih baik?

Page 21: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 21

Contoh-Contoh Penerapan Algoritma

Kompresi file menggunakan Algoritma Huffman code (greedy algorithm)

Cryptanalys menggunakan Brucefource ( untuk memecahkan cipertext)

Jaringan komputer menggunakan algoritma Minimum Spaning Tree untuk menentukan harga minimum

SIG algoritma MST, Dynamic Programming, Color graphing

Page 22: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 22

PERTEMUAN CUKUP

Page 23: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 23

Kompleksitas

Kompleksitas algoritma adalah tingkat ke-komplek-an / ke-simple-an jumlah pekerjaan yang dikerjakan algortima untuk melaksanakan suatu pekerjaan tertentu

Page 24: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 24

Model RAM

Memiliki satu processor Melaksanakan satu instruksi a

t a time Setiap instruksi menyita "unit t

ime“ Memiliki operand ukuran tetap Memiliki fixed size storage (R

AM / virtual memory dan disk).

Page 25: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 25

Contoh 1: Operasi dasar

Apa hasil dari operasi berikut

(M div n)*n + (M mod n)

= M+n (a)= M*n (b)

= n2 (c)= M (d)= n (e)

Page 26: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 26

Contoh 2 : Linear Searching PR

buatlah minimal 2 algoritma /

prosedure / fungsi / pseudocode /

program untuk melakukan pencarian

(searching) suatu nilai x dalam

array A, misalnya

A=(7,3,5,9,4,2,6,8,1,0) 0 1 2 3 4 5 6 7 8 9

Page 27: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 27

Apa yg anda alami ?

Hal tersebut merupakan salah satu contoh apa yang disebut

Timing Wild

Nampaknya sepele, namun diluar yang dibayangkan sebelumnya

Page 28: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 28

Ketemu :=false

i:=0

While …… Do i:=i+1

If i<=9 then ketemu:=true else ketemu:=false

(a) A[i]<> x(b) A[i]=x(c) A[i]=x and i<=9(d) A[i]<>x and i<=9(e) i<=9 and A[i]<>x

?

?Apa kontrol perulangan yg tepat digunakan untuk statement tsb :

Page 29: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 29

Any Question ?

Page 30: Strategi Algoritma Kuliah  1 : Peran Algoritma

Apr 21, 2023

Contoh Algoritma

Page 31: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 31

Apa running time dari algorithm berikut?

PUZZLE(x)

while x != 1     if x is even      then  x = x / 2      else x = 3x + 1

Sample run:  7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1

Page 32: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 32

The Selection Problem (1/2)

Problem: diberikan sekelompok n angka, ditentukan angka terbesar ke-k

Algoritma 1

– Simpan angka dalam array

– Urutkan array secara descending

– Hasil angka pada posisi k

Page 33: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 33

The Selection Problem(2/2)

Algoritma 2

– Simpan angka2, 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?

Page 34: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 34

25, 90, 53, 23, 11, 34

INPUT

OUTPUTinstance

11

Algoritma

m:= a[1];for I:=2 to size of input if m > a[I] then m:=a[I]; return s

Data-Structurem

I.I What is an Algorithm?

Problem: Input adlh urutan bil integer yg disimpan dlm array. Outputnya adalah bil minimum.

Contoh: Algoritma Apa?

Page 35: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 35

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..

Definisi Masalah

Page 36: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 36

Problem: Input adlh urutan dari integer yg disimpan dlm array. Outputnya adalah max

Algorithm A

Contoh Algoritma A

Max:=Y[0]; For i:=1 to n-1 do

3   If Y[i]>max then max:=Y[i]

Page 37: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 37

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];

Contoh Algoritma B

Page 38: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 38

8956 1134 720

34 9 20 11

34 20

34

Loop 0

Loop 1

Loop 2

Visualisasi Algoritma B

Page 39: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 39

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];

Page 40: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 40

Untuk setiap elemen, test kondisinya minimum.

1.iÃ0;°agÃtrue;2.While°agiÃi+1;minÃa[i];°agÃfalse;forjÃ1tosizeofinputifmin>a[j]then°agÃtrue;3.Outputmin.

Contoh Algoritma D

Page 41: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 41

Mengurutkan input secara menaik. Hasil elemen pertama dari data terurut.

8956 1134 720

5 6 7 8 9 11 20 34

Sorting black box

Contoh Pemanfaatan

Page 42: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 42

Mana algoritma yg lebih baik?

Semua algoritma benar, tetapi mana yang terbaik?

Mengukur running time (Jumlah

operasi yg dibutuhkan). Mengukur jumlah memori yg

digunakan. Catatan bahwa peningkatan dari

running time algoritma sebagai peningkatan ukuran dari input .

Page 43: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 43

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.

Apa yg kita perlukan?

Page 44: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 44

Diukur dengan parameter jumlah input

Algorihtma A,B,C di implementasikan dan dijalankan pada PCAlgoritma D is implementasi-kan dan dijalankan oada supercomputer.

1000500Input Size

Tb (n)

Ta (n)

4

0

2

Tc (n)

Run

ning

tim

e

(sec

ond)

Td(n)

Time vs. Ukuran Input

Page 45: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 45

Methods of Proof

Proof by Contradiction– Assume a theorem is false; show that this assumption implie

s a property known to be true is false -- therefore original hypothesis must be true

Proof by Counterexample– Use a concrete example to show an inequality cannot hold

Mathematical Induction– Prove a trivial base case, assume true for k, then show hypo

thesis is true for k+1– Used to prove recursive algorithms

Page 46: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 46

Review: Induction

Suppose – S(k) is true for fixed constant k

• Often k = 0– S(n) S(n+1) for all n >= k

Then S(n) is true for all n >= k

Page 47: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 47

Proof By Induction

Claim:S(n) is true for all n >= k Basis:

– Show formula is true when n = k Inductive hypothesis:

– Assume formula is true for an arbitrary n Step:

– Show that formula is then true for n+1

Page 48: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 48

Induction Example: Gaussian Closed Form

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 + 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

Page 49: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 49

Induction Example:Geometric Closed Form

Prove a0 + a1 + … + an = (an+1 - 1)/(a - 1) for all a 1– Basis: show that a0 = (a0+1 - 1)/(a - 1)

a0 = 1 = (a1 - 1)/(a - 1)– Inductive hypothesis:

• Assume a0 + a1 + … + an = (an+1 - 1)/(a - 1) – Step (show true for n+1):

a0 + a1 + … + an+1 = a0 + a1 + … + an + an+1

= (an+1 - 1)/(a - 1) + an+1 = (an+1+1 - 1)/(a - 1)

Page 50: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 50

Induction

We’ve been using weak induction Strong induction also holds

– Basis: show S(0)– Hypothesis: assume S(k) holds for arbitrary k <= n– Step: Show S(n+1) follows

Another variation:– Basis: show S(0), S(1)– Hypothesis: assume S(n) and S(n+1) are true– Step: show S(n+2) follows

Page 51: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 51

Basic Recursion

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

Two fundamental rules– Must always have a base case– Each recursive call must be to a case that eventually leads t

oward a base case

Page 52: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 52

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);}

Page 53: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 53

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*/ }}

Page 54: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 54

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 dig

its– case k+1: k+1 digits can be written as the first k digits follow

ed 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

Page 55: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 55

Recursion

Don't need to know how recursion is being managed Recursion is expensive in terms of space requiremen

t; avoid recursion if simple loop will do

Last two rules– Assume all recursive calls work– Do not duplicate work by solving identical problem in separat

ed recursive calls

Evaluate fib(4) -- use a recursion tree

fib(n) = fib(n-1) + fib(n-2)

Page 56: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 56

What is Algorithm Analysis?

How to estimate the time required for an algorithm Techniques that drastically reduce the running time of

an algorithm A mathemactical framwork that more rigorously descr

ibes the running time of an algorithm

Page 57: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 57

Running time for small inputs

Page 58: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 58

Running time for moderate inputs

Page 59: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 59

Important Question

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

How much better is one curve than another? How do we decide which curve a particular algorithm

lies on? How do we design algorithms that avoid being on the

bad curves?

Page 60: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 60

Algorithm Analysis(1/5)

Measures the efficiency of an algorithm or its implementation as a program as the input size becomes very large

We evaluate a new algorithm by comparing its performance with that of previous approaches– Comparisons are asymtotic analyses of classes of algorithm

s

We usually analyze the time required for an algorithm and the space required for a datastructure

Page 61: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 61

Algorithm Analysis (2/5)

Many criteria affect the running time of an algorithm, including– speed of CPU, bus and peripheral hardware– design think time, programming time and debuggin

g time– language used and coding efficiency of the progra

mmer– quality of input (good, bad or average)

Page 62: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 62

Algorithm Analysis (3/5)

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

Page 63: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 63

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

For a given input size n we express the time T to run the algorithm as a function T(n)

Concept of growth rate allows us to compare running time of two algorithms without writing two programs and running them on the same computer

Page 64: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 64

Algorithm Analysis (5/5)

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 isO(T(A,L1,M1) U O(T(A,L2,M2)) U O(T(A,L3,M3)) U ...

Call the complexity class V; then the complexity of A is said to be f if V = O(f)

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).

Page 65: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 65

Asymptotic Performance

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.

Page 66: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 66

Asymptotic Notation

By now you should have an intuitive feel for asymptotic (big-O) notation:– What does O(n) running time mean? O(n2)?

O(n lg n)? – How does asymptotic running time relate to

asymptotic memory usage? Our first task is to define this notation more formally

and completely

Page 67: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 67

Analysis of Algorithms

Analysis is performed with respect to a computational model

We will usually use a generic uniprocessor random-access 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

Page 68: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 68

Input Size

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

Page 69: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 69

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)

We can be more exact if need be

Page 70: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 70

Analysis

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

Average case– Provides the expected running time– Very useful, but treat with care: what is “average”?

• Random (equally likely) inputs• Real-life inputs

Page 71: Strategi Algoritma Kuliah  1 : Peran Algoritma

Eko AB – Analisis dan Perancangan Algoritma 71

Function of Growth rate