Nama : Fuad
NPM : 54414396
Kelas : 1IA24
Tugas AP- 2 C
Soal :
1. Berikan contoh soal & penyelesaian dengan metode greedy dan Jelaskan!
2. Berikan contoh soal & penyelesaian dengan divide & conquer dan Jelaskan!
1. Berikan contoh soal & penyelesaian dengan metode greedy dan Jelaskan!
2. Berikan contoh soal & penyelesaian dengan divide & conquer dan Jelaskan!
Jawab :
1. Apa yang dimaksud dengan metode Greedy & berikan contoh program menggunakan metode greedy!
Penyelesaian :
1. Apa yang dimaksud dengan metode Greedy & berikan contoh program menggunakan metode greedy!
Penyelesaian :
Metode Greedy
adalah metode untuk memperoleh solusi yang optimal dari suatu masalah yang
mempunyai 2 indikator yaitu : adanya fungsi tujuan & pembatas (Constrain).Contohnya
:
PROCEDURE GREEDY
(A,n)
Solusi <- 0
(solusi awal)
FOR I <- 1 TO
n DO
X
<- SELECT(A)
IF FEASIBLE (Solusi, x)
THEN
Solusi <- UNION (solusi, x)
ENDIF
REPEAT
RETURN (Solusi)
END GREEDY
Penjelasan :
Dalam program diatas menggunakan prosedur Greedy
dimana terdapat parameter (A,n) n adalah inputan data,variable Solusi bernilai
0 dan terdapat perulangan dari 1 sampai n yang kita input. Untuk variable X terdapat
fungsi SELECT yang merupakan fungsi untuk mengambil data input dari A. Terdapat
Percabangan If yang menggunakan fungsi FEASIBLE dimana fungsi yang bernilai
boolean (0 atau 1). Jadi apabila nilai yang disimpan variable Solusi bernilai 0
atau 1 maka akan menjalankan statemen dibawahnya yaitu Solusi <- UNION
(solusi, x).UNION adalah penggabungan dan pemeriksaan fungsi obyektifnya
(update). Jadi nilai yang disimpan variable Solusi digabungkan dengan nilai
dari variable x. Untuk mengakhiri perintah percabangan dapat kita tulis ENDIF
& untuk mengulangkan perulangannya kita tulis REPEAT. Lalu terdapat RETURN
(Solusi) yang artinya kembali ke variable Solusi. Untuk Mengakhiri program yang
bermetode Greedy dapat kita tulis END GREEDY.
2. Apa yang dimaksud dengan divide & conquer & berikan contoh program menggunakan divide & conquer!
Penyelesaian :
Strategi Divide dan Conquer memecah
masalah menjadi submasalah-submasalah independen yang lebih kecil sehingga
solusi submasalah-submasalah dapat diperoleh secara mudah, solusi
submasalah-submasalah digabung menjadi solusi seluruh masalah. Contohnya :
Procedure DNC ( i,j : integer )
Var K : integer ;
If SMALL (i,j) then SOLVE (i,j)
Else begin
K : = DIVIDE
(i,j)
COMBINE
(DNC(i,k),DNC(k+1,j))
End if
Dalam program diatas menggunakan prosedur DNC(Divide & Conquer) yang terdapat
formal parameter (I,j) bertipe datakan Integer. Lalu terdapat variable K juga
bertipe datakan integer. Dalam program diatas menggunakan perintah percabangan
if kemudian perintah SMALL merupakan fungsi yang mengirim Boolean yang menentukan apakah ukuran parameter
I & j telah cukup kecil sehingga solusi dapat diperoleh. . Ukuran
dinyatakan sebagai telah berukuran kecil bergantung masalah. Apabila Benar maka
akan menjalankan perintah SOLVE
tersebut dimana akan membenarkan/memperbaiki parameter-parameter tersebut.
Apabila kondisi salah maka akan menjalankan Else dengan statemen K : = DIVIDE(I,j).
Variabel K ini adalah hasil dari fungsi DIVIDE
yang membagi menjadi 2 bagian pada posisi K dari parameter” tersebut biasanya
bagian berukuran sama.Lalu terdapat perintah COMBINE yang merupakan fungsi untuk menggabungkan solusi X dan Y
submasalah. Solusi diperoleh dengan memanggil prosedur rekursif DNC parameter (I,k)
digabungkan dengan DNC (k+1,j).