En todelt graf G=(U,W,E), hvor U={0,...,n1-1}, W={0,...,n2-1} og |E|=m kan passende repræsenteres eksternt på følgende måde:
n1 n2 m u1 w1 u2 w2 ... um wm.
Her angiver ui og wi kanten (ui,wi)E hvor uiU og wiW. Grafen fra introduktionen har i denne repræsentation følgende udseende:
5 5 10 0 0 0 1 0 3 1 0 1 1 1 2 2 2 2 4 3 1 4 1
Opgave 3 består af seks dele, hvoraf den sidste er frivillig:
public interface ParringsGraf { public void farvGraf(); public boolean findesSkifteVej(); public void opdaterGraf(); public void farvHvid(); }
Det færdige program skal kunne kaldes som følger:
java MaxParring filnavnhvor filnavn indeholder en todelt graf i ovenstående eksterne repræsentation. Programmet skal nu køre algoritmen på denne graf og udskrive resultatet.
Anders, Bodil, Camilla, Doris, Esben, Frida, Gert, Hassan, Ida, Jane, Klaus, Liv, Morten, Nicolai, Ofelia, Peter, Rasmus, Sine
Klassen er ved at øve sig på en skolekomedie, hvor de er på scenen som følger
Scene | Medvirkende |
---|---|
1 | Doris, Esben, Hassan, Jane, Peter, Sine |
2 | Liv, Sine |
3 | Hassan, Klaus, Peter |
4 | Frida, Hassan, Nicolai, Ofelia, Rasmus, Sine |
5 | Bodil, Hassan, Liv, Peter, Sine |
6 | Hassan, Peter, Rasmus, Sine |
7 | Bodil, Hassan, Liv, Peter |
8 | Anders, Ida, Klaus, Morten, Nicolai |
9 | Bodil, Peter, Sine |
10 | Camilla, Doris, Gert, Ofelia, Rasmus |
11 | Bodil, Klaus, Liv, Peter |
12 | Hassan, Klaus, Sine |
13 | Alle |
5.b's klasselærer vil gerne have valgt en elev-repræsentant for hver scene til at stå for rekvisitter. Repræsentanten for en scene skal selv være med i scenen, og ingen elev må repræsentere mere end 1 scene. Hvordan kan sådanne 13 repræsentanter vælges (om overhovedet)? Klasselæreren overvejer at droppe scene 12. Hvordan stiller sagen sig så?
java RandomGraf filnavn n1 n2 mDet giver en tilfældig graf med n1 venstre-, n2 højreknuder og m kanter, som gemmes i filen filnavn i ovenstående eksterne repræsentation.
Den samlede obligatoriske opgave udgøres af opgave O1, O2 og O3. Disse tre opgaver beskriver et sammenhængende forløb der omhandler udformning, implementation, test og brug af et program til løsning af størst mulig pardannelse i en todelt graf, og det forventes at der afleveres en sammenhængende rapport der beskriver denne proces; samtidigt skal der afleveres kildekode. Følgende konkrete krav forventes opfyldt.
Rapporten (som skal være forsynet med den officielle forside [ps,pdf,LaTeX] skal udformes så den kan læses og forstås af en datalogistuderende på jeres eget niveau. Det betyder, at I må antage at læseren kender til grafer, algoritmer, O-notation, med mere.
Med mindre I har aftalt andet med jeres instruktor, skal rapporten skrives på dansk eller engelsk. Der er ingen særlige krav til typografi eller tekstbehandling. Rapporten må gerne være håndskrevet, men den skal kunne læses.
Udover de i O1, O2 og O3 eksplicit angivne krav, skal rapporten indeholde følgende elementer (ikke nødvendigvis i denne rækkefølge):
Ved aflevering af den obligatoriske opgave skal den færdige Java-kode samtidigt være tilgængeligt for instruktoren. Det angives i opgaven hvor denne kode kan findes (husk at gøre det læsbart for instruktorerne).