Klargjøring fra forrige gang

Slides:



Advertisements
Liknende presentasjoner
Kombinatorikk for lærerstudenter
Advertisements

Hvordan skrive en vitenskapelig artikkel?
Tabeller av objekter Klassen ArrayList
Litt mer om PRIMTALL.
Statistikk og sannsynlighetsregning
@ 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
Kontrollstrukturer (Kapittel 3)
Algoritmer for søk og sortering Førsteamanuensis Alf Inge Wang
Ulike sorteringsmetoder Kompleksitet av dem
Forelesning nr.2 INF 1411 Elektroniske systemer
Gjenfinningssystemer og verktøy II
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 Trær og søking i dem, samt litt diverse emner Åsmund Eldhuset asmunde idi.ntnu.no.
Eksempel AOA (Activity On Arc)
1 Øvingsforelesning Andreas Knudsen Nils Grimsmo
Øvingsforelesning 2 Trær og søking i dem, samt litt diverse emner Kristian Veøy
Mer grunnleggende matte: Forberedelse til logistisk regresjon
Om Øvelse 7 Stoff relatert til øvelse 7 Generering av tilfeldige tall Bruk ting vi har lært før.
P-MP modeller. LOG530 Distribusjonsplanlegging 2 2 Det skal opprettes p fasiliteter (lager) for å betjene en gitt mengde kunder. Kundenodene er også potensielle.
The Postmans Problem. LOG530 Distribusjonsplanlegging 2 2 Mista har fått i oppdrag å vedlikeholde veiene i landsdelen. Dette er et eksempel på den klassiske.
P-CP modeller. LOG530 Distribusjonsplanlegging 2 2 Det skal opprettes p fasiliteter for å betjene en gitt mengde kunder. Kundenodene er også potensielle.
Repetisjon kap 6,7,8.
Algoritmiske metoder Innhold: Effektivitetsbetraktninger Programmeringsteknikker Datastrukturer Algoritmer tilknyttet datastrukturene Lærebok: Hafting/Ljosland:
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.
Kapittel 11 Rekursjon Å tenke rekursivt Rekursjon er ein programmeringsteknikk der ein metode kallar seg sjølv for å fullføre ei oppgåve For å kunne.
Muntlige presentasjoner
Oppgaver 1)Vi anser hvert av de seks utfallene på en terning for å være like sannsynlig og at to ulike terningkast er uavhengige. a)Hva er sannsynligheten.
Kap 10 Graf.
Hvordan uttrykke krav Kapittel 4.4. Innledning Målet er å samles rundt ett entydig språk som ikke kan misforståes eller feiltolkes. Gjør sporbarheten.
Repetisjon av JSP Variabler, tabeller, if-setninger, for/while-løkker
Dynamisk programmering
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 Algoritmer og datastrukturer Forelesning 9a Søketrær 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 Algoritmer og datastrukturer Forelesning 2 - kapittel 1 Hans F. Nordhaug (Ola Bø)
INF 295 Forelesning 18 - kap 9 Aktivitetsgrafer
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ø)
Dynamiske nettsider PHP Del 2 – Kontrollstrukturer.
Dynamiske nettsider PHP Del 1 – variable. PHP  PHP (Personal Home Page)  Fritt tilgjengelig programmeringsspråk  åpen kildekode  Plattformuavhengig.
NÅ SKAL VI LÆRE OM LIKNINGER.
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
Kapping av plater Mål: Vi skal lage komponenter for en møbelfabrikk ut fra standardiserte plater på 12 x 24 dm. Komponentene har lengde og bredde oppgitt.
1 INF5110 – 23. april, 2013 Svar på noen oppgaver til kap. 8 Beklager noe trykkfeil og rot på forelesningene Håper dette er bedre (lagt ut 24/4) Nå fredag.
1 INF5110 – 23. april, 2013 Noen oppgaver til kap. 8 Dette er en bedre utgave av oppgavene, lagt ut 24. april Nå fredag (26/4): Det blir ikke undervisning.
Alg. Dat Øvingsforelesning 11 Dynamisk programmering, grådighet
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ø.
Sorterings- Algoritmer Algoritmer og Datastrukturer.
Regresjon Petter Mostad
LOG530 Distribusjonsplanlegging
Matematikk 1 årskurs 26. oktober 2009
Matematikk/literacy LUB
1 INFO231: Programutvikling F11: Rekursjon 11. mars 2003 INFO231 – Programutvikling Rekursjon.
Memoisering og dynamisk programmering Magnus Botnan botnan at stud.ntnu.no 23/
Statistikk Forkurs Hva er statistikk? undersøke registrere lage oversikt→ Presentasjon av informasjon formidle Arbeidet med statistikk kan vi dele.
Sudoku Mål: Lage et enkelt system som løser Sudoku-oppgaver.
Brøk Regneartene.
TDT4105 Informasjonsteknologi, grunnkurs
De fire regneartene.
LIKNINGER MED EN OG TO UKJENTE.
4 forskjellige måter å løse 2-grad likning
Utforskende undervisning A – Forarbeid
Utskrift av presentasjonen:

Klargjøring fra forrige gang f(n): Det antall elementære operasjoner vi kommer fram til i algoritmen g(n): En eller annen referansefunksjon, gjerne n, n2, nlogn eller liknende O: Verste fall, mest mulig arbeid (for eksempel i if-setninger) Ω: Beste fall, minst mulig arbeid Θ: Både verste og beste kan uttrykkes med samme g

Eksempel: Har funnet ut at vår algoritme i verste fall utføres 2n2+8n+3 ganger og i beste fall n2/2 + 5n + 3 ganger Verste fall: Siden 2n2+8n+3 <= 4n2 når n>=5 har vi f(n)єO(n2) Beste fall: Siden n2/2 + 5n + 3 >= n2/2 når n>=0, har vi f(n)єΩ(n2) Siden g(n)=n2 for begge tilfeller, får vi f(n)єΘ(n2)

Programmeringsteknikk der en metode kaller seg selv Rekursjon Programmeringsteknikk der en metode kaller seg selv

Eksempel: Fakultet n! = n * (n-1)! og 1! = 1 5! = 5 * 4! 4! = 4 * 3! 3! = 3 * 2! 2! = 2 * 1! 1! = 1 2! = 2 * 1 = 2 3! = 3 * 2 = 6 4! = 4 * 6 = 24 5! = 5 * 24 = 120

Oppbygging En basis – enkelt tilfelle som kan beregnes/utføres direkte (1! = 1) Et rekursjonstrinn der problemet splittes i et eller flere ny(e) problem(er) av samme type, men enklere enn det opprinnelige (n! = n * (n-1)! ) Enklere betyr i denne sammenhengen nærmere basis (n-1 er nærmere 1 enn n er)

Tenkemåte Anta at vi har løst problemet for de(t) enklere problemet/ene. Ikke tenk på hvordan dette skal løses! Bruk løsningen til å løse det opprinnelige problemet. Husk å sette opp løsningen for basis. Se algoritme 2.1 side 23

Alternativ: iterasjon Rekursjon krever mye ressurser under kjøring Hvis det er like enkelt å lage ei løkke, ikke bruk rekursjon! Rekursjon brukes når det er mye mer komplisert å programmere ikke-rekursivt

Et eksempel der rekursjon er beste løsning: Tårnet i Hanoi Har n ringer som skal flyttes fra en pinne til en annen. Har en tredje pinne som kan brukes til mellomlagring underveis Alle ringene har forskjellig størrelse. Ingen ring får ligge over en mindre ring Bare en ring får flyttes om gangen

Tårnet i Hanoi med 5 ringer B C Start Flytt ringene fra A til C ved hjelp av B

Tårnet i Hanoi med 5 ringer Ikke-rekursiv tankegang A B C Start A B C Flytt en og en ring

Tårnet i Hanoi med 5 ringer Rekursiv tankegang A B C Start A B C Flytt 4 ringer til B

Tårnet i Hanoi med 5 ringer Rekursiv tankegang A B C Start A B C Flytt 4 ringer til B A B C Flytt største ring på plass

Tårnet i Hanoi med 5 ringer Rekursiv tankegang A B C Start A B C Flytt 4 ringer til B A B C Flytt største ring på plass A B C Flytt de 4 minste på plass

Finn summen av n tall

Finn summen av n tall Løsning 1: Summen av n tall er summen av de n-1 første tallene pluss det siste

Finn summen av n tall Løsning 1: Summen av n tall er summen av de n-1 første tallene pluss det siste Løsning 2: Summen av n tall er summen av de n/2 første pluss summen av de n/2 siste

Finn summen av n tall Løsning 1: Summen av n tall er summen av de n-1 første tallene pluss det siste Løsning 2: Summen av n tall er summen av de n/2 første pluss summen av de n/2 siste Løsning 3: Summen av n tall er summen av de n/2 tallene vi får når vi summerer to og to av dem

Finn summen av n tall Løsning 1: Summen av n tall er summen av de n-1 første tallene pluss det siste Løsning 2: Summen av n tall er summen av de n/2 første pluss summen av de n/2 siste Løsning 3: Summen av n tall er summen av de n/2 tallene vi får når vi summerer to og to av dem Se algoritme 2.6 side 32

Finn en bestemt verdi i en sortert tabell - binærsøkealgoritmen Sjekk midterste element Hvis det er det vi leter etter, er vi ferdige Hvis det vi leter etter er mindre, let videre i første halvdel Hvis det vi leter etter er større, let videre i andre halvdel Fortsett til vi enten finner det vi leter etter, eller vi ikke har flere plasser å lete Eks: Finn 8 i tabellen 0, 2, 4, 5, 6, 8, 9, 13, 17

Kompleksitetsberegninger for rekursive algoritmer Fakultetsalgoritmen: T(n) = T(n-1) + 1 Tårnet i Hanoi: T(n) = 2T(n-1) + 1 Summasjonsalgoritmene Løsning 1: T(n) = T(n-1) + 1 Løsning 2: T(n) = 2T(n/2) + 1 Løsning 3: T(n) = T(n/2) + n/2 Binærsøkealgoritmen: T(n) = T(n/2) + 1

Generell regel Gjelder når vi har uttrykk på formen T(n) = aT(n/b) + cnk Hvis bk < a vil T(n) є Θ(nlogba) Hvis bk = a vil T(n) є Θ(nklogn) Hvis bk > a vil T(n) є Θ(nk)

Oppgaver 2.1-2 side 28 2.2-7 side 39 2.1 side 45