Sabtu, 26 September 2026
12:18 WIB
TERKINI
Lampung Tekuni Hobi Sejak Kuliah, Dani Tetap Bertahan Jual Ikan Hias di Tengah Tantangan Cuaca Prakiraan Cuaca Lampung 26 September 2026: Cerah Berawan dan Potensi Hujan Humaniora Perlindungan Anak Digital: MPR Desak Komitmen Global Terwujud Nyata di Tanah Air Regional Bupati Gowa Sitti Husniah Talenrang Tersangka Pemerasan Perizinan Bangunan dan TPPU Bandar Lampung Puluhan Siswa di Lampung Tengah Diduga Keracunan Makanan Program MBG Account KG Media ID: Satu Akun untuk Kemudahan Akses Seluruh Layanan Digital Ekonomi Dan Bisnis Harga Buyback Emas Antam Anjlok Rp20 Ribu per Gram pada 25 September 2026 Lampung DPRD Lampung Tengah Soroti Perubahan Substansi Perda SOTK Tanpa Pemberitahuan Teknologi Meta Rilis Muse Charm: Gadget Saku Cerdas dengan Asisten AI Revolusioner Berita KAI Siap Gerakkan Rail Clinic ke Pelosok, Perluas Akses Kesehatan Masyarakat Lampung Tekuni Hobi Sejak Kuliah, Dani Tetap Bertahan Jual Ikan Hias di Tengah Tantangan Cuaca Prakiraan Cuaca Lampung 26 September 2026: Cerah Berawan dan Potensi Hujan Humaniora Perlindungan Anak Digital: MPR Desak Komitmen Global Terwujud Nyata di Tanah Air Regional Bupati Gowa Sitti Husniah Talenrang Tersangka Pemerasan Perizinan Bangunan dan TPPU Bandar Lampung Puluhan Siswa di Lampung Tengah Diduga Keracunan Makanan Program MBG Account KG Media ID: Satu Akun untuk Kemudahan Akses Seluruh Layanan Digital Ekonomi Dan Bisnis Harga Buyback Emas Antam Anjlok Rp20 Ribu per Gram pada 25 September 2026 Lampung DPRD Lampung Tengah Soroti Perubahan Substansi Perda SOTK Tanpa Pemberitahuan Teknologi Meta Rilis Muse Charm: Gadget Saku Cerdas dengan Asisten AI Revolusioner Berita KAI Siap Gerakkan Rail Clinic ke Pelosok, Perluas Akses Kesehatan Masyarakat
Algoritma tamak

Algoritma tamak

algoritma yang membuat pilihan optimal secara lokal dalam serangkaian langkah dengan tujuan mencapai optimum global

330px-Greedy_algorithm_36_cents.svg.png?utm_source=id.wikipedia.org&utm_campaign=parser&utm_content=thumbnail
Algoritma tamak menentukan jumlah minimum koin yang akan diberikan saat memberikan kembalian. Ini adalah langkah-langkah yang dilakukan kebanyakan orang untuk meniru algoritma tamak untuk mewakili 36 sen hanya menggunakan koin dengan nilai {1, 5, 10, 20}. Koin dengan nilai tertinggi, lebih kecil dari sisa uang kembalian, adalah optimal setempat. (Secara umum, masalah pengambilan kembalian memerlukan pemrograman dinamis untuk menemukan solusi optimal. Namun, sebagian besar sistem mata uang merupakan kasus khusus dengan strategi tamak dapat berhasil menemukan solusi optimal).

Algoritma tamak atau dalam bahasa Inggris greedy algorithm adalah algoritma apa pun yang mengikuti metode heuristik dalam pemecahan masalah untuk membuat pilihan optimal secara setempat di setiap tahap.[1] Dalam banyak masalah, strategi tamak tidak menghasilkan solusi optimal, tetapi suatu heuristik tamak dapat menghasilkan solusi optimal lokal yang mendekati solusi optimal global dalam jangka waktu yang wajar.

Misalnya, strategi tamak untuk masalah penjual keliling (yang memiliki kerumitan 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 tak masuk akal. Dalam optimasi matematis, algoritma tamak secara optimal dapat menyelesaikan masalah kombinatorial yang memiliki sifat matroid dan memberikan hampiran faktor konstan untuk masalah optimasi dengan struktur submodular.

Spesifik

Algoritma tamak menghasilkan solusi yang baik pada beberapa masalah matematis, tetapi tidak pada masalah lainnya. Sebagian besar masalah yang algoritma greedy kerjakan memiliki dua properti:

Properti pemilihan tamak
Kita dapat membuat pilihan apa pun yang tampaknya terbaik saat ini dan kemudian menyelesaikan sub-masalah yang muncul kemudian. Pilihan yang dibuat oleh algoritma tamak mungkin bergantung pada pilihan yang dibuat sejauh ini, tetapi tidak pada pilihan masa depan atau semua solusi terhadap submasalah. Ini secara berulang-ulang membuat pilihan tamak satu demi satu, mengurangi setiap masalah menjadi masalah yang lebih kecil. Dengan kata lain, algoritma tamak tidak pernah mempertimbangkan kembali pilihannya. Inilah perbedaan utamanya dengan pemrograman dinamis yang bersifat menyeluruh dan menjamin untuk menemukan solusinya. Setelah setiap tahap selesai, pemrograman dinamis membuat keputusan berdasarkan semua keputusan yang dibuat pada tahap sebelumnya dan dapat mempertimbangkan kembali jalur algoritmik tahap sebelumnya menuju solusi.
Substruktur optimal
“Suatu masalah menunjukkan substruktur optimal jika solusi optimal terhadap masalah tersebut mengandung solusi optimal terhadap sub-masalah.” [2]

Kasus kegagalan

Contoh kejadian tentang bagaimana algoritma tamak dapat gagal mencapai solusi optimal.
330px-Greedy_Glouton.svg.png?utm_source=id.wikipedia.org&utm_campaign=parser&utm_content=thumbnail
Dimulai dari A, algoritma tamak yang mencoba menemukan nilai maksimum dengan mengikuti kemiringan terbesar akan menemukan maksimum lokal di "m", tanpa menyadari maksimum global di "M".
Greedy-search-path-example.gif?utm_source=id.wikipedia.org&utm_campaign=parser&utm_content=thumbnail_unscaled
Untuk mencapai nilai terbesar, pada setiap langkah, algoritma tamak 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.

Algoritma tamak 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 di mana heuristik tetangga terdekat menghasilkan tur terburuk yang mungkin terjadi.[3] Untuk kemungkinan contoh lainnya, lihat efek cakrawala.

Jenis

Bagian ini membutuhkan rujukan tambahan agar kualitasnya dapat dipastikan. Mohon bantu kami mengembangkan artikel ini dengan cara menambahkan rujukan ke sumber tepercaya. Pernyataan tak bersumber bisa saja dipertentangkan dan dihapus.
Cari sumber: "Algoritma tamak" – berita · surat kabar · buku · cendekiawan · JSTOR

Algoritma tamak dapat dikategorikan sebagai algoritma yang 'berpandangan sempit', dan juga 'tidak dapat dipulihkan'. Algoritma ini hanya ideal untuk masalah yang memiliki 'substruktur optimal'. Meskipun demikian, untuk banyak masalah sederhana, algoritma yang paling cocok adalah algoritma tamak. Namun, penting untuk dicatat bahwa algoritma tamak dapat digunakan sebagai algoritma seleksi untuk mengutamakan pilihan dalam pencarian, atau algoritma cabang-daan-batas. Ada beberapa variasi pada algoritma tamak:

  • Algoritma tamak murni
  • Algoritma tamak ortogonal
  • Algoritma tamak santai

Teori

Algoritma tamak memiliki sejarah panjang dalam studi optimasi kombinatorial dan ilmu komputer teoretis. Heuristik tamak diketahui memberikan hasil yang kurang optimal pada banyak masalah,[4] sehingga pertanyaan yang wajar adalah:

  • Untuk masalah apa algoritma tamak bekerja secara optimal?
  • Untuk masalah manakah algoritma tamak menjamin solusi yang sekiranya optimal?
  • Untuk masalah manakah algoritma tamak dijamin tidak akan menghasilkan solusi optimal?

Sejumlah besar sastra menjawab pertanyaan-pertanyaan ini untuk kelas masalah umum, seperti matroid, serta untuk masalah khusus, seperti <i>set cover</i>.

Matroid

Artikel utama: Matroid

Matroid adalah struktur matematika yang menggeneralisasi konsep independensi linier dari ruang vektor ke himpunan sembarang. Jika suatu masalah optimasi mempunyai struktur matroid, maka algoritma tamak yang sesuai akan dapat menyelesaikannya secara optimal.[5]

Fungsi submodular

Sebuah fungsi f {\displaystyle f} {\displaystyle f} didefinisikan pada himpunan bagian dari suatu himpunan Ω {\displaystyle \Omega } {\displaystyle \Omega } disebut submodular, jika untuk setiap S , T ⊆ Ω {\displaystyle S,T\subseteq \Omega } {\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)} {\displaystyle f(S)+f(T)\geq f(S\cup T)+f(S\cap T)}.

