• Nie Znaleziono Wyników

sortowanie pozycyjne i algorytmy zachlanne

N/A
N/A
Protected

Academic year: 2021

Share "sortowanie pozycyjne i algorytmy zachlanne"

Copied!
48
0
0

Pełen tekst

(1)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Sortowanie pozycyjne i algorytmy zachłanne

zaj ˛ecia 3.

Marcin Andrychowicz, Tomasz Kulczy ´nski, Bła˙zej Osi ´nski

(2)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Sortowanie przez zliczanie

Metoda pozwalaj ˛aca sortowa´c wczasie liniowym

Ci ˛ag liczb z zakresu O, 1, ..., M

Dane

5, 1, 4, 5, 1, 0, 4, 5, 1, 3, 5

Zliczamy wyst ˛apienia 0, 1, itd. a˙z do M.

Pomocnicza tablica c

i 0 1 2 3 4 5

(3)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Sortowanie przez zliczanie

Metoda pozwalaj ˛aca sortowa´c wczasie liniowym

Ci ˛ag liczb z zakresu O, 1, ..., M Dane

5, 1, 4, 5, 1, 0, 4, 5, 1, 3, 5 Zliczamy wyst ˛apienia 0, 1, itd. a˙z do M.

Pomocnicza tablica c

i 0 1 2 3 4 5

(4)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Sortowanie przez zliczanie

Metoda pozwalaj ˛aca sortowa´c wczasie liniowym

Ci ˛ag liczb z zakresu O, 1, ..., M Dane

5, 1, 4, 5, 1, 0, 4, 5, 1, 3, 5 Zliczamy wyst ˛apienia 0, 1, itd. a˙z do M. Pomocnicza tablica c

i 0 1 2 3 4 5

(5)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Sortowanie przez zliczanie

Pomocnicza tablica c

i 0 1 2 3 4 5

c[i] 1 3 0 1 2 4 Wstawiamy c[0] zer, c[1] jedynek, itd. Wynik

(6)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Sortowanie przez zliczanie

Pomocnicza tablica c

i 0 1 2 3 4 5

c[i] 1 3 0 1 2 4 Wstawiamy c[0] zer, c[1] jedynek, itd. Wynik

(7)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Sortowanie przez zliczanie

Pomocnicza tablica c

i 0 1 2 3 4 5

c[i] 1 3 0 1 2 4 Wstawiamy c[0] zer, c[1] jedynek, itd. Wynik

(8)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Sortowanie przez zliczanie

Pomocnicza tablica c

i 0 1 2 3 4 5

c[i] 1 3 0 1 2 4 Wstawiamy c[0] zer, c[1] jedynek, itd. Wynik

(9)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Sortowanie przez zliczanie

Pomocnicza tablica c

i 0 1 2 3 4 5

c[i] 1 3 0 1 2 4 Wstawiamy c[0] zer, c[1] jedynek, itd. Wynik

(10)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Sortowanie przez zliczanie

Pomocnicza tablica c

i 0 1 2 3 4 5

c[i] 1 3 0 1 2 4 Wstawiamy c[0] zer, c[1] jedynek, itd. Wynik

(11)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Sortowanie przez zliczanie

Pomocnicza tablica c

i 0 1 2 3 4 5

c[i] 1 3 0 1 2 4

Wstawiamy c[0] zer, c[1] jedynek, itd. Wynik

(12)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Sortowanie przez zliczanie

Dodatkowe wymaganie Tablica o M-elementach.

Nie zawsze mo˙zna pozwoli´c sobie na zu˙zycie takiej ilo´sci pami ˛eci!

Zło˙zono´s´c czasowa Zale˙zy od:

n - długo´sci ci ˛agu M - zakresu liczb

(13)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Sortowanie przez zliczanie

Dodatkowe wymaganie Tablica o M-elementach.

Nie zawsze mo˙zna pozwoli´c sobie na zu˙zycie takiej ilo´sci pami ˛eci!

Zło˙zono´s´c czasowa Zale˙zy od:

n - długo´sci ci ˛agu M - zakresu liczb

(14)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Sortowanie przez zliczanie

Dodatkowe wymaganie Tablica o M-elementach.

Nie zawsze mo˙zna pozwoli´c sobie na zu˙zycie takiej ilo´sci pami ˛eci!

Zło˙zono´s´c czasowa Zale˙zy od:

n - długo´sci ci ˛agu M - zakresu liczb

(15)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Sortowanie przez zliczanie

Dodatkowe wymaganie Tablica o M-elementach.

Nie zawsze mo˙zna pozwoli´c sobie na zu˙zycie takiej ilo´sci pami ˛eci!

Zło˙zono´s´c czasowa Zale˙zy od:

n - długo´sci ci ˛agu M - zakresu liczb

(16)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Sortowanie przez zliczanie

Dodatkowe wymaganie Tablica o M-elementach.

Nie zawsze mo˙zna pozwoli´c sobie na zu˙zycie takiej ilo´sci pami ˛eci!

Zło˙zono´s´c czasowa Zale˙zy od:

n - długo´sci ci ˛agu M - zakresu liczb

(17)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Sortowanie przez zliczanie

Dodatkowe wymaganie Tablica o M-elementach.

Nie zawsze mo˙zna pozwoli´c sobie na zu˙zycie takiej ilo´sci pami ˛eci!

Zło˙zono´s´c czasowa Zale˙zy od:

n - długo´sci ci ˛agu M - zakresu liczb

(18)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Przydatne poj ˛ecia

Definicja 1.

Sortowanie nazywamystabilnymgdy dwa równe elementu z ci ˛agu, pozostawia w tym samym porz ˛adku co przed

wykonaniem algorytmu.

sortowanie przez zliczanie mo˙zna uczyni´c stabilnym Definicja 2.

Sufiksemsłowa nazywamy pewn ˛a jego ko ´ncow ˛a cz ˛e´s´c np. racja jest sufiksem słowa demokracja

(19)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Przydatne poj ˛ecia

Definicja 1.

Sortowanie nazywamystabilnymgdy dwa równe elementu z ci ˛agu, pozostawia w tym samym porz ˛adku co przed

wykonaniem algorytmu.

sortowanie przez zliczanie mo˙zna uczyni´c stabilnym Definicja 2.

Sufiksemsłowa nazywamy pewn ˛a jego ko ´ncow ˛a cz ˛e´s´c

(20)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Sortowanie leksykograficzne

Problem Dane n słów k -literowych.

Nale˙zy posortowa´c je w kolejno´sci leksykograficznej. Pomysł

Sortujemy stabilnie wzgl ˛edem liter na kolejnych pozycjach poczynaj ˛ac od ostatniej, a ko ´ncz ˛ac na pierwszej.

(21)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Sortowanie leksykograficzne

Problem Dane n słów k -literowych.

Nale˙zy posortowa´c je w kolejno´sci leksykograficznej. Pomysł

Sortujemy stabilnie wzgl ˛edem liter na kolejnych pozycjach poczynaj ˛ac od ostatniej, a ko ´ncz ˛ac na pierwszej.

(22)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Kolejno´s´c sortowania

Teza: Po wykonaniu k sortowa ´n słowa s ˛a uporz ˛adkowane wzgl ˛edem swoich k -literowych sufiksów.

Dowód indukcyjny:

Baza indukcji: sortowanie 1-literowych sufiksów. Krok indukcyjny: dwa przypadki:

Ró˙zne litery aababca aabebca Te same litery aababaa aababab

(23)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Kolejno´s´c sortowania

Teza: Po wykonaniu k sortowa ´n słowa s ˛a uporz ˛adkowane wzgl ˛edem swoich k -literowych sufiksów.

Dowód indukcyjny:

Baza indukcji: sortowanie 1-literowych sufiksów. Krok indukcyjny: dwa przypadki:

Ró˙zne litery aababca aabebca Te same litery aababaa aababab

(24)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Kolejno´s´c sortowania

Teza: Po wykonaniu k sortowa ´n słowa s ˛a uporz ˛adkowane wzgl ˛edem swoich k -literowych sufiksów.

Dowód indukcyjny:

Baza indukcji: sortowanie 1-literowych sufiksów. Krok indukcyjny: dwa przypadki:

Ró˙zne litery aababca aabebca Te same litery aababaa aababab

(25)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Kolejno´s´c sortowania

Teza: Po wykonaniu k sortowa ´n słowa s ˛a uporz ˛adkowane wzgl ˛edem swoich k -literowych sufiksów.

Dowód indukcyjny:

Baza indukcji: sortowanie 1-literowych sufiksów. Krok indukcyjny: dwa przypadki:

