Skip to main content

METODE GREEDY, DIVIDE AND CONQUER

METODE GREEDY

     Metode/Algoritma Greedy merupakan algoritma yang membentuk solusi langkah per langkah. Pada setiap langkah tersebut akan dipilih keputusan yang paling optimal. Keputusan tersebut tidak perlu memperhatikan keputusan selanjutnya yang akan diambil, dan keputusan tersebut tidak dapat diubah lagi pada langkah selanjutnya.

a. Prinsip Utama Algoritma Greedy
Prinsip utama algoritma greedy adalah ?take what you can get now!?. Maksud dari prinsip tersebut adalah sebagai berikut: Pada setiap langkah dalam algoritma greedy, kita ambil keputusan yang paling optimal untuk langkah tersebut tanpa memperhatikan konsekuensi pada langkah selanjutnya. Kita namakan solusi tersebut dengan optimum lokal. Kemudian saat pengambilan nilai optimum lokal pada setiap langkah, diharapkan tercapai optimum global, yaitu tercapainya solusi optimum yang melibatkan keseluruhan langkah dari awal sampai akhir.
Contoh kasus algoritma greedy :
Misalkan tersedia koin : 1, 3, 5.
Uang senilai X=8 dapat di tukar dengan cara :
§  1+1+1+1+1+1+1+1 = 8 (8 koin)
§  1+1+1+1+1+3=8 (6 koin)
§  1+1+1+5=8 (4 koin)
§  1+1+3+3=8 (4 koin)
§  3+5=8 (2 koin)                                    solusi optimal.
Maka solusi optimal dari kasus penukaran koin di atas adalah 2 koin.
 METODE GREEDY banyak digunakan dalam berbagai penyelesaian maslah, antara lain adalah :
1.    Optimal Storage on Tapes Problem
2.    Kanpsack Problem
3.    Minimum Spanning Tree Problem
4.    Shortest Path Problem

Knapsack Problem
Knapsack problem adalah suatu masalah bagaimana cara menentukan pemilihan barang dari sekumpulan barang di mana setiap barang tersebut mempunyai berat dan profit masing masing, sehingga dari pemilihan barang tersebut didapatkan profit yang maksimum.
Contoh kasus knapsack
§  w1 = 10;  p1 = 2
§  w2 = 5;     p2 = 3
§  w3 = 15;   p3 = 5
§  w4 = 7;     p4 = 7
§  w5 = 6;     p5 = 1
§  w6 = 18;   p6 = 4
§  w7 = 3;     p7 = 1
M = 15
Jawaban :    

Properti objek
Greedy by
Solusi
Optimal
i
wi
pi
pi/wi
profit
weight
density
1
2
10
5
1
1
1
1
2
3
5
1,7
1
1
0
1
3
5
15
3
1
0
1
1
4
7
7
1
0
0
0
0
5
1
6
6
1
1
1
1
6
4
18
4,5
1
1
1
1
7
1
3
3
0
1
1
0
Total bobot :
15
11
13
15
Total keuntungan :
54
42
52
54

Kesimpulan : Pada soal ini, algoritma greedy dengan strategi pemilihan objek berdasarkan profit memberikan solusi optimal, sedangkan pemilihan objek berdasarkanweight dan density tidak memberikan solusi optimal.

b. Elemen Algoritma Greedy
        Elemen-elemen yang digunakan dalam penerapan algoritma greedy antara lain :

1. Himpunan Kandidat
        Himpunan yang berisi elemen pembentuk solusi.
2. Himpunan Solusi
        Himpunan yang terpilih sebagai solusi persoalan.
3. Fungsi Seleksi
        Fungsi yang memilih kandidat yang paling mungkin untuk mencapai solusi optimal.
4. Fungsi Kelayakan
       Fungsi yang memeriksa apakah suatu kandidat yang dipilih dapat memberikan solusi yang layak.    Maksudnya yaitu apakah kandidat tersebut bersama dengan himpunan solusi yang sudah terbentuk      tidak melanggar kendala yang ada.
