@ TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Åsmund Eldhuset asmunde idi.ntnu.no.

Slides:



Advertisements
Liknende presentasjoner
Demens - Test.
Advertisements

Min måte å få ut agresjonen på...
Hvordan skrive en vitenskapelig artikkel?
Tabeller av objekter Klassen ArrayList
De dårige følelsene. Veiene ut..
22 tips for den faglitterære forfatteren
eDialog24 Operator Nyheter og endringer i versjon Sentinel eDialog24 AS Ingvald Ystgaards vei 3A 7047 Trondheim Telefon: Faks:
Bruke Gmail 3a Gmail er et e-postprogram.
MERKELIG ! Her er en liten matematisk øvelse som helt sikkert
Skriveprosessen Fra tanke til tekst.
@ TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Åsmund Eldhuset asmunde idi.ntnu.no.
TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Kristian Veøy
Noen matematiske nøtter
AP - Arbeidsplan Vi jobber med arbeidsplanen nesten hver dag.
PowerPoint laget av Bendik S. Søvegjarto Konsept, tekst og regler av Skage Hansen.
Blooms taksonomi for kunnskap
Masterforedrag 2006 Mats Erik Smestad. Masteroppgave Use of Kernighan-Lin in an IDS.
Forside Korteste sti BFS Modifikasjon Dijkstra Eksempel Korrekthet Analyse Øving Spørsmål Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no.
@ TDT4120 Algoritmer og datastrukturer Introduksjon til øvingsopplegg og programmering i Python Åsmund Eldhuset asmunde stud.ntnu.no.
Dijkstras algoritme Åsmund Eldhuset asmunde *at* stud.ntnu.no
Forside Introduksjon Fibonacci-tall Memoisering DP Neste uke Spørsmål Introduksjon til memoisering og dynamisk programmering Åsmund Eldhuset asmunde *at*
Teoriøving 4 (1) Strongly connected component: ”det maksimale settet med noder slik at for alle nodepar (u,v) i settet finnes kantene u -> v og v -> u.
1 Øvingsforelesning Andreas Knudsen Nils Grimsmo
Øvingsforelesning 3 Grafer, BFS, DFS og hashing
Kompleksitetsanalyse
Korrekt dybde først-søk
Åsmund Eldhuset asmunde stud.ntnu.no folk.ntnu.no/asmunde/algdat/
Ø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.
Generelt I/O if/else Funksjoner Lists Løkker Dictionaries Annet Listebehandling Klasser Python med noen algdat-anvendelser Åsmund Eldhuset asmunde *at*
INF 295 Forelesning 15 - kap 9 Grafer Hans Fr. Nordhaug (Ola Bø)
Jæger: Robuste og sikre systemer INF150 Programmering mandag 2.10 Default values – standardverdier ved oppstart MER OM: Sub-prosedyrer og sub-funksjoner.
Eksamenstips.
Klargjøring fra forrige gang
Om øvelse 9 Vedlikehold av data Databaser. Øvelse 9 I øvelse 8 så vi på: –Registrering av informasjon om hjelpere To små utvidelser av øvelse 8: –Endring.
Kap 07 Stakk I dette kapitlet skal vi se på datastrukturen stakk.
NEWS Et uvurdelig hjelpemiddel i hverdagen. Hva skal vi gjennom i dag Hva er news? Hva brukes news til? Programmer og grupper Noen ord og uttrykk Noen.
Dynamisk programmering
Agenda Velkommen til nye medlemmer!
PowerPoint laget av Bendik S. Søvegjarto Konsept, tekst og regler av Skage Hansen.
INF 295 Algoritmer og datastrukturer Forelesning 7 ADT Lister, Stakker og Køer 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ø)
Hans Fr. Nordhaug (Ola Bø)
INF 295 forelesning 13 - kap 6 Andre prioritetskøer Hans Fr. Nordhaug (Ola Bø)
INF 295 Algoritmer og datastrukturer Forelesning 9b Balanserte (binære) trær Hans Fr. Nordhaug.
INF 295 Algoritmer og datastrukturer Forelesning 10 Invarianter og Hashing Hans Fr. Nordhaug (Ola Bø)
Dynamiske nettsider PHP Del 2 – Kontrollstrukturer.
Hvordan kan foreldre bruke de vangligste funksjonene i Itslearning.com
INF 4130 Eksamen 2008 Gjennomgang.
Oppgaver til kodegenerering etc. INF-5110, 2013 Oppgave 1: Vi skal se på koden generert av TA-instruksjonene til høyre i figur 9.10 i det utdelte notatet,
Magnus Haug Algoritmer og Datastrukturer
Parallellisering av Coin3D for Systems in Motion av Sveinung Thunes.
INF 295 forelesning 12 Repetisjon per 17. februar Hans F. Nordhaug (Ola Bø)
123 Data - Førstehjelp Krokelvdalen Skole. Hva skal vi lære Slå på/av datamaskinen Hva som må til for å komme på internett Hvilke typer kommunikasjonsformer.
Sterke og 2-sammenhengende komponeneter, DFS
Nummer 8-10 H. Aschehoug & Co Sehesteds gate 3, 0102 Oslo
Inf1000 (Uke 5) Arrayer, filer og tekst
Finne feil - Debugging Introduksjon til sortering.
Matematikk 1 årskurs 26. oktober 2009
Matematikk LUB Elise Klaveness
Å skrive tale. Å skrive en tale I den klassiske retorikken delte man opp taleskrivningsprosessen i fem faser: inventio, dispositio, eloqutio, memoria.
Registrering av testresultater fra mobiltelefon
Registrering av testresultater Trinnene i prosessen Logg deg inn på Admin-sidene Opprett en ny test Legg til testresultater Registrer.
Skriv inn prosjekttittelen her Navn Lærerens navn Skole
INF5110 – 5. og 7. mai 2015 Stein Krogdahl, Ifi, UiO
Begynnerkurs i Python Realfagskonferansen 2019 Henrik H. Løvold
IN3030 – Effektiv parallellprogrammering Uke 1 2. del, våren 2019
Utskrift av presentasjonen:

@ TDT4120 Algoritmer og datastrukturer Trær og søking i dem, samt litt diverse emner Åsmund Eldhuset asmunde idi.ntnu.no

Preorder, inorder og postorder traversal / tree walk Tre marginalt forskjellige utgaver av DFS Ofte er man interessert i å gjøre en bestemt operasjon på nodene man støter på i løpet av DFS Pre-, in- og postorder sier noe om hvilken rekkefølge nodene skal behandles i Preoder: Behandle en node første gang du treffer den Inorder (kun binære trær): Når du treffer en node, sender du først søket videre i venstre barnenode, så behandler du selve noden, så sender du søket videre i høyre barnenode Postorder: Send søket videre i barnenodene først, og behandle selve noden til slutt, rett før du forlater noden

Preorder, inorder og postorder traversal / tree walk Hvordan implementerer vi dette? Søk som startes i en bestemt node utføres ved å starte nye søk på barnenodene – dette er en såkalt rekursiv struktur, så da kan vi benytte rekursjon (du utfører en oppgave ved å utføre den samme oppgaven på en mindre mengde data) Merk: alle traverseringsmetodene implementeres med DFS (og man vil uunngåelig oppdage nodene i prefix-rekkefølge – men man kan velge å behandle nodene i en annen rekkefølge)

Dybde først-søk med stack Her er det lett å gå i fellen ved å prøve å ta koden for bredde først-søk og bare bytte ut køen med en stack Det fungerer i og for seg i trær, men gir gale resultater i en graf Vi må etterligne virkemåten til rekursjonen

Operatortrær En måte å representere aritmetiske uttrykk på Infix-traversering vil skrive ut uttrykket i infix- notasjon (måten vi er vant med å lese matematiske uttrykk) Postfix-traversering vil skrive ut uttrykket i reverse Polish notation (RPN) RPN ble brukt i kalkulatorer i gamle dager RPN trenger verken parenteser eller presedens Evaluering av et RPN-uttrykk bruker en stack Tall skal pushes på stacken Operatorer popper de to øverste tallene fra stacken og pusher resultatet

Noen tips til debugging Hva gjør man hvis programmet krasjer, henger eller skriver ut feil svar? Programmer som henger kan avbrytes med Ctrl-C, så får man en stacktrace Kilden til feilen er som regel ikke der det krasjer/henger Hvis krasjen skyldes at en bestemt variabel har gal verdi: prøv å spore bakover og se hvor den verdien kommer fra Test hver metode for seg Sjekk at metoden får riktige parametre (kan ikke forvente at en metode gir riktig svar hvis den jobber på gale data) Lag egne datasett og test med dem Gå gjennom programmet på papir Sjekk at du faktisk har implementert algoritmen riktig

Noen tips til debugging Kan bruke fancy IDE'er med tilhørende debuggere, men en velplassert print er ofte like bra (dessuten går det raskere)

Highscorelista Minner om at det ikke er nødvendig å gjøre det som praksisøvingen foreslår at skal gjøres Skal du høyt opp på lista, må du ofte gjøre noe helt annet Hvis du har sittet og knalloptimalisert python- koden din og fremdeles ikke klarer å klatre på listene, er det et tegn på at du trenger en bedre algoritme

Øvingsgrupper For dem som føler at de trenger hjelp med faget Grupper på studenter møter en undass to timer i uken Vil antageligvis bli satt i gang om halvannen uke Påmelding åpner over helgen (Magnus annonserer fremgangsmåten)

Exchange students English translations of the practical assignments are available If needed, we will provide a student assistant to translate the theoretical assignments Please contact me if you would like such assistance

Red-black trees Les gjennom rotasjon, innsetting og sletting slik at det er "kjent stoff", men ikke legg vekt på å huske det (åpen bok på eksamen!) Prøv dog å få en forståelse for hvordan de fem fargereglene sørger for et "noenlunde balansert" tre