ALG#4

ALG#4



234 Rozdział 9. Zaawansowane techniki programowania

problemu. Mimo iź wersje iteracyjne i rekurencyjne są tej samej klasy, to prostota zapisu rekurencyjnego jest najlepszym argumentem za jego zastosowaniem.

Procedura przeszukiwaniu binarnego również może być zaklasyfikowana do metody ,.dziel-i-rządź”, choć „filozoficznie” różni się nieco od schematu ze strony 225. Jest ona dobrym przykładem na to, jak dobry algorytm może przyspieszyć rozwiązanie postawionego problemu, dla którego znana jest prosta, ale nieefektywna metoda (przeszukiwanie liniowe).

9.2.Algorytmy „żarłoczne”, czyli przekąsić coś nadszedł już czas...

Nazwa nowej metody jest bardzo intrygująca, ale w literaturze przedmiotu przyjęło się nazywać pewną klasę metod jako „żarłoczne” (ang. greedy, franc. glouton). Algorytmy te służą do odnajdywania rozwiązań, które mają zastosowanie w odszukiwaniu przepisu na rozwiązanie danego problemu. Przepis ten jest obarczony pewnymi założeniami (ograniczeniami), które mogą na przykład żądać podania rozwiązania optymalnego wg pewnych kryteriów. Chcąc skonstruować ów przepis, mamy do czynienia z szeregiem opcji tworzących zbiór danych wejściowych. Cechą szczególną algorytmu „żarłocznego” jest to, że w każdym etapie poszukiwania rozwiązania wybiera on opcję lokalnie optymalną. W zależności od lego doboru, rozwiązanie globalne może być również optymalne, ale nie jest to gwarantowane. Omawiana metoda najlepiej odpowiada pewnej klasie zadań natury optymalizacyjnej: podać najkrótszą drogę w grafie, określić optymalną kolejność wykonywania pewnych zadań przez komputer etc.

Metoda algorytmów „żarłocznych” odpowiada ludzkiej naturze, gdyż bardzo często otrzymując jakieś zadanie zadowalamy się jego szybkim i w miarę poprawnym rozwiązaniem, choć niekoniecznie optymalnym.

Schemat generalny algorytmu jest następujący:

żarłok(W)

(

ROZW =0; // zbiór pusty

dopóki(nie Znalezione (ROZW) i W *<j>) wykonuj:

I

X-Kybór(W);

jeśli Odpowiada (X) to ROZW=ROZWU (X) ;

)

]eśii Znaleziono(ROZW) zwróć ROZW;


Wyszukiwarka

Podobne podstrony:
ALG 6 226 Rozdział 9. Zaawansowane techniki programowaniaĆwicz. 9-1 Proszę wyprowadzić wzory tłumacz
ALG 8 228 Rozdział 9. Zaawansowane techniki programowania • funkcja KOMB polega na najzwyklejszym po
ALG#0 230 Rozdział 9. Zaawansowane techniki programowania Koszt wyliczenia jednego elementu macierzy
ALG#2 232 Rozdział 9. Zaawansowane techniki programowania I 9 pozornie całą żądaną pamięć, faktyczni
ALG#6 236 Rozdział 9. Zaawansowane techniki programowania części plecaka przeznaczonej na sery y ’ w
ALG$0 240 Rozdział 9. Zaawansowane techniki programowania „programu wanie dynamiczne " •
ALG$2 242 Rozdział 9, Zaawansowane techniki programowania miejscach), chociaż w zoptymalizowanej wer
ALG 3 Rozdział 9Zaawansowane techniki programowania Rozdziały poprzednie (szczególnie 2 i 5) dostarc
ALG 4 224Rozdział 9. Zaawansowane techniki programowania Należy zdawać sobie bowiem sprawę z lego, i
ALG#8 238Rozdział 9. Zaawansowane techniki programowania if(i <n) X[i]=Z/W[i]; I void main() I do
Księgarnia PWN: Joe Celko - SQL. Zaawansowane techniki programowaniaSpis treści O
12 SQL. Zaawansowane techniki programowania 28.    Drzewa i hierarchie w języku
14 SQL. Zaawansowane techniki programowania 33. Optymalizowanie języka
4 SQL. Zaawansowane techniki programowania 2.
6 SQL. Zaawansowane techniki programowania 7.4.    Numery
SQL. Zaawansowane techniki programowania 17.2.6.    Złączenia zewnętrzne i funkcje
10 SQL. Zaawansowane techniki programowania 22. Tabele
Rozdział 1 Rysunek 1.4 Interface programu 3D (Autodesk lnventor 2010) Systemy 3D Są to zestawy progr
assembler?86? 8 196 7. Wybrane techniki programowania TAB 3 TAB 4 Rys. 7.8. W przypadku, gdy tabli

więcej podobnych podstron