5. Fungsi Solusi
       Fungsi yang mengembalikan nilai boolean. True jika himpunan solusi yang sudah tebentuk               merupakan solusi yang lengkap; False jika himpunan solusi belum lengkap.
6. Fungsi Objektif
        Fungsi yang mengoptimalkan solusi.

c. Skema Umum Algoritma Greedy
        Misal kita mengasumsikan elemen algoritma greedy sebagai berikut :
    Himpunan Kandidat = C,
    Himpunan Solusi = S,
    Fungsi Seleksi = select(),
    Fungsi Kelayakan = feasible(),
    Fungsi Solusi = solution(), dan
    Fungsi Obyektif = objective().

        Skema umum dari algoritma greedy dapat kita tuliskan :
- Inisialisasi S dengan kosong.
- Pilih sebuah kandidat dari C (dengan select()).
- Kurangi C dengan kandidat yang telah terpilih di atas.
- Periksa apakah kandidat yang dipilih tersebut bersama ? sama dengan S membentuk solusi yang         layak (dengan feasible()). Jika ya, masukkan kandidat ke S; jika tidak buang kandidat tersebut dan      tidak perlu ditelaah lagi.
- Periksa apakah S yang sudah terbentuk telah memberikan solusi yang lengkap (dengan solution()).      Jika ya, berhenti; jika tidak, ulangi dari langkah 2.

Sumber :  
   

   DIVIDE AND CONQUER

   Algoritma Divide and Conquer adalah strategi pemecahan masalah yang besar dengan cara melakukan pembagian masalah yang besar tersebut menjadi beberapa bagian yang lebih kecil secara rekursif hingga masalah tersebut dapat dipecahkan secara langsung. Solusi yang didapat dari setiap bagian kemudian digabungkan untuk membentuk sebuah solusi yang utuh.
   
   Skema umum Algoritma Divide and Conquer


   Contoh kasus dan pemyelesaian
>> Persoalan Minimum dan Maksimum (MinMaks)
Persoalan : Misalnya diketahui table A yang berukuran n eleman sudah berisi nilai integer. Kita ingin menentukan nilai minimum dan nilai maksimum sekaligus di dalam table tersebut. Misalkan tabel A berisi elemen-elemen sebagai berikut :

Ide dasar algoritma secara Divide and Conquer :

Ukuran table hasil pembagian dapat dibuat cukup kecil sehingga mencari minimum dan maksimum dapat diselesaikan (SOLVE) secara lebih mudah. Dalam hal ini, ukuran kecil yang dipilih adalah 1 elemen atau 2 elemen.
Algoritma MinMaks :
1. Untuk kasus n = 1 atau n = 2,
SOLVE : Jika n = 1, maka min = maks = An. Jika n = 2, maka bandingkan kedua elemen untuk menentukan min dan maks.

2. Untuk kasus n > 2,
DIVIDE : Bagi dua table A secara rekursif menjadi dua bagian yang berukuran sama, yaitu bagian kiri dan bagian kanan.
CONQUER : Terapkan algoritma Divide and Conquer untuk masing-masing bagian, dalam hal ini min dan maks dari table bagian kiri dinyatakan dalam peubah min1 dan maks1, dan min dan maks dari table bagian kanan dinyatakan dalam peubah min2 dan maks2.
COMBINE : Bandingkan min1 dan min2 untuk menentukan min table A, serta bandingkan maks1 dan maks2 untuk menentukan maks table A.


=======================================================
Penyelesaian dengan Algoritma Divide and Conquer secara umum :
=======================================================
a. Asumsi : n = 2k dan titik-titik diurut berdasarkan absis (x).
b. Algoritma Closest Pair :
- SOLVE : jika n = 2, maka jarak kedua titik dihitung langsung dengan rumus Euclidean.
- DIVIDE : Bagi titik-titik itu ke dalam dua bagian, PLeft dan PRight, setiap bagian mempunyai                            jumlah titik yang sama
- CONQUER :Secara rekursif, terapkan algoritma D-and-C pada masingmasing bagian.
- Pasangan titik yang jaraknya terdekat ada tiga kemungkinan letaknya :
  Pasangan titik terdekat terdapat di bagian PLeft.
  Pasangan titik terdekat terdapat di bagian PRight.
 Pasangan titik terdekat dipisahkan oleh garis batas L, yaitu satu titik di PLeft dan satu titik di PRight.
   Jika kasusnya adalah (c), maka lakukan tahap COMBINE untuk mendapatkan jarak dua titik terdekat sebagai solusi persoalan semula.



