Temat: Algorytmy zachłanne

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

Temat: Algorytmy zachłanne

Ćwiczenie 3 Programowanie dynamiczne

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

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

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

Wstęp do programowania

Programowanie dynamiczne i algorytmy zachłanne

Programowanie dynamiczne cz. 2

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

Wstęp do programowania

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

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

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:.

Wstp. Warto przepływu to

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

Planowanie adresacji IP dla przedsibiorstwa.

INFORMATYKA WYBRANE ALGORYTMY OPTYMALIZACYJNE KRYPTOLOGIA.

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

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

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

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

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

stopie szaro ci piksela ( x, y)

Algorytmy i struktury danych.

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

ANALIZA NUMERYCZNA. Grzegorz Szkibiel. Wiosna 2014/15

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

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

Podejście zachłanne, a programowanie dynamiczne

Programowanie dynamiczne

Interpolacja funkcjami sklejanymi

Zastosowanie programu Microsoft Excel do analizy wyników nauczania

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

Ustalenie optymalnego układu lokalizacyjnodystrybucyjnego

Wstęp do programowania

Projektowanie i analiza algorytmów

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

Wprowadzenie do algorytmów. START

Schemat programowania dynamicznego (ang. dynamic programming)

PROCEDURY REGULACYJNE STEROWNIKÓW PROGRAMOWALNYCH (PLC)

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

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

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

Algorytmy i Struktury Danych

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

Dla ułatwienia pracy wydrukuj poni sz instrukcj

6.2. Baza i wymiar. V nazywamy baz-

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

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

{Opracowała Małgorzata Roguska} Tematy lekcji:

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

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

Sortowanie Shella Shell Sort

Strategia czy intuicja?

Skojarzenia. Najliczniejsze skojarzenia: Dokładne skojarzenia o maksymalnej sumie wag w obcionych pełnych grafach dwudzielnych.

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Laboratorium elektryczne. Falowniki i przekształtniki - I (E 14)

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

TEORETYCZNE PODSTAWY INFORMATYKI

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

.! $ Stos jest list z trzema operacjami: dodawanie elementów na wierzch stosu, zdejmowanie elementu z wierzchu stosu, sprawdzanie czy stos jest pusty.

Lab. 02: Algorytm Schrage

Zadanie 5 - Algorytmy genetyczne (optymalizacja)

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

Studium przypadku Case Study CCNA2-ROUTING

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

Strategia "dziel i zwyciężaj"

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

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

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

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Sortowanie danych. Jolanta Bachan. Podstawy programowania

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

PREZENTACJA DZIAŁANIA KLASYCZNEGO ALGORYTMU GENETYCZNEGO

Bazy danych Podstawy teoretyczne

PROWIZJE Menad er Schematy rozliczeniowe

Ekonometria. wiczenia 13 Metoda ±cie»ki krytycznej. Andrzej Torój. Instytut Ekonometrii Zakªad Ekonometrii Stosowanej

Programowanie wspóªbie»ne

Przykªady problemów optymalizacji kombinatorycznej

Multipro GbE. Testy RFC2544. Wszystko na jednej platformie

Metoda podziału i ograniczeń

Projektowanie algorytmów rekurencyjnych

Algorytmy i struktury danych

Programowanie od pierwszoklasisty do maturzysty. Grażyna Koba

Programowanie wspóªbie»ne

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

INSTRUKCJA WYPEŁNIENIA KARTY PROJEKTU W KONKURSIE NA NAJLEPSZY PROJEKT

Bazy danych. Plan wykładu. Przetwarzanie zapyta. Etapy przetwarzania zapytania. Wykład 12: Optymalizacja zapyta. Etapy przetwarzanie zapytania

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Instrukcja obsługi programu MechKonstruktor

Wstęp do Programowania potok funkcyjny

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA. W obu podpunktach zakªadamy,»e kolejno± ta«ców jest wa»na.

Izolacja Anteny szerokopasmowe i wskopasmowe

WYKŁAD 4 PLAN WYKŁADU. Sieci neuronowe: Algorytmy uczenia & Dalsze zastosowania. Metody uczenia sieci: Zastosowania

Granular Computing 9999 pages 15 METODY SZTUCZNEJ INTELIGENCJI - PROJEKTY

CZY WARTO MIE AUTO NA SPÓŁK Z PRACODAWC?

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

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

Transkrypt:

Temat: Algorytmy zachłanne 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. Problem kasjera Problem Kasjer ma wyda reszt, bdc dowoln kwot midzy 0,01$ a 0,99$, przy uyciu minimalnej liczby monet. Rozwizanie oparte na algorytmie zachłannym Najpierw uywamy monety o najwikszej dopuszczalnej wartoci, redukujc w ten sposób problem do wypłacenia mniejszej kwoty. Przykład Aby wyda 0,94 $, kasjer wypłaci: - półdolarówk (zostawiajc do zapłacenia 0,44 $), nastpnie - wierdolarówk (zostaje 0,19 $), - dziesiciocentówk ( zostaje 0,09 $), - piciocentówk (zostaje 0,04 $) i w kocu - cztery jednocentówki 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!!!)

2. Problem wyboru zaj Problem = składajcy si z n proponowanych zaj, do których maj by przydzielone zasoby, takie jak na przykład sala wykładowa, w której moe si odbywa w danej chwili tylko jedno z tych zaj. Kade zajcia maj swój czas rozpoczcia s i oraz czas zakoczenia f i, takie, e Dany jest zbiór S { 1,2,...,n } s i f i. Jeeli zajcia o numerze i zostan wytypowane, to zajmuj zasób czasu s, f [ s i, f i ). Zajcia o numerze i oraz j s zgodne, jeli przedziały [ i f i ) s, i [ ) nie zachodz na siebie ( czyli si f j lub s j fi ). Problem wyboru zaj polega na wyborze najwikszego podzbioru parami zgodnych zaj. Rozwizanie Bez utraty ogólnoci zakładamy, e zajcia s uporzdkowane ze wzgldu na czas zakoczenia: f 1 f... Jeeli powysze załoenie nie jest spełnione, to przed realizacj algorytmu naley posortowa cig czasów zakoczenia (optymalny koszt sortowania O(nlogn). Type Tabs = array[1..n] of Word; Tabf = array[1..n] of Real; var s: Tabs; f: Tabf; procedure ACTIVITY_SELECTOR(s: Tabs; f: Tabf); var i, j: Word; begin A:={1}; j:=1; for i:=2 to n do if s[i] >= f[j] then begin A:=A {i}; j:=i; end; end; Wynikiem powyszej procedury jest zbiór A zawierajcy numery zaj. Zmienna j zawiera ostatnio dodane do A zajcia. 2 f n j j

Przykład i s i f 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

Powyszy schemat ilustruje działanie procedury ACTIVITY_SELECTOR 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. Koszt czasowy Zakładajc, e dane wejciowe s uporzdkowane rosnco według czasów zakoczenia zaj, procedura ACTIVITY_SELECTOR dla n-elemen- towego zbioru zaj działa w czasie Θ(n). Zajcia wybierane procedur ACTIVITY_SELECTOR maj zawsze najwczeniejszy czas zakoczenia wród wszystkich zaj. Po wybraniu wszystkich zaj ze zbioru A pozostaje maksymalna ilo nie zajtego czasu. 3. Ogólne własnoci metody zachłannej Jak przekona si czy zastosowanie strategii zachłannej daje optymalne rozwizanie problemu? Problemy, dla których moe by zastosowana strategia zachłanna maj dwie cechy charakterystyczne: 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. Rónica midzy strategi zachłann a programowaniem dynamicznym polega na tym, e w programowaniu dynamicznym w kadym kroku podejmowane s decyzje, których wybór zaley od rozwiza podproblemów. 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, w przeciwiestwie do wyborów podejmowanych przy strategii programowania dynamicznego. Mona formalnie udowodni (stosujc metod indukcji), e dany problem ma własno wyboru zachłannego.

b) Własno optymalnej podstruktury Problem ma własno optymalnej podstruktury, jeeli optymalne rozwizanie jest funkcj optymalnych rozwiza podproblemów. Ta własno jest równie spełniona dla problemów rozwizywalnych metod programowania dynamicznego. Na przykład dla problemu wyboru zaj własno optymalnej podstruktury polega na tym, e: Jeeli optymalne rozwizanie A tego problemu rozpoczyna si od zaj o numerze 1, to A' = A \{1} jest optymalnym rozwizaniem problemu optymalnego wyboru zaj dla zbioru S' = { i S : s i f 1 }. Przykład Dyskretny problem plecakowy Złodziej rabujcy sklep znalazł n 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. Dy on do zabrania jak najwartociowszego łupu, ale do swojego plecaka nie moe wzi wicej ni W kilogramów. Złodziej nie moe dzieli przedmiotów (zabra do plecaka tylko cz wybranego przedmiotu) ani wielokrotno przedmiotu. Interesuje nas odpowied na pytanie: Jakie przedmioty z puli n wybranych przedmiotów moe zabra złodziej, przy wymienionych wyej ograniczeniach. Dyskretny problem plecakowy nie moe by rozwizany metod zachłann. Czy dyskretny problem plecakowy ma własno wyboru zachłannego? Odpowied: NIE Kontrprzykład 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. 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). i to włanie 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 Przedmiotu2 i Przedmiotu 3 (łczna waga wynosi 50 kg, łczna warto 220 zł). Czy dyskretny problem plecakowy ma własno optymalnej podstruktury? Odpowied: TAK. 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 złodziej moe wybra z n-1 oryginalnych przedmiotów z wyjtkiem j. Okazuje si, e dyskretny problem plecakowy mona rozwiza stosujc technik programowania dynamicznego. Cigły problem plecakowy Cigły problem plecakowy róni si od dyskretnego problemu plecakowego tym, e złodziej moe 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? Odpowied: TAK 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 Dane jak w przykładzie 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. 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? Odpowied: TAK. 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 Sortowanie cigu substancji według kosztu jednostkowego jest realizowane kosztem optymalnym Θ(nlogn). Zasadniczy algorytm rozwizujcy cigły problem plecakowy ma koszt Θ(n). Zatem koszt

łczny wynosi Θ(nlogn). 4. Przykłady zastosowania strategii zachłannej - algorytm kompresji plików metod Huffmana - algorytm Kruskala wyznaczania minimalnego drzewa rozpinajcego grafu