• Tidak ada hasil yang ditemukan

Pemrograman Berorientasi Objek ... - UNIKOM Kuliah Online

N/A
N/A
Protected

Academic year: 2023

Membagikan "Pemrograman Berorientasi Objek ... - UNIKOM Kuliah Online"

Copied!
23
0
0

Teks penuh

(1)

MATERI PERKULIAHAN

ANALISIS ALGORITMA

GREEDY

5

Ken Kinanti Purnamasari

(2)

Strategi Algoritma

1. Strategi Solusi Langsung (Direct Solution)

Brute-Force, Greedy

2. Strategi Berbasis Ruang Status (State-space Base)

Backtracking, Branch & Bound

3. Strategi Solusi Atas-Bawah (Top-Down Solution)

Divide & Conquer

4. Strategi Solusi Bawah-Atas (Bottom-Up Solution)

Dynamic Programming

(3)

GREEDY

(4)

Optimasi

Persoalan optimasi  mencari solusi optimum Optimum  solusi yang bernilai minimum atau

maksimum dari kumpulan alternatif solusi yang mungkin.

Greedy

(5)

Optimasi

Jenis Persoalan Optimasi : - Maksimasi (maximization) - Minimasi (minimization)

Greedy

(6)

Optimasi

Elemen Persoalan Optimasi : - Kendala (constraints)

- Fungsi Objektif atau Fungsi Optimasi Jenis Solusi :

- Solusi Layak / feasible  memenuhi semua kendala

- Solusi Optimum  solusi layak yang paling optimum

Greedy

(7)

Definisi

Greedy merupakan algoritma yang memecahkan masalah langkah per langkah.

Prim’s Kruskal’s Djikstra’s Greedy : Tamak, rakus

Take it now !!!

Greedy : Tamak, rakus

Take it now !!!

Greedy

(8)

Karakteristik

Di setiap langkah, greedy : - Feasible

Memenuhi batasan masalah (constraint).

- Irrevocable

Pilihan di langkah sebelumnya tidak dapat dibatalkan.

- Locally Optimal

Mengambil pilihan terbaik tanpa memikirkan

konsekuensi ke depan. Berharap dengan memilih optimum lokal di setiap langkah, akan berakhir pada optimum global.

Greedy

(9)

Elemen Greedy

Persoalan optimasi dengan greedy memiliki elemen” berikut :

- Himpunan Kandidat, C - Himpunan Solusi, S

- Fungsi Seleksi

- Fungsi Kelayakan / Feasible - Fungsi Objektif

Greedy

(10)

Skema Umum

Skema Algoritma dapat dirumuskan sebagai berikut :

i. Inisialisasi S dengan nilai kosong

ii. Pilih sebuah kandidat (dengan fungsi SELEKSI) dari C

iii. Kurangi C dengan kandidat yang sudah dipilih dari langkah ii

iv. Periksa apakah kandidat yang dipilih bersama” himpunan solusi membentuk solusi yang layak (diperiksa oleh Fungsi LAYAK).

Jika YA  masukkan kandidat ke himpunan solusi , TIDAK  buang kandidat

v. Periksa apakah himpunan solusi sudah memberikan solusi lengkap (dengan fungsi SOLUSI)

Jika YA  berhenti , TIDAK  ulangi langkah ii

Greedy

(11)

Skema Umum

Algoritma Greedy(input C : himpunan_kandidat) himpunan_solusi { Menghasilkan solusi dari persoalan optimasi dengan Greedy Input : himpunan kandidat C

Output : himpunan solusi yang bertipe himpunan_kandidat } Deklarasi

x : kandidat S : himpunan_solusi Algoritma

S  {}

while (not SOLUSI(S)) AND (C <> {}) do x  SELEKSI(C)

C C – {x}

if LAYAK(S U {x}) then S S U {x}

endif endwhile

if SOLUSI(S) then return S

else

write(‘tidak ada solusi’);

endfor

Greedy

(12)

Contoh Kasus

- Penukaran Uang - Egyptian Fractions - Penjadwalan - Map Colouring

- Knapsack

- Job Scheduling dengan Deadline

- Minimum Spanning Tree (Kruskal & Prim) - Shortest Path

- TSP

- Kompresi Data dengan Algoritma Huffman

Greedy

(13)

Penukaran Uang

CONTOH KASUS 1

Menukarkan uang bernilai tertentu dengan sekumpulan uang koin dari berbagai satuan (denomination). Dicari jumlah minimum koin yang akan ditukarkan.

Contoh : Jika terdapat 4 buah denominasi dengan jumlah tak terhingga

1

$

1

$

5

$

5

$

10

$

10

$

25

$

25

$

32 $

25 $

25

$

5

$

5

$

1

$

1

$

Maka, untuk menukarkan uang senilai 32$ dibutuhkan : Minimum :

1 koin , 1 koin , 2 koin

Greedy

(14)

Exhaustive-Search

- Misalnya ada n buah koin {C1,C2,C3,… ,Cn}

- Maka, dapat diberikan nilai 0 atau 1 untuk setiap koin

Contoh : untuk 3 buah koin {C1,C2,C3} terdapat beberapa kemungkinan:

{0,0,0} {0,0,1} {0,1,0} {1,0,0}

{0,1,1} {1,1,0} {1,0,1} {1,1,1}

Untuk 3 koin 8 kemungkinan Untuk 4 koin 16 kemungkinan Untuk n koin 2n kemungkinan

