RE17Q6D6CA3S9
Zdjęcie przedstawia kolorowe kulki o różnych wielkościach na barwnym tle.

I_R_W14_M37_C++ Algorytmy zachłanne

Źródło: Scott Webb, domena publiczna.

Czy wiesz, że za każdym razem, kiedy wrzucasz do automatu monety, płacąc za kawę czy paczkę paluszków, maszyna staje przed nie lada problemem? Podobnie jest w przypadku wypłaty pieniędzy z bankomatu. Nie myślimy o tym zazwyczaj, ale nasza rzeczywistość często porządkowana jest przez świat algorytmów.

Jednym z najprostszych sposobów podejmowania decyzji w takich sytuacjach jest zasada „wybieraj to, co teraz wygląda najlepiej”. To podejście nazywamy algorytmem zachłannym. Nie analizuje on wszystkich możliwych rozwiązań, nie planuje daleko w przyszłość - po prostu na każdym kroku sięga po najbardziej obiecującą opcję.

Zaskakujące jest to, jak często taka prosta strategia działa znakomicie. W wielu urządzeniach, programach i usługach właśnie dzięki niej decyzje podejmowane są szybko, sprawnie i bez zbędnych obliczeń. W tym rozdziale zobaczysz, kiedy „zachłanność” się opłaca, a kiedy prowadzi na manowce, oraz poznasz algorytmy, które dzięki tej prostej idei stały się fundamentem współczesnej informatyki.

Ćwiczenia na rozgrzewkę

R1NPGJ6PNMTQZ
Ćwiczenie 1
1
Polecenie 1

Symulacja interaktywna prezentuje wydawanie reszty zgodnie z algorytmem zachłannym. Wybierz kwotę i zastanów się, jaka jest minimalna liczba banknotów i monet potrzebnych, aby ją wydać. Następnie sprawdź swoje odpowiedzi w symulacji.

R181K7S4SSF4P
Opis wyświetla się w trybie dostępności.
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.

Na samej górze symulacji widnieje napis:

Aby rozpocząć, wpisz kwotę do wydania (maksymalnie 3000 zł), a następnie wybierz „Wydaj”.

Poniżej znajduje się pole Kwota oraz przycisk Wydaj.

Przykład 1:

W pole kwota wypisano liczbę: 37.21.

Po kliknięciu przycisku Wydaj,

Przy napisie: Wydano, pojawiła się wartość 37.21 zł.

Przy napisie: Liczba wykorzystanych banknotów i monet, pojawiła się wartość 6.

Poniżej pojawiły się grafiki banknotów: 20 zł, 10 zł oraz monet: 5 zł, 2 zł, 50 gr, 1 gr.

Przykład 2:

W pole kwota wypisano liczbę: 1278.68 zł.

Po kliknięciu przycisku Wydaj,

Przy napisie wydano pojawiła się wartość 1278.68 zł.

Przy napisie Liczba wykorzystanych banknotów i motet pojawiła się wartość 13.

Poniżej pojawiły się grafiki banknotów: 500 zł, 500 zł, 200 zł, 50 zł, 20 zł oraz monet: 5 zł, 2 zł, 1 zł, 50 gr, 10 gr, 5 gr, 2 gr, 1 gr.

Twoje cele
  • Wyjaśnisz, czym charakteryzują się algorytmy zachłanne.

  • Przeanalizujesz zagadnienie algorytmiczne, jakim jest problem wydawania reszty.

  • Zastosujesz podejście zachłanne przy rozwiązaniu problemów.

  • Wskażesz ograniczenia metody zachłannej oraz wyjaśnisz, dlaczego algorytmy zachłanne nie zawsze znajdują najlepsze rozwiązanie dla danego problemu.