© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 12.

Slides:



Advertisements
Liknande presentationer
En Dag i Ramadan Ramadan
Advertisements

Innehåll, huvudpresentation 4. Rangordning av ordningsstörningar (fråga 1) 5. Problem med nedskräpning (fråga 1a) 6. Problem med skadegörelse (fråga 1b)
Att söka till högskolan
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 4.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning
BENÄMNA lätta ord SPRÅKTRÄNING VID AFASIKg VIII
Sökning och sortering Linda Mannila
Hela Sverige ska leva Totalrapport. Regeringens bidrag har medverkat till kunskapsförmedling?
Leif Håkansson’s Square Dancer Rotation
Eddie Arnold - Make The World Go Away Images colorées de par le monde Déroulement automatique ou manuel à votre choix 1 för dig.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 4.
Kundundersökning mars 2010 Operatör: Västtrafik Trafikslag: Tåg Sträcka: Göteborg - Nässjö.
Elkraft 7.5 hp distans: Kap. 3 Likströmsmotorn 3:1
DoA VT -07 © Anders Broberg, Lena Kallin Westin, P = ((C,F,3), (B,D,3), (C,G,4),(A,F,4), (A,R,4), (C,D,5), (E,G,6), (B,R,6), (A,E,6), (A,C,8)) A.
Budgetpropositionen för 2013 Bertil Holmlund Nationalekonomiska institutionen Uppsala universitet Nationalekonomiska föreningen 24 september 2012.
Förstudie 2. Design 3. Migrering 4 Analys av befintlig miljö –Microsoft Assessment and Planning (MAP) kan användas för att analysera sin miljö.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 7 Träd.
Svenska WebDewey Introduktion
Karolinska Institutet, studentundersökning Studentundersökning på Karolinska Institutet HT 2013.
Kommunpussel Din uppgift är att sortera de organisatoriska delar på nästa sida på ett sådant sätt att det överensstämmer med hur din kommun är organiserad.
V E R S I O N N R 2. 0 T A V E L I D É E R I M I L J Ö.
Bastugatan 2. Box S Stockholm. Blad 1 Läsarundersökning Maskinentreprenören 2007.
Droger och spel Elever som röker (dagligen eller ibland)
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2004 Datastrukturer och algoritmer Föreläsning 3.
Svenska WebDewey Introduktion Harriet Aagaard Svenska Deweyredaktion
Enkätresultat för Grundskolan Elever 2014 Skola:Hällby skola.
15 x 25 meter. Skriv banenavn Skriv designet af Skriv dato MÅL sväng vänster 6 sväng höger 5 runt 7 Vänster runt hund höger runt.
Avgiftsstudie Nils Holgersson år 2007 Bild 1 Baserat på rapportversion
Sveriges utrikeshandel (Andelar i procent) ImportExport EU (25) EFTA NAFTA Central- och Östeuropa Asien - Japan - Kina Övriga 59,9.
Hittarps IK Kartläggningspresentation år 3.
Beräkna en ekvation (metod 1)
Från Gotland på kvällen (tågtider enligt 2007) 18:28 19:03 19:41 19:32 20:32 20:53 21:19 18:30 20:32 19:06 19:54 19:58 20:22 19:01 21:40 20:44 23:37 20:11.
Arbetspensionssystemet i bilder Bildserie med centrala uppgifter om arbetspensionssystemet och dess funktion
TÄNK PÅ ETT HELTAL MELLAN 1-50
Grundskolan år 9 Droger och spel 2008 BILD 1 Elever som röker (dagligen eller ibland)
1 Joomla © 2009 Stefan Andersson 1. 2 MÅL 2 3 Begrepp Aktör: en användare som interagerar med webbplatsen. I diagrammet till höger finns två aktörer:
Kouzlo starých časů… Letadla Pár foteček pro vzpomínku na dávné doby, tak hezké snění… M.K. 1 I Norrköping får man inte.
Best pictures on the internet 2007 Awards 1http:// Är vänsteralliansen trovärdig i Norrköping.
1.Välj en nod vilken som helst och markera den som öppen. Låt den bli rot. A R B F C D E G
Enkätresultat för Fritidshem Elever 2014 Skola:Fritidselever, Gillberga skola.
Innehåll, kommunpresentation 3. Rangordning av ordningsstörningar (fråga 1) 4. Problem med nedskräpning (fråga 1a) 5. Problem med skadegörelse (fråga 1b)
För att uppdatera sidfotstexten, gå till menyfliken: Infoga | Sidhuvud och sidfot Fondbolagsträff 2015.
1(31) Ett omdiskuterat ämne. Vad är det som händer? 2.
Best pictures on the internet 2007 Awards 1http:// (s), (v), och (mp) i Norrköping, gillar inte att vi använder grundlagarna.
Styrteknik: Grundläggande logiska funktioner D2:1
2 Agenda 1. Börja arbeta med Excel Hantera arbetsböcker 3. Formler 4. Formatera 5. Diagram 6. Skriva ut 7. Referenser mellan kalkylblad 8. Arbeta.
Arbetspensionssystemet i bilder Bildserie med centrala uppgifter om arbetspensionssystemet och dess funktion
Högskoleverkets kvalitetskonferens i Umeå 2007
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 11 Trie, Sökning och Sökträd.
Datastrukturer och algoritmer
Enkätresultat för Grundskolan Föräldrar 2014 Skola - Gillberga skola.
Logikprogrammering 21/10 Binära träd
Datastrukturer och algoritmer
Prioritets Köer (Priority Queues ), Graph Data Structures & Problem Solving using Java --Kap 21,14.
Gymnasieskolan år 2 Droger och spel 2008 BILD 1 Elever som röker (dagligen eller ibland)
Ingenjörsmetodik IT & ME 2008
Räkna till en miljard 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,14,15,16,17,18,19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, En miljard är ett.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 13.
Förskoleenkät Föräldrar 2012 Förskoleenkät – Föräldrar Enhet:Hattmakarns förskola.
Bild 1 Prognos för länets arbetsmarknad Stefan Tjb.
Grundskola Elever 2013 Grundskoleenkät - Elever Enhet: Gillberga skola.
När infaller Julafton och hur ofta?
Logikprogrammering 23/10 Binära träd In- och uthantering David Hjelm.
ITM1 Kapitel 8 Datastrukturer Grundläggande datavetenskap, 4p Utgående från boken Computer Science av: J. Glenn Brookshear.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 9 Grafalgoritmer.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 13 Sortering.
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 14.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 14.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Datastrukturer och algoritmer Föreläsning 16.
Presentationens avskrift:

© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 12

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Innehåll  Handledning, labbar, samarbete, etc  Sökträd  Sökning  Delar av kapitel i boken + OH- bilderna

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Handledning/labutlämning  Ingen labhandledning via mail  Alla handlednings/labutlämningsresurser finns i schemat  Ingen handledning/labutlämning sker utanför dessa tider  Gruppövning 5 (den 22/5) ställs in  OU4 kommer att vara rättad och lämnas ut tis 29/5- ons 30/5.  Se schemat för utlämningstider.  C/DV-studenterna skriver tenta den 29e men alla ID- studenter kan passa på att hämta ut sina labbar då.  OU4 kompletteras senast torsdag 7/6

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Samarbete, plagiat och vilseledande vid prov  Samarbete, diskussion kring tex problemställningen, mindre syntaxproblem men inte gemensamt lösande av uppgiften i sin helhet.  Plagiat, oredovisad imitation eller kopiering av ett verk som framställs som egen skapelse; litterär, vetenskaplig eller konstnärlig stöld.  Vilseledande vid prov, fusklappar, inlämnande av kod/rapport som någon annan (helt eller delvis) skrivit

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Hederskodex  The Honour Code is an agreement from the students, individually and collectively:  that they will not give or receive aid in examinations; that they will not give or receive unpermitted aid in class work, in the preparation of reports, or in any other work that is to be used by the instructor as the basis of grading;  that they will acknowledge any (permitted) help they have received and resources they have used for doing such work; that they will make sure they understand the entirety of submitted works, including all parts they received help for;  that they will do their share and take an active part in seeing to it that others as well as themselves uphold the spirit and letter of the Honour Code.  While the faculty alone has the right and obligation to set academic requirements, the students and faculty will work together to establish optimal conditions for honourable academic work.

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Binärt sökträd -repetition  Ett binärt träd som är sorterat med avseende på en sorteringsordning R av etikettypen så att  I varje nod N gäller att alla etiketter i vänster delträd går före N som i sin tur går före alla etiketter i höger delträd.  Alla noder är definierade.

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Binära sökträd  Om trädet är komplett så vet vi att både medel- och värstafallskomplexiteten är O(log n).  Men…  Det tar tid och kraft att se till att trädet är komplett.  Ibland kan man tvingas bygga om hela trädet.  Det räcker att se till att balansen är god…

