Algoritma Greedy Adalah Metode Pemecahan Masalah Yang Selalu
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. Sebagai contoh, jika kita manggunakan algoritma Greedy untuk menempatkan komponen diatas papan sirkuit, sekali komponen telah diletakkan dan dipasang maka tidak dapat dipindahkan lagi. 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.
Ciri-ciri Algoritma Greedy
Karakteristik penting dari algoritma Greedy adalah:
Apa itu Algoritma Greedy?
In Algoritma serakah sekumpulan sumber daya dibagi secara rekursif berdasarkan ketersediaan sumber daya maksimum dan langsung pada tahap eksekusi tertentu.
Untuk menyelesaikan masalah berdasarkan pendekatan serakah, ada dua tahap
Tahapan-tahapan ini dibahas secara paralel dalam tutorial algoritma Greedy ini, pada kursus pembagian array.
Untuk memahami pendekatan serakah, Anda perlu memiliki pengetahuan tentang rekursi dan peralihan konteks. Ini membantu Anda memahami cara melacak kode. Anda dapat mendefinisikan paradigma serakah berdasarkan pernyataan Anda sendiri yang perlu dan cukup.
Ada dua kondisi yang mendefinisikan paradigma serakah.
Dengan melanjutkan teori, mari kita uraikan sejarah yang terkait dengan pendekatan pencarian Greedy.
Bagaimana Memecahkan masalah pemilihan aktivitas
Pada contoh penjadwalan aktivitas, terdapat waktu “mulai” dan “selesai” untuk setiap aktivitas. Setiap Aktivitas diindeks dengan nomor untuk referensi. Ada dua kategori kegiatan.
Durasi total menunjukkan biaya pelaksanaan aktivitas. Artinya (selesai – mulai) memberi kita durasi sebagai biaya suatu aktivitas.
Anda akan mengetahui bahwa tingkat keserakahan adalah jumlah sisa aktivitas yang dapat Anda lakukan dalam waktu aktivitas yang dipertimbangkan.
Pengertian Metode Greedy Dan Algoritma Greedy
Pengertian Metode Greedy Dan Algoritma Greedy
Algoritma greedy adalah algoritma apa pun yang mengikuti metode heuristik dalam pemecahan masalah untuk membuat pilihan optimal secara lokal di setiap tahap.[1] Dalam banyak permasalahan, strategi greedy tidak menghasilkan solusi optimal, tetapi suatu heuristik greedy dapat menghasilkan solusi optimal lokal yang mendekati solusi optimal global dalam jangka waktu yang wajar.
Misalnya, strategi greedy untuk masalah penjual keliling (yang memiliki kompleksitas komputasi tinggi) adalah heuristik berikut: "Pada setiap langkah perjalanan, kunjungi kota terdekat yang belum dikunjungi." Heuristik ini tidak bertujuan untuk menemukan solusi terbaik, tetapi ia berakhir dalam sejumlah langkah yang wajar. Yang mana menemukan solusi optimal untuk masalah yang kompleks biasanya memerlukan banyak langkah yang tidak masuk akal. Dalam optimasi matematis, algoritma greedy secara optimal dapat menyelesaikan masalah kombinatorial yang memiliki sifat matroid dan memberikan hampiran faktor konstan untuk masalah optimasi dengan struktur submodular.
Algoritme greedy menghasilkan solusi yang baik pada beberapa masalah matematis, tetapi tidak pada masalah lainnya. Sebagian besar masalah yang algoritma greedy kerjakan memiliki dua properti:
Dimulai dari A, algoritma greedy yang mencoba menemukan nilai maksimum dengan mengikuti kemiringan terbesar akan menemukan maksimum lokal di "m", tanpa menyadari maksimum global di "M".
Untuk mencapai nilai terbesar, pada setiap langkah, algoritma greedy akan memilih apa yang tampak sebagai pilihan langsung yang optimal, sehingga ia akan memilih 12 dan bukannya 3 pada langkah kedua, dan tidak akan mencapai solusi terbaik, yaitu 99.
Algoritme greedy gagal menghasilkan solusi optimal untuk banyak masalah lain dan bahkan mungkin menghasilkan solusi unik yang paling buruk . Salah satu contohnya adalah masalah travelling salesman yang disebutkan di atas: untuk setiap jumlah kota, terdapat penetapan jarak antar kota dimana heuristik tetangga terdekat menghasilkan tur terburuk yang mungkin terjadi.[3] Untuk kemungkinan contoh lainnya, lihat efek cakrawala.
Algoritme greedy dapat dikategorikan sebagai algoritma yang 'berpandangan sempit', dan juga 'tidak dapat dipulihkan'. Algoritma ini hanya ideal untuk permasalahan yang memiliki 'substruktur optimal'. Meskipun demikian, untuk banyak masalah sederhana, algoritma yang paling cocok adalah algoritma greedy. Namun, penting untuk dicatat bahwa algoritma greedy dapat digunakan sebagai algoritma seleksi untuk memprioritaskan pilihan dalam pencarian, atau algoritma branch-and-bound. Ada beberapa variasi pada algoritma serakah:
Algoritma greedy memiliki sejarah panjang dalam studi optimasi kombinatorial dan ilmu komputer teoretis. Heuristik serakah diketahui memberikan hasil yang kurang optimal pada banyak masalah,[4] sehingga pertanyaan yang wajar adalah:
Sejumlah besar literatur menjawab pertanyaan-pertanyaan ini untuk kelas masalah umum, seperti matroid, serta untuk masalah khusus, seperti set cover.
Matroid adalah struktur matematika yang menggeneralisasi konsep independensi linier dari ruang vektor ke himpunan sembarang. Jika suatu masalah optimasi mempunyai struktur matroid, maka algoritma greedy yang sesuai akan dapat menyelesaikannya secara optimal.[5]
Sebuah fungsi f {\displaystyle f} didefinisikan pada himpunan bagian dari suatu himpunan Ω {\displaystyle \Omega } disebut submodular, jika untuk setiap S , T ⊆ Ω {\displaystyle S,T\subseteq \Omega } kita mempunyai f ( S ) + f ( T ) ≥ f ( S ∪ T ) + f ( S ∩ T ) {\displaystyle f(S)+f(T)\geq f(S\cup T)+f(S\cap T)} .
Misalkan seseorang ingin mencari sebuah himpunan S {\displaystyle S} yang memaksimalkan f {\displaystyle f} . Algoritma greedy, yang membangun satu himpunan S {\displaystyle S} dengan menambahkan elemen secara bertahap yang meningkatkan f {\displaystyle f} paling banyak pada setiap langkah, menghasilkan keluaran sebuah himpunan yang paling sedikit ( 1 − 1 / e ) max X ⊆ Ω f ( X ) {\displaystyle (1-1/e)\max _{X\subseteq \Omega }f(X)} .[6] Artinya, keserakahan bermain dalam faktor konstan ( 1 − 1 / e ) ≈ 0.63 {\displaystyle (1-1/e)\approx 0.63} sama baiknya dengan solusi optimal.
Jaminan serupa dapat dibuktikan ketika kendala tambahan, seperti batasan kardinalitas, [7] diterapkan pada keluaran. Meskipun sering kali diperlukan sedikit variasi pada algoritma greedy. Lihat[8] untuk ikhtisarnya.
Masalah lain yang mana algoritma greedy memberikan jaminan yang kuat, tetapi bukan solusi optimal, termasuk
Banyak dari permasalahan ini memiliki batas bawah yang sesuai, yaitu algoritma greedy tidak berkinerja lebih baik daripada jaminan dalam kasus terburuk.
Algoritme greedy biasanya (tetapi tidak selalu) gagal menemukan solusi optimal secara global karena algoritma tersebut biasanya tidak beroperasi secara mendalam pada semua data. Algoritma jenis ini dapat membuat komitmen pada pilihan-pilihan tertentu terlalu dini, sehingga mencegah mereka untuk menemukan solusi terbaik secara keseluruhan nantinya. Misalnya, semua algoritma pewarnaan serakah yang diketahui untuk masalah pewarnaan graf dan semua masalah NP-lengkap lainnya tidak secara konsisten menemukan solusi optimal. Namun, algoritma jenis ini berguna karena mereka cepat berpikir dan sering memberikan hampiran yang baik secara optimal.
Jika algoritma greedy dapat dibuktikan menghasilkan optimal global untuk kelas masalah tertentu, biasanya algoritma ini menjadi metode pilihan karena lebih cepat dibandingkan metode optimasi lain seperti pemrograman dinamis. Contoh algoritma greedy tersebut adalah algoritma Kruskal dan algoritma Prim untuk mencari pohon rentang minimum serta algoritma untuk mencari pohon Huffman optimal.
Algoritmq greedy juga muncul di perutean jaringan. Dengan menggunakan routing serakah, sebuah pesan diteruskan ke node tetangga yang “paling dekat” dengan tujuan. Gagasan tentang lokasi sebuah node (dan karenanya "kedekatan") dapat ditentukan oleh lokasi fisiknya, seperti dalam perutean geografis yang digunakan oleh jaringan ad hoc . Lokasi mungkin juga merupakan konstruksi buatan seperti dalam perutean dunia kecil dan tabel hash terdistribusi.
Apabila kamera gagal berfungsi sesuai harapan, periksa dahulu daftar masalah umum di bawah sebelum menghubungi penyalur Anda atau perwakilan servis resmi Nikon.
Kamera hidup namun tidak tanggap: Tunggu hingga perekaman berakhir. Jika masalah bertahan, matikan kamera. Apabila kamera tidak mati, keluarkan dan masukkan ulang baterai atau, jika Anda gunakan adaptor AC, putuskan sambungan dan sambungkan kembali adaptor AC. Catat bahwa meskipun data apapun yang sedang direkam akan hilang, data yang telah direkam tidak akan terpengaruh oleh pelepasan atau pemutusan sumber dayanya.
Jendela bidik tidak terfokus: Setel fokus jendela bidik (0 Kontrol Penyesuaian Diopter). Apabila ini tidak memperbaiki masalah, pilih AF servo tunggal (AF-S; 0 Mode Fokus Otomatis), AF titik-tunggal (0 Mode Area AF), dan titik fokus tengah (0 Pemilihan Titik Fokus), dan lalu bingkai subjek kontras tinggi di titik fokus tengah dan tekan setengah tombol pelepas rana guna memfokus kamera. Dengan kamera terfokus, gunakan kontrol penyesuaian diopter untuk mengantar subjek jelas terfokus di jendela bidik. Jika perlu, fokus jendela bidik dapat disetel lebih jauh menggunakan lensa koreksi opsional (0 Aksesori Lainnya).
Jendela bidik gelap: Masukkan baterai penuh daya (0 Isi Ulang Baterai, Tingkat Daya Baterai).
Layar mati tanpa peringatan: Pilih penundaan lebih lama bagi Pengaturan Kustom c2 (Pewaktu siaga; 0 Pewaktu Siaga) atau c4 (Penundaan monitor mati; 0 Penundaan Monitor mati).
Tampilan di panel kontrol atau jendela bidik tidak tanggap dan meredup: Waktu tanggap dan kecerahan dari tampilan bervariasi menurut suhunya.
Tampilan jendela bidik berubah merah saat titik fokus disorot: Ini adalah normal bagi jendela bidik jenis ini dan bukanlah tanda gagal fungsi.
Kamera memerlukan waktu untuk memulai: Hapus file atau folder.
Pelepas rana dinonaktifkan:
Kamera lambat dalam menanggapi tombol pelepas rana: Pilih Mati untuk Pengaturan Kustom d5 (Mode tunda pencahayaan; 0 Mode Tunda Pencahayaan).
Hanya satu bidikan terambil setiap kali tombol pelepas rana ditekan di mode lepas berkelanjutan: Matikan HDR (0 Jangkauan Dinamis Tinggi (HDR)).
Rentang penuh kecepatan rana tidak tersedia: Lampu kilat digunakan. Kecepatan sinkronisasi lampu kilat dapat dipilih menggunakan Pengaturan Kustom e1 (Kecepatan sinkr. lampu kilat); saat menggunakan unit lampu kilat kompatibel, pilih 1/250 d (FP Otomatis) bagi jangkauan penuh kecepatan rana (0 Kecepatan Sinkr. Lampu Kilat).
Fokus tidak mengunci saat tombol pelepas rana ditekan setengah: Kamera ada di mode fokus AF-C: gunakan bagian tengah sub-selektor untuk mengunci fokus (0 Kunci Fokus).
Tidak dapat memilih titik fokus:
Tidak dapat memilih mode AF: Pilih Tanpa batasan bagi Pengaturan Kustom a10 (Batasan mode fokus oto., 0 Batasan Mode Fokus Oto.).
Kamera lambat merekam foto: Matikan pencahayaan lama reduksi noise (0 Pencahayaan Lama RN (Pencahayaan Lama Reduksi Noise)).
Noise (titik bercahaya, piksel cerah acak, kabut, atau garis) tampak dalam foto:
Foto dan film tidak tampak memiliki pencahayaan sama seperti pratinjau yang ditampilkan di monitor selama tinjauan langsung: Perubahan pada kecerahan monitor selama tinjauan langsung tidak mempengaruhi gambar terekam dengan kamera (0 Menggunakan Tombol i).
Berkedip atau pita muncul di mode film: Pilih Reduksi kedip di menu perekaman film dan pilih opsi yang sesuai frekuensi dari pasokan daya AC setempat (0 Reduksi Kedip).
Area terang atau pita muncul di tinjauan langsung: Tanda berkilat, lampu kilat, atau sumber cahaya lain dengan durasi singkat digunakan selama tinjauan langsung.
Bercak muncul dalam foto: Bersihkan elemen lensa depan dan belakang. Jika masalah bertahan, lakukan pembersihan sensor gambar (0 Pembersihan Sensor Gambar).
Gambar dipengaruhi oleh gambar ganda atau silau yang terlihat: Anda mungkin melihat gambar ganda atau silau dalam bidikan yang menyertakan matahari atau sumber cahaya kuat lainnya. Efek ini dapat dikurangi dengan memasang tudung lensa atau dengan menyusun bidikan dengan sumber cahaya terang jauh dari bingkai. Anda juga dapat mencoba teknik seperti melepaskan filter lensa, memilih kecepatan rana yang berbeda, atau menggunakan fotografi senyap.
Tinjauan langsung berakhir tanpa diharapkan atau tidak memulai: Tinjauan langsung dapat berakhir secara otomatis guna mencegah kerusakan pada sirkuit internal kamera apabila:
Apabila tinjauan langsung tidak memulai saat Anda menekan tombol a, tunggu hingga sirkuit internal mendingin dan lalu coba lagi. Catat bahwa kamera dapat terasa hangat bila disentuh, namun ini tidak menandakan gagal fungsi.
Artefak gambar muncul selama tinjauan langsung: “Noise" (piksel cerah acak, kabut, atau garis) dan warna tak diharapkan dapat muncul jika Anda zoom memperbesar pada tinjauan melalui lensa (0 Pratinjau Zoom Tinjauan Langsung) selama tinjauan langsung; dalam film, jumlah dan distribusi dari piksel cerah acak, kabut, dan titik terang dipengaruhi oleh ukuran dan kecepatan frame (0 Ukuran Frame, Kecepatan Frame, dan Kualitas Film). Piksel-piksel cerah acak, kabut, atau titik terang juga dapat muncul sebagai hasil dari peningkatan dalam suhu sirkuit internal kamera selama tinjauan langsung; ke luar tinjauan langsung saat kamera tidak digunakan.
Tidak dapat mengukur keseimbangan putih: Subjek terlalu gelap atau terlalu terang (0 Fotografi Jendela Bidik).
Gambar tidak dapat dipilih sebagai sumber bagi keseimbangan putih pra-setel: Gambar bukan tercipta dengan D850 (0 Menyalin Keseimbangan Putih dari Foto).
Bracketing keseimbangan putih tidak tersedia:
Efek dari Picture Control berbeda dari gambar ke gambar: Otomatis dipilih bagi Atur Picture Control, Picture Control didasarkan pada Otomatis dipilih, atau A (otomatis) dipilih bagi penajaman, kejelasan, kontras, atau kejenuhan. Demi hasil konsisten atas serangkaian foto, pilih pengaturan lainnya (0 Mengubah Picture Control).
Pengukuran tidak dapat dirubah: Kunci pencahayaan otomatis aktif (0 Menyetel Kecepatan Rana dan Bukaan).
Kompensasi pencahayaan tidak dapat digunakan: Pilih mode pencahayaan P, S, atau A (0 Mode Pencahayaan, Kompensasi Pencahayaan).
Noise (area kemerahan atau artefak lainnya) muncul dalam pencahayaan jangka panjang: Aktifkan pencahayaan panjang reduksi noise (0 Pencahayaan Panjang RN (Pencahayaan Panjang Reduksi Noise)).
Suara tidak direkam bersama film: Mikrofon mati dipilih bagi Sensitivitas mikrofon di menu perekaman film (0 Sensitivitas Mikrofon).
Gambar NEF (RAW) tidak diplayback: Foto diambil pada kualitas gambar NEF + JPEG (0 NEF+JPEG).
Tidak dapat meninjau gambar terekam dengan kamera lain: Gambar terekam dengan kamera buatan lain mungkin tidak ditampilkan dengan benar.
Beberapa foto tidak ditampilkan selama playback: Pilih Semua untuk Folder playback (0 Folder Playback).
Foto orientasi "tegak" (potret) ditampilkan dalam orientasi "lebar" (bentang):
Tidak dapat menghapus foto: Gambar dilindungi. Hapus perlindungan (0 Melindungi Foto dari Penghapusan).
Tidak dapat mengubah gambar: Foto tidak dapat diedit lagi dengan kamera ini.
Kamera menampilkan pesan menyatakan bahwa folder tidak berisi gambar: Pilih Semua bagi Folder playback (0 Folder Playback).
Tidak dapat mencetak foto: Foto NEF (RAW) dan TIFF tidak dapat dicetak melalui sambungan USB langsung. Transfer foto ke komputer dan cetak menggunakan NX Studio (0 Sambungan). Foto NEF (RAW) dapat disimpan dalam format JPEG menggunakan Pemrosesan NEF (RAW) (0 Pemrosesan NEF (RAW)).
Foto tidak ditampilkan di perangkat video definisi tinggi: Pastikan bahwa kabel HDMI (dijual terpisah) telah terhubung.
Opsi Penghapusan Debu Gambar di NX Studio tidak memberi efek yang diinginkan: Pembersihan sensor gambar merubah posisi debu pada sensor gambar. Data referensi penghapusan debu terekam sebelum pembersihan sensor gambar dilakukan tidak dapat digunakan dengan foto terambil setelah pembersihan sensor gambar dilakukan. Data referensi penghapusan debu terekam setelah pembersihan sensor gambar dilakukan tidak dapat digunakan dengan foto terambil sebelum pembersihan sensor gambar dilakukan.
Komputer menampilkan gambar NEF (RAW) secara berbeda dari kamera: Perangkat lunak pihak ketiga tidak menampilkan efek Picture Control, Active D-Lighting, atau kontrol vinyet. Gunakan NX Studio (0 Sambungan).
Tidak dapat mentransfer foto ke komputer: OS (Sistem Operasi) tidak kompatibel dengan kamera atau perangkat lunak transfer. Gunakan pembaca kartu untuk menyalin foto ke komputer.
Strategi dan Keputusan yang Serakah
Logika dalam bentuknya yang paling sederhana diringkas menjadi “serakah” atau “tidak serakah”. Pernyataan-pernyataan ini ditentukan oleh pendekatan yang diambil untuk memajukan setiap tahap algoritma.
Misalnya, algoritma Djikstra menggunakan strategi greedy bertahap yang mengidentifikasi host di Internet dengan menghitung fungsi biaya. Nilai yang dikembalikan oleh fungsi biaya menentukan apakah jalur berikutnya adalah “serakah” atau “tidak serakah”.
Singkatnya, suatu algoritma akan berhenti menjadi serakah jika pada tahap mana pun ia mengambil langkah yang tidak serakah secara lokal. Masalah-masalah Greedy berhenti tanpa adanya ruang lingkup keserakahan lebih lanjut.
Contoh Pseudocode Algoritma Greedy
• Contoh (1) : tinjau masalah penukaran uang.
(a) Koin: 5, 4, 3, dan 1
Uang yang ditukar = 7.
Solusi greedy: 7 = 5 + 1 + 1 ( 3 koin) → tidak optimal
Solusi optimal: 7 = 4 + 3 ( 2 koin)
(b) Koin: 10, 7, 1
Uang yang ditukar: 15
Solusi greedy: 15 = 10 + 1 + 1 + 1 + 1 + 1 (6 koin)
Solusi optimal: 15 = 7 + 7 + 1 (hanya 3 koin)
(c) Koin: 15, 10, dan 1
Uang yang ditukar: 20
Solusi greedy: 20 = 15 + 1 + 1 + 1 + 1 + 1 (6 koin)
Solusi optimal: 20 = 10 + 10 (2 koin)
Penyelesaian dengan exhaustive search
— Terdapat 2n kemungkinan solusi
(nilai-nilai X = {x1, x2, …, xn} )
— Untuk mengevaluasi fungsi obyektif = O(n)
— Kompleksitas algoritma exhaustive search seluruhnya = O(n × 2n ).
Strategi greedy: Pada setiap langkah, pilih koin dengan nilai terbesar dari himpunan koin yang tersisa
menentukan solusi optimum dari persoalan optimasi dengan algoritma greedy
Masukan: himpunan kandidat C
Keluaran: himpunan solusi S
while (∑(nilai semua koin didalam S) ≠ A) and (C ≠ {} ) do
x ← Koin yang mempunyai nilai terbesar
if (∑ (nilai semua koin didalam S) + nilai koin x ≤ A then
if (∑ (nilai semua koin didalam S) = A then
write (“tidak ada solusi”)
procedure PenjadwalanPelanggan(input n:integer)
{ Mencetak informasi deretan pelanggan yang akan diproses oleh server tunggal
Masukan: n pelangan, setiap pelanggan dinomori 1, 2, …, n
Keluaran: urutan pelanggan yang dilayani
{pelanggan 1, 2, …, n sudah diurut menaik berdasarkan ti}
write(‘Pelanggan ‘, i, ‘ dilayani!’)
• Contoh (3) : Algoritma Greedy mencari jarak terpendek dari peta
Misalkan kita ingin bergerak dari titik A ke titik B, dan kita telah menemukan beberapa jalur dari peta.
Untuk mencari jarak terpendek dari A ke B, sebuah algoritma greedy akan menjalankan langkah-langkah seperti berikut:
Kunjungi satu titik pada graph, dan ambil seluruh titik yang dapat dikunjungi dari titik sekarang. 1 Cari local maximum ke titik selanjutnya. 2 Tandai graph sekarang sebagai graph yang telah 3 dikunjungi, dan pindah ke local maximum yang telah ditentukan. 4 Kembali ke langkah 1 sampai titik tujuan didapatkan.
Dengan menggunakan algoritma greedy pada graph di atas hasil akhir jarak terpendek adalah ACDEFB. Hasil jarak terpendek ini sbenarnya tidak tepat dengan jarak pendek sebenarnya(A-G-E-F-B). Maka dari aalgoritma yang tidak selamanya benar namu algoritma yang mendekati nilai kebenaran.
Pemecahan Masalah dengan Algoritma Greedy
Strategi greedy untuk memilih job:
Pada setiap langkah, pilih job i dengan
pi yang terbesar untuk menaikkan nilai
(p1, p2, p3, p4) = (50, 10, 15, 30)
(d1, d2, d3, d4) = (2, 1, 2, 1)
Solusi optimal: J = {4, 1} dengan F = 80.
Function JobSchedulling(input C : himpunan_job) → himpunan_job
{menghasilkan barisan job yang akan diproses oleh mesin}
J: himpunan_job {solusi}
i ← job yang mempunyai p [i] terbesar
if (semua job di dalam J ᴜ {i} layak) then
0%0% menganggap dokumen ini bermanfaat, Tandai dokumen ini sebagai bermanfaat
0%0% menganggap dokumen ini tidak bermanfaat, Tandai dokumen ini sebagai tidak bermanfaat
0%0% menganggap dokumen ini bermanfaat, Tandai dokumen ini sebagai bermanfaat
0%0% menganggap dokumen ini tidak bermanfaat, Tandai dokumen ini sebagai tidak bermanfaat
Skema umum Algoritma Greedy
Algoritma greedy disusun oleh elemen, dan elemen-elemen yang digunakan dalam penerapan algoritma greedy antara lain :
Himpunan yang berisi elemen pembentuk solusi.
Himpunan yang terpilih sebagai solusi persoalan.
Fungsi yang memilih kandidat yang paling mungkin untuk mencapai solusi optimal.
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.
Fungsi yang mengembalikan nilai boolean. True jika himpunan solusi yang sudah tebentuk merupakan solusi yang lengkap; False jika himpunan solusi belum lengkap.
Fungsi yang mengoptimalkan solusi.
Di dalam mencari sebuah solusi (optimasi) algoritma greedy hanya memakai 2 buah macam persoalan Optimasi,yaitu:
Pengertian Metode atau Algoritma Greedy
Metode/Algoritma Greedy merupakan algoritma yang membentuk solusi langkah per langkah dengan mencari nilai maksimum sementara pada setiap langkahnya. Nilai maksimum sementara ini dikenal dengan istilah local maximum. Pada kebanyakan kasus, algoritma greedy tidak akan menghasilkan solusi paling optimal, begitupun algoritma greedy biasanya memberikan solusi yang mendekati nilai optimum dalam waktu yang cukup cepat. Greedy sendiri diambil dari bahasa inggris yang artinya rakus, tamak atau serakah.
Mengapa menggunakan Pendekatan Serakah?
Berikut adalah alasan untuk menggunakan pendekatan serakah: