Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury.

Podobne dokumenty
Temat: Algorytmy zachłanne

Temat: Algorytmy zachłanne

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Ćwiczenie 3 Programowanie dynamiczne

Wstęp do programowania

Temat: Problem najkrótszych cieek w grafach waonych, cz. I: Algorytmy typu label - setting.

Wstęp do programowania

Programowanie dynamiczne i algorytmy zachłanne

Programowanie dynamiczne cz. 2

Temat: Problem minimalnego drzewa Steinera. Definicja problemu. Zastosowania. Algorytm dokładny Hakimi. Algorytmy aproksymacyjne.

Algorytmy zachłanne. dr inż. Urszula Gałązka

Wstp. Warto przepływu to

Programowanie dynamiczne

PROBLEM: SORTOWANIE PRZEZ ODWRÓCENIA METODA: ALGORYTMY ZACHŁANNE

Algorytmy Grafowe. dr hab. Bożena Woźna-Szcześniak, prof. UJD. Wykład 5 i 6. Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie

Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika.

Struktury danych i złożoność obliczeniowa Wykład 2. Prof. dr hab. inż. Jan Magott

Szukanie najkrótszych dróg z jednym ródłem

Wektor o pocztku i kocu odpowiednio w punktach. Prosta zawierajca punkty p i q: pq Półprosta zaczynajca si w punkcie p i zawierajca punkt q:.

Temat: Geometria obliczeniowa cz II. Para najmniej odległych punktów. Sprawdzenie, czy istnieje para przecinajcych si odcinków.

TEORETYCZNE PODSTAWY INFORMATYKI

Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe.

Podstawowe algorytmy i ich implementacje w C. Wykład 9

Plan wykładu. Reguły asocjacyjne. Przykłady asocjacji. Reguły asocjacyjne. Jeli warunki to efekty. warunki efekty

Wstęp do programowania

Literatura. 1) Pojęcia: złożoność czasowa, rząd funkcji. Aby wyznaczyć pesymistyczną złożoność czasową algorytmu należy:

Wprowadzenie do algorytmów. START

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

zajęcia 3. Marcin Andrychowicz, Tomasz Kulczyński,

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

Zastosowanie programu Microsoft Excel do analizy wyników nauczania

Projektowanie i analiza algorytmów

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI STYCZEŃ POZIOM ROZSZERZONY Część I

Podejście zachłanne, a programowanie dynamiczne

Algorytmy i Struktury Danych

Strategia "dziel i zwyciężaj"

import java.util.locale; import java.util.scanner; public class Plecak {

I Powiatowy Konkurs Matematyka, Fizyka i Informatyka w Technice Etap finałowy 10 kwietnia 2013 grupa elektryczno-elektroniczna

Bazy danych. Plan wykładu. Podzapytania - wskazówki. Podzapytania po FROM. Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych.

Algorytmy i struktury danych.

Problem decyzyjny naley do klasy NP. (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM.

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

INFORMATYKA WYBRANE ALGORYTMY OPTYMALIZACYJNE KRYPTOLOGIA.

6.2. Baza i wymiar. V nazywamy baz-

Metody Informatyczne w Budownictwie Metoda Elementów Skoczonych ZADANIE NR 1

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 9. Karol Tarnowski A-1 p.

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

IV Powiatowy Konkurs Matematyka, Fizyka i Informatyka w Technice Etap finałowy 1 kwietnia 2016

Strategia czy intuicja?

Sortowanie danych. Jolanta Bachan. Podstawy programowania

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba

Scenariusz lekcji. podać definicję metody zachłannej stosowanej w algorytmie; wymienić cechy algorytmów zachłannych;

Planowanie adresacji IP dla przedsibiorstwa.

PROWIZJE Menad er Schematy rozliczeniowe

Sortowanie Shella Shell Sort

1) Grafy eulerowskie własnoci algorytmy. 2) Problem chiskiego listonosza

Analiza algorytmów zadania podstawowe

Schemat programowania dynamicznego (ang. dynamic programming)

Bazy danych. Plan wykładu. Pierwsza posta normalna. Druga posta normalna. Wykład 7: Sprowadzanie do postaci normalnych. DDL, DML

M ZASYPANIE WYKOPÓW WRAZ Z ZAGSZCZENIEM

Bazy danych. Plan wykładu. Metody organizacji pliku rekordów. Pojcie indeksu. Wykład 11: Indeksy. Pojcie indeksu - rodzaje indeksów

Zadanie 5 - Algorytmy genetyczne (optymalizacja)

KONKURS PRZEDMIOTOWY MATEMATYCZNY DLA UCZNIÓW GIMNAZJUM

Granular Computing 9999 pages 15 METODY SZTUCZNEJ INTELIGENCJI - PROJEKTY

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

c Marcin Sydow Przepªywy Grafy i Zastosowania Podsumowanie 12: Przepªywy w sieciach

SUPLEMENT SM-BOSS WERSJA 6.15

Interpolacja funkcjami sklejanymi

Temat: Algorytmy aproksymacyjne (przyblione) cz. I. Majc do rozwizania trudny obliczeniowo problem, moemy wybra jedno z dwóch nastpujcych podej:

oraz spełnia warunki: (*) dla wszystkich wierzchołków

Sposoby przekazywania parametrów w metodach.

Metodydowodzenia twierdzeń

OCENIANIE ARKUSZA POZIOM ROZSZERZONY

Projektowanie i analiza zadaniowa interfejsu na przykładzie okna dialogowego.

Multipro GbE. Testy RFC2544. Wszystko na jednej platformie

ODPOWIEDZI I SCHEMAT PUNKTOWANIA ZESTAW NR 2 POZIOM PODSTAWOWY. 1. x y x y

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Sortowanie - wybrane algorytmy

Zapisów 17 ust. 4-6 nie stosuje si do przesuni midzy kategoriami wydatków, które s wynikiem przeprowadzenia procedury zamówie publicznych.

Rys1 Rys 2 1. metoda analityczna. Rys 3 Oznaczamy prdy i spadki napi jak na powyszym rysunku. Moemy zapisa: (dla wzłów A i B)

Bazy danych. Plan wykładu. Klucz wyszukiwania. Pojcie indeksu. Wykład 8: Indeksy. Pojcie indeksu - rodzaje indeksów

Wykład 3. Metoda dziel i zwyciężaj

Art. 1. W ustawie z dnia 20 pa dziernika 1994 r. o specjalnych strefach ekonomicznych (Dz. U. z 2007 r. Nr 42, poz. 274) wprowadza si nast puj ce

Algorytmy sortujące. sortowanie kubełkowe, sortowanie grzebieniowe

Klonowanie MAC adresu oraz TTL

Zaawansowane algorytmy i struktury danych

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Wprowadzanie i zmiany faktur z zakupu, wydruk rejestru zakupu

Sortowanie przez wstawianie Insertion Sort

Konspekt lekcji matematyki klasa 4e Liceum Ogólnokształcce

Definicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n )

Algorytmy grafowe 2. Andrzej Jastrz bski. Akademia ETI. Politechnika Gda«ska Algorytmy grafowe 2

Wykªad 7. Ekstrema lokalne funkcji dwóch zmiennych.

Cash flow projektu zakładajcego posiadanie własnego magazynu oraz posiłkowanie si magazynem obcym w przypadku sezonowych zwyek

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

M E R I D I A N. Sobota, 11 lutego 2006

KONKURENCJA DOSKONA!A

obsług dowolnego typu formularzy (np. formularzy ankietowych), pobieranie wzorców formularzy z serwera centralnego,

Projektowanie algorytmów rekurencyjnych

Transkrypt:

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