Ró˙zne litery aababca aabebca Te same litery aababaa aababab

(26)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Kolejno´s´c sortowania

Teza: Po wykonaniu k sortowa ´n słowa s ˛a uporz ˛adkowane wzgl ˛edem swoich k -literowych sufiksów.

Dowód indukcyjny:

Baza indukcji: sortowanie 1-literowych sufiksów. Krok indukcyjny: dwa przypadki:

Ró˙zne litery aababca aabebca Te same litery aababaa aababab OK, dzi ˛eki stabilno´sci.

(27)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Zło˙zono´s´c czasowa

k -krotne uruchomienie sortowania przez zliczanie Zło˙zono´s´c: O(k · (n + Σ))

Σ- wielko´s´c alfabetu.

(28)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Zło˙zono´s´c czasowa

k -krotne uruchomienie sortowania przez zliczanie Zło˙zono´s´c:O(k · (n + Σ))

Σ- wielko´s´c alfabetu.

(29)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Zło˙zono´s´c czasowa

k -krotne uruchomienie sortowania przez zliczanie Zło˙zono´s´c:O(k · (n + Σ))

Σ- wielko´s´c alfabetu.

(30)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Metoda zachłanna

Idea

Wybieramychwilowo(lokalnie) najlepsze mo˙zliwo´sci, które utworz ˛a optymalne rozwi ˛azanie.

(31)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Problem kinomana

Problem

Kinoman ma do dyspozycji repertuar kina, z godzinami rozpocz ˛ecia i zako ´nczenia seansów.

Jak powinien wybiera´c filmy by zobaczy´c ich jak najwi ˛ecej? Rozwi ˛azanie zachłanne

Nale˙zy zawsze wybiera´c film ko ´ncz ˛acy si ˛e najwcze´sniej.

Dowód indukcyjny Oczywisty.

(32)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Problem kinomana

Problem

Kinoman ma do dyspozycji repertuar kina, z godzinami rozpocz ˛ecia i zako ´nczenia seansów.

Jak powinien wybiera´c filmy by zobaczy´c ich jak najwi ˛ecej? Rozwi ˛azanie zachłanne

Nale˙zy zawsze wybiera´c film ko ´ncz ˛acy si ˛e najwcze´sniej. Dowód indukcyjny

(33)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Problem kinomana

Problem

Kinoman ma do dyspozycji repertuar kina, z godzinami rozpocz ˛ecia i zako ´nczenia seansów.

Jak powinien wybiera´c filmy by zobaczy´c ich jak najwi ˛ecej? Rozwi ˛azanie zachłanne

Nale˙zy zawsze wybiera´c film ko ´ncz ˛acy si ˛e najwcze´sniej. Dowód indukcyjny

(34)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Wydawanie reszty

Problem

Mamy do dyspozycji pewne nominały monet, chcieliby´smy wyda´c okre´slon ˛a kwot ˛e.

Jak to zrobi´c za pomoc ˛a minimalnej liczby monet? Rozwi ˛azanie zachłanne

Wybieramy zawsze monet ˛e o najwi ˛ekszym nominale, która mie´sci si ˛e w wydawanej kwocie.

Poprawno´s´c

Kwota 12, dost ˛epne nominały: 1, 4, 8, 10 Wynik algorytmu zachłannego: 10, 1, 1 Rozwi ˛azanie optymalne: 8, 4

(35)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Wydawanie reszty

Problem

Mamy do dyspozycji pewne nominały monet, chcieliby´smy wyda´c okre´slon ˛a kwot ˛e.

Jak to zrobi´c za pomoc ˛a minimalnej liczby monet? Rozwi ˛azanie zachłanne

Wybieramy zawsze monet ˛e o najwi ˛ekszym nominale, która mie´sci si ˛e w wydawanej kwocie.

Poprawno´s´c

Kwota 12, dost ˛epne nominały: 1, 4, 8, 10 Wynik algorytmu zachłannego: 10, 1, 1 Rozwi ˛azanie optymalne: 8, 4

(36)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Wydawanie reszty

Problem

Mamy do dyspozycji pewne nominały monet, chcieliby´smy wyda´c okre´slon ˛a kwot ˛e.

Jak to zrobi´c za pomoc ˛a minimalnej liczby monet? Rozwi ˛azanie zachłanne

Wybieramy zawsze monet ˛e o najwi ˛ekszym nominale, która mie´sci si ˛e w wydawanej kwocie.

Poprawno´s´c

Kwota 12, dost ˛epne nominały: 1, 4, 8, 10 Wynik algorytmu zachłannego: 10, 1, 1 Rozwi ˛azanie optymalne: 8, 4

(37)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Wydawanie reszty

Problem

Mamy do dyspozycji pewne nominały monet, chcieliby´smy wyda´c okre´slon ˛a kwot ˛e.

Jak to zrobi´c za pomoc ˛a minimalnej liczby monet? Rozwi ˛azanie zachłanne

Wybieramy zawsze monet ˛e o najwi ˛ekszym nominale, która mie´sci si ˛e w wydawanej kwocie.

Poprawno´s´c

Kwota 12, dost ˛epne nominały: 1, 4, 8, 10 Wynik algorytmu zachłannego: 10, 1, 1 Rozwi ˛azanie optymalne: 8, 4

(38)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Wydawanie reszty

Problem

Mamy do dyspozycji pewne nominały monet, chcieliby´smy wyda´c okre´slon ˛a kwot ˛e.

Jak to zrobi´c za pomoc ˛a minimalnej liczby monet? Rozwi ˛azanie zachłanne

Wybieramy zawsze monet ˛e o najwi ˛ekszym nominale, która mie´sci si ˛e w wydawanej kwocie.

Poprawno´s´c

Kwota 12, dost ˛epne nominały: 1, 4, 8, 10 Wynik algorytmu zachłannego: 10, 1, 1 Rozwi ˛azanie optymalne: 8, 4

(39)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Wydawanie reszty

Problem

Mamy do dyspozycji pewne nominały monet, chcieliby´smy wyda´c okre´slon ˛a kwot ˛e.

Jak to zrobi´c za pomoc ˛a minimalnej liczby monet? Rozwi ˛azanie zachłanne

Wybieramy zawsze monet ˛e o najwi ˛ekszym nominale, która mie´sci si ˛e w wydawanej kwocie.

Poprawno´s´c

Kwota 12, dost ˛epne nominały: 1, 4, 8, 10 Wynik algorytmu zachłannego: 10, 1, 1 Rozwi ˛azanie optymalne: 8, 4

(40)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Minimalizacja kar

Problem

Firma zwleka z wykonaniem n-zada ´n. Wykonanie i-tego zadania zajmuje di dni, a za ka˙zdy dzie ´n opó´znienia trzeba zapłaci´c zi złotych kary.

W jakiej kolejno´sci nale˙zy wykonywa´c zadania, by zapłaci´c jak najni˙zsz ˛a kar ˛e?

Nieoczywiste rozwi ˛azanie zachłanne

Nale˙zy wybiera´c zadania wzgl ˛edem malej ˛acego współczynnika dizi

(41)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Minimalizacja kar

Problem

Firma zwleka z wykonaniem n-zada ´n. Wykonanie i-tego zadania zajmuje di dni, a za ka˙zdy dzie ´n opó´znienia trzeba zapłaci´c zi złotych kary.

W jakiej kolejno´sci nale˙zy wykonywa´c zadania, by zapłaci´c jak najni˙zsz ˛a kar ˛e?

Nieoczywisterozwi ˛azanie zachłanne

Nale˙zy wybiera´c zadania wzgl ˛edem malej ˛acego współczynnika dizi

(42)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Dowód, przez sprzeczno´s´c

Optymalna kolejno´s´c wykonywania 1, 2, · · · , n, ale dla pewnego k :

zk dk < zk +1 dk +1 Obecne kary: dk· zk+ (dk+dk +1) ·zk +1=dk· zk+dk +1· zk +1+dk· zk +1 Po zamianie miejscami k i k + 1: dk +1·zk +1+(dk+dk +1)·zk =dk·zk+dk +1·zk +1+dk +1·zk Po odj ˛eciu stronami:

dk · zk +1− dk +1· zk >0 bo:

dk +1· zk <dk · zk +1 Sprzeczno´s´c!

(43)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Dowód, przez sprzeczno´s´c

Optymalna kolejno´s´c wykonywania 1, 2, · · · , n, ale dla pewnego k :

zk dk < zk +1 dk +1 Obecne kary: dk· zk+ (dk+dk +1) ·zk +1=dk· zk+dk +1· zk +1+dk· zk +1 Po zamianie miejscami k i k + 1: dk +1·zk +1+(dk+dk +1)·zk =dk·zk+dk +1·zk +1+dk +1·zk Po odj ˛eciu stronami:

dk · zk +1− dk +1· zk >0 bo:

dk +1· zk <dk · zk +1 Sprzeczno´s´c!

(44)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Dowód, przez sprzeczno´s´c

Optymalna kolejno´s´c wykonywania 1, 2, · · · , n, ale dla pewnego k :

zk dk < zk +1 dk +1 Obecne kary: dk· zk+ (dk+dk +1) ·zk +1=dk· zk+dk +1· zk +1+dk· zk +1 Po zamianie miejscami k i k + 1: dk +1·zk +1+(dk+dk +1)·zk =dk·zk+dk +1·zk +1+dk +1·zk Po odj ˛eciu stronami:

dk · zk +1− dk +1· zk >0 bo:

dk +1· zk <dk · zk +1 Sprzeczno´s´c!

(45)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Dowód, przez sprzeczno´s´c

Optymalna kolejno´s´c wykonywania 1, 2, · · · , n, ale dla pewnego k :

zk dk < zk +1 dk +1 Obecne kary: dk· zk+ (dk+dk +1) ·zk +1=dk· zk+dk +1· zk +1+dk· zk +1 Po zamianie miejscami k i k + 1: dk +1·zk +1+(dk+dk +1)·zk =dk·zk+dk +1·zk +1+dk +1·zk Po odj ˛eciu stronami:

dk · zk +1− dk +1· zk >0 bo:

dk +1· zk <dk · zk +1 Sprzeczno´s´c!

(46)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Dowód, przez sprzeczno´s´c

Optymalna kolejno´s´c wykonywania 1, 2, · · · , n, ale dla pewnego k :

zk dk < zk +1 dk +1 Obecne kary: dk· zk+ (dk+dk +1) ·zk +1=dk· zk+dk +1· zk +1+dk· zk +1 Po zamianie miejscami k i k + 1: dk +1·zk +1+(dk+dk +1)·zk =dk·zk+dk +1·zk +1+dk +1·zk Po odj ˛eciu stronami:

dk · zk +1− dk +1· zk >0 bo:

dk +1· zk <dk · zk +1

(47)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Podsumowanie

Metody zachłanne

S ˛a intuicyjne, daj ˛a wydajne algorytmy. Jednak cz ˛esto s ˛a tylko pozornie poprawne!

(48)

Sortowanie pozycyjne i algorytmy zachłanne Sortowanie pozycyjne przez zliczanie leksykograficzne Algorytmy zachłanne Problem kinomana Wydawanie reszty Minimalizacja kar Podsumowanie

Podsumowanie

Metody zachłanne

S ˛a intuicyjne, daj ˛a wydajne algorytmy.

Cytaty

Powiązane dokumenty

Gdy tak się stanie, w ciągu wynikowym będziemy mieli scalone dwa ciągi o liczbie wyrazów będącej sumą elementów ciągów scalanych. Po scaleniu dwóch pierwszych

 czas działania algorytmu dla danych wejściowych o stałym rozmiarze jest stały, stąd przyjmuje się, że czas działania algorytmu da małych rozmiarów danych

Sortowanie pozycyjne od najbardziej znaczącej cyfry Przykład 3 - zastosowanie algorytmu pozycyjnego wg kolejnych cyfr pozycyjnych od najbardziej znaczącej cyfry -

1/2 Francja Grecja Albania Egipt Cypr Hiszpania Belgia Dania. 1/3 Francja Albania Grecja Egipt Cypr Hiszpania

Oprócz sortowania przez łączenie zstępujące typu „dziel i rządź” istnieje sortowanie wstępujące (nierekurencyjne) typu „łącz i zwyciężaj, które jest

Zastosuj kod programu genTest.cpp do wygenerowania serii liczb wejsciowych. Za pomoca kodu sortTest.cpp utw´orz wzorcowy output posortowanych serii, kod u˙zywa funkcji

[∗∗] Wykaż, że algorytm sortowania bąbelkowego na ciągu n–elementowym wykona liniową liczbę za- mian elementów w przypadku (chociaż liczba porównań zawsze będzie

[∗∗] Wykaż, że algorytm sortowania bąbelkowego na ciągu n–elementowym wykona liniową liczbę za- mian elementów w przypadku (chociaż liczba porównań zawsze będzie