KWALIFIKACJA INF3 - STYCZEŃ 2023

PYTANIE NR 1.
Metoda zachłanna konstruowania algorytmów polega na
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Metoda zachłanna polega na podejmowaniu w każdym kroku decyzji lokalnie najlepszej (pozornie najkorzystniejszej) według przyjętego kryterium, bez cofania wyboru. Pozostałe opisy dotyczą innych paradygmatów: dziel i zwyciężaj (podział), przeszukiwanie (szukanie w danych) oraz rekurencja (odwołanie do siebie).

Pełne wyjaśnienie:

Metoda zachłanna (greedy) to strategia konstruowania algorytmów, w której w każdym kroku wybiera się decyzję lokalnie najlepszą według pewnego kryterium (np. najmniejszy koszt, największy zysk, najwcześniejsze zakończenie). Kluczowe jest to, że algorytm nie analizuje wszystkich możliwości naraz i zwykle nie cofa wcześniejszych decyzji. Dlatego poprawna odpowiedź opisuje "wybieranie rozwiązań, które w danym kroku wydają się najkorzystniejsze".

Warto pamiętać o typowej pułapce: zachłanność nie zawsze gwarantuje optimum globalne. Daje poprawny wynik tylko w klasach problemów, które mają odpowiednie własności (intuicyjnie: lokalnie najlepszy wybór nie blokuje uzyskania najlepszego wyniku końcowego). W praktyce programistycznej często rozpoznaje się to po tym, że da się uzasadnić, iż po dokonaniu lokalnego wyboru pozostaje podproblem tego samego typu, a dokonany wybór może należeć do rozwiązania optymalnego.

Dlaczego pozostałe odpowiedzi są błędne?

  • "Podziale problemu na podproblemy w celu uzyskania problemów łatwych do rozwiązania" opisuje podejście dziel i zwyciężaj (divide and conquer), gdzie problem rozbija się na mniejsze części, rozwiązuje niezależnie i scala wyniki (np. sortowanie przez scalanie).
  • "Przeszukiwaniu zbioru danych aż do momentu znalezienia rozwiązania" pasuje do przeszukiwania (np. liniowego, BFS/DFS, brute force), a nie do zachłannej konstrukcji opartej o lokalne kryterium wyboru.
  • "Odwołaniu się funkcji lub definicji do samej siebie" to definicja rekurencji, czyli techniki opisu/implementacji, która może występować w różnych algorytmach (także niezachłannych).

Na egzaminie warto zwracać uwagę na słowa-klucze: "w każdym kroku wybiera najlepsze" → zachłanny; "dzieli na podproblemy i scala" → dziel i zwyciężaj; "wywołuje samo siebie" → rekurencja; "przeszukuje aż znajdzie" → przeszukiwanie/brute force.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Metoda zachłanna to strategia, w której algorytm w każdym kroku wybiera decyzję lokalnie najlepszą według przyjętego kryterium (np. największy zysk, najmniejszy koszt), licząc, że doprowadzi to do dobrego wyniku końcowego.
Lokalnie najlepsza decyzja może zablokować lepsze rozwiązanie w kolejnych krokach. Zachłanność działa poprawnie tylko w problemach, które mają własność "bezpiecznego wyboru" (da się uzasadnić, że taki wybór może należeć do optimum).
Zachłanny wybiera jedną "najlepszą" opcję w danym kroku i idzie dalej, zwykle bez cofania. Brute force/przeszukiwanie sprawdza wiele możliwości (czasem wszystkie) aż znajdzie rozwiązanie lub najlepszy wynik.
Klasyczne przykłady to: wybór aktywności (dobór niekolidujących przedziałów), kodowanie Huffmana, niektóre algorytmy grafowe oraz dobór monet w systemach, gdzie zachłanność jest poprawna. Na egzaminie ważna jest sama idea lokalnych decyzji.
"Dziel i zwyciężaj" polega na rozbiciu problemu na mniejsze podproblemy, rozwiązaniu ich (często rekurencyjnie) i scaleniu wyników. Zachłanność nie musi dzielić problemu; wybiera lokalnie najlepszy krok i buduje rozwiązanie sekwencyjnie.
Nie. Rekurencja to sposób definiowania/implementacji (funkcja wywołuje samą siebie). Algorytm zachłanny to strategia podejmowania decyzji. Można mieć algorytm rekurencyjny, który nie jest zachłanny, i odwrotnie.
Często mylą zachłanność z "dziel i zwyciężaj" (bo oba brzmią jak metoda rozwiązywania problemów) albo z samym "przeszukiwaniem". Pomaga wypatrywanie frazy: "w każdym kroku wybiera najkorzystniejsze".
Gdy potrzebujesz szybkiego, prostego rozwiązania i wiesz, że problem spełnia warunki poprawności zachłanności albo dopuszczasz rozwiązanie przybliżone. W aplikacjach może to dotyczyć planowania, doboru zasobów lub prostych heurystyk.
Trzeba uzasadnić, że istnieje "bezpieczny wybór" w każdym kroku (lokalna decyzja nie psuje możliwości osiągnięcia optimum) oraz że po wyborze pozostaje podproblem tego samego typu. W przeciwnym razie warto szukać DP lub pełnego przeszukiwania.
Ucz się rozpoznawania po opisach: zachłanny (lokalnie najlepszy krok), dziel i zwyciężaj (podział i scalenie), programowanie dynamiczne (optymalne podproblemy i pamiętanie wyników), rekurencja (samowywołanie), przeszukiwanie (sprawdzanie możliwości).
info

To pytanie poprawnie rozwiązuje 64% zdających egzamin. średnie

Według specjalistów z branży: "Metoda zachłanna polega na podejmowaniu w każdym kroku decyzji lokalnie najlepszej (pozornie najkorzystniejszej) według przyjętego kryterium, bez cofania wyboru."

Źródła:

  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, "Wprowadzenie do algorytmów" (Introduction to Algorithms), rozdział: Algorytmy zachłanne (edycje PL różnią się numeracją rozdziałów).
  • MIT OpenCourseWare, "Introduction to Algorithms" – materiały o algorytmach zachłannych (Greedy Algorithms): https://ocw.mit.edu/courses/6-006-introduction-to-algorithms-fall-2011/ (dostęp: 2026-03-01)
  • CP-Algorithms (Algorithms for Competitive Programming), artykuł "Greedy algorithms" (definicja i przykłady): https://cp-algorithms.com/ (sekcja Greedy) (dostęp: 2026-03-01)

Materiały:

  • Podręczniki/rozdziały z podstaw algorytmiki: paradygmaty projektowania algorytmów
  • Materiały kursowe o algorytmach zachłannych (warunki poprawności, kontrprzykłady)
  • Zadania maturalne/egzaminacyjne z informatyki dotyczące strategii algorytmicznych

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego