• Tidak ada hasil yang ditemukan

Algorithm’s Functions

N/A
N/A
Protected

Academic year: 2023

Membagikan "Algorithm’s Functions"

Copied!
7
0
0

Teks penuh

(1)

19-Feb-04 IKI10100 - PM 4 - 1

Algorithm Analysis

• Kita perlu memproses jumlah data yang sangat besar.

• Harus diyakinkan bahwa program berhenti dalam batas waktu yang wajar (reasonable)

• Tidak terikat pada programming language atau bahkan metolodologi (mis. Procedural vs OO)

19-Feb-04 IKI10100 - PM 4 - 2

Program Attributes

• Reliable code

• Easy modification

• Faster code

• Ease of use

• Total development time

• Total development cost

• Mean space and time taken

Algoritma

• Suatu set instruksi yang harus diikuti oleh computer untuk memecahkan suatu masalah.

• Dengan algorithm yang benar, perlu

diketahui berapa resource yang terpakai spt:

time & space yang diperlukan oleh algorithm.

Time Consumption

Wall-Clock time CPU time

Process 1:

Process 2:

Process 3:

Wait time:

(2)

19-Feb-04 IKI10100 - PM 4 - 5

Algorithm’s Functions

• Jumlah waktu yg dibutuhkan hampir selalu tergantung pada jumlah input yang diproses.

• Exact value depends on:

– speed of host machine – machine architecture – quality of compilers

19-Feb-04 IKI10100 - PM 4 - 6

Algorithm Analysis

• Langkah perhitungan resource yang diperlukan oleh sebuah algorithm.

• Tujuan sesi ini:

– bagaimana memperkirakan waktu yang dibutuhkan oleh sebuah algoritma – teknik untuk menurunkan running time – pendekatan matematis untuk menggambarkan

running time

Contoh Algoritma

Mencari nilai terbesar dalam sebuah array yang berisi integer positif

