1-b. integer array frd; begin. integer x; for x:= 1step 1 until N do. end; 1-c

Like dokumenter
UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Eksamen i IN 110, 18. mai 1993 Side 2 Del 1 (15%) Vi skal se på prioritetskøer av heltall, der vi hele tiden er interessert i å få ut den minste verdi

Eksamen iin115, 14. mai 1998 Side 2 Oppgave 1 15 % Du skal skrive en prosedyre lagalle som i en global character array S(1:n) genererer alle sekvenser

Eksamen iin115 og IN110, 15. mai 1997 Side 2 Oppgave 1 Trær 55 % Vi skal i denne oppgaven se på en form for søkestrukturer som er spesielt godt egnet

... Når internminnet blir for lite. Dagens plan: Løsning: Utvidbar hashing. hash(x) katalog. O modellen er ikke lenger gyldig ved

8(1) 5(1) g 2 (0) 5(2)

Repetisjon: Binære. Dagens plan: Rød-svarte trær. Oppgave (N + 1)!

Løsnings forslag i java In115, Våren 1998

Obligatorisk oppgave 1 INF1020 h2005

Løsningsforslag og sensorveiledning til eksamen i. IN110 våren Generelt:

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel )

MAT1030 Forelesning 25

INF2220: Forelesning 2

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Roger Antonsen

Matchinger i ikke-bipartite grafer

KONTINUASJONSEKSAMEN I FAG ALGORITMER OG DATASTRUKTURER

IN 115 Fasitforslag til Eksamen 1997 Omskrevet til Java. 1. april 2000

MAT1030 Forelesning 25

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Dag Normann

MAT1030 Diskret Matematikk

Løsnings forslag i java In115, Våren 1996

Binære søketrær. Et notat for INF1010 Stein Michael Storleer 16. mai 2013

EKSAMEN. Dato: 28. mai 2018 Eksamenstid: 09:00 13:00

Forelesning 24. Grafer og trær. Dag Normann april Vektede grafer. En kommunegraf

Dynamisk programmering Undervises av Stein Krogdahl

E K S A M E N. Algoritmiske metoder I. EKSAMENSDATO: 11. desember HINDA / 00HINDB / 00HINEA ( 2DA / 2DB / 2EA ) TID:

Dagens stoff er hentet fra kapittel 9 i læreboka, samt kapittel 20.5 (som vi «hoppet over» sist)

Vektede grafer. MAT1030 Diskret matematikk. En kommunegraf. En kommunegraf. Oppgave

Del 1(8%) 5 h. Del 2(42%)

Merk: Olav Lysne og Anne Salvesen

A 1 B 1 D 1 H 1 H 2 D 2 B 2 E 1 E 2 I 1 I 2...

Løsnings forslag i java In115, Våren 1999

INF3/4130 PRØVE-EKSAMEN MED SVARFORSLAG Gjennomgås 1/ , (lille aud.)

KONTINUASJONSEKSAMEN

Definisjon. I et binært tre har hver node enten 0, 1 eller 2 barn

INF2220: Forelesning 2. Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7)

Definisjon av binært søketre

INF2220: Forelesning 2

Algoritmer og Datastrukturer

KONTROLLSTRUKTURER. MAT1030 Diskret matematikk. Kontrollstrukturer. Kontrollstrukturer. Eksempel (Ubegrenset while-løkke)

Hashing: Håndtering av kollisjoner

INF1010 Rekursive metoder, binære søketrær. Algoritmer: Mer om rekursive kall mellom objekter Ny datastruktur: binært tre

Forelesning 2. Flere pseudokoder. Representasjoner av tall. Dag Normann januar 2008 KONTROLLSTRUKTURER. Kontrollstrukturer. Kontrollstrukturer

INF Algoritmer og datastrukturer. Hva er INF2220? Algoritmer og datastrukturer

Uke 5 Disjunkte mengder

INF oktober Stein Krogdahl. Kap 23.5: Trær og strategier for spill med to spillere

Fra Kap.10 Binære søketre (BS-tre) Sist oppdatert Definere en abstrakt datastruktur binært søketre. Vise hvordan binær søketre kan brukes

