Architekstur pendekatan Greedy
LANGKAH 1) Pindai daftar biaya kegiatan, dimulai dengan indeks 0 sebagai Indeks yang dipertimbangkan.
LANGKAH 2) Bila lebih banyak kegiatan yang dapat diselesaikan pada saat kegiatan yang dimaksud telah selesai, mulailah mencari satu atau lebih kegiatan yang tersisa.
LANGKAH 3) Jika tidak ada lagi aktivitas yang tersisa, aktivitas yang tersisa saat ini menjadi aktivitas berikutnya yang dipertimbangkan. Ulangi langkah 1 dan langkah 2, dengan aktivitas baru yang dipertimbangkan. Jika tidak ada aktivitas tersisa, lanjutkan ke langkah 4.
LANGKAH 4) Kembalikan gabungan indeks yang dipertimbangkan. Ini adalah indeks aktivitas yang akan digunakan untuk memaksimalkan throughput.
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 Serakah Algorithms
Kebanyakan algoritma jaringan menggunakan pendekatan serakah. Berikut adalah daftar beberapa contoh algoritma Greedy:
Singkatnya, artikel ini mendefinisikan paradigma greedy, menunjukkan bagaimana optimisasi greedy dan rekursi dapat membantu Anda memperoleh solusi terbaik hingga titik tertentu. Algoritma greedy banyak digunakan untuk memecahkan masalah dalam banyak bahasa sebagai algoritma greedy. Python, C, C#, PHP, Java, dll. Pemilihan aktivitas contoh algoritma Greedy digambarkan sebagai masalah strategis yang dapat mencapai throughput maksimum dengan menggunakan pendekatan serakah. Pada akhirnya, kerugian dari penggunaan pendekatan serakah dijelaskan.
��ࡱ� > �� � ���� ���� � � � � ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ �� �( � � � � J ; �D � � F i l e L a i n � l a n j u t 1 . p p t �F � � K n a p S a c k � k n a p s a c k . p p t x �V � �" A l g o r i t m a K r u s k a l � k r u s k a l . p p t x �V � �" A l g o r i t m a K r u s k a l � k r u s k a l . p p t x �V � �" A l g o r i t m a K r u s k a l � k r u s k a l . p p t x �J � ! � A l g o r i t m a P r i m � p r i m . p p t x �J � $ � A l g o r i t m a P r i m � p r i m . p p t x �F � ' � D i j k s t r a � d j i k s t r a . p p t x �D � , � F i l e L a i n � l a n j u t 1 . p p t �F � / � K n a p S a c k � k n a p s a c k . p p t x �V � 1 �" A l g o r i t m a K r u s k a l � k r u s k a l . p p t x �J � 7 � A l g o r i t m a P r i m � p r i m . p p t x �F � ; � D i j k s t r a � d j i k s t r a . p p t x �� / � 0 � �� �D A r i a l H�� x�b��� X�� ��� ��� l�� `�� u�b`�� � �D C a l i b r i x�b��� X�� ��� ��� l�� `�� u�b`�� � " �D W i n g d i n g s ��� X�� ��� ��� l�� `�� u�b`�� � 0 �D S y m b o l g s ��� X�� ��� ��� l�� `�� u�b`�� � @ �D C o u r i e r N e w X�� ��� ��� l�� `�� u�b`�� � 1P �D T i m e s N e w R o m a n ��� ��� l�� `�� u�b`�� � � � @ � . � @ �n ��? " d � d @ ��� �� �� @@ `` �� H �@ �� l a � �0 � � �� � � �� � @ � � � � � �* ���� ʚ;��� ʚ; <
Algoritma adalah langkah dalam mencari solusi atas sebuah masalah. banyak sekali algoritma yang dapat kita gunakan dalam membangun sebuah program , salah satunya adalah algoritma greedy.
Algoritma greedy merupakan metode yang paling populer untuk memecahkan persoalan optimasi. Greedy sendiri diambil dari bahasa inggris yang artinya rakus, tamak atau serakah .Prinsip algoritma greedy adalah: “take what you can get now!”.
– Memilih beberapa jenis investasi (penanaman modal) – Mencari jalur tersingkat dari Bandung ke Surabaya – Memilih jurusan di Perguruan Tinggi – Bermain kartu remi
Algoritma greedy membentuk solusi langkah per langkah (step by step). Terdapat banyak pilihan yang perlu dieksplorasi pada setiap langkah solusi. Oleh karena itu, pada setiap langkah harus dibuat keputusan yang terbaik dalam menentukan pilihan. Keputusan yang telah diambil pada suatu langkah tidak dapat diubah lagi pada langkah selanjutnya.
Persoalan optimasi (optimization problems): persoalan yang menuntut pencarian solusi optimum. Persoalan optimasi ada dua macam: Maksimasi (maximization) dan Minimasi (minimization) Solusi optimum (terbaik) adalah solusi yang bernilai minimum atau maksimum dari sekumpulan alternatif solusi yang mungkin. Elemen persoalan optimasi: kendala (constraints) danfungsi objektif(atau fungsi optiamsi)
Solusi yang memenuhi semua kendala disebut solusi layak (feasible solution). Solusi layak yang mengoptimumkan fungsi optimasi disebut solusi optimum. Untuk LA kali ini saya akan menjelaskan program pengambilan koin, yang menggunakan algoritma greedy. Bahasa pemrograman yang saya gunakan adalah bahasa C++, dan software yang digunakan adalah borland C.
Keep your knowledge by sharing to everyone
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
cara menyelesaikan algoritma matematika
See full PDFdownloadDownload PDF
See full PDFdownloadDownload PDF
Sorry, preview is currently unavailable. You can download the paper by clicking the button above.
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:
Ciri-ciri Algoritma Greedy
Karakteristik penting dari algoritma Greedy adalah:
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.
Sejarah Serakah Algorithms
Berikut adalah petunjuk penting dari algoritma serakah:
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.