R1T11P5ZL3BNZ

I_R_W14_M37_Java 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ę

R1SPPG5867OSE
Ćwiczenie 1
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.