int biggest ( int a[] ) {

int temp = 0, n = size_of_array;

for (i=0; i<n; i++)

if (a[i] > temp) temp = a[i];

return temp; running timelinear thd

Algorithm’s Functions

• For a given program on a given computer, we can plot the graph that represents the running time function.

• Four common functions:

– linear – logarithmic – quadratic

(3)

19-Feb-04 IKI10100 - PM 4 - 9

Function Curve

19-Feb-04 IKI10100 - PM 4 - 10

Linear Sample

• Download time N kilobytes

• 2-sec delay for connection setup

• speed of transfer: 1.6 Kb/sec

• T(N) = N/1.6 + 2

• N = 80 K →T(N) = 52 sec

• N = 160K →T(N) = 102 sec

Big-O Performance Measure

• O( expr )

• Big-Oh T(N) is O(F(N)) if there are positive constant c and N0such that T(N) ≤cF(N) when N ≥N0.

Rule of Big-O

• reduce all constant factors and terms to 1 10n2+ 9 + 120n + 400 →n2 + 1 + n + 1

→n2+ n + 1

→n2

• throw away all constant terms except one n2+ 1 + n + 1

• throw away all terms but the dominant one n2+ n + 1

(4)

19-Feb-04 IKI10100 - PM 4 - 13

Big Oh

• Big-Oh notation suatu algoritma dinyatakan oleh suku yang dominan (dominant term).

10n3 + n2+ 40n + 80 0.5n2+ log n + 100000

O(n3)

O(n2) 15n + 4nlog n + 103O(nlog n)

19-Feb-04 IKI10100 - PM 4 - 14

Dominant Term

• Mengapa hanya suku dominant saja yang diperhitungkan?

• Contoh: n3+ 350n2+ n →O(n3)

• Untuk n = 10000

– Nilai aktual 1,003,500,010,000 – Nilai estimasi 1,000,000,000,000 – Kesalahan dalam estimasi 0.35%, dapat

diabaikan

Dominant Term

• Untuk jumlah input (n) yang besar, suku dominan lebih mengindikasikan perilaku dari algoritma.

• Untuk n yang kecil, umumnya berjalan sangat cepat sehingga kita tidak perlu perhatikan.

Dominant Term

• Contoh:

– Algoritma A = 0.5n3+ 20n + 10 – Algoritma B = 1000n + 250

• Execution time untuk n = 10 – Algoritma A = 710

– Algortima B = 10250

• Execution time untuk n = 100 – Algoritma A = 502,010

(5)

19-Feb-04 IKI10100 - PM 4 - 17

Dominant Term

• Mengapa nilai konstan/koefisien pada setiap suku tidak diperhatikan?

– Nilai konstan/koefisien tidak memiliki arti pada mesin yang berbeda

• Big-Oh digunakan untuk merepresentasikan laju pertumbuhan (growth rate)

19-Feb-04 IKI10100 - PM 4 - 18

Rule of Big-O

• Jika ada lebih dari satu parameter, maka aturan tersebut berlaku untuk setiap parameter.

4nlog(m) + 50n2+ 500m + 1853 O (n log(m) + n2 + m) 4 m log(m) + 50n2 + 500m + 853

O (m log(m) + n2)

Function Curve

Best, Average, Worst Case

• Big-Oh running time dari sequential search: best, average and worst?

• Mencari index dari suatu elemen dalam sebuah array size n.

int SeqSearch ( int k, Array a ) { int i;

for (i = 0; i<n; i++)

if (k == a[ i ]) return i;

return ( -1 );

}

(6)

19-Feb-04 IKI10100 - PM 4 - 21

Best and Worst Case

int SeqSearch ( int k, Array a ) { int i;

for (i = 0; i<n; i++)

if (k == a[ i ]) return i;

return ( -1 );

}

• Best case: O( 1 )

• Worst case: O( n )

19-Feb-04 IKI10100 - PM 4 - 22

Average Case

int SeqSearch ( int k, int a[ ] ) { int i;

for (i = 0; i<n; i++)

if (k == a[ i ]) return i;

return ( -1 );

}

Total computation time untuk semua kemungkinan posisi k ditemukan dibagi oleh jumlah kemungkinan.

a b

(ai + b)

Σ

i=1 n

= a Σi+ Σb

i=1 n

i=1 n

Average Case

Total computation time untuk semua kemungkinan posisi k ditemukan dibagi oleh jumlah kemungkinan.

Total = (ai + b)

Σ

i=1n = a Σi+ Σb

i=1 n

i=1 n

= a n(n+1)/2 + bn

Average = Total / n

 + +

= + +

=

a b an

n b a 2

) 1 (

O( n )

Jarak Terdekat dari Dua Titik

• Algortima untuk menemukan sepasang dari N titik dalam suatu bidang (2 dimensi) yang memiliki jarak terpendek dibanding

pasangan titik yang lain.

Examples of Algorithm Running Times

• N (N - 1) / 2 O(n2)

(7)

19-Feb-04 IKI10100 - PM 4 - 25

Tiga Titik Segaris

• Algortima untuk menemukan tiga yang segaris dari N titik dalam suatu bidang (2 dimensi).

Examples of Algorithm Running Times

• N (N - 1) (N - 2) / 6 O(n3)

19-Feb-04 IKI10100 - PM 4 - 26

Tugas Baca

4 versi (cubic, quadratic, linear, logarithmic) dari Maximum Contiguous Subsequence Sum Problem

4 -3 7 10 -6 8 9 5 -3 -1

start end

Maximum sum

Referensi

Dokumen terkait

 Project scope management: mendefinisikan dan mengelola semua pekerjaan yang dibutuhkan untuk menyelesaikan proyek dengan baik.  Project time management: memperkirakan waktu yang

Penerapan Pendekatan Pembelajaran Metacognitive Scaffolding untuk Meningkatkan Kemampuan Pemecahan Masalah.. Matematis Siswa Sekolah Menengah

PENERAPAN MODEL ACCELERATED LEARNING UNTUK MENINGKATKAN KEMAMPUAN BERPIKIR LATERAL MATEMATIS SISWA SMP.. Penerapan Pendekatan Problem Centered Learning

Hasil ini konsisten dengan foto pendekatan saat ini yang digunakan oleh Trans Guide untuk memperkirakan waktu perjalanan dan menyarankan bahwa lebih akurat prediksi algoritma akan

Tujuan penelitian ini untuk mendeskripsikan perkembangan proses pembelajaran dengan menerapkan pendekatan kontekstual untuk meningkatkan pemahaman konsep matematis

• Management and organization, menggambarkan bagaimana konsumen bagi perusahaan untuk menyusun, mengelola, dan mengalokasikan pemasaran, yang dibutuhkan untuk

Pada contoh berikutnya, kami akan menunjukkan bagaimana algoritma BSAS digunakan untuk memperkirakan jumlah kelas (rapat) yang mendasari seperangkat data X. Tentukan

Adapun pendekatan yang digunakan dalam penelitian ini adalah dengan menggunakan pendekatan sosiologi22 dan deskriptif23 yang bertujuan untuk menggambarkan bagaimana implementasi