Misalkan seseorang ingin mencari sebuah himpunan S {\displaystyle S} {\displaystyle S} yang memaksimalkan f {\displaystyle f} {\displaystyle f}. Algoritma tamak, yang membangun satu himpunan S {\displaystyle S} {\displaystyle S} dengan menambahkan elemen secara bertahap yang meningkatkan f {\displaystyle 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)} {\displaystyle (1-1/e)\max _{X\subseteq \Omega }f(X)}.[6] Artinya, ketamakan bermain dalam faktor konstan ( 1 − 1 / e ) ≈ 0.63 {\displaystyle (1-1/e)\approx 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 tamak. Lihat[8] untuk ikhtisarnya.

Masalah lain dengan penjaminan

Masalah lain yang mana algoritma tamak memberikan jaminan yang kuat, tetapi bukan solusi optimal, termasuk

Banyak dari masalah ini memiliki batas bawah yang sesuai, yaitu algoritma tamak tidak berkinerja lebih baik daripada jaminan dalam kasus terburuk.

Pemberlakuan

Algoritma tamak 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 tamak 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 tamak 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 tamak tersebut adalah algoritma Kruskal dan algoritma Prim untuk mencari pohon rentang minimum serta algoritma untuk mencari pohon Huffman optimal.

Algoritmq tamak juga muncul di perutean jaringan. Dengan menggunakan perutean tamak, sebuah pesan diteruskan ke simpul tetangga “terdekat” dengan tujuan. Gagasan tentang lokasi sebuah simpul (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 beredar.

Contoh

Lihat pula

 

Referensi

  1. ↑ Black, Paul E. (2 Februari 2005). "greedy algorithm". Dictionary of Algorithms and Data Structures. U.S. National Institute of Standards and Technology (NIST). Diakses tanggal 17 Agustus 2012.{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link)
  2. ↑ Cormen et al. 2001
  3. ↑ Gutin, Gregory; Yeo, Anders; Zverovich, Alexey (2002). "Traveling salesman should not be greedy: Domination analysis of greedy-type heuristics for the TSP". Discrete Applied Mathematics. 117 (1–3): 81–86. doi:10.1016/S0166-218X(01)00195-0.
  4. ↑ Feige 1998
  5. ↑ Papadimitriou & Steiglitz 1998
  6. ↑ Nemhauser, Wolsey & Fisher 1978
  7. ↑ Buchbinder et al. 2014
  8. ↑ Krause & Golovin 2014
  9. ↑ "Lecture 5: Introduction to Approximation Algorithms" (PDF). Advanced Algorithms (2IL45) — Course Notes. TU Eindhoven. Diarsipkan (PDF) dari versi aslinya tanggal 2022-10-09.

Sumber

Pranala luar

Wikimedia Commons memiliki media mengenai Greedy algorithms.
Konten disalin dari Wikipedia Bahasa Indonesia (lisensi CC BY-SA) Lihat versi asli di Wikipedia

Rekomendasi Pilihan