Matchinger i ikke-bipartite grafer

Størrelse: px
Begynne med side:

Download "Matchinger i ikke-bipartite grafer"

Transkript

1 Matchinger i ikke-bipartite grafer Stein Krogdahl, Notat til INF 3/4130 Sist revidert september 2006 Vi skal i dette notatet se på det å finne matchinger i generelle grafer, uten noe krav om at grafen er bipartit (tofargbar) e.l. Vi skal spesielt se på problemet med å finne en matching som har så mange kanter som mulig. Den algoritmen vi skal angi for dette problemet kan også utvides til grafer der kantene har vekt, og der målet er å finne den matchingen med størst mulig total vekt. Da blir imidlertid algoritmen nokså komplisert. For å forklare og verifisere algoritmen skal vi først se på nok en variant av algoritmen for å finne maksimal matching i bipartite grafer, fordi denne varianten greit lar seg generalisere til ikke-bipartite grafer. Men aller først skal vi vise et viktig lemma, som virker for alle grafer, og som også kaster litt lys over arbeidet så langt med bipartite grafer. Et lemma om forbedringsveier Anta at vi i en graf har gitt en matching, og vi lurer på om det finnes en matching som har flere kanter. Når det gjaldt bipartite grafer kunne vi her bruke en setning (König- Egervárys Teorem) som har vært sett på på gruppene. Det er lett å se at et nodeutplukk som dekker alle kanter aldri kan være mindre enn antall kanter i en matching. König-Egervárys Teorem sier at man i bipartite grafer alltid kan finne en matching og et slikt nodeutplukk som er like store. Dermed kan vi alltid vise at en matching er maksimal, ved å angi et slikt like stort utplukk. Dette gjelder imidlertid ikke for ikke-bipartite grafer (se for eksempel på en trekantgraf, der en slik overdekning må ha mist 2 noder, mens den maksimale matchingen bare har én kant). Derfor må vi finne et annet kriterium for å vise at en matching er maksimal i det generelle tilfellet. Som vi har sett for bipartite grafer så er forbedringsveier (altså alternerende veier, med en umatchet node i hver ende) et viktig begrep. Om en slik finnes i forhold til den matchingen vi har, så finnes helt sikkert også en større matching. Det fine med slike veier er at også det omvendte gjelder helt generelt. Om det i forhold til en matching ikke finnes noen forbedringsvei, så finnes heller ingen større matching. Dette kan derfor fungere som vårt nye kriterium. Vi formulerer dette som et lemma: Forbedringslemma: Dersom vi har en matching M som ikke er maksimal (det finnes en matching med flere kanter), så finnes en forbedringvei i forhold til M. Bevis: Siden M ikke er maksimal finnes en annen matching N med flere kanter for samme grafen (se figur 1). I en nøytral utgave av grafen, merker vi kantene ut fra om de er med i M og/eller N, og det framkommer da forskjellige mønstre. For det første får vi en del kanter som er både M-kanter og N-kanter, og disse henger ikke sammen med noen andre M- eller N-kanter (og de omfatter selvfølgelig like mange M- som N- kanter). 1

2 Forøvrig vil kantene fra de to matchingene danne kortere eller lengre alternerende veier, der annenhver kant er M- og N-kant. Vi kan dele disse i fire grupper (se figur 2) - De alternerende veiene som danner løkker. Disse har like mange M som N- kanter. - De som har M-kant som ende-kant i den ene enden og en N-kant i den andre. Disse har like mange M- som N-kanter. - De som har en M-kant i hver ende. Disse har én M-kant flere enn N-kanter. - De som har en N-kant i hver ende. Disse har én N-kant flere enn M-kanter. M N N og M i samme graf Figur 1 Figur 2 forbedringsvei i forhold til M. Siden det er flere N- enn M-kanter totalt må det finnes minst én av den siste typen alternerende veier, da ingen av de andre typene har flere N- enn M-kanter. Det er lett å konstatere at en alternerende vei av den siste typen rett og slett er en forbedringsvei i forhold til M. 2

3 Det er altså, både i bipartite og generelle grafer, alltid nok å lete etter forbedringsveier om man vil undersøke om det finnes større matchinger. Om en større matching finnes så finnes også en forbedringsvei, og om det ikke finnes noen forbedringsvei så finnes heller ingen større matching. Alternativ algoritme for å finne maks matching i en bipartit graf Allerede i de algoritmene vi har sett på for å finne større matchinger i bipartite grafer har vi brukt dette å lete etter forbedringsveier. I disse algoritmene har vi imidlertid hele tiden gjort bruk av at grafen er bipartit, ved f.eks. å bare gro trær fra den ene nodemengden i den bipartite oppdelingen, og ved at beviset bygget på en nodemengde som dekket alle kanter. Vi skal nå beskrive en litt annen algoritme, fremdeles for bipartite grafer, men som i utgangspunktet ikke utnytter at grafen er bipartit. Vi skal trekke dette inn på et så sent punkt som mulig. Derved vil det også komme tydeligere fram hva som blir problemet når grafen ikke lenger er bipartite, og algoritmen kan derved lett utvides til generelle grafer. Algoritmen blir nesten like enkel som før, men beviset blir litt mer komplisert fordi det bygger på at det ikke finnes noen forbedringsvei når algoritmen stopper. Den nye algoritmen går også ut på å bygge alternerende trær der røttene er umatchede noder, men denne gangen gror vi slike trær fra alle noder som ikke er med i matchingen, altså ikke bare fra den ene siden i den bipartite oppdelingen. Dette gjør vi ved rett og slett å initialisere alle umatchede noder til å være røtter i det som skal bli alternerende trær. Algoritmen blir da å la disse trærne gro (omtrent som før, også her uten noe rekkefølgekrav), og drømmen er da at det blir kontakt mellom to trær på en slik måte at det dannes en alternerende vei fra den ene roten til den andre, som dermed vil være en forbedringsvei. Om det hele stopper opp uten at en slik kontakt er oppnådd må vi vise at vi har en maksimal matching. Dette gjør vi altså ved å vise at det ikke finnes noen forbedringsvei (som eventuelt måtte gå fra en rot til en annen). Alle nodene i de trærne vi skal bygge skal merkes på en av to måter: som Firkantnoder eller som Sirkel-noder, kalt F-noder og S-noder. (Merk at dette ikke tilsvarer den bipartite oppdelingen i X-noder og Y-noder i grafen. I ett tre kan S-nodene være X-noder mens de i et annet tre kan være Y-noder). Røttene i trærne (som altså er de umatchede nodene) skal alle være F-noder. Alle veier utover fra roten i et tre skal være alternerende veier, og annenhver node skal være F-node og S-node. Når vi går fra roten og utover i et tre vil vi altså alltid følge en matching-kant fra en S-node til en F-node, se figur 3. De nodene som ikke er med i noe tre må alle være matchede, og vi skal kalle dem Prikk-noder (P-noder), angitt som fylte rundinger på tegningene. Når en P-node blir tatt inn i et tre går den over til å bli enten en F- eller en S-node. 3

4 rot1 c b a rot2 S-node F-node rot3 P-node Figur 3. Kantene a, b og c er diskutert i teksten Algoritmen vi skal bruke er nokså rett fram, og vi kan skrive den ut med følgende skisse: Start med en tom matching M; repeat { Gjør alle umatchede noder til F-noder (røtter i trær); Gjør alle matchede noder til P-noder; forbedrveifunnet:= false; ingenkantfunnet:= false; repeat { Let etter kant k fra en F-node n til enten en F-node i et annet tre eller en P-node; if (ingen slik kant finnes) { ingenkantfunnet:= true // Hele algoritmen skal terminere } else if (k går til en F-node i annet tre) { // Tilfelle a i figur 3 // Forbedringsvei V er funnet (fra roten i det ene treet til roten i det andre) Bruk V til å forandre M, slik at den blir én større; Stryk all merking som F-noder, S-noder, P-noder etc.; forbedrveifunnet:= true; } else { // Tilfelle b i figur 3 // Kanten k går til en P-node, som altså er matchet Gjør denne P-noden om til S-node; Gjør P-noden i den andre enden av M-kanten om til F-node; Ta kanten k og M-kanten inn i treet som F-noden n ligger i; } // Slutt behandling av kant. NB: Ett tilfelle til (c i figur 3) kommer ved generelle grafer. } until (forbedrveifunnet or ingenkantfunnet) } until (ingenkantfunnet) Det essensielle her er altså at når vi gror trær (i den indre repeat-løkka), så leter vi bare etter kanter av to typer: Kanter fra en F-node til en F-node i et annet tre. Dette gir opplagt en forbedringsvei, som kan brukes til å øke M. Kanter fra en F-node til en P-node. Da gror vi dette treet med to kanter, akkurat som tidligere. Når dette stopper fordi hverken første eller annen mulighet over inntreffer, så ønsker vi altså å vise at det ikke går noen forbedringsvei fra en trerot til en annen (de er jo de eneste umatchede nodene). Ser vi på figur 3 og antar at det ikke lenger finnes kanter av typen a aller b, så viser den en typisk sluttsituasjon. Kanter av typen c (F- til F- 4

5 kanter i samme tre) finnes ikke, siden disse ville danne odde løkker med treet, og odde løkker finnes ikke i bipartite grafer. For å vise at det ikke finnes noen forbedringsvei tenker vi oss at vi starter med en alternerende vei V ut fra én rot, og viser at den aldri kan nå en annen rot. Vi merker oss da først at det aldri vil være matchede kanter som har én endenode i et tre, og én utenfor dette treet. Dette følger direkte fra algoritmen: Tar vi først én ende av en matchingkant inn i et tre, så tar vi også den andre. Vi viser så følgende lemmaer: Lemma 1: Om V starter i rotnoden til et tre T (som er en F-node) eller kommer utenifra og inn i T til en S-node, så vil V, så lenge den går mellom noder i T, alltid følge matchede kanter fra en S- til en F-node, og den vil ikke komme til roten av T. Bevis: Nå må vi trekke inn at dette er en bipartit graf. Det betyr at det mellom noder i ett og samme tre ikke kan gå kanter mellom to F-noder eller to S-noder det ville gi en odde løkke (og slike finnes jo ikke i bipartite grafer). Det igjen vil si at så lenge V er innenfor samme treet må den annenhver gang være i en F-node og en S-node. Så om de to måtene V kan starte sin vei gjennom T på: Om V starter i roten av treet og forblir inne i treet, må den først følge en umatchet kant til en S-node i T. I det andre tilfellet kommer V fra utenfor treet (og dermed langs en umatchet kant) og inn til en S-node i treet. I begge disse tilfellene går den altså langs en umatchet kant til en S-node i treet. Den neste kanten i V må da være matchet, og gå til en F-node i treet, deretter må V følge en umatchet kant til en S-node osv. Dermed vil V, så lenge den forblir i dette treet, følge matchede kanter fra S- til F-noder, og umatchede fra F- til S- noder. Dermed vil den heller ikke kunne komme til roten av treet, for da måtte den følge en umatchet kant til roten, som er en F-node. QED. Lemma 2: Dersom V startet i roten av et tre T eller kom inn i treet T til i S-node, så kan V bare forlate T i en F-node, langs en umatchet kant som fører til en S-node i et annet tre. Bevis: Enten vil V forlate treet allerede i roten (og derved fra en F-node) eller så må V følge minst en matching-kant i T, og den siste kanten som V fulgte i T må være en matching-kant (siden den må forlate treet via en umatchet kant). Ut fra Lemma 1 vet vi at så lenge V går mellom noder i treet, må den følge matchede kanter fra en S- til en F-node. Dermed vil den altså måtte forlate treet i en F-node. At den da kommer til en S-node kommer av algoritmen stoppet nettopp fordi det ikke var noen kanter mellom F-noder i forskjellige trær, eller fra F-noder til P-noder. QED. Dermed ser vi at V aldri kan nå en annen rot, siden den ut fra Lemma 2 alltid vil komme inn i et nytt tre i en S-node, og at den da må forlate det igjen (om den ikke stopper inni treet) i en F-node og gå til en S-node i et annet tre. Eller sett på en annen måte: Lemma 1 og 2 fungerer til sammen som en invariant når man går utover langs V. Ut fra Lemma 1 når den derved aldri en annen rot. Dermed vet vi altså at om algoritmen over stopper, så finnes ingen forbedringsvei, og dermed heller ingen større matching. 5

6 Dette er jo et klart mer komplisert bevis enn de vi brukte for de algoritmene som var spesiallaget for bipartite grafer. Men dette beviset har altså den fordelen at det greit lar seg generalisere til ikke-bipartite grafer. Algoritmen for generelle grafer Algoritmen for generelle grafer blir svært lik den over, bare med et tilfelle til som må behandles inne i den indre løkka. Det kommer av at i generelle grafer kan vi ha odde løkker, og dermed ha kanter fra en F-node til en F-node i samme tre (tilfelle c i figur 3). En slik kant vil danne en entydig odde løkke med resten av treet, og denne skal vi behandle ved å snurpe den sammen til en F-node. En slik odde løkke, inkludert alle dens indre kanter, kalles gjerne en blomst på treet. Den nye algoritmen blir som følger: Start med en tom matching M; repeat { Gjør alle umatchede noder til F-noder (røtter i trær); Gjør alle matchede noder til P-noder; forbedrveifunnet:= false; ingenkantfunnet:= false; repeat { Let etter kant k fra en F-node n til en F-node i annet eller eget tre, eller en P-node; if (ingen slik kant finnes) { ingenkantfunnet:= true // Hele algoritmen skal terminere } else if (k går til en F-node i annet tre) { // Tilfelle a i figur 3 // Forbedringsvei V finnes (fra roten i det ene treet til roten i det andre) Finn V i den opprinnelige grafen (se under), ved å pakke opp noen blomster Bruk V på M (slik at M blir én større) Stryk all merking som F-noder, S-noder, P-noder etc., og pakk opp alle blomster forbveifunnet:= true; } else if (k går til en P-node) // Tilfelle a i figur 3 Gjør denne P-noden om til S-node; Gjør P-noden i den andre enden av M-kanten om til en F-node; Ta kanten k og M-kanten inn i det treet som F-noden n ligger i; } else { // Nytt tilfelle: kant av type c i figur 3 // Kanten k går til en F-node i samme tre. Da vil k lage en entydig // odde løkke L med de andre nodene i dette treet (L er en blomst). Snurp løkka L (og alle dens interne kanter) sammen til en enhet som utenfra sett ser helt ut som en vanlig F-node (men som kan pakkes opp igjen); } // Slutt behandling av kant } until (forbedrveifunnet or ingenkantfunnet) } until (ingenkantfunnet) En slik løkke som L i det tredje (nye) tilfellet er altså en blomst på treet (og den artikkelen som i 1965 beskrev denne algoritmen første gang het derfor Paths, Trees and Flowers, av Jack Edmonds). En slik blomst har den fine egenskap at det fra alle noder i den finnes en alternerende vei som starter med en M-kant, og går til roten av treet. Dette gjelder uten videre for de nodene som allerede var firkantnoder, men for de som var runde kan vi nå få en slik vei ved bare å starte den andre veien rundt løkka. Se f.eks. node x i figur 4, der en slik vei er stiplet. 6

7 Dette vil igjen si at om vi fra en vilkårlig node i denne blomsten finner en kant til en firkantnode i et annet tre (f.eks. kant e i figur 4), så kan vi lett få laget en forbedringsvei fra roten i det ene treet til roten i det andre, ved bare å følge blomsten rundt i riktig retning. Tilsvarende er det helt trygt å bygge ut treet dersom vi finner en kant fra en node i blomsten til en P-node. Det vil alltid finnes en alternerende vei tilbake til roten fra de nye S- og F-nodene som da taes inn i treet. Dette vil igjen si at alle nodene i blomsten kvalifiserer til å være firkantnoder, og en grei måte å markere dette på er at vi snurper sammen blomsten til én firkantnode (se nederste del av figur 4) rot1 Blomst d En alternerende vei til roten fra noden x rot2 x e y Før snurping rot1 Er fremdeles en alternerende vei til roten rot2 e y Etter snurping Figur 4 Det viktige her er altså at dersom vi finner en kant fra denne firkantnoden til en firkantnode i et annet tre, så kan vi alltid pakke opp blomsten igjen og finne en alternerende vei gjennom denne som passer inn i en forbedringsvei fra roten i det ene til roten i det andre treet. Etter hvert som algoritmen går framover kan vi godt pakke flere blomster inne i hverandre, og til og med rotnodene kan bli firkantnoder som er sammensnurpede blomster. Når vi etter å ha funnet en F-til-F-kant mellom to trær skal rekonstruere en forbedringsvei i den opprinnelige grafen, er det bare å pakke opp én og én blomst, og å velge riktig retning gjennom denne blomsten. Dette er forsøkt illustrert med ``halvgjennomsiktige'' blomster i figur 5. 7

8 rot2 P g f Figur 5 Også denne finner forbedringsvei om slik fins Det eneste som da gjenstår er å vise at dersom denne algoritmen stopper uten å få firkant-til-firkant-kontakt mellom to trær i den snurpede grafen (altså den grafen vi sitter igjen med når alle blomster er snurpet sammen), så kan det ikke finnes noen forbedringsvei i den opprinnelige grafen (fra en rotnode til en annen) i forhold til den matching M vi nå har. Derved er M maksimal. Beviset for dette kan gjøres etter samme prinsipp som for bipartite grafer lenger opp, bare at vi må ta hensyn til de sammensnurpede blomstene. En typisk sluttsituasjon er vist i figur 6. Vi ser så på den sammensnurpede grafen, og konstaterer først at vi direkte fra matchingen M i den opprinnelige grafen får en matching M i den snurpede grafen, ved at alle matching-kanter i blomstene blir fjernet. M blir en matching fordi det bare kan være én kant i M som leder inn i en blomst, nemlig den som har som F-node den noden som var splitt-node i blomsten (den noden der de to veiene i treet som danner den ytterste blomsten møtes). Dermed vil en snurping av blomster ikke gjøre at to kanter i M i den snurpede grafen vil få noen felles node. rot2 rot1 Ingen slike Figur 6 Ingen slike Ser vi nøyere på den snurpede grafen og matchingen M viser det seg Lemma 1 og 2 gjelder i den med nøyaktig samme bevis som for bipartite grafer, og vi overlater til leseren å sjekke dette. Snurping av blomstene har altså fjernet det som ble vanskelig når vi introduserte generelle grafer og odde løkker, slik at den snurpede grafen har samme egenskaper som bipartite grafer. 8

9 Konklusjonen av dette er at den snurpede grafen ikke inneholder noen forbedringsveier i forhold til M. Om vi da kan vise at enhver mulig forbedringsvei V i den opprinnelige grafen ville bli en forbedringsvei V i den snurpede grafen, ville vi være i mål. Grunnen er at siden slike veier V ikke finnes, kan det da heller ikke finnes slike veier V. For å vise at en forbedringsvei V vil implisere en forbedringsvei V, viser vi følgende om det å følge en mulig slik forbedringsvei V fra den ene enden: V må alltid gå inn i en blomst langs en matchet kant, siden en blomst er en F- node i den snurpede grafen, og siden Lemma 1 gjelder for den snurpede grafen (matchede kanter følges fra S- til F-noder). V kan bare være innom en gitt blomst én gang. Dette er riktig fordi den i følge forrige punkt må entre blomsten langs en matchet kant, og slike er det bare en av for hver blomst. V sin første kant i en blomst er dermed alltid umatchet, og V vil også forlate blomsten langs en umatchet kant (fordi den eneste matchede kanten inn/ut er brukt opp til å gå inn) Dermed vil det stykket som V går inni en blomst bestå av kanter i rekkefølge: (umatchet, matchet, umatchet,, matchet). Dermed vil altså de stykkene som blir kuttet vekk fra V for å danne V være som angitt i forrige punkt (med et partall antall kanter), og dermed vil altså V også bli en alternerende vei. V vil også bli en vei som aldri er innom en node flere ganger, siden V bare er innom hver blomst én gang Dermed vil en mulig forbedringsvei V i den opprinnelige grafen også føre til en forbedringsvei V i den snurpede. Men siden ingen slik V finnes, finnes heller ikke noen slik forbedringsvei V. Dermed har altså den opprinnelige grafen noen forbedringsvei i forhold til M, og M er derved maksimal o o o

Svarforslag til ukeoppgaver til INF 4130

Svarforslag til ukeoppgaver til INF 4130 Svarforslag til ukeoppgaver til INF 4130 15. november 2011 Oppgave 1: Løs 14.4 (hvori innbakt svaret på oppgave 14.5) Vi skal altså vise at Hungarian-algoritmen kan implementeres i tid O(n 3 ), der n er

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Side Det matematisk-naturvitenskapelige fakultet Prøveekasmen 2007, med svarforslag Eksamen i: INF 330/430: Algoritmer: Design og effektivitet Eksamensdag: Fredag. desember 200 Tid

Detaljer

Online datingtjeneste The Hungarian Algorithm

Online datingtjeneste The Hungarian Algorithm Online datingtjeneste The Hungarian Algorithm Problemet Forestill deg at du har startet en online datingtjeneste hvor du lar brukerne sette opp en ønskeliste over hvilke andre brukere på siden de kunne

Detaljer

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

INF3/4130 PRØVE-EKSAMEN MED SVARFORSLAG Gjennomgås 1/ , (lille aud.) Oppgave 1 Uavgjørbarhet INF3/4130 PRØVE-EKSAMEN MED SVARFORSLAG Gjennomgås 1/12-2005, 14.15 (lille aud.) L = {(M 1, M 2 ) M 1 og M 2 er Turingmaskiner som er ekvivalente, dvs. gir samme output for samme

Detaljer

INF1020 Algoritmer og datastrukturer GRAFER

INF1020 Algoritmer og datastrukturer GRAFER GRAFER Dagens plan: Minimale spenntrær Prim Kapittel 9.5.1 Kruskal Kapittel 9.5.2 Dybde-først søk Kapittel 9.6.1 Løkkeleting Dobbeltsammenhengende grafer Kapittel 9.6.2 Å finne ledd-noder articulation

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 og IN 110 Algoritmer og datastrukturer Eksamensdag: 14. mai 1996 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider.

Detaljer

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 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 UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 18. mai 1993 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 7 sider. Vedlegg: Tillatte hjelpemidler: IN 110 Algoritmer

Detaljer

GRAFER. Korteste vei i en vektet graf uten negative kanter. Korteste vei, en-til-alle, for: Minimale spenntrær

GRAFER. Korteste vei i en vektet graf uten negative kanter. Korteste vei, en-til-alle, for: Minimale spenntrær IN Algoritmer og datastrukturer GRAER IN Algoritmer og datastrukturer Dagens plan: orteste vei, en-til-alle, for: ektet rettet graf uten negative kanter (apittel 9..) (Dijkstras algoritme) ektet rettet

Detaljer

INF oktober Stein Krogdahl. Altså: Hva kan ikke gjøres raskt (med mindre P = NP)

INF oktober Stein Krogdahl. Altså: Hva kan ikke gjøres raskt (med mindre P = NP) INF 4130 22. oktober 2009 Stein Krogdahl Dagens tema: Mer om NP-kompletthet Altså: Hva kan ikke gjøres raskt (med mindre P = NP) Også her: Dette har blitt framstilt litt annerledes tidligere år Pensum

Detaljer

Forelesning 23. Grafteori. Dag Normann april Oppsummering. Oppsummering. Oppsummering. Digresjon: Firefarveproblemet

Forelesning 23. Grafteori. Dag Normann april Oppsummering. Oppsummering. Oppsummering. Digresjon: Firefarveproblemet Forelesning 23 Grafteori Dag Normann - 16. april 2008 Oppsummering En graf består av noder og kanter Kanter ligger inntil noder, og noder kan være naboer. Vi bør kjenne til begrepene om sammenhengende

Detaljer

Korteste vei i en vektet graf uten negative kanter

Korteste vei i en vektet graf uten negative kanter Dagens plan: IN - Algoritmer og datastrukturer HØSTEN 7 Institutt for informatikk, Universitetet i Oslo IN, forelesning 7: Grafer II Korteste vei, en-til-alle, for: Vektet rettet graf uten negative kanter

Detaljer

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk MAT1030 Diskret matematikk Forelesning 23: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo 16. april 2008 Oppsummering En graf består av noder og kanter Kanter ligger inntil noder, og

Detaljer

Oppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Forelesning 23: Grafteori

Oppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Forelesning 23: Grafteori Oppsummering MAT1030 Diskret matematikk Forelesning 23: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo 16. april 2008 En graf består av noder og kanter Kanter ligger inntil noder, og

Detaljer

MAT1030 Forelesning 25

MAT1030 Forelesning 25 MAT1030 Forelesning 25 Trær Dag Normann - 27. april 2010 (Sist oppdatert: 2010-04-27 14:16) Forelesning 25 Litt repetisjon Vi har snakket om grafer og trær. Av begreper vi så på var følgende: Eulerstier

Detaljer

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

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Dag Normann MAT1030 Diskret Matematikk Forelesning 25: Trær Dag Normann Matematisk Institutt, Universitetet i Oslo Forelesning 25 27. april 2010 (Sist oppdatert: 2010-04-27 14:16) MAT1030 Diskret Matematikk 27. april

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Forelesning 25: Trær Dag Normann Matematisk Institutt, Universitetet i Oslo 27. april 2010 (Sist oppdatert: 2010-04-27 14:15) Forelesning 25 MAT1030 Diskret Matematikk 27. april

Detaljer

Repetisjon og mer motivasjon. MAT1030 Diskret matematikk. Repetisjon og mer motivasjon

Repetisjon og mer motivasjon. MAT1030 Diskret matematikk. Repetisjon og mer motivasjon Repetisjon og mer motivasjon MAT030 Diskret matematikk Forelesning 22: Grafteori Roger Antonsen Matematisk Institutt, Universitetet i Oslo 4. april 2008 Først litt repetisjon En graf består av noder og

Detaljer

Disjunkte mengder ADT

Disjunkte mengder ADT Binære relasjoner A A = {(x, y) x, y A}: mengden av ordnede par over A. Disjunkte mengder ADT Weiss kap. 8.1 8.5 Løser ekvivalensproblemet Lett og rask implementasjon Vanskelig tidsforbrukanalyse Ark 1

Detaljer

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

Binære søketrær. Et notat for INF1010 Stein Michael Storleer 16. mai 2013 Binære søketrær Et notat for INF Stein Michael Storleer 6. mai 3 Dette notatet er nyskrevet og inneholder sikkert feil. Disse vil bli fortløpende rettet og datoen over blir oppdatert samtidig. Hvis du

Detaljer

INF / Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO

INF / Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO INF5110 12/2-2013 Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO Dagens temaer: Noen foiler igjen fra forrige gang SLR(1), LR(1)- og LALR(1)-grammatikker NB: Oppgaver til kap 4 og 5 er lagt ut på undervisningsplanen

Detaljer

Karakteriseringen av like mengder. Mengder definert ved en egenskap.

Karakteriseringen av like mengder. Mengder definert ved en egenskap. Notat 2 for MAT1140 2 Bevis La oss si at vi er overbevist om at utsagn P er sant, og at vi ønsker å kommunisere denne innsikten. Eller la oss si vi er ganske sikre på at P er sant, men ønsker, overfor

Detaljer

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, 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 UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 Algoritmer og datastrukturer Eksamensdag: 14. mai 1998 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider. Vedlegg:

Detaljer

INF Triangulering. Med sterk støtte fra Petter Kristiansen. Skal først se på et eksempel fra Google Earth

INF Triangulering. Med sterk støtte fra Petter Kristiansen. Skal først se på et eksempel fra Google Earth INF 4130 17. november 2011 Triangulering Stein Krogdahl Med sterk støtte fra Petter Kristiansen Skal først se på et eksempel fra Google Earth De bruker en underliggende triangulering av landskapet, men

Detaljer

Sekventkalkyle for utsagnslogikk

Sekventkalkyle for utsagnslogikk Sekventkalkyle for utsagnslogikk Tilleggslitteratur til INF1800 Versjon 11. september 2007 1 Hva er en sekvent? Hva er en gyldig sekvent? Sekventkalkyle er en alternativ type bevissystem hvor man i stedet

Detaljer

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

Løsnings forslag i java In115, Våren 1996 Løsnings forslag i java In115, Våren 1996 Oppgave 1a For å kunne kjøre Warshall-algoritmen, må man ha grafen på nabomatriseform, altså en boolsk matrise B, slik at B[i][j]=true hvis det går en kant fra

Detaljer

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk MAT1030 Diskret matematikk Plenumsregning 2: Ukeoppgaver fra kapittel 1 & 2 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 24. januar 2008 Oppgave 1.1 Modifiser algoritmen fra 1.2.1 slik at

Detaljer

Grafteori. MAT1030 Diskret Matematikk. Repetisjon og mer motivasjon. Repetisjon og mer motivasjon. Forelesning 23: Grafteori.

Grafteori. MAT1030 Diskret Matematikk. Repetisjon og mer motivasjon. Repetisjon og mer motivasjon. Forelesning 23: Grafteori. MAT030 Diskret Matematikk Forelesning 23: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo Grafteori 20. april 200 (Sist oppdatert: 200-04-20 4:8) MAT030 Diskret Matematikk 20. april 200

Detaljer

MAT1140: Kort sammendrag av grafteorien

MAT1140: Kort sammendrag av grafteorien MAT1140, H-15 MAT1140: Kort sammendrag av grafteorien Dette notatet gir en kort oppsummering av grafteorien i MAT1140. Vekten er på den logiske oppbygningen, og jeg har utelatt all motivasjon og (nesten)

Detaljer

MAT1030 Forelesning 23

MAT1030 Forelesning 23 MAT030 Forelesning 23 Grafteori Roger Antonsen - 22. april 2009 (Sist oppdatert: 2009-04-22 2:36) Forelesning 23 Repetisjon og mer motivasjon Først litt repetisjon En graf består av noder og kanter Kanter

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Forelesning 23: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo 20. april 2010 (Sist oppdatert: 2010-04-20 14:17) Grafteori MAT1030 Diskret Matematikk 20. april

Detaljer

Forelesning 23. MAT1030 Diskret Matematikk. Repetisjon og mer motivasjon. Repetisjon og mer motivasjon. Forelesning 23: Grafteori.

Forelesning 23. MAT1030 Diskret Matematikk. Repetisjon og mer motivasjon. Repetisjon og mer motivasjon. Forelesning 23: Grafteori. MAT030 Diskret Matematikk Forelesning 23: Grafteori Roger Antonsen Institutt for informatikk, Universitetet i Oslo Forelesning 23 22. april 2009 (Sist oppdatert: 2009-04-22 2:37) MAT030 Diskret Matematikk

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2016 Institutt for informatikk, Universitetet i Oslo Forelesning 6: Grafer II Ingrid Chieh Yu (Ifi, UiO) INF2220 28.09.2016 1 / 30 Dagens plan: Dijkstra fort.

Detaljer

Notat for oblig 2, INF3/4130 h07

Notat for oblig 2, INF3/4130 h07 Notat for oblig 2, INF3/4130 h07 Dag Sverre Seljebotn 15. oktober 2007 Jeg har skrivd et noe langt notat for oblig 2 som interesserte kan se på. Merk at dette er kun for å gi et par tips (for oppgave 3

Detaljer

Minimum spenntrær. Lars Vidar Magnusson Kapittel 23. Kruskal Prim

Minimum spenntrær. Lars Vidar Magnusson Kapittel 23. Kruskal Prim Minimum Spenntrær Lars Vidar Magnusson 2.4.2014 Kapittel 23 Minimum spenntrær Kruskal Prim Minimum Spenntrær Et spenntre er et tre som spenner over alle nodene i en graf G = (V, E). Et minimum spenntre

Detaljer

LP. Leksjon 9: Kapittel 13: Nettverk strøm problemer, forts.2

LP. Leksjon 9: Kapittel 13: Nettverk strøm problemer, forts.2 LP. Leksjon 9: Kapittel 13: Nettverk strøm problemer, forts.2 Vi tar siste runde om (MKS): minimum kost nettverk strøm problemet. Skal oppsummere algoritmen. Se på noen detaljer. Noen kombinatorisk anvendelser

Detaljer

MAT1030 Forelesning 22

MAT1030 Forelesning 22 MAT1030 Forelesning 22 Grafteori Roger Antonsen - 21. april 2009 (Sist oppdatert: 2009-04-21 15:13) Introduksjon Introduksjon Vi skal nå over til kapittel 10 & grafteori. Grafer fins overalt rundt oss!

Detaljer

MAT1030 Forelesning 24

MAT1030 Forelesning 24 MAT1030 Forelesning 24 Grafteori og trær Roger Antonsen - 28. april 2009 (Sist oppdatert: 2009-04-28 22:32) Forelesning 24 Oppsummering En graf består av noder og kanter Kanter ligger inntil noder, og

Detaljer

Introduksjon. MAT1030 Diskret Matematikk. Introduksjon. En graf. Forelesning 22: Grafteori. Roger Antonsen

Introduksjon. MAT1030 Diskret Matematikk. Introduksjon. En graf. Forelesning 22: Grafteori. Roger Antonsen MAT1030 Diskret Matematikk Forelesning 22: Grafteori Roger Antonsen Institutt for informatikk, Universitetet i Oslo Introduksjon 21. april 2009 (Sist oppdatert: 2009-04-21 15:13) MAT1030 Diskret Matematikk

Detaljer

Introduksjon. MAT1030 Diskret matematikk. Søkealgoritmer for grafer. En graf

Introduksjon. MAT1030 Diskret matematikk. Søkealgoritmer for grafer. En graf Introduksjon MAT13 Diskret matematikk Forelesning 21: Grafteori Roger Antonsen Matematisk Institutt, Universitetet i Oslo 9. april 28 Vi skal nå over til kapittel 1 & grafteori. Grafer fins overalt rundt

Detaljer

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk MAT1030 Diskret matematikk Forelesning 21: Grafteori Roger Antonsen Matematisk Institutt, Universitetet i Oslo 9. april 2008 Introduksjon Vi skal nå over til kapittel 10 & grafteori. Grafer fins overalt

Detaljer

GRAFER. Noen grafdefinisjoner. Korteste vei i en uvektet graf V 2 V 1 V 5 V 3 V 4 V 6

GRAFER. Noen grafdefinisjoner. Korteste vei i en uvektet graf V 2 V 1 V 5 V 3 V 4 V 6 IN Algoritmer og datastrukturer GRAER Dagens plan: Kort repetisjon om grafer Korteste, en-til-alle, for: uektede grafer (repetisjon) ektede rettede grafer uten negatie kanter (Dijkstra, kapittel 9..) ektede

Detaljer

Kap. 5, del 1: Parsering nedenfra-opp (Bottom up parsing) INF5110. Stein Krogdahl Ifi, UiO

Kap. 5, del 1: Parsering nedenfra-opp (Bottom up parsing) INF5110. Stein Krogdahl Ifi, UiO Kap. 5, del 1: Parsering nedenfra-opp (Bottom up parsing) INF5110 NB: Disse foilene er litt justert og utvidet i forhold til de som er delt ut tidligere på en forelesning. Ta dem ut på nytt! Stein Krogdahl

Detaljer

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

Del 1(8%) 5 h. Del 2(42%) UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: Tidforeksamen: Oppgavesettet erpå8sider. Vedlegg: Tillatte hjelpemidler: IN110Algoritmer ogdatastrukturer 16. mai1994

Detaljer

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

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 UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i IN 115 og IN110 Algoritmer og datastrukturer Eksamensdag: 15. mai 1997 Tid for eksamen: 9.00 15.00 Oppgavesettet er på 8 sider.

Detaljer

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk Oppgave 1.1 MAT1030 Diskret matematikk Plenumsregning 2: Ukeoppgaver fra kapittel 1 & 2 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 24. januar 2008 Modifiser algoritmen fra 1.2.1 slik at

Detaljer

Grafteori. MAT1030 Diskret Matematikk. Oppsummering. Oppsummering. Forelesning 24: Grafer og trær. Dag Normann

Grafteori. MAT1030 Diskret Matematikk. Oppsummering. Oppsummering. Forelesning 24: Grafer og trær. Dag Normann MAT1030 Diskret Matematikk Forelesning 24: Grafer og trær Dag Normann Matematisk Institutt, Universitetet i Oslo Grafteori 21. april 2010 (Sist oppdatert: 2010-04-21 12:55) MAT1030 Diskret Matematikk 21.

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet «Midterm» i: INF 4130: Algoritmer: Design og effektivitet Eksamensdag: 1. november 2011 Tid for «midterm»: Kl. 09:00 13:00 (4 timer) [124%,

Detaljer

MAT1030 Forelesning 25

MAT1030 Forelesning 25 MAT1030 Forelesning 25 Trær Roger Antonsen - 29. april 2009 (Sist oppdatert: 2009-04-29 00:28) Forelesning 25 Litt repetisjon Vi har snakket om grafer og trær. Av begreper vi så på var følgende. Eulerstier

Detaljer

INF /2, 2015 Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO

INF /2, 2015 Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO INF5110 17/2, 2015 Kap. 5, Del 2 Stein Krogdahl, Ifi, UiO Mer om LR-parsering Hadde også igjen noen foiler fra 12/2 Oblig 1 er lagt ut. Det blir en intro til Oblig 1 ved Eyvind Axelsen torsdag 19/2 1 Flertydige

Detaljer

Kap. 5, Del 3: INF5110, fra 1/3-2011

Kap. 5, Del 3: INF5110, fra 1/3-2011 Kap. 5, Del 3: LR(1)- og LALR(1)-grammatikker INF5110, fra 1/3-2011 Bakerst: Oppgaver til kap 5 (svar kommer til gjennomgåelsen) gåe Nytt 2/3: Nå også oppgave 2 fra eksamen 2006 Stein Krogdahl, Ifi, UiO

Detaljer

Plenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode

Plenumsregning 1. Kapittel 1. Roger Antonsen januar Velkommen til plenumsregning for MAT1030. Repetisjon: Algoritmer og pseudokode Plenumsregning 1 Kapittel 1 Roger Antonsen - 17. januar 2008 Velkommen til plenumsregning for MAT1030 Torsdager 10:15 12:00 Gjennomgang av ukeoppgaver Gjennomgang av eksempler fra boka Litt repetisjon

Detaljer

INF5110 V2013 Stoff som i boka står i kap 4, men som er generelt stoff om grammatikker

INF5110 V2013 Stoff som i boka står i kap 4, men som er generelt stoff om grammatikker INF5110 V2013 Stoff som i boka står i kap 4, men som er generelt stoff om grammatikker 29. januar 2013 Stein Krogdahl, Ifi, UiO NB: Ikke undervisning fredag 1. februar! Oppgaver som gjennomgås 5. februar

Detaljer

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

1-b. integer array frd; begin. integer x; for x:= 1step 1 until N do. end; 1-c 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

Detaljer

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2 Delkapittel 9.2 Rød-svarte og 2-3-4 trær Side 1 av 16 Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2 9.2 Rød-svarte og 2-3-4 trær 9.2.1 B-tre av orden 4 eller 2-3-4 tre Et rød-svart tre og et

Detaljer

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

Forelesning 25. MAT1030 Diskret Matematikk. Litt repetisjon. Litt repetisjon. Forelesning 25: Trær. Roger Antonsen MAT1030 Diskret Matematikk Forelesning 25: Trær Roger Antonsen Institutt for informatikk, Universitetet i Oslo Forelesning 25 29. april 2009 (Sist oppdatert: 2009-04-29 00:28) MAT1030 Diskret Matematikk

Detaljer

IN Algoritmer og datastrukturer

IN Algoritmer og datastrukturer IN00 - Algoritmer og datastrukturer HØSTEN 08 Institutt for informatikk, Universitetet i Oslo Forelesning 5: Grafer II Ingrid Chieh Yu (Ifi, UiO) IN00 8.09.08 / Dagens plan: Korteste vei en-til-alle vektet

Detaljer

INF2220: Forelesning 2

INF2220: Forelesning 2 INF2220: Forelesning 2 Mer om analyse av algoritmer Analyse av binære søketrær Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7) ANALYSE AV ALGORITMER 2 Analyse av tidsforbruk Hvor

Detaljer

INF1010 notat: Binærsøking og quicksort

INF1010 notat: Binærsøking og quicksort INF1010 notat: Binærsøking og quicksort Ragnhild Kobro Runde Februar 2004 I dette notatet skal vi ta for oss ytterligere to eksempler der rekursjon har en naturlig anvendelse, nemlig binærsøking og quicksort.

Detaljer

MAT1140: Kort sammendrag av grafteorien

MAT1140: Kort sammendrag av grafteorien MAT1140: Kort sammendrag av grafteorien Dette notatet gir en kort oversikt over den delen av grafteorien som er gjennomgått i MAT1140 høsten 2013. Vekten er på den logiske oppbygningen, og jeg har utelatt

Detaljer

Kap. 5, Del 2: SLR(1), LR(1)- og LALR(1)-grammatikker INF5110 V2009

Kap. 5, Del 2: SLR(1), LR(1)- og LALR(1)-grammatikker INF5110 V2009 Kap. 5, Del 2: SLR(1), LR(1)- og LALR(1)-grammatikker INF5110 V2009 Stein Krogdahl, Ifi, UiO Torsdag 26/2: Første time Kap. 5 (avslutning?) Andreas Svendsen kommer andre time, snakker om oblig 1 (spesielt

Detaljer

LO118D Forelesning 12 (DM)

LO118D Forelesning 12 (DM) LO118D Forelesning 12 (DM) Trær 15.10.2007 1 Traversering av trær 2 Beslutningstrær 3 Isomorfisme i trær Preorden-traversering 1 Behandle den nåværende noden. 2 Rekursivt behandle venstre subtre. 3 Rekursivt

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Forelesning 26: Trær Roger Antonsen Institutt for informatikk, Universitetet i Oslo 5. mai 2009 (Sist oppdatert: 2009-05-06 22:27) Forelesning 26 MAT1030 Diskret Matematikk 5.

Detaljer

TMA4140 Diskret Matematikk Høst 2016

TMA4140 Diskret Matematikk Høst 2016 Norges teknisk naturvitenskapelige universitet Institutt for matematiske fag TMA4140 Diskret Matematikk Høst 2016 Seksjon 10.2 18 La G = (V,E) være en enkel graf med V 2. Ettersom G er enkel er de mulige

Detaljer

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

8(1) 5(1) g 2 (0) 5(2) Svarforslag tileksamenin110,16.mai1994 Del 1 Oppgave 1 De kantene som vil være plukket når bcer behandlet er markert på følge gur: b e 5 h 1 8 9 1 6 1 a 7 d g 2 k 3 8 6 8 2 3 c f i Del 2 Oppgave 2-a Legg

Detaljer

IN2010: Forelesning 11. Kombinatorisk søking Beregnbarhet og kompleksitet

IN2010: Forelesning 11. Kombinatorisk søking Beregnbarhet og kompleksitet IN2010: Forelesning 11 Kombinatorisk søking Beregnbarhet og kompleksitet KOMBINATORISK SØKING Oversikt Generering av permutasjoner Lett: Sekvens-generering Vanskelig: Alle tallene må være forskjellige

Detaljer

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

INF oktober Stein Krogdahl. Kap 23.5: Trær og strategier for spill med to spillere INF 4130 1. oktober 2009 Stein Krogdahl Dagens program: Første time: Kap 23.5: Trær og strategier for spill med to spillere Andre time, gjesteforelesning: Rune Djurhuus: Om sjakkspillende programmer (Ikke

Detaljer

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

6. oktober Dagens program: Første time: Andre time, gjesteforelesning: Uavgjørbarhet. Stein Krogdahl. (Ikke pensum, egne foiler legges ut) Dagens program: Første time: INF 4130 6. oktober 2011 Stein Krogdahl Kap 23.5: Spilltrær og strategier for spill med to spillere Andre time, gjesteforelesning: Rune Djurhuus: Om sjakkspillende programmer

Detaljer

MAT1030 Plenumsregning 1

MAT1030 Plenumsregning 1 MAT1030 Plenumsregning 1 Kapittel 1 Mathias Barra - 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 Velkommen til plenumsregning for MAT1030 Fredager 12:15 14:00 Vi vil gjennomgå utvalgte

Detaljer

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

IN 115 Fasitforslag til Eksamen 1997 Omskrevet til Java. 1. april 2000 IN 115 Fasitforslag til Eksamen 1997 Omskrevet til Java 1. april 2000 1 2 Oppgave 1 1-a 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 5 1 2 3 4 1 2 3 4 1 2 3 4 2 3 1 2 3 4 1 2 3 4 1 6 0 1 2 3 4 4 1 2 3 4 Figur

Detaljer

Kodegenerering, del 2: Resten av Kap. 8 pluss tilleggsnotat (fra kap. 9 i ASU ) INF5110 V2007

Kodegenerering, del 2: Resten av Kap. 8 pluss tilleggsnotat (fra kap. 9 i ASU ) INF5110 V2007 Kodegenerering, del 2: Resten av Kap. 8 pluss tilleggsnotat (fra kap. 9 i ASU ) INF5110 V2007 Stein Krogdahl, Ifi UiO NB: Innfører noen begreper som først og fremst har mening om man skal gå videre med

Detaljer

LO118D Forelesning 9 (DM)

LO118D Forelesning 9 (DM) LO118D Forelesning 9 (DM) Grafteori 26.09.2007 1 Introduksjon 2 Veier og sykler 3 Hamiltonsykler og omreisende handelsmenn Graf, urettet Definisjon En graf (eller urettet graf) G består av en mengde V

Detaljer

INF2220: Time 4 - Heap, Huffmann

INF2220: Time 4 - Heap, Huffmann INF0: Time 4 - Heap, Huffmann Mathias Lohne mathialo Heap (prioritetskø) En heap (også kalt prioritetskø) er en type binært tre med noen spesielle struktur- og ordningskrav. Vi har to typer heap: min-

Detaljer

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

Løsnings forslag i java In115, Våren 1999 Løsnings forslag i java In115, Våren 1999 Oppgave 1a Input sekvensen er: 9, 3, 1, 3, 4, 5, 1, 6, 4, 1, 2 Etter sortering av det første, midterste og siste elementet, har vi følgende: 2, 3, 1, 3, 4, 1,

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF0 - Algoritmer og datastrukturer HØSTEN 05 Institutt for informatikk, Universitetet i Oslo Forelesning 6: Grafer II Ingrid Chieh Yu (Ifi, UiO) INF0.09.05 / 8 Dagens plan: Minimale spenntrær Prim Kruskal

Detaljer

Kombinatorikk. MAT1030 Diskret Matematikk. Oppsummering av regneprinsipper

Kombinatorikk. MAT1030 Diskret Matematikk. Oppsummering av regneprinsipper MAT1030 Diskret Matematikk Forelesning 22: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo Kombinatorikk 14. april 2010 (Sist oppdatert: 2010-04-14 12:43) MAT1030 Diskret Matematikk 14.

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Forelesning 22: Grafteori Dag Normann Matematisk Institutt, Universitetet i Oslo 14. april 2010 (Sist oppdatert: 2010-04-14 12:42) Kombinatorikk MAT1030 Diskret Matematikk 14.

Detaljer

MAT1030 Forelesning 22

MAT1030 Forelesning 22 MAT1030 Forelesning 22 Grafteori Dag Normann - 14. april 2010 (Sist oppdatert: 2010-04-14 12:45) Kombinatorikk Oppsummering av regneprinsipper Ordnet utvalg med repetisjon: n r Ordnet utvalg uten repetisjon:

Detaljer

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

Oppgaver til kodegenerering etc. INF-5110, 12. mai, 2015 Oppgaver til kodegenerering etc. INF-5110, 12. mai, 2015 Oppgave 1: Vi skal se på koden generert av TA-instruksjonene til høyre i figur 9.10 i det utdelte notatet, side 539 a) (repetisjon fra forelesningene)

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 10: Disjunkte Mengder Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 10 1 / 27

Detaljer

Kap. 5, del 1: Parsering nedenfra-opp (Bottom-up parsering) INF / Stein Krogdahl Ifi, UiO

Kap. 5, del 1: Parsering nedenfra-opp (Bottom-up parsering) INF / Stein Krogdahl Ifi, UiO Kap. 5, del 1: Parsering nedenfra-opp (Bottom-up parsering) INF5110 8/2-2013 tein Krogdahl Ifi, UiO 1 Bottom up parsering (nedenfra-og-opp) Tokenklasser + ikketerminaler B B Tilstander Tabell for LR-parsering

Detaljer

MAT1030 Diskret Matematikk

MAT1030 Diskret Matematikk MAT1030 Diskret Matematikk Plenumsregning 1: Kapittel 1 Mathias Barra Matematisk institutt, Universitetet i Oslo 16. januar 2009 (Sist oppdatert: 2009-02-02 14:21) Plenumsregning 1 MAT1030 Diskret Matematikk

Detaljer

Kap. 5 del 2: LR(1)- og LALR(1)-grammatikker INF5110 V2005. Stein Krogdahl, Ifi, UiO

Kap. 5 del 2: LR(1)- og LALR(1)-grammatikker INF5110 V2005. Stein Krogdahl, Ifi, UiO Kap. 5 del 2: LR(1)- og LALR(1)-grammatikker INF5110 V2005 Stein Krogdahl, Ifi, UiO 1 Bottom up parsering (nedenfra-og-opp) S A B B A LR-parsering og grammatikker: t 1 t 2 t 3 t 7 t 4 t 5 t 6 - LR(0) Det

Detaljer

INF2220: Gruppe me 2. Mathias Lohne Høsten 2017

INF2220: Gruppe me 2. Mathias Lohne Høsten 2017 INF0: Gruppe me Mathias Lohne Høsten 0 1 Rød-svarte trær Vanlige binære søketrær blir fort veldig ubalanserte. røv å sett inn 1,,, 4, 5,, 7,... (i den rekkefølgen) i et binært søketre. Da vil vi i praksis

Detaljer

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).

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). Kap.4, del 2: Top Down Parsering Kap. 5, del 1: Bottom Up Parsing INF5110, 7/2-2008 Legger ut en oppgave til kap. 4 (se beskjed). tein Krogdahl Ifi, UiO Merk: Av de foilene som ble delt ut på papir på

Detaljer

Dagens plan: INF Algoritmer og datastrukturer. Eksempel. Binære Relasjoner

Dagens plan: INF Algoritmer og datastrukturer. Eksempel. Binære Relasjoner Dagens plan: INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 10: Disjunkte Mengder Definisjon av binær relasjon Definisjon av ekvivalens

Detaljer

Lars Vidar Magnusson

Lars Vidar Magnusson B-Trær Lars Vidar Magnusson 5.3.2014 Kapittel 18 B-trær Standard operasjoner Sletting B-Trær B-trær er balanserte trær som er designet for å fungere bra på sekundære lagringsmedium e.g. harddisk. Ligner

Detaljer

EKSAMEN med løsningsforslag

EKSAMEN med løsningsforslag EKSAMEN med løsningsforslag Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: Eksamenstid: 20. mai 2009 kl 09.00 til kl 13.00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Kalkulator Faglærer:

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 13. desember 2011 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 7 sider. Vedlegg: INF2220 lgoritmer og datastrukturer

Detaljer

Velkommen til plenumsregning for MAT1030. MAT1030 Diskret matematikk. Repetisjon: Algoritmer og pseudokode. Eksempel fra boka. Eksempel

Velkommen til plenumsregning for MAT1030. MAT1030 Diskret matematikk. Repetisjon: Algoritmer og pseudokode. Eksempel fra boka. Eksempel Velkommen til plenumsregning for MAT1030 MAT1030 Diskret matematikk Plenumsregning 1: Kapittel 1 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 17. januar 2008 Torsdager 10:15 12:00 Gjennomgang

Detaljer

Plenumsregning 12. Diverse oppgaver. Roger Antonsen mai Eksamen 12/6-06 Oppgave 2. Plan

Plenumsregning 12. Diverse oppgaver. Roger Antonsen mai Eksamen 12/6-06 Oppgave 2. Plan Plenumsregning 12 Diverse oppgaver Roger Antonsen - 22. mai 2008 Plan Dette er siste plenumsregning. Vi regner stort sett eksamensoppgaver. Neste uke blir det repetisjon på mandag og onsdag. Send epost

Detaljer

Kompleksitetsteori reduksjoner

Kompleksitetsteori reduksjoner Kompleksitetsteori reduksjoner En slags liten oversikt, eller huskeliste, for kompleksitetsteorien i INF 4130. Ikke ment å være verken fullstendig eller detaljert, men kanskje egnet til å gi noen knagger

Detaljer

Rekursjon. Binærsøk. Hanois tårn.

Rekursjon. Binærsøk. Hanois tårn. Rekursjon Binærsøk. Hanois tårn. Hvorfor sortering (og søking) er viktig i programmering «orden» i dataene vi blir fort lei av å lete poleksempel internett «alt» er søking og sortering alternativer til

Detaljer

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

... Når internminnet blir for lite. Dagens plan: Løsning: Utvidbar hashing. hash(x) katalog. O modellen er ikke lenger gyldig ved Dagens plan: Utvidbar hashing (kapittel 5.6) B-trær (kap. 4.7) Abstrakte datatyper (kap. 3.1) Stakker (kap. 3.3) Når internminnet blir for lite En lese-/skriveoperasjon på en harddisk (aksesstid 7-12 millisekunder)

Detaljer

Korteste Vei I. Lars Vidar Magnusson 9.4.2014. Kapittel 24 Hvordan finne korteste vei Egenskaper ved korteste vei

Korteste Vei I. Lars Vidar Magnusson 9.4.2014. Kapittel 24 Hvordan finne korteste vei Egenskaper ved korteste vei Korteste Vei I Lars Vidar Magnusson 9.4.2014 Kapittel 24 Hvordan finne korteste vei Egenskaper ved korteste vei Korteste Vei Problemet I denne forelesningen skal vi se på hvordan vi kan finne korteste

Detaljer

UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF 4130: lgoritmer: Design og effektivitet Eksamensdag: 12. desember 2008 Tid for eksamen: Kl. 09:00 12:00 (3 timer) Oppgavesettet

Detaljer

Oppgave 1 LØSNINGSFORSLAG. Eksamen i INF desember Betrakt følgende vektede, urettede graf:

Oppgave 1 LØSNINGSFORSLAG. Eksamen i INF desember Betrakt følgende vektede, urettede graf: INF100 Algoritmer og datastrukturer INF100 Algoritmer og datastrukturer Oppgave 1 LØSNINGSFORSLAG Betrakt følgende vektede, urettede graf: V 1 V Eksamen i INF100 1. desember 004 V V 4 V 4 V V Ragnar Normann

Detaljer

Lars Vidar Magnusson Kapittel 13 Rød-Svarte (Red-Black) trær Rotasjoner Insetting Sletting

Lars Vidar Magnusson Kapittel 13 Rød-Svarte (Red-Black) trær Rotasjoner Insetting Sletting Rød-Svarte Trær Lars Vidar Magnusson 21.2.2014 Kapittel 13 Rød-Svarte (Red-Black) trær Rotasjoner Insetting Sletting Rød-Svarte Trær Rød-Svarte trær (red-black trees) er en variasjon binære søketrær som

Detaljer

INF5110 Kap. 5: Parsering nedenfra-og-opp (Bottom-up parsing) 21/ Stein Krogdahl Ifi, UiO. Angående Oblig 1:

INF5110 Kap. 5: Parsering nedenfra-og-opp (Bottom-up parsing) 21/ Stein Krogdahl Ifi, UiO. Angående Oblig 1: INF5110 Kap. 5: Parsering nedenfra-og-opp (Bottom-up parsing) Del 1 21/2-2014 Stein Krogdahl Ifi, UiO ngående Oblig 1: Blir lagt ut tirsdag/onsdag neste uke Oblig-ansvarlig Henning Berg orienterer 28/2

Detaljer

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

Løsnings forslag i java In115, Våren 1998 Løsnings forslag i java In115, Våren 1998 Oppgave 1 // Inne i en eller annen klasse private char S[]; private int pardybde; private int n; public void lagalle(int i) if (i==n) bruks(); else /* Sjekker

Detaljer