Notater til INF2220 Eksamen

Algoritmer og Datastrukturer

INF110 Algoritmer og datastrukturer TRÆR. Vi skal i denne forelesningen se litt på ulike typer trær:

LØSNINGSFORSLAG, EKSAMEN I ALGORITMER OG DATASTRUKTURER (IT1105)

Algoritmer og Datastrukturer IAI 21899

Hva er en algoritme? INF HØSTEN 2006 INF1020. Kursansvarlige Ragnar Normann E-post: Dagens tema

Kap. 4: Ovenfra-ned (top-down) parsering

Sist forelesning snakket vi i hovedsak om trær med rot, og om praktisk bruk av slike. rot. barn

INF Repetisjon: Hvordan bygge treet og analysere? 8. september Typisk situasjon. De problematiske syntaks-diagrammene

MAT1030 Diskret matematikk

Plan: Parameter-overføring Alias Typer (Ghezzi&Jazayeri kap.3 frem til 3.3.1) IN 211 Programmeringsspråk

Kap.4 del 2 Top Down Parsering INF5110 v2005. Arne Maus Ifi, UiO

Definisjon: Et sortert tre

Datatyper og typesjekking

Kap.4, del 2: Top Down Parsering Kap. 5, del 1: Bottom Up Parsing INF5110, 7/ Legger ut en oppgave til kap. 4 (se beskjed).

Datatyper og typesjekking

Forelesning 33. Repetisjon. Dag Normann mai Innledning. Kapittel 11

E K S A M E N. Algoritmiske metoder I. EKSAMENSDATO: 11. desember HINDA / 99HINDB / 99HINEA / 00HDESY ( 2DA / 2DB / 2EA / DESY )

EKSAMEN. Dato: 18. mai 2017 Eksamenstid: 09:00 13:00

Oppgaver til kodegenerering etc. INF-5110, 12. mai, 2015

Kap 6.3: Symboltabellen Foiler ved Birger Møller-Pedersen Forelest av Stein Krogdahl 17. mars Dagens tema:

UNIVERSITETET I OSLO

INF2220: Forelesning 1

MAT1030 Diskret matematikk

Innledning. MAT1030 Diskret matematikk. Kapittel 11. Kapittel 11. Forelesning 33: Repetisjon

Repetisjon: Statiske språk uten rekursive metoder (C1 og C2) Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7)

Dagens tema Kjøresystemer (Ghezzi&Jazayeri 2.6, 2.7)

Oppgaver til INF 5110, kapittel 4, med svarforslag Gjennomgått torsdag 14. febr Disse foilene er justert 15/2, kl. 11

LO118D Forelesning 12 (DM)

INF2220: Forelesning 1

Datatyper og typesjekking

Binære søketrær. En ordnet datastruktur med raske oppslag. Sigmund Hansen

Løsningsforslag til INF110 h2001

Binære trær: Noen algoritmer og anvendelser

Løsningsforslag for utvalgte oppgaver fra kapittel 3

UNIVERSITETET I OSLO

MAT1030 Forelesning 2

Dagens tema. INF Algoritmer og datastrukturer. Binærtrær. Generelle trær

INF1000 HashMap. Marit Nybakken 2. november 2003

Datatyper og typesjekking

MAT1030 Diskret Matematikk

Dagens tema: Kjøresystemer II

Kap. 5, Del 2: SLR(1), LR(1)- og LALR(1)-grammatikker INF /2-2011

Løsningsforslag EKSAMEN

Vi som skal undervise. MAT1030 Diskret matematikk. Hva er diskret matematikk? Hva er innholdet i MAT1030?

Oppgaver til INF 5110, kapittel 4, med svarforslag Gjennomgås tirsdag 21. febr. 2012

EKSAMEN med løsningsforslag

KONTINUASJONSEKSAMEN

INF1020 Algoritmer og datastrukturer GRAFER

6. oktober Dagens program: Første time: Andre time, gjesteforelesning: Uavgjørbarhet. Stein Krogdahl. (Ikke pensum, egne foiler legges ut)

Alg. Dat. Øvingsforelesning 3. Grafer, BFS, DFS og hashing. Børge Rødsjø

INF 3/ oktober : Avslutte Branch and Bound 23.6: Trær og strategier for spill med to spillere

Transkript:

Eksamen IN110,15.mai1995 Forslagtilsvar Del 1 1-a For å ha fullgodt svar bør man hvertfall ha satt på d-verdiene på boksene,men det skal vel ikke væredramatisk trekkikarakterenomdetteikkeergjort. 1

1-b Fra hver node følger vi veien opp til roten, og setter inn forlengs-pekere. På guren under er dette de stiplede pekerne, og ut fra det skulle programmet være greit. procedure fyllretning(frd, retning); integer array frd; integer array retning; integer x; for x:= 1step 1 until N do y:= x; while frd(y)<>0 do!eller: "y<>r" ; retning(frd(y), x):=y; y:=frd(y); 1-c Under forholdene gitt i oppgave vil vi få lange lister ut fra hver hash-indeks, og ved en god hash-algoritme vil disse bli omtrent like lange,og dermed av lengde ca.`n/hashlengde'. I gjennomsnittvil vi måtteletehalvelisten(omelementeterder, ellers hele listen). Dettegir en søketid O(n=hashlengde), og siden hashlengden er konstant,er riktig svar O(n).Merk atseparat kjeding ogsåkalles open hashing ilæreboka. 2

1-d Det er håp omatole kan klare åsortere5elmentermed7sammenlikninger utfrafølgende: For å kunne gjøre de riktige ombyttinger i sekvensen slik at den blir sortert, må man nne uthvilken permutasjon input-sekvensen eriforholdtil den riktig sorterte sekvensen. Deter ialt5!=120mulige slikepermutasjoner,ogmankansepådissesombladeneietdesisjonstre (se side 242 i læreboka). Et lemma i boka sier da at et desisjonstre må ha høyde med minst d log 2 120e, somer7. Såutfradetteerdethåp(ognærmerekling viser atdetogsåer mulig, men dette var det ikke meningen at man skulle gå inn på).teorem 7.5 i læreboka kan ogsåbrukes. Del 2 2-a ref (node) procedure gentre(n,s); integer n; character array S; ref (node) array stakk(1:n+1);! Maxn+1 elementer; integer topp; integer i; ref (node) rn; for i:=1 step 1 until 2 n +1do if S(i) ='N'then rn:- new node; rn.vsub:- stakk(topp-1); rn.hsub:- stakk(topp); topp:=topp-1;stakk(topp):- rn; end else if S(i) ='T'then topp:= topp+1; stakk(topp):- none; end else ERROR;! Egentlig unødvendig, antarriktig input ;!Nåskal`topp'være1; gentre:- stakk(1); 3

Vi tillater altså at man antar at input-sekvensen er riktig. Når det gjelder stakken kan jo den med fordel programmeres separat, men for å få helt full uttelling må man da også programmere stakken,enten ved en array(max lengde n + 1)eller ved en liste-struktur. Sentrale deler av programmet over kan da ta seg slik ut: if S(i) ='N'then rn:- new node; rn.hsub:- pop; rn.vsub:-pop; push(rn); end else if S(i) ='T'then push(none) else...; Alternativ løsning: Lestbakfravilenutvidetpostksformangi detspeilvendte utvidede treet ipreksform. Detgirmulighet tilålesesekvensenbakframedrecursive descentaktig prosedyre. Om dette er gjennomført så er det en helt OK løsning. 2-b procedure lagalle(n); integer n; character array S(1:2 n +1); integer antn, antt;!skalanta:antn+antt =k-1ogantn<anttoganttn+1; procedure lagrek(k); integer k; if k>2n+1 then bruksekv(n,s)!mer avskjæring unødvendig ; else if antt<n+1 then antt:= antt+1; S(k):= 'T'; lagrek(k+1); antt:= antt-1; if antn+1<antt and antn<n then!siste delavtesten erunødvendig, siden antt<=n+1; antn:= antn+1; S(k):= 'N'; lagrek(k+1); antn:= antn-1; 4

antn:= 0;antT:= 0;!Egentlig unødvendig i Simula ; lagrek(1); Man kunne her kalle `bruksekv' ett nivå tidligere. Dette ville redusere antall prosedyrekall, men ville grumse til programmet litt. Disse løsningene regnes som likeverdige. Man kunne også godt klare seg uten enten `antt'eller `antn'på grunn av invarianten angitt i toppen av programmet. 2-c Dybden til hver av nodene i f.eks.t1 vil øke med 1 når vi ser på dem som noder i treet t. Deres bidrag til dybdesummen i treet t vil derfor være `sumd(t1)+ant(t1)',og tilsvarende for t2. Roten i t har dybde null i t, og bidrar derfor ikke til sumd(t). Dette skulle vise formlen ioppgaven. Foratdetteskalstemmeogsåomt1eller t2ertommemå`sumd'av ettomttreværenull. 2-d Vi løser oppgaven ved å beregne `sumd' og `ant' for hele treet, og dividerer til slutt for å få gjennomsnittet. For å nne disse bruker vi samme stakk-loso som i 2-a, og bruker formlen fra 2-c. Programmet kan da f.eks. bli som angitt under. Merk at vi nå har antatt at input-sekvensen er helt riktig, og at man selvfølgelig kan gjøre de samme variasjoner med programmetsomomtaltfor2-a. real procedure snittdybde(n, S); integer n; character array S; integer array ant, sumd(1:n+1); integer topp; integer i; for i:=1 step 1 until 2 n +1 do if S(i)='N' then sumd(topp-1):= sumd(topp-1)+ant(topp-1)+sumd(topp)+ant(topp); ant(topp-1):= ant(topp-1)+ant(topp)+1; topp:=topp-1; end else!vigjøringentesting avinput; topp:= topp+1; sumd(topp):= 0; ant(topp):=0; snittdybde:= sumd(1)/ant(1);!antarn1; 5

2-e Kjernen ligger her i at det første gjennomsnittet er tatt over alle forskjellige trær(med hvert tre lik vekt),mens det andre er tatt over sekvenser som settes inn(med lik vekt på hver sekvens). Forskjellen oppstår fordi det i det andre tilfellet er mange sekvenser som gir samme søketreet.f.eks.vilbåde(3,1,2,4),(3,1,4,2)og(3,4,1,2gitreet: Dette at ere sekvenser gir samme treet gjelder kraftigere for de lavere(og balanserte) trærne enn for de høye.f.eks.vil det for trær av den første typen angitt under bare være én sekvens som gir akkurat dette søketreet.for den siste typen trær gjelder derimot at de vil framkomme av sekvensen (k, S1,S2)der S1 gir t1 og S2 gir t2, samt av enhver sekvens (k,s), derserenetting avs1ogs2. Totalt vil detbevirke atdelavetrærnefårstørrevekt nårviregner over sekvenser, ogdette bevirker altså at gjennomsnitlig høyde her blir mindre, nettopp slik formelene i oppgaven påstår. Del 3 3-a Under har vi angitt én løsning, men andre er selvfølgelig også mulige om man velger andre rekkefølger ut fra hver node. Man kunne selvfølgelig like gjerne lage en tegning som liknet mer på den opprinnelige grafen.artikulasjonspunktene er altså nodene S, C og G. 6

3-b Den typiske situasjonen nårvinner artikulasjonspunkter ersomfølger: Testen for å detektere denne situasjonen er da: ifw.low>=v.numthen...(samtlittspesialbehandling istart-noden). Vi ernåuteettersituasjonen: Denne kan vi detektere ved å forandre linje 16 til: eller if w.low > v.num then <(v,w)er artikulasjonskant> if w.low >= w.num then <(v,w)er artikulasjonskant> Når vibareskalhatakiartikulasjonskanter kanviogsåfjernespesial-behandlingen av start-noden, linje 1014. Merk at det ikkeer nok å teste på om både v og w er artikulasjonspunkter. Det er lett å nne moteksempler til dette. 7