INF 295 forelesning 13 - kap 6 Prioritetskø (Heap) Hans Fr. Nordhaug (Ola Bø)

Slides:



Advertisements
Liknende presentasjoner
TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Kristian Veøy
Advertisements

Kap.8 Sortering og søking sist oppdatert • Del 1 Søking - lineær søking m/u sorterte elementer - binærsøking - analyse • Del 2 Sortering - ”gamle”
Algoritmer for søk og sortering Førsteamanuensis Alf Inge Wang
Forside Korteste sti BFS Modifikasjon Dijkstra Eksempel Korrekthet Analyse Øving Spørsmål Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no.
Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no
1 Øvingsforelesning Andreas Knudsen Nils Grimsmo
Alg. Dat Øvingsforelesning 5 Kompleksitetsanalyse Torbjørn Moralnd
Kompleksitetsanalyse
Øvingsforelesning 2 Trær og søking i dem, samt litt diverse emner Kristian Veøy
Alg. Dat Øvingsforelesning 3 Grafer, BFS, DFS og hashing Børge Rødsjø
Øvingsforelesning Magnus Haug
Forside Motivasjon Analyse Forside Motivasjon Analyse  -notasjon O og  Relasjoner Klasser Fallgruver Spørsmål Kompleksitetsanalyse Åsmund Eldhuset asmunde.
INF 295 Forelesning 15 - kap 9 Grafer Hans Fr. Nordhaug (Ola Bø)
Sortering og søk. Sortering av data som ligger på en fil Prisipielt to hovedmåter gjøre dette på: 1.Arbeide mot filen 1.Lese en linje, og lese de resterende.
1 Kap 08 Kø. 2 Kø - Definisjon En kø (eng queue) er en lineær struktur hvor elementer kan innsetttes kun i den ene enden av listen, kalt bak, og fjernes.
Mandag 8. November Powerpoint..
INF 295 Algoritmer og datastrukturer Forelesning 21 Merge, Quick og Bøtte, Radix og ekstern sortering Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 7 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 1 - kapittel 1 Introduksjon Hans F. Nordhaug (Ola Bø) (Ketil Danielsen, 2007)
INF 295 forelesning 14 - kap 8 Disjunkt mengde ADT Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 9a Søketrær Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 8 Trær Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 16 - kap 9 Minimalt spenntre og korteste vei i grafer Hans Fredrik Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 11 Når RAM ikke strekker til - B-trær og Utvidbar hashing Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 17 - kap 9 Korteste vei i grafer Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 20 - Kapittel 7 Boble-, innstikk-, Shell-, Heap-, Quick-, Mergesortering Hans Fr. Nordhaug (Ola Bø)
Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 4 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)
INF 295 forelesning 13 - kap 6 Andre prioritetskøer Hans Fr. Nordhaug (Ola Bø)
INF 295 Forelesning 18 - kap 9 Aktivitetsgrafer
INF 295 Algoritmer og datastrukturer Forelesning 6 ADT Lister, Stakker og Køer Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 24 Repetisjon
INF 295 Algoritmer og datastrukturer Forelesning 9b Balanserte (binære) trær Hans Fr. Nordhaug.
INF 295 Forelesning 19 - Dynamisk programmering Korteste vei alle til alle (Floyd) Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 10 Invarianter og Hashing Hans Fr. Nordhaug (Ola Bø)
INF 4130 Eksamen 2008 Gjennomgang.
INF 295 forelesning 12 Repetisjon per 17. februar Hans F. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 5 Algoritmeanalyse Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 22 Teknikker for algoritmeutvikling Hans Fr. Nordhaug/ Ola Bø.
Ortering Mål: Se på forskjellige måter for sortering.
Sorterings- Algoritmer Algoritmer og Datastrukturer.
Prioritetskøer Binære heaper Venstrevridde heaper (Leftist) Skeive heaper (Skew) Binomialheaper Fibonacciheaper Prioritetskøer er viktige i bla. operativsystemer.
INF 295 Algoritmer og datastrukturer Web-spider Oblig 3 Hans Fr. Nordhaug (Ola Bø)
Matematikk 1 årskurs 26. oktober 2009
Kapittel 12 Samlingar Samlingar og datastrukturar Ei samling (collection) blir brukt til å oppbevare og handtere andre objekt ArrayList – klassen.
INF 295 Algoritmer og datastrukturer Forelesning 23 Kompleksitet Hans Fr. Nordhaug/ Ola Bø.
HUSK EKSAMENSTILMELDING Frist: 15. februar. Algoritmer og Datastrukturer 1 Merge-Sort [CLRS, kapitel 2.3] Heaps [CLRS, kapitel 6] Gerth Stølting Brodal.
1 SKOLELABORATORIET Nils Kr. Rossing En praktisk introduksjon til differensialligninger av Nils Kr. Rossing Skolelaboratoriet ved NTNU.
Geometri 1.
Are Raklev Teoretisk fysikk, rom FØ456,
Are Raklev Teoretisk fysikk, rom FØ456,
Are Raklev Teoretisk fysikk, rom FØ456,
Forelesning 4 Are Raklev.
Are Raklev Teoretisk fysikk, rom FØ456,
Tall og algebra Matematikk 1T
Program Frokost serveres Velkommen og introduksjon til dagens tema Heidi Pedersen, Stipendiat, NTNU Svein Bergem, Stipendiat, Nasjonal kompetansetjeneste.
Forsering av fag og fraværsgrense i videregående skole
Kunnskap skaper verdier
Retorikk.
Forelesning 8 Are Raklev.
Matematikk i skole og lærerutdanning
Lokal organisering STUDIELEDERE
Bransjeforum for handel, service, kultur og reiseliv
Informasjonsmøte
Are Raklev Teoretisk fysikk, rom FØ456,
Ә.Тәжібаев “Сырдария ” өлеңі ашық сабақ 7-сынып
Екпетал мектеп – балабақшасы Ана тілі 2 класс Өткізген: Г
“Сыни тұрғыдан ойлауға оқыту” модулі сабақтар топтамасында орындаған: бастауыш сынып мұғалімі:Алимбаева Алмаш Иренгалиевна санаты ІІ.
Коучинг тақырыбы: “Оқыту мен оқудағы жаңа әдіс-тәсілдер”
Utskrift av presentasjonen:

INF 295 forelesning 13 - kap 6 Prioritetskø (Heap) Hans Fr. Nordhaug (Ola Bø)

Prioritetskø Behov for prioritering Printer-kø Prosess-kø Telefon-kø Alarm-kø Event-kø Effektiv implementering av prioritetskø Bruk av prioritetskø Elegante datastrukturer

Modell Operasjoner Comparable deleteMin() insert(Comparable o) (Comparable findMin())

Enkle implementeringer Lenket liste med gjennomsøking innsetting først i lista O(1) deleteMin med søk O(N) Sortert lenket liste innsetting på rett sted O(N) deleteMin() forrest O(1) Binært søketre O(log N) for begge operasjoner Søketre er overkill.

Binær heap Mye brukt for prioritetskøer En heap er et helt fylt binærtre (muligens unntatt nederste nivå som fylles fra venstre ) Kalles et komplett binærtre Et tre med høyden h har mellom 2 h og 2 h+1 -1 noder Høyden er log N Kan lagres i array uten lenker fra index 1. For element i er 2i venstre barn og 2i+1 høyre barn Foreldren til i er i/2 Ingen lenker 2*i og i/2 er meget raske operasjoner 2 >1 (svarer til deling og ganging med 10 i 10-tallsystemet.)

Heap ordningsregel Rota er mindre enn alle sine barn Hvert subtre skal være en heap Rota er det minste elementet og kan finnes i konstant tid

Innsetting Lag et hull i neste ledige plass Kan X plasseres i hullet (X større enn forelderen) er vi ferdig ellers flytte foreldrenoden ned i hullet og lager et nytt hull som vi prøver på nytt. Rotnoden Sentinel (skiltvakt) Kjøretid Worst case O(log N) Gjennomsnitt 2,607 sammenlikninginger dvs: O(1)

deleteMin() Minste er rota Fjerning gir hull Siste element må flyttes Kan siste element plasseres i hullet? Hvis ja er vi ferdig Ellers putter vi minste barn i hullet og hullet får ny plassering Gjenta til siste element får plass. Prosessen kalles perkolering Kjøretid avg og worst case O(log N)

Andre Heap-operasjoner Heap er begrenset til findMin i konstant tid Insert og deletMin er logaritmiske Alle andre operasjoner er lineære og egentlig ikke en del av Heap-ADT Dersom et gitt element kan finnes ved hjelp av en annen datastruktur er følgende logaritmiske decreaseKey increaseKey delete buildHeap O(N) avg and worst case

buildHeap

Anvendelser for prioritetskø Utvelgelsesproblemet Finne det k-te største elementet i en mengde av N elementer Forslag: Lese inn i array, sortere og skrive ut element k. O(N 2 ) med enkel sorteringsalgoritme Lese inn de k første i array, sortere og gå gjennom resten av elementene, erstatte elementer i arrayen hvis noen er store nok. O(Nk)  elementer og k= krever dagevis Lese inn i array, kjøre buildHeap, kjøre k deleteMin O(N+klogN) Lese inn k i array, kjøre buldHeap, sjekk resten mot findMin og insert de som er små nok. O(Nlogk)

Flere anvendelser Event-simulering Eksempel bank med luker Simulering Input: Liste med kundeankomsttider og betjeningstid Kunde stiller seg i kø ved skranke, blir betjent og går Hvor mange luker og kasserere er det behov for? Hendelser: Kunde kommer, Kunde ferdig, Kasse åpnes, Kasse stenges Kan styres fra ticknr eller med løpende behandling av hendelser etter tiden de skjer på. (prioritetskø)

Andre prioritetskøer d-heap Leftist (venstre) heap Skew heap Binomial køer