10/22/2015 1 Analisis Algoritma:

advertisement
10/22/2015
Bab 2: The Analysis Framework
Analisis Algoritma:
Agenda.
• The Analysis Framework
Anany Levitin, Introduction to Design and Analysis of Algorithm, 3rd Edition,
Pearson Education, Inc., Addison-Wesley
•
•
•
•
Measuring an Input’s Size
Unit for Measuring Running Time
Order of Growth
Worst-Case, Best-Case, and Average-Case Efficiency
Fakultas Teknologi dan Desain
1-1 Informatika
Program Studi Teknik
Analisis Algoritma |
The Analysis Framework
• Dibutuhkan framework (kerangka kerja) untuk melakukan analisa
tingkatan efisiensi sebuah algoritma.
• Efisiensi algoritma: time efficiency dan space efficiency.
• Kapasitas penyimpanan yang dibutuhkan algoritma tidak terlalu
diperhatikan.
• Beberapa kasus, peningkatan efisiensi algoritma sisi time
efficiency lebih tinggi peningkatan efisiensi algoritma sisi space
efficiency.
Analisis Algoritma |
3
2
The Analysis Framework
Measuring an Input’s Size.
• Pada umumnya, ukuran input dan waktu proses saat algoritma
bekerja adalah berbanding terbalik.
• Pemilihan parameter sangat penting. Sebagai contoh, memilih
parameter n untuk ukuran input algoritma.
• Contoh kasus: Menetukan ukuran input untuk proses perkalian n
× n matrik.
Analisis Algoritma |
4
1
10/22/2015
The Analysis Framework
• Dalam kasus ini terdapat 2 pengukuran input alami:
The Analysis Framework
• Latihan 1.
1. berdasarkan ukuran matrik berorde;
2. berdasarkan banyaknya lemen matrik berorde n yang saling dikalikan;
Kasus: Algoritma pengujian menentukan bilangan prima dari suatu deret
bilangan bulat positif (positive integer).
Problem: (1) Bagaimanakah menentukan mekanisme pengukuran ukuran
input dalam operasi penentuan bilangan prima suatu deret bilangan bulat
positif antara 1 – 10?;
(2) Tuliskan dalam bentuk pseudocode algoritmanya!
• Pemilihan ukuran matrik yang sesuai dapat mempengaruhi
operasi algoritma.
• Contoh kasus lainnya: Algoritma pengujian ejaan.
Problem: Bagaimana menentukan mekanisme untuk mengukur ukuran
input algoritma pengujian ejaan (spell-checking algorithm)?
Analisis Algoritma |
5
The Analysis Framework
6
The Analysis Framework
• Mengukur waktu proses dalam hal ini adalah mengukur efisiensi
algoritma dari sisi waktu pengolahan.
• Pendekatan yang memungkinkan adalah dengan menghitung
banyaknya jumlah operasi algoritma (basic operation) yang
dieksekusi.
• Bagaimana caranya menentukan basic operation sebuah
algoritma?
• Analisa dilakukan berdasarkan banyaknya jumlah operasi basic
operation algoritma dieksekusi pada input berukuran n.
Unit for Measuring Running Time.
• Mengapa perlu dilakukan?
Karena kecepatan pengolahan komputer bergantung kepada: (1) kualitas
algoritma yang diterapkan dalam program; (2) kemampuan compiler
dalam menghasilkan machine code; dan (3) tingkat kesulitan
menyamakan waktu (cloaking) dengan waktu aktual program bekerja.
• Secara sederhana dapat menggunakan unit pengukuran waktu
proses standar; second, milisecond, microsecond dan lainnya.
• Pengukuran apakah yang dimaksudkan?
Analisis Algoritma |
Analisis Algoritma |
8
Analisis Algoritma |
9
2
10/22/2015
The Analysis Framework
• Analisis tersebut dapat dinyatakan dengan:
The Analysis Framework
• Contoh kasus: Menghitung jumlah proses program
Problem 1: Berapakah jumlah proses yang dibutuhkan oleh sebuah
algoritma pada sebuah komputer untuk mengeksekusi sebuah program?
Dimana:
cop = waktu eksekusi basic operation algoritma pada komputer tertentu;
C(n) = banyaknya jumlah kebutuhan operasi yang akan diekseskusi;
T(n) = banyaknya waktu operasi yang dibutuhkan oleh mesin untuk mengeksekusi
algoritma yang diterapkan pada sebuah program.
Analisis Algoritma |
Problem 2: Bagaimanakah kecepatan proses algoritma pada sebuah
komputer untuk mengeksekusi sebuah program jika komputer yang
digunakan ditingkatkan kemampuannya hingga 10 kali lipat dari
sebelumnya?
10
Analisis Algoritma |
The Analysis Framework
• Latihan
11
The Analysis Framework
Order of Growth.
Problem 3: Berdasarkan problem 2, hitunglah banyaknya jumlah
1
kebutuhan operasinya jika diasumsikan 𝐶(𝑛) = 2 𝑛2!
Problem 4: Berdasarkan problem 3, tentukan banyaknya waktu operasi
yang dibutuhkan oleh komputer untuk mengeksekusi algoritma yang
diterapkan pada sebuah program 𝑇(𝑛) jika inputnya ditingkatkan menjadi
2 kali lipat!
Analisis Algoritma |
12
• Analisis ini menekankan pada jumlah peningkatan ukuran input.
• Mengapa penting?
• Contoh kasus: Euclid’s algorithm.
Problem 1: Jika setiap kali operasi yang dilakukan pada algoritma Euclid
diasumsikan sebagai 1 operasi, berapa jumlah operasi yang dibutuhkan
untuk menyelesaikan gcd(12,8)?
Analisis Algoritma |
13
3
10/22/2015
The Analysis Framework
• Latihan
The Analysis Framework
Worst-Case, Best-Case, and Average-Case Efficiencies.
Problem 2: Berdasarkan problem 1, jika setiap nilainya ditingkatkan
ukurannya sebanyak 5 kali, berapa jumlah operasi yang dibutuhkan untuk
menyelesaikan operasi tersebut?
• Worst-Case efficiency: algoritma beroperasi dengan waktu
terlama untuk semua kemungkinan input berukuran n.
• Best-Case efficiency: algoritma beroperasi dengan waktu
tercepat untuk semua kemungkinan input berukuran n.
Problem 3: Berdasarkan problem 2, tentukan nilai 𝐶(𝑛) dan 𝑇(𝑛) jika
1
𝐶(𝑛) = 2 𝑛2!
Analisis Algoritma |
• Average-Case efficiency: algoritma yang digunakan untuk
mengukur nilai rerata efisiensi yang dihasilkan oleh worst-case
efficiency dan best-case efficiency.
14
Analisis Algoritma |
15
Analisis Algoritma:
Anany Levitin, Introduction to Design and Analysis of Algorithm, 3rd Edition,
Pearson Education, Inc., Addison-Wesley
1-16
4
Download