Sumber : 

Comments

Popular posts from this blog

Profile Perusahaan BHINNEKA.COM

Tugas Softskill 1 PT Bhinneka Mentari Dimensi (Bhinneka.com) Bhinneka.com lahir dari situasi genting di saat krisis ekonomi yang melanda Indonesia tahun 1997-1998 yang kemudian berkembang menjadi krisis sosial politik.  PT Bhinneka Mentari Dimensi lahir tahun 1993 dan memilih bidang teknologi informasi sebagai inti bisnisnya. Fokus pertama dimulai dari distribusi produk IT seperti PC Build Up dan PC Compatible, Peripherals, rancang bangun perangkat lunak jasa jaringan (Lan/Wan), solusi video editing hingga pusat servis. Saat krisis, nyaris lumpuh juga bisnis PT Bhinneka Mentari Dimensi, berbagai ektensifikasi bisnis yang dipikir mampu mendongkrak bisnis dilakukan untuk survive, di saat itulah Nicholas Tio & Hendrik Tio melihat peluang yang barangkali dapat dilakukan, yaitu perkembangan internet yang luar biasa di USA. Maka situs Bhinneka.com yang masih berupa profil perusahaan, disetujui untuk dijadikan model online store. Maka pada 1 Juni 1999, dengan 24 pers...

Arti dari Sebuah Keindahan

Keindahan Apa sih keindahan itu? Dalam Kamus Besar Bahasa Indonesia, keindahan diartikan sebagai keadaan yang enak dipandang, cantik, bagus benar atau elok. Keindahan dipelajari sebagai bagian dari estetika, sosiologi, psikologi sosial, dan budaya. Sebuah "kecantikan yang ideal" adalah sebuah entitas yang dikagumi, atau memiliki fitur yang dikaitkan dengan keindahan dalam suatu budaya tertentu, untuk kesempurnaannya. Keindahan adalah sifat-sifat yang merujuk kepada sesuatu yang indah di mana manusia mengekspresikan perasaan indah tersebut melalui berbagai hal yang mengandung unsur estetis yang dinilai secara umum oleh masyarakat. Menurut The Liang Gie dalam bukunya “ Garis Besar Estetik” (Filsafat Keindahan), dalam bahasa Inggris Keindahan diterjemahkan dengan kata “Beautiful”, bahasa Perancis “Beau” , Italia dan Spanyol “Bello” , kata-kata itu ber asal dar i bahasa Latin “Bellum” , akar katanya adalah “Bonum” yang berarti Kebaikan kemudian mempunyai bentuk pengecila...

Tutorial Membuat Puzzle Game dengan Unity 5.2

Tutorial Membuat Puzzle Game dengan Unity 5.2 Tugas Kelompok 6 :  Achmad Rofiq El Fakih Lutfianto Triatmojo Bagas Andhika Sakti Bemby Aditya Gabriel Baruch K.     Buat Project dengan nama “Puzzle Game1” untuk pacakages 2D seperti dibawah, lalu create project. Akan muncul tampilan dibawah seperti ini.     Buat folder di bagian bawah dengan cara Create > Folder, lalu namai Folder tersebut dengan Scenes. Berikutnya buat panel dengan cara klik GameObject > UI > Panel. Jika sudah maka akan seperti tampilan dibawah ini, berikutnya ubah render mode menjadi Screen Space – Camera. Lalu drag Main Camera ke Render Camera. Berikutnya ubah UI Scale Mode menjadi Scale with Screen size, setelah itu ubah reference solution menjadi    X 1280 dan Y 720 dan ubah match menjadi 0,5. Jika sudah kita akan membuat button untuk puzzlenya. Dengan cara GameObject ...