Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury. Algorytm zachłanny ( ang. greedy algorithm) wykonuje zawsze działanie, które wydaje si w danej chwili najkorzystniejsze. Wybiera zatem lokalnie optymaln moliwo w nadziei, e doprowadzi ona do globalnie optymalnego rozwizania. 1. Przykłady zastosowania techniki zachłannej a) Problem kasjera Definicja problemu WP: Kwota reszty do wydania r (1 r w i r Z) oraz nominały monet (banknotów) w 1, w 2,, w n, które mog by wykorzystane w danym systemie monetarnym do wydania reszty o wartoci r. Zakładamy, e cig nominałów jest tak okrelony, e moliwe jest poprawne wydanie reszt r i kady nominał jest dostpny w dowolnej wielokrotnoci. WK: Sposób wydania reszty r taki, e liczba uytych monet jest najmniejsza. Rozwizanie oparte na algorytmie zachłannym Krok1 : Sortujemy nominały malejco wg wartoci Krok 2: Realizujemy proces ustalania nominałów do wydania wartoci reszty, uywajc najpierw monety o najwikszym nominale wartoci, redukujc w ten sposób problem do wypłacenia mniejszej kwoty. 1
Przykład 1 Kasjer ma wyda reszt r=0,94$, w=0,99$, nominały: 0,5$, 0,25$, 0,1$, 0,05$, 0,01$ Aby wyda 0,94$, kasjer wypłaci: - 0,5$ (zostawiajc do zapłacenia 0,44 $), - 0,25$ (zostaje 0,19 $), - 0,1$ (zostaje 0,09 $), - 0,05$ (zostaje 0,04 $) i w kocu - 4*0,01$ W sumie kasjer wypłaci osiem monet. Jest to minimalna liczba i faktycznie algorytm zachłanny jest optymalny dla monet amerykaskich. Jak jest dla innych systemów monetarnych? (Sprawd!!!) Koszt algorytmu zachłannego rozwizujcego problem kasjera: - koszt sortowania: O(nlogn) lub O(n) gdy mona zastosowa sortowanie przez zliczanie, - koszt wyboru monet: O(n), - koszt całkowity: O(nlogn) lub O(n) w zalenoci od uytej metody sortowania. b) Problem wyboru zaj WP : Zbiór n przedziałów czasowych S = {[ s i f i )} i 1.. n, =, takich, e i f i którym przydzielony jest okrelony zasób. (Przykład: Przedziały czasowe to proponowane godziny wykładów, które bd si odbywały w tej samej sali, która jest zasobem przydzielonym do wykładów.) s, WK: Podzbiór zbioru S, który jest moliwie najwikszy i zawiera przedziały parami zgodne. (Przykład: Wybór moliwie najwikszej liczby wykładów, które nie powoduj kolizji czasowej). 2
Przedziały [ ) i f i s, i [ f ) s j, j s zgodne gdy si f j s j fi Rozwizanie oparte na algorytmie zachłannym Krok I: Sortujemy przedziały niemalejco po kocach f i f 1 f... 2 f n lub. Krok II: Do podzbioru wynikowego dodajemy przedział o moliwie najmniejszej wartoci f i zgodny z przedziałem dodanym do podzbioru w poprzednim kroku. WYBOR_ZAJEC(s, f); // s, f tablice przedziałów czasowych rozpoczcia // posortowane niemalejco wg f { A={1}; j=1; // A podzbiór indeksów wybranych przedziałów) for (i=2; i<=n; i++) if (s[i] >= f[j]) { A=A {i}; j=i; } } Koszt algorytmu zachłannego rozwizujcego problem wyboru zaj: - koszt sortowania: O(nlogn) lub O(n) gdy mona zastosowa sortowanie przez zliczanie, - koszt wyboru monet: O(n), - koszt całkowity: O(nlogn) lub O(n) w zalenoci od uytej metody sortowania. Przykład 2 3
f i nr s i 1 1 4 2 3 5 1 2 3 0 6 3 1 4 5 7 5 3 8 6 5 9 4 1 5 1 4 1 4 6 7 6 10 8 8 11 9 8 12 10 2 13 7 1 4 8 1 4 9 1 4 8 10 1 4 8 11 12 14 11 1 4 8 1 4 8 11 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 czas 4
Powyszy schemat ilustruje działanie procedury WYBOR_ZAJEC na 11- elementowym zbiorze zaj. Kady wiersz na rysunku odpowiada jednej iteracji ptli "for". Strzałka w lewo wskazuje zajcia odrzucone, strzałka w prawo - zajcia wybrane i dodane do zbioru A. Zajcia wybierane procedur WYBOR_ZAJEC maj zawsze najwczeniejszy czas zakoczenia wród wszystkich zaj. Po wybraniu wszystkich zaj ze zbioru A pozostaje maksymalna ilo nie zajtego czasu. 2. Własno wyboru zachłannego i optymalnej podstruktury Jak przekona si czy zastosowanie strategii zachłannej daje optymalne (poprawne) rozwizanie problemu? Problemy, dla których moe by zastosowana strategia zachłanna spełniaj dwie własnoci: własno wyboru zachłannego, własno optymalnej podstruktury a) Własno wyboru zachłannego Jeeli wybory "lokalne" s optymalne, to wybór "globalny" (ostateczny) jest optymalny. W algorytmie zachłannym wybory s podejmowane jako najlepsze (z punktu widzenia zadania) w danej chwili. Wybory podejmowane w algorytmie zachłannym nie s zalene od wyborów przeszłych. Mona formalnie udowodni (stosujc metod indukcji), e dany problem ma własno wyboru zachłannego. W problemie kasjera raz zakwalifikowany do wydania reszty nominał nie jest zmieniamy w nastpnych krokach algorytmu. Wybór kolejnych nominałów zaley tylko od aktualnej wartoci reszty do wydania, a nie od wybranych wczeniej nominałów. 5
W problemie wyboru zaj raz wybrany przedział nie jest wymieniany. Kolejny wybierany przedział jest sprawdzany co do zgodnoci tylko z ostatnio dodanym do rozwizania. b) Własno optymalnej podstruktury Problem ma własno optymalnej podstruktury, jeeli optymalne rozwizanie jest funkcj optymalnych rozwiza podproblemów. W przypadku problemu kasjera własno optymalnej podstruktury polega na tym, e jeeli ze zbioru wynikowego nominałów usuniemy nominał najwyszy n k uyty do wydania reszty, to pozostałe elementy rozwizania bd tworzyły optymalny wynik dla wartoci reszty równej r-l k *n k, gdzie l k oznacza liczb uytych monet o nominale n k. W Przykładzie 1: r = 0,94$, n k = 0,5$, l k = 1, wynik: 1*0,5+1*0,25+1*0,1+1*0,5+4*0,01 r-l k *n k = 0,55$, wynik: 1*0,25+1*0,1+1*0,5+4*0,01 jest optymalny dla wartoci reszty równej 0,55$ Własno optymalnej podstruktury polega w przypadku problemu wyboru zaj na tym, e jeeli optymalne rozwizanie A tego problemu rozpoczyna si od zaj o numerze 1, to A' = A \{1} jest optymalnym rozwizaniem problemu dla zbioru S' = { i S : s i f 1 } czyli dla zbioru wszystkich zaj, które zaczynaj si nie wczeniej ni o czasie f 1. W Przykładzie 2: S: i 1 2 3 4 5 6 7 8 9 10 11 s i 1 3 0 5 3 5 6 8 8 2 12 f i 4 5 6 7 8 9 10 11 12 13 14 Kolorem róowym został zaznaczony zbiór wynikowy A, a niebieskim zbiór S. 6
3. Dyskretny problem plecakowy WP: S ={s i } i=1..n - zbiór przedmiotów; i-ty przedmiot ma warto c i złotych i way w i kilogramów, gdzie c i i w i s nieujemnymi liczbami całkowitymi; warto graniczna W udwig plecaka. Kady z przedmiotów way nie wicej ni W, a łczna waga wszystkich przedmiotów przekracza W. WK: Taki podzbiór S zbioru S, e łczna waga przedmiotów zbioru S jest nie wiksza od W, a łczna warto przedmiotów zbioru S jest moliwie najwysza. Uwaga!!! Nie moe dzieli przedmiotów (zabra do plecaka tylko cz wybranego przedmiotu) ani wielokrotno przedmiotu. Czy dyskretny problem plecakowy moe by rozwizany metod zachłann? Czy dyskretny problem plecakowy ma własno wyboru zachłannego? Przykład 4 Dane: n=3. Zbiór wybranych przedmiotów składa si z nastpujcych elementów: - Przedmiot 1 o wadze 10 kg i wartoci 60 zł - Przedmiot 2 o wadze 20 kg i wartoci 100 zł - Przedmiot 3 o wadze 30 kg i wartoci 120 zł Plecak ma maksymaln pojemno 50 kg. 7
Kryterium wyboru przy zastosowaniu metody zachłannej jest cena jednostkowa, czyli cena 1 kg przedmiotu. Według tego kryterium najwysz cen jednostkow ma : - Przedmiot 1 (6 zł/kg), potem - Przedmiot 2 (5 zł/kg), w kocu - Przedmiot 3 (4 zł/kg). Przedmiot 1 zostałby wybrany jako pierwszy. Nastpny wybrany byłby Przedmiot 2. Do plecaka nie trafiłby Przedmiot 3, poniewa wszystkie trzy przedmioty maj za du wag łczn (60 kg). Rozwizanie polegajce na wyborze Przedmiotu 1 i Przedmiotu 2 nie jest optymalne. Rozwizaniem optymalnym jest natomiast wybór Przedmiotu 2 i Przedmiotu 3 (łczna waga wynosi 50 kg, łczna warto 220 zł). Dyskretny problem plecakowy nie ma własnoci wyboru zachłannego. Czy dyskretny problem plecakowy ma własno optymalnej podstruktury? Dyskretny problem plecakowy wykazuje cech optymalnej podstruktury. Rozwamy najwartociowszy ładunek plecaka o masie nie wikszej ni W. Jeeli usuniemy z tego ładunku przedmiot j o wadze w j, to pozostajcy ładunek jest najwartociowszym zbiorem przedmiotów o wadze nie przekraczajcej W - w j, jakie mog by wybrane z n-1 oryginalnych przedmiotów z wyjtkiem j. Wniosek: Dyskretny problem plecakowy nie moe by rozwizany w oparciu o strategi zachłann. Problemy, które maj własno optymalnej podstruktury, a nie spełniaj własnoci wyboru zachłannego mog by rozwizane technik programowania dynamicznego. 8
4. Cigły problem plecakowy Cigły problem plecakowy róni si od dyskretnego problemu plecakowego tym, e mona zabiera ułamkowe czci przedmiotów (Przedmioty trzeba teraz raczej nazywa substancjami). Cigły problem plecakowy moe by rozwizany metod zachłann? Czy dyskretny problem plecakowy ma własno wyboru zachłannego? Algorytm 1) Policzy cen jednostkow kadego przedmiotu. 2) Zabra najwiksz moliw ilo najbardziej wartociowej substancji. 3) Jeli zapas tej substancji si wyczerpał, a w plecaku wci jest jeszcze wolne miejsce, złodziej wybiera nastpn pod wzgldem ceny jednostkowej substancj i wypełnia ni plecak. 4) Kroki 2 i 3 s powtarzane do momentu, gdy plecak bdzie ju pełen. Powyszy algorytm wymaga, aby substancje były posortowane według malejcej ceny jednostkowej. Przy tym załoeniu wybór okrelony w algorytmie ma własno wyboru zachłannego. Przykład 5 Dane jak w Przykładzie 4 dla dyskretnego problemu plecakowego. Przypomnijmy: - Przedmiot 1 (Substancja 1) o wadze 10 kg i wartoci 60 zł (6 zł/kg) - Przedmiot 2 (Substancja 2) o wadze 20 kg i wartoci 100 zł (5 zł/kg) - Przedmiot 3 (Substancja 3) o wadze 30 kg i wartoci 120 zł (4 zł/kg) Plecak ma maksymaln pojemno 50 kg. 9
Rozwizanie: Złodziej wkłada do plecaka : 10 kg Substancji 1 (warto 60 zł), 20 kg Substancji 2 (warto 100 zł), 20 kg Substancji 3 (warto 80 zł) Łczna warto wynosi: 60 zł + 100 zł + 80 zł = 240 zł. Czy cigły problem plecakowy ma własno optymalnej podstruktury? Jeeli usuniemy z optymalnego ładunku w kilogramów pewnej substancji j, to pozostajcy ładunek powinien by najwartociowszym ładunkiem o wadze co najwyej W-w, który złodziej moe skompletowa z n-1 oryginalnych substancji, plus w j - w kilogramów substancji j. Koszt czasowy algorytmu zachłannego rozwizujcego cigły problem placekowy Sortowanie cigu substancji według kosztu jednostkowego jest realizowane kosztem optymalnym O(nlogn) lub O(n), gdy mona zastosowa sortowanie przez zliczanie. Wybór przedmiotów wg ma koszt O(n). Zatem koszt łczny wynosi O(nlogn) lub O(n), w zalenoci od uytej metody sortowania. 10