Introduktion til grafer



Relaterede dokumenter
Introduktion til grafer. Philip Bille

Introduktion til grafer. Introduktion til grafer. Uorienterede grafer. Visualisering af internettet. Uorienterede grafer Repræsentation

Introduktion til grafer. Introduktion til grafer. Visualisering af internettet. Uorienterede grafer

Orienterede grafer. Orienterede grafer. Orienterede grafer. Vejnetværk

Plan. Introduktion. Eks: Max i tabel. Algoritmer og datastrukturer. Algoritmer og datastrukturer. Toppunkter. Algoritme 1. Algoritme 2.

Inspiration - London. Herunder inspiration til nogle af Londons mest spændende og lærerige seværdigheder.

Orienterede grafer. Introduktion Repræsentation Søgning Topologisk sortering og DAGs Stærke sammenhængskomponenter Implicitte grafer.

Orienterede grafer. Orienterede grafer. Orienterede grafer. Orienterede grafer

Inspiration - London. Herunder inspiration til nogle af Londons mest spændende og lærerige seværdigheder.

TUREN GÅR TIL LONDON GUNHILD RISKE 24. UDGAVE

Grafer og graf-gennemløb

Grafer og graf-gennemløb

Grafer og graf-gennemløb

Grafer og graf-gennemløb

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

Mindste udspændende træ

Mindste udspændende træ. Mindste udspændende træ. Introduktion. Introduktion

Grafer og graf-gennemløb

02105 Eksamensnoter. Lasse Herskind S maj Sortering 3

STUDIETURSPROGRAM I LONDON 2m marts 2014

Sammenhængskomponenter i grafer

Dagsorden: 1: Præsentation af program 2: Praktiske oplysninger 3: Metrogrupper: 4: Økonomi 5: Regler Evt:

Chester le Street - Sunderland - Castletown

Turen til London. Big Ben. Vestlige del af Parlamentet. Midterdel af Parlamentet. 3. Juli Juli 2000

UGEDAG FORMIDDAG EFTERMIDDAG AFTEN

Algoritmer og datastrukturer Course No Cheat Sheet May 15, 2012

Danmarks Tekniske Universitet

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Forén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter.

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Danmarks Tekniske Universitet

Forén og find. Introduktion Hurtig find Hurtig forening Vægtet forening Stikompression Dynamiske sammenhængskomponenter.

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Prioritetskøer. Prioritetskøer Træer og hobe Repræsentation af hobe Algoritmer på hobe Hobkonstruktion Hobsortering. Philip Bille

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

TLF

Korteste veje i vægtede grafer. Længde af sti = sum af vægte af kanter på sti.

Mindste udspændende træ

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Når du rejser med Ungdomsskolen...

Mary Murphy Slide Collection

Prioritetskøer. Prioritetskøer. Prioritetskøer. Prioritetskøer

ARSENAL. Fodboldrejser 2011/2012 TLF

London Skal og kan aktiviteter på turen. Vi skal bo på:

DATALOGISK INSTITUT, AARHUS UNIVERSITET

Herefter vil vi indkvartere os på The Kensington Close Hotel & Spa, som ligger centralt i Kensington tæt på shoppinggaden Kensington High Street.

P (n): rekursiv beregning af f n kræver f n beregninger af f 1. P (n) er sand for alle n 2.

DATALOGISK INSTITUT, AARHUS UNIVERSITET

ARSENAL. Fodboldrejser 2010/2011 TLF

Sviptur til London for at se spændende ny arkitektur??

Danmarks Tekniske Universitet

Program for Finansudvalgets besøg i London den juni 2008

Din egen personlige folder med: Vigtige oplysninger ift. Turen Kort Program AT6 opgaven: Fra imperialisme til multikultur Oversigt over

Prioritetskøer og hobe. Philip Bille

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Danmarks Tekniske Universitet

TLF

DATALOGISK INSTITUT, AARHUS UNIVERSITET

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Korteste veje. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs. Philip Bille

Schedule Y CvSu-LU-1-1

CHELSEA. Fodboldrejser 2011/2012 TLF

Binære søgetræer. Binære søgetræer. Nærmeste naboer. Nærmeste nabo

TLF

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Danmarks Tekniske Universitet

Netværksalgoritmer 1

DATALOGISK INSTITUT, AARHUS UNIVERSITET

TLF

CHELSEA. Fodboldrejser 2010/2011 TLF