Untuk mengevaluasi setiap kemungkinan dibutuhkan n eksekusi.

Maka, kompleksitas : n * 2n (Eksponensial)

Penukaran Uang Penukaran Uang

CONTOH KASUS 1

Greedy

(15)

Greedy

- Himpunan kandidat : koin-koin bernilai 1, 5, 10, 25

- Himpunan solusi : koin-koin terpilih yang membentuk total nilai koin tepat sama dengan nilai uang

yang ditukar

- Fungsi Seleksi : Pilih koin dengan nilai tertinggi dari himpunan kandidat yang terpilih

- Fungsi Layak : Periksa apakah nilai total dari himpunan koin tidak melebihi batas uang yang ditukar

- Fungsi Solusi/Objektif : Pastikan jumlah koin minimum

Penukaran Uang Penukaran Uang

CONTOH KASUS 1

Greedy

(16)

Penukaran Uang Penukaran Uang

CONTOH KASUS 1

Algoritma TukarUang(input C : himpunan_koin, A : integer) himpunan_koin { Menghasilkan koin-koin dengan total nilai = A dengan jumlah minimum}

Deklarasi

x : koin S : himpunan_koin Algoritma

S {}

while (jumlah nilai semua koin dalam S <> A ) AND (C <> {}) do x koin dengan nilai terbesar

C C – {x}

if (jumlah nilai semua koin dalam S) + nilai koin x < A then S S U {x}

endif endwhile

if (jumlah nilai semua koin dalam S) = A then return S

else

write(‘tidak ada solusi’);

endfor

Greedy

(17)

Optimum untuk nilai 7 = 5 + 1 + 1

Padahal ada solusi yang lebih optimum : 4 + 3 Kesimpulan : Dalam kasus penukaran uang,

algoritma Greedy tidak selalu menghasilkan solusi optimal.

Penukaran Uang Penukaran Uang

CONTOH KASUS

1

1

$

1

$

3

$

3

$

4

$

4

$

5

$

5

$

Greedy

(18)

Diberikan n buah kota.

Diketahui jarak antara setiap kota satu sama lain.

Temukan perjalanan (tour) terpendek yang melalui setiap kota lainnya hanya sekali dan kembali lagi ke kota asal keberangkatan.

TSP (Travelling Salesman Problem

CONTOH KASUS

2

Greedy

a b

c d

12

8 15

10 5 9

(19)

Greedy

Pada setiap langkah, pilih kota yang belum pernah dikunjungi dengan jarak terdekat.

E B A C D E

3 + 6 + 5 + 4 + 8 = 26

Padahal dengan Exhaustive Search, Diperoleh hasil yang lebih

Optimum.

E B D C A E

3 + 7 + 4 + 5 + 5 = 24

CONTOH KASUS

1

TSP (Travelling Salesman ProblemTSP (Travelling Salesman Problem

Greedy

C

A

D B E

5

7 4

4

6 9 5

7 3

8

(20)

CONTOH KASUS

2

TSP (Travelling Salesman ProblemTSP (Travelling Salesman Problem

Greedy

C

A

D B E

5

7 4

4

6 9 5

7 3

8

(21)

Ada Pertanyaan???

Ada Pertanyaan???

(22)

TUGAS

Tugas Perorangan

Tuliskan rangkuman tentang

Minimum Spanning Tree (Prim &

Kruskal)

dalam kertas folio !

(23)

TUGAS BESAR

Laporan

- Cover (Judul Aplikasi, NIM & Nama Anggota) - Penjelasan tentang game yang dipilih

- Bahasa Pemrograman - Software (compiler)

- Penjelasan Strategi Algoritma - Perhitungan Kompleksitas

- Referensi (paper/ buku / jurnal / wikipedia) - Lampiran (User Manual)

Referensi

Dokumen terkait

 Strategi greedy : Pada setiap langkah, pilih koin dengan nilai terbesar dari himpunan koin yang tersisa..  Agar pemilihan koin berikutnya optimal, maka perlu

Algoritma greedy tersusun oleh beberapa elemen, yaitu himpunan kandidat (C) yang berisi elemen pembentuk solusi, himpunan solusi (S) yang berisi kandidat yang

Dosen Ken Kinanti Purnamasari Chat FB / Messenger Ken Kinanti Purnamasari Materi Online kuliahonline.unikom.ac.id TK - 2019... Compilers Principles, Techniques, and

Error Recovery Mengembalikan compiler ke kondisi stabil supaya dapat melanjutkan proses Beberapa strategi yang digunakan : - Mekanisme Ad Hoc - Syntax Directed Recovery - Secondary

Reaksi Kompilator - Reaksi yang dapat diterima  Recovery/Memulihkan suatu kesalahan, kemudian menemukan error lainnya jika ada  Repair/Memperbaiki kesalahan, kemudian

Error Recovery Mengembalikan compiler ke kondisi stabil supaya dapat melanjutkan proses Beberapa strategi yang digunakan : - Mekanisme Ad Hoc - Syntax Directed Recovery - Secondary

Brute-Force Selection Sort CONTOH KASUS 1 Diberikan n buah bilangan bulat yang dinyatakan sebagai a0, a2, …, an-1.. Urutkan bilangan-bilangan tersebut secara

WAKTU & RUANG Time Efficiency => Time Complexity Tn = Jumlah Waktu pengerjaan suatu Algoritma Space Efficiency => Space Complexity Sn = Jumlah ruang Memori yang dibutuhkan suatu