DoA VT -07 © Anders Broberg, Lena Kallin Westin, AVL-träd  Kallas även höjdbalanserat binärt sökträd.  Adelson – Velskii and Landis, 1962  Noderna är fördelade så att trädet är väl balanserat. För varje enskild nod gäller:  Höjden för vänster och höger delträd skiljer sig åt med högst 1.

DoA VT -07 © Anders Broberg, Lena Kallin Westin, AVL-träd  Vi får värstafallskomplexitet för sökning O(log n) utan att försämra komplexiteten för insättning och borttagning (som alltså också är O(log n)).  Algoritmerna för insättning och borttagning blir lite bökigare att konstruera.  Måste lagra information om höjden på delträden i noderna.

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Exempel på ett AVL-träd

DoA VT -07 © Anders Broberg, Lena Kallin Westin, AVL-träd  Minimala höjdbalanserade träd Bild från sidan 319 i Janlert L-E., Wiberg T., Datatyper och algoritmer, Studentlitteratur, 2000

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Insättning i ett AVL-träd  Det nya elementet gör att trädhöjden förändras och att trädet måste höjdbalanseras.  Man kan hålla reda på delträdens höjd på olika sätt:  Lagra höjden explicit i varje nod  Lagra en balansfaktor för noden (-1, 0, +1 men kan temporärt bli +/-2) oBalansen = h(vänster barn) – h(höger barn)  Förändringen brukar beskrivas som en höger- eller vänsterrotation av ett delträd.  Det räcker med en rotation för att få trädet i balans igen.

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Insättningsalgoritm  Börja med att sätta in elementet som vanligt i ett binärt sökträd.  Starta från den nya noden och leta uppåt tills man hittar en nod x så att ”grandparent” z är obalanserat. Markera x:s förälder y.  Gör en rekonstruering av trädet så här:  Döp om x, y, z till a, b och c baserat på inorder-ordning.  Låt T 0, T 1, T 2 och T 3 vara delträden till x, y och z i inorder-ordning. (Inget av delträden får ha x, y eller z som rot.)  z byts ut mot b, dess barn är nu a och c.  T 0 och T 1 är barn till a och T 2 och T 3 är barn till c.

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Exempel: Insättning i ett AVL-träd x/b z/c y/a T0T0 T1T1 T3T3

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Exempel: Insättning i ett AVL- träd b ac T0T1T2T3 88 1

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Fyra olika rotationer (1) Om b = y kallas det en enkel rotation ”Rotera upp y över z”

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Fyra olika rotationer (2) Om b = y kallas det en enkel rotation ”Rotera upp y över z” T0T0 T1T1 T2T2 T3T3

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Fyra olika rotationer (3) Om b = x kallas det en dubbel rotation ”Rotera upp x över y och sedan över z”

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Fyra olika rotationer (4) Om b = x kallas det en dubbel rotation ”Rotera upp x över y och sedan över z” T0T0 T1T1 T2T2 T3T3 T0T0 T1T1 T2T2 T3T3

DoA VT -07 © Anders Broberg, Lena Kallin Westin, y x T0T0 Anta att vi har balans… T1T1 T2T2... och sen stoppar in något som sabbar den T0T0 Ett annat sätt att beskriva det på

DoA VT -07 © Anders Broberg, Lena Kallin Westin, y x Gör en enkel rotation. Ett annat sätt att beskriva det på T0T0 T1T1 T2T2

DoA VT -07 © Anders Broberg, Lena Kallin Westin, y x Ett annat sätt att beskriva det på T1T1 T2T2 Gör en enkel rotation. T0T0

DoA VT -07 © Anders Broberg, Lena Kallin Westin, yx Ett annat sätt att beskriva det på T1T1 Gör en enkel rotation. T0T0 T2T2

DoA VT -07 © Anders Broberg, Lena Kallin Westin, y x Ett annat sätt att beskriva det på T0T0 T1T1 T2T2 Klart! Gör en enkel rotation.

DoA VT -07 © Anders Broberg, Lena Kallin Westin, y x I ett steg: Ett annat sätt att beskriva det på T0T0 T1T1 T2T2

DoA VT -07 © Anders Broberg, Lena Kallin Westin, y x Ett annat sätt att beskriva det på T0T0 T1T1 T2T2 I ett steg:

Exempel från boken c/z a/x b/y T0T0 T1T1 T2T2 T3T3 T0T0 T1T1 T2T2 T3T3 Döp om x, y, z till a, b och c baserat på inorder-ordning. Låt T0, T1, T2 och T3 vara delträden till x, y och z i inorder-ordning. (Inget av delträden får ha x, y eller z som rot.) z byts ut mot b, dess barn är nu a och c. T0 och T1 är barn till a och T2 och T3 är barn till c.

DoA VT -07 © Anders Broberg, Lena Kallin Westin, z y Ett nytt exempel dubbelrotation Ett annat sätt att beskriva det på

DoA VT -07 © Anders Broberg, Lena Kallin Westin, den här gången stoppar vi in något här Ett annat sätt att beskriva det på z y

DoA VT -07 © Anders Broberg, Lena Kallin Westin, … och tittar på strukturen i Y Ett annat sätt att beskriva det på z y

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Vi får lov att göra en dubbel rotation Ett annat sätt att beskriva det på z y x T0T0 T1T1 T2T2 T3T3

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Ett annat sätt att beskriva det på z y x T0T0 T1T1 T2T2 T3T3 Klart!

DoA VT -07 © Anders Broberg, Lena Kallin Westin, I ett steg... Ett annat sätt att beskriva det på z y x T0T0 T1T1 T2T2 T3T3

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Ett annat sätt att beskriva det på z y x T0T0 T1T1 T2T2 T3T3 I ett steg...

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Borttagning ur ett AVL-träd  Borttagningen börjar som en vanlig borttagning ur ett binärt sökträd.  Men även borttagning ur ett AVL-träd kan störa balansen.  Vi gör en rotation som tidigare för att återställa den (behövs bara enkla rotationer).  När vi återställer balansen på ett ställe kan det uppstå obalans på ett annat…  Måste upprepa balanseringen (eller kontroll av balansen) till dess vi nått roten.

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Flervägs sökträd  Ett m-vägs sökträd (m-way search tree, m-ary search tree) är en generalisering av ett binärt sökträd.  Trädet är ett ordnat träd där varje nod har högst m delträd.  Etiketterna är sekvenser av upp till m-1 värden i stigande sorteringsordning som fungerar som delningspunkter vid sökning.  Oftast är etiketterna nycklar och värdet till en viss nyckel finns i lövet.

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Flervägs sökträd  Till en nod med k+1 delträd, t 0, t 1, …, t k hör en sekvens med värden v 1, v 2, …, v k. Sorteringsvillkoret för trädet är att:  alla värden i t 0 går före v 1 (i sorteringsordningen)  alla värden i t j ligger mellan v j och v j+1 för 1<j<k  alla värden i t k går efter v k  Operationerna blir liknande de för binärt sökträd.  Plattare träd. Höjden = log m n  Mer jobb i noderna

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Exempel Bild från sidan 323 i Janlert L-E., Wiberg T., Datatyper och algoritmer, Studentlitteratur, 2000

DoA VT -07 © Anders Broberg, Lena Kallin Westin, B-träd  Ett B-träd av ordning m är en typ av balanserat m-vägs sökträd som uppfyller följande:  Roten är antingen ett löv eller har minst två barn  Alla noder utom roten och löven har mellan m/2 och m barn  Alla löv är på samma djup

DoA VT -07 © Anders Broberg, Lena Kallin Westin, B-träd  Insättning av nya element görs alltid på den djupaste nivån, i rätt löv för att bevara sorteringsordningen.  En insättning kan leda till att noden blir för stor (dvs > m). Då måste noden delas upp.  Borttagning kan leda till att man måste justera värderna och slå ihop noder eller omfördela värden mellan dem.  B-träd av ordning 3 kallas också 2-3 träd

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Exempel på B-träd: 2-4 träd  Varje nod har 1, 2 eller 3 nycklar och varje icke-löv har 2-4 barn.  Regel för insättning:  Man letar sig fram till rätt löv på liknande sätt som i ett vanligt sökträd.  Den nya nyckeln sätts in där. Om det blir för många nycklar i det lövet splittras det.

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Denna bild och resterande bilder om 2-4 träd kommer från 529 och framåt i Goodrich M. T., Tamassia R., Datastructures and Algorithms in Java, John Wiley & Sons, 1998 och/eller tillhörande OH-material.

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Insert i 2-4 träd  Stoppa in elementen 4, 6, 12  Att stoppa in elementet 15 orsakar en split.  Ersätt den temporära 5-noden med en 3-nod och en 2-nod och flytta upp ett element till föräldern

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Insert i 2-4 träd, forts  Sätt nu in först 3 och sen 5(som orsakar en ny split)

En split kan sprida sig uppåt...

DoA VT -07 © Anders Broberg, Lena Kallin Westin, träd, borttagning  Man letar sig fram till rätt löv på liknande sätt som i ett vanligt sökträd.  Enkla fallet: Det finns flera nycklar i noden, ta bort den som ska bort.  Halvsvåra fallet: Syskonen har ”extra” element som vi kan sno.  Svåra fallet: Vi får tomt och syskonet har bara ett element. Då måste vi göra en ”fuse”- operation.

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Enkla fallet, det finns flera element i noden

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Halvsvåra fallet: Syskonen har ”extra” element som vi kan sno. Kallas ”transfer”

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Svåra fallet: Måste göra en ”fuse”- operation.

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Svåra fallet: Måste göra en ”fuse”- operation som vandrar uppåt i trädet.

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Linjär sökning  Starta från början och sök tills elementet hittat eller sekvensen slut.  Komplexitet  Elementet finns: I medel gå igenom halva listan, O(n)  Elementet saknas: I medel gå igenom hela listan, O(n)  Om listan är sorterad:  Elementet saknas: Räcker i medel att leta genom halva listan n/2, O(n)

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Binär sökning  Om sekvensen har index (tex i en array eller numrerad lista) kan man söka binärt.  Successiv halvering av sökintervallet.  Vi får värsta-falls och medelkomplexitet O(log n).  Jämför med elementet närmast mitten i intervallet.  Om likhet – klart!  Om det sökta värdet kommer före i sorteringsordningen fortsätt sökningen rekursivt i det vänstra delintervallet.  Om det kommer efter i sorteringsordningen fortsätt sökningen rekursivt i det högra delintervallet.

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Exempel:   Sök efter elementet 13.  Linjär sökning: 8 jämförelser innan träff.  Binär sökning: 2 jämförelser innan träff.  Sök efter elementet 10  Linjär sökning: 8 jämförelser innan man ger upp.  Binär sökning: 4 jämförelser innan man ger upp.

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Strängsökning  Specialfall av sökning.  Man söker inte ett enstaka element utan en sekvens av element.  Elementet ofta tecken.  Formellt:  Vi har ett mönster P med längd m och vi söker i en sekven S av längd n där m<<n.

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Första försök till algoritm:  Börja jämföra mönstret med sekvensen med start i position ett.  Jämför mönstret från vänster till höger tills man misslyckas.  Flytta då fram en position i sekvensen och försök igen.  Värsta fallet: Varje element i S avläses m gånger, dvs O(n*m)  I praktiken bättre

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Exempel

DoA VT -07 © Anders Broberg, Lena Kallin Westin, Boyer-Moores algoritm  Två idéer:  Gör matchningen baklänges, med start i mönstrets sista element.  Utnyttja kunskap om mönstrets uppbyggnad och informationen om värdet på den första felmatchande elementet i S för att flytta fram mönstret så långt som möjligt varje gång. oOm det finns upprepningar av element i mönstret så får man bara flytta fram till den högraste förekomsten. oFörskjutningstabell talar om hur långt man får flytta.