Apa Perbedaan Antara Metode Greedy dan Pemrograman Dinamis?

Daftar Isi:

Anonim

Perbedaan utama antara Metode Greedy dan Pemrograman Dinamis adalah bahwa keputusan (choice) yang dibuat dengan metode Greedy bergantung pada keputusan (choices) yang dibuat selama ini dan tidak bergantung pada pilihan masa depan atau semua solusi dari subproblem. Di sisi lain, pemrograman Dinamis membuat keputusan berdasarkan semua keputusan yang dibuat pada tahap sebelumnya untuk memecahkan masalah.

Algoritma adalah urutan langkah-langkah yang sistematis untuk memecahkan suatu masalah. Metode serakah dan pemrograman dinamis adalah dua algoritma. Keduanya digunakan untuk menyelesaikan masalah optimasi.

Metode Greedy, Pemrograman Dinamis

Apa itu Metode Greedy?

Metode serakah melibatkan menemukan pilihan terbaik dari beberapa nilai sekarang. Dalam metode ini, kami mempertimbangkan tahap pertama dan memutuskan output tanpa mempertimbangkan output masa depan. Dengan kata lain, algoritma Greedy memecahkan masalah dengan mempertimbangkan opsi terbaik pada saat tertentu.

Algoritma serakah bekerja jika masalah berisi dua properti sebagai properti pilihan serakah dan substruktur optimal. Solusi optimal global dapat ditemukan dengan membuat solusi optimal lokal. Dengan kata lain, menciptakan pilihan serakah membantu menemukan solusi optimal. Oleh karena itu, properti ini disebut properti pilihan serakah. Selain itu, solusi optimal mengandung sub solusi optimal. Dengan demikian, properti ini disebut substruktur optimal.

Apa itu Pemrograman Dinamis

Pemrograman dinamis melibatkan membagi masalah utama menjadi submasalah kecil. Metode ini menyimpan hasil dari submasalah dan menerapkannya pada submasalah yang serupa. Di sini, menyimpan jawaban dari submasalah disebut menghafal. Ini memeriksa jawaban dari submasalah dan akhirnya sampai pada kesimpulan untuk menemukan solusi optimal atau terbaik. Karena pemrograman dinamis memeriksa jawaban sebelumnya dan menghindari menghitung jawaban yang sama beberapa kali, ini lebih efisien.

Dalam pemrograman dinamis, solusi optimal untuk masalah utama berada dalam solusi optimal dari submasalahnya. Selanjutnya, ketika ada situasi menghadapi submasalah yang sama, lagi dan lagi, itu disebut submasalah yang tumpang tindih.

Perbedaan Antara Metode Greedy dan Pemrograman Dinamis

Definisi

Metode Greedy adalah algoritma yang mengikuti heuristik pemecahan masalah untuk membuat pilihan optimal lokal di setiap toko dengan maksud untuk menemukan optimal global. Pemrograman Dinamis, di sisi lain, adalah algoritma yang membantu menyelesaikan kelas masalah secara efisien yang memiliki submasalah yang tumpang tindih dan properti substruktur yang optimal. Definisi ini menjelaskan perbedaan utama antara Metode Greedy dan Pemrograman Dinamis.

Efisiensi

Selain itu, perbedaan utama antara Metode Greedy dan Pemrograman Dinamis adalah efisiensinya. Metode Greedy kurang efisien sedangkan pemrograman Dinamis lebih efisien.

Proses

Pengambilan Keputusan

Metode pengambilan keputusan adalah perbedaan lain antara Metode Greedy dan Pemrograman Dinamis. Metode Greedy membuat keputusan dengan mempertimbangkan tahap pertama sementara pemrograman dinamis membuat keputusan di setiap tahap.

Kesimpulan

Keputusan (choice) yang dibuat dengan metode Greedy tergantung pada keputusan (choices) yang dibuat selama ini dan tidak bergantung pada pilihan masa depan atau semua solusi dari subproblem. Namun, pemrograman Dinamis membuat keputusan berdasarkan semua keputusan yang dibuat pada tahap sebelumnya untuk menyelesaikan masalah. Itulah perbedaan utama antara Metode Greedy dan Pemrograman Dinamis.

Referensi:

1. “Pengantar Pemrograman Dinamis – Javatpoint.” www.javatpoint.com, Tersedia di sini.2. Pemrograman Dinamis | Langkah-Langkah Desain & Aplikasi |, Education 4u, 2 Apr. 2018, Tersedia di sini.3. “Pengenalan Algoritma Greedy – Javatpoint.” www.javatpoint.com, Tersedia di sini.4. "Algoritma Serakah." Wikipedia, Wikimedia Foundation, 9 Oktober 2018, Tersedia di sini.

Gambar Courtesy:

1. "Greedy-search-path-example" Oleh Swfung8 - Karya sendiri (CC BY-SA 3.0) melalui Commons Wikimedia2. “Pemrograman dinamis Fibonacci” Oleh en:User:Dcoatzee, dilacak oleh Pengguna:Stannered – en:Image:Fibonacci dynamic programming.png (Domini públic) melalui Commons Wikimedia

Apa Perbedaan Antara Metode Greedy dan Pemrograman Dinamis?