Minimum udspændende Træer (MST)

Korteste veje. Introduktion Egenskaber for korteste veje Dijkstras algoritme Korteste veje på DAGs. Philip Bille

(OBS: Manden på billedet er altså ikke én af os )

guide MARTS 2011 London sider Gå på pub

Danmarks Tekniske Universitet

Grafteori. 1 Terminologi. Grafteori, Kirsten Rosenkilde, august fra V. (Engelsk: subgraph, spanning subgraph, the subgraph

Londons Højdepunkter. Højdepunkter dage Fyn, Jyl., Sjæ ,- Afrejse: Hjemkomst: Varighed: Afrejse fra (Bus): Pris fra:

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Definition (Pseudo-graf): En pseudo-graf G = (V, E) består af V, en ikke-tom mængde hvis elementer kaldes punkter, en mængde E samt en funktion f : E

Lørdag d. 31. marts lørdag d. 7. april 2012 Ringkøbing-Skjern Ungdomsskole

Førsteårsprojekt F2008 Flere grafalgoritmer, og visualisering SØGES

Grafteori. 1 Terminologi. Indhold

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Danmarks Tekniske Universitet

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Minimum udspændende Træer (MST)

Danmarks Tekniske Universitet

London studietur. Institut for Samfundsudvikling og Planlægning

Min tur. til. London

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

November hilsner fra NORDJYSKE Medier, Distributionen

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

Elm Street Elementary School

PROGRAM FOR NEW YORK 2012 Dag: Programpunkt: Transport: Evt. webside: Lørdag d. 31. marts Mødes kl i CPH ved Starbucks.

Transkript:

Introduktion til grafer Uorienterede grafer Repræsentation Dybdeførst søgning Sammenhængskomponenter Breddeførst søgning Todelte grafer Philip Bille

Introduktion til grafer Uorienterede grafer Repræsentation Dybdeførst søgning Sammenhængskomponenter Breddeførst søgning Todelte grafer

Uorienterede grafer Uorienteret graf (undirected graph). Mængde af knuder (vertices) forbundet parvis med kanter (edges). knude 0 kant 1 2 6 8 7 3 9 10 4 5 11 12 Hvorfor grafer? Modellerer naturligt mange problemer i mange forskellige områder. Tusindvis af praktiske anvendelser. Hundredevis af kendte grafalgoritmer.

Visualisering af internettet http://en.wikipedia.org/wiki/opte_project

Visualisering af Facebook venskaber "Visualizing friendships", Paul Butler

London Tube map Metro A B C D Heathrow E Terminals 1, 2, 3 F Chesham Amersham Uxbridge 1 2 3 4 5 6 7 8 9 Special fares apply 9 8 7 8 7 6 Hillingdon Chalfont & Latimer Chorleywood Ruislip Gardens South Ruislip Rickmansworth Perivale 2Chalk Farm 6 5 4 3 2 1 1 2 Hounslow West Hatton Cross West Ruislip Ickenham Heathrow Terminal 4 Heathrow Terminal 5 Northolt Greenford Rayners Lane Hanger Lane Ealing Broadway 5 Watford Croxley South Harrow Sudbury Hill Sudbury Town Alperton Park Royal North Ealing Ealing Common Northfields Boston Manor Osterley Ruislip South Ealing Hounslow East Hounslow Central Moor Park Ruislip Manor Northwood Northwood Hills Eastcote Pinner Acton Central South Acton Acton Town Chiswick Park West Harrow West Acton North Harrow Turnham Green 4Richmond Gunnersbury Kew Gardens Watford Junction Watford High Street 3 Bushey Carpenders Park Hatch End Northwick Park South Kenton North Wembley Wembley Central Stonebridge Park Harlesden Willesden Junction North Acton Headstone Lane Harrow & Wealdstone Kilburn Park Shepherd s Bush Market Stamford Brook East Acton Goldhawk Road Hammersmith Maida Vale Kenton Warwick Avenue Ravenscourt Park Preston Road Wembley Park Kensal Rise Kensal Green Queen s Park Royal Oak Westbourne Park White City Wood Lane Kensington (Olympia) West Kensington 2 Fulham Broadway West Brompton Parsons Green Putney Bridge East Putney Southfields Wimbledon Park Wimbledon Stanmore Canons Park Queensbury Kingsbury Neasden Brondesbury Park Dollis Hill Brondesbury Kilburn High Road Paddington Ladbroke Grove Latimer Road Shepherd s Bush Barons Court Holland Park Earl s Court Edgware Burnt Oak Willesden Green Imperial Wharf Kilburn South Hampstead Edgware Road Bayswater Notting Hill Gate Queensway High Street Kensington Gloucester Road Edgware Road Colindale Hendon Central West Hampstead Marylebone Lancaster Gate Finchley Road Hyde Park Corner Knightsbridge South Kensington Clapham Junction Brent Cross Golders Green Swiss Cottage Marble Arch Sloane Square Pimlico Vauxhall Hampstead Finchley Road & Frognal St. John s Wood Bond Street Victoria Wandsworth Road Baker Street Oxford Circus 5 4 3 Regent s Park Green Park St. James s Park Clapham High Street Clapham North Clapham Common Clapham South Balham Tooting Bec Tooting Broadway Colliers Wood Belsize Park Great Portland Street 1 2Oval 3 4 Hampstead Heath Warren Street Piccadilly Circus Westminster Camden Town Mornington Crescent Euston Goodge Street Tottenham Court Road Charing Cross Waterloo Stockwell South Wimbledon This diagram is an evolution of the original design conceived in 1931 by Harry Beck Transport for London Correct at time of going to print, December 2013 Morden 1 2 3 4 5 6 7 8 9 Mill Hill East Gospel Oak Kentish Town West Euston Square Russell Square Lambeth North Kennington Brixton Camden Road Holborn Covent Garden Leicester Square Embankment Southwark King s Cross St. Pancras High Barnet Totteridge & Whetstone Woodside Park West Finchley Finchley Central East Finchley Highgate Archway Tufnell Park Kentish Town Farringdon Chancery Lane Borough Elephant & Castle Denmark Hill Crouch Hill Caledonian Road Barbican Mansion House Temple Angel St. Paul s Cannon Street Blackfriars Upper Holloway Holloway Road Bank Peckham Rye Southgate Arnos Grove Bounds Green Wood Green Turnpike Lane Manor House Arsenal Caledonian Road & Barnsbury Old Street Moorgate Monument London Bridge Queens Road Peckham Crystal Palace Highbury & Islington Liverpool Street Aldgate Tower Hill Fenchurch Street River Thames Cockfosters Oakwood Harringay Green Lanes Finsbury Park Canonbury New Cross Gate Brockley Forest Hill Sydenham Anerley Seven Sisters Dalston Kingsland Dalston Junction Bermondsey Haggerston Hoxton Shoreditch High Street Aldgate East Tower Gateway Rotherhithe Canada Water Surrey Quays Honor Oak Park Penge West Norwood Junction West Croydon Tottenham Hale Hackney Central Homerton 2 Bethnal Green 5 South Tottenham Blackhorse Road Walthamstow Queen s Road Bow Church Stepney Green Whitechapel Shadwell Limehouse Wapping New Cross 3International Hackney Wick Mile End Westferry Canary Wharf Heron Quays South Quay Crossharbour Mudchute Island Gardens Walthamstow Central Leyton Midland Road Stratford Devons Road Langdon Park All Saints Poplar Blackwall West India Quay 2 Greenwich Deptford Bridge Elverson Road Epping Theydon Bois Debden Loughton Buckhurst Hill Woodford South Woodford Bow Road Snaresbrook Leytonstone Pudding Mill Lane Harrowon-the-Hill Bromleyby-Bow East India Leyton Cutty Sark for Maritime Greenwich Lewisham North Greenwich Emirates Greenwich Peninsula Roding Valley Chigwell 4 Wanstead Leytonstone High Road Wanstead Park Stratford Woodgrange Park West Ham Canning Town 3 Hainault Fairlop Barkingside Newbury Park Redbridge Stratford High Street Abbey Road Star Lane Plaistow Grange Hill Gants Hill 5 3 Royal Victoria Emirates Royal Docks Pontoon Dock Barking East Ham Upton Park West Silvertown London City Airport 6 Dagenham East Upney King George V Becontree Custom House for ExCeL 4 Dagenham Heathway Prince Regent Upminster Upminster Bridge Hornchurch Elm Park Royal Albert 4 Beckton Park Gallions Reach Cyprus Beckton Woolwich Arsenal A B C D E F Check before you travel Bank Waterloo & City line open between Bank Waterloo 0621-0030 Mondays to Fridays 0802-0030 Saturdays. Between Waterloo 0615-0030 Mondays to Fridays and 0800-0 Saturdays. Closed Sundays and Public Ho ------------------------------------------------------------------ Camden Town Sunday 1300-1730 open for interchange exit only. ------------------------------------------------------------------ Canary Wharf Step-free interchange between Undergro Canary Wharf DLR and Heron Quays DLR at street level. ------------------------------------------------------------------ Cannon Street Open until 2100 Mondays to Fridays and 0 Saturdays. Closed Sundays. ------------------------------------------------------------------ Embankment Bakerloo and Northern line trains will no this station from early January 2014 unti November 2014. ------------------------------------------------------------------ Emirates Greenwich Peninsula and Emirates Royal Docks Special fares apply. Open 0700-2000 Mon Fridays, 0800-2000 Saturdays, 0900-2000 and 0800-2000 Public Holidays. Opening extended by one hour in the evening afte 2014 and may be extended on certain eve Please check close to the time of travel. ------------------------------------------------------------------ Heron Quays Step-free interchange between Heron Q Canary Wharf Underground station at st ------------------------------------------------------------------ Hounslow West Step-free access for manual wheelchairs ------------------------------------------------------------------ Kilburn No step-free access from late January 20 mid May 2014. ------------------------------------------------------------------ Stanmore Step-free access via a steep ramp. ------------------------------------------------------------------ Turnham Green Served by Piccadilly line trains until 0650 to Saturdays, 0745 Sundays and after 223 evening. At other times use District line. ------------------------------------------------------------------ Waterloo Waterloo & City line open between Bank Waterloo 0621-0030 Mondays to Fridays 0802-0030 Saturdays. Between Waterloo 0615-0030 Mondays to Fridays and 0800-0 Saturdays. Closed Sundays and Public Ho No step-free access from late January 20 late July 2014. ------------------------------------------------------------------ West India Quay Not served by DLR trains from Bank towa Lewisham before 2100 on Mondays to Fri ------------------------------------------------------------------ Key to lines Bakerloo Central Circle District District open weekends, holidays and some Olym Hammersmith & City Jubilee Metropolitan Northern Piccadilly Victoria Waterloo & City DLR London Overground Emirates Air Line MAYOR OF LONDON London metro, London Transport

Protein interaktionsnetværk Protein-protein interaktionsnetværk, Jeong et al, Nature Review Genetics

Grafanvendelser graf knuder kanter kommunikation computer kabel transport vejkryds vej transport lufthavn fly spil position lovligt træk neuralt netværk neuron synapse finansnetværk valuta, aktier transaktioner kredsløb logiske porte forbindelse fødekæde dyrearter rovdyr-byttedyr molekyle atom bindinger

Terminologi Uorienteret graf. G = (V, E) V = mængde af knuder E = mængde af kanter (par af knuder) n = V, m = E Sti/vej (path). Sekvens af knuder forbundet af kanter. Kreds (cycle). Sti hvis start- og slutknude er ens. Grad (degree). deg(v) = antal naboer af v = antal kanter incidente med v. Sammenhæng (connectivity). To knuder er forbundne hvis der er en vej i mellem dem V = {0,1,2,,12} deg(2) = 3 0 sti fra 0 til 3 6 8 7 1 2 9 10 3 E = {(0,1), (0,2) (0,4),(2,3),, (11,12)} n = 13, m = 15 kreds 4 5 11 12

Uorienterede grafer Lemma. v V deg(v) = 2m. Bevis. Hvor mange gange tælles kant med i sum? 0 1 2 6 8 7 3 9 10 4 5 11 12

Algoritmiske problemer på grafer Vej. Findes der en sti mellem s og t? Korteste vej. Hvad er den korteste vej mellem s og t? Længste vej. Hvad er den længste vej mellem s og t? Kreds. Er der en kreds i grafen? Eulertur. Er der en kreds, der benytter hver kant netop en gang? Hamiltontur. Er der en kreds, der benytter hver knude netop en gang? Sammenhæng. Er det muligt at forbinde alle knuder med en sti? Mindste udspændende træ. Hvad er den bedste måde at forbinde alle knuder på? Tosammenhæng. Er der en knude hvis fjernelse gør grafen usammenhængende? Planaritet. Er det muligt at tegne grafen i planen uden kanter der krydser? Grafisomorfi. Repræsenterer to mængde af knuder og kanter samme graf?

Introduktion til grafer Uorienterede grafer Repræsentation Dybdeførst søgning Sammenhængskomponenter Breddeførst søgning Todelte grafer

Repræsentation G graf med n knuder og m kanter. Repræsentation. Vi skal bruge følgende operationer på grafer. ADJACENT(v, u): afgør om knude v og u er naboer. NEIGHBORS(v): returner alle naboer af v. INSERT(v, u): tilføj kant (v, u) til G (medmindre den allerede findes). 0 1 2 6 8 7 3 9 10 4 5 11 12

Incidensmatrix Graf G med n knuder og m kanter. Incidensmatrix (adjacency matrix). 2D n n tabel A. A[i,j] = 1 hvis i og j er naboer og 0 ellers. Plads. O(n 2 ) Tid. ADJACENT i O(1) tid NEIGHBORS(v) i O(n) tid. INSERT(v, u) i O(1) tid. 0 1 6 8 7 2 3 9 10 5 4 11 12 0 1 2 3 4 5 6 7 8 9 10 11 12 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 2 1 0 0 1 0 1 0 0 0 0 0 0 0 3 0 0 1 0 1 1 0 0 0 0 0 0 0 4 1 0 0 1 0 1 0 0 0 0 0 0 0 5 0 0 1 1 1 0 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 1 1 0 0 0 0 7 0 0 0 0 0 0 1 0 0 0 0 0 0 8 0 0 0 0 0 0 1 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 1 1 1 10 0 0 0 0 0 0 0 0 0 1 0 0 1 11 0 0 0 0 0 0 0 0 0 1 0 0 1 12 0 0 0 0 0 0 0 0 0 1 1 1 0

Incidensliste Graf G med n knuder og m kanter. Incidensliste (adjacency list). Tabel A[0..n-1]. A[i] indeholder liste af naboer af i. 0 1 3 2 6 8 7 9 10 Plads. O(n + v V deg(v)) = O(n + m) Tid. ADJACENT, NEIGHBORS OG INSERT i O(deg(v)) tid. 4 0 1 2 5 11 1 2 4 0 0 3 5 12 3 2 4 5 4 0 3 5 5 2 3 4 6 7 8 7 6 8 6 9 10 11 12 10 9 12 11 9 12 12 9 10 11

Repræsentation Datastruktur ADJACENT NEIGHBORS INSERT Plads incidensmatrix O(1) O(n) O(1) O(n 2 ) incidensliste O(deg(v)) O(deg(v)) O(deg(v)) O(n+m) I den virkelige verden er grafer tynde.

Introduktion til grafer Uorienterede grafer Repræsentation Dybdeførst søgning Sammenhængskomponenter Breddeførst søgning Todelte grafer

Dybdeførst søgning Algoritme til systematisk at udforske alle knuder og kanter i en graf. Dybdeførst søgning (depth-first search) fra knude s. Lad alle knuder være umarkede og besøg knude s. Besøg knude v: Marker v. Besøg alle umarkede naboer af v rekursivt. s Intuition. Udforsk ud fra s i en retning indtil vi når blindgyde. Gå tilbage til sidste knude hvor der var flere uudforskede kanter og fortsæt på samme måde. Starttid (discovery-time). Første gang vi besøger en knude i rekursionen. Sluttid (finish-time). Sidste gang vi besøger en knude i rekursionen.

Dybdeførst søgning Opgave. Kør DFS fra knude 0 og angiv start- og sluttider. Antag incidenslisterne er sorterede. 5 0 2 1 4 3

Dybdeførst søgning DFS(s) time = 0 DFS-VISIT(s) s DFS-VISIT(v) v.d = time++ marker v for alle umarkerede naboer u DFS-VISIT(u) u.π = v v.f = time++ Tid. (på incidenslisterepræsentation) Rekursion bliver kaldt på hver knude højst een gang. O(deg(v)) tid ved knude v. i alt O(n + v V deg(v)) = O(n + m) tid. Kun knuder forbundet til s bliver besøgt.

Farveudfyldning Farveudfyldning (flood fill). Skift farve på sammenhængende område af grønne pixels. Algoritme. Byg en gittergraf og kør DFS. Knude: pixel. Kant: mellem nabopixels af samme farve Område: alle knude forbundet til en given knude.

Sammenhængskomponenter Def. Et sammenhængskomponent (connected component) er en maksimal delmængder af sammenhængende knuder. 0 1 2 6 8 7 3 9 10 4 5 11 12 Hvordan finder vi alle sammenhængskomponenter? Algoritme. Lad alle knuder være umarkede. Sålænge der findes en umarkeret knude: Vælg en umarkeret knude v og kør DFS på v. Tid. O(n + m).

Introduktion til grafer Uorienterede grafer Repræsentation Dybdeførst søgning Sammenhængskomponenter Breddeførst søgning Todelte grafer

Breddeførst søgning Breddeførst søgning (breadth-first search) fra s. Lad alle knuder være umarkede. Marker s og tilføj s til kø K. Sålænge K ikke er tom: Udtag knude v fra K. For alle umarkede naboer u af v Marker u. Tilføj u til K. s Intuition. Udforsk ud fra s i alle retninger i stigende afstand fra s. Korteste-veje fra s. Afstand fra s i BFS træ = afstand fra s i graf.

Breddeførst søgning Opgave. Kør BFS fra knude 0 og angiv korteste veje. Antag incidenslisterne er sorterede. 5 0 2 1 4 3

Korteste veje Lemma. BFS beregner længden af den korteste vej fra s til alle andre knuder. Intuition. BFS inddeler knuder i lag (layers). Lag i indeholder knude med afstand i fra s i BFS-træ. L0 L1 L2 Hvad indeholder lagene? L0 = {s} L1 = alle naboer til L0. s L3 L2 = alle naboer til L1 der ikke er naboer til L0 L3 = alle naboer til L2 der ikke er naboer til L0 og L1. Li = alle naboer til Li-1 der ikke er naboer til Lj for j < i-1 = alle knuder med afstand i til s.

Breddeførstsøgning BFS(s) marker s s.d = 0 K.ENQUEUE(s) gentag indtil K er tom v = K.DEQUEUE() for alle umarkede naboer u marker u u.d = v.d + 1 u.π = v K.ENQUEUE(u) s Tid. (på incidenslisterepræsentation) Knude besøges højst een gang. O(deg(v)) tid ved knude v. i alt O(n + v V deg(v)) = O(n + m) tid. Kun knuder forbundet til s bliver besøgt.

Introduktion til grafer Uorienterede grafer Repræsentation Dybdeførst søgning Sammenhængskomponenter Breddeførst søgning Todelte grafer

Todelte grafer Def. En graf G er todelt (bipartite) hvis og kun hvis alle knuder kan farves røde eller blå således at alle kanter har et rødt og et blåt endepunkt. Alternativt def. En graf G er todelt hvis og kun hvis knuder kan deles i to mængder V1 og V2 så alle kanter går mellem V1 og V2. Anvendelser. Kodning, skedulering, matching,. Mange grafproblemer er nemmere på todelte grafer.

Todelte grafer Udfordring. Givet en graf G, afgør om G er todelt. 1 2 1 2 6 7 6 3 7 3 4 5 4 5

Todelte grafer Lemma. En graf G er todelt hvis og kun hvis alle kredse i G har lige længde. Bevis. Hvis todelt så starter og slutter alle kredse i samme side. Hvis der er kreds af ulige længde kan vi ikke farve den.

Todelte grafer Lemma. Lad G være graf med lag L0, L1,, Lk produceret af BFS. Præcis en af følgende holder: Bevis. 1. Ingen kant forbinder 2 knuder i samme lag G er todelt. 2. En kant forbinder 2 knuder i samme lag G indeholder en ulige kreds G er ikke todelt. 1. Farv lag skiftevis. 2. Lad (u,v) være kant mellem to knuder i samme lag. Kig på kreds givet ved sti s til u + (u,v) + sti v til s.

Todelte grafer Algoritme. Kør BFS på G. L0 L1 L2 For hver kant i G undersøg om den er mellem knuder i samme lag. s L3 Tid. O(n + m) L1 L2 L0 s L3

Grafalgoritmer Algoritme Tid Plads Dybdeførst søgning O(n + m) O(n + m) Breddeførst søgning O(n + m) O(n + m) Sammenhængskomponenter O(n + m) O(n + m) Todelte grafer O(n + m) O(n + m) Antager G er givet i incidenslisterepræsentation

Introduktion til grafer Uorienterede grafer Repræsentation Dybdeførst søgning Sammenhængskomponenter Breddeførst søgning Todelte grafer