Obligatorisk projekt 3.

Relaterede dokumenter
DM507 Eksamen Obligatorisk Opgave Rejseplanlægning

Matador. Hvert hus koster: 2000 Et hotel koster: huse Pantsætningsværdien er 2000 kr.

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

DM507 Algoritmer og datastrukturer

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

DM507 Algoritmer og datastrukturer

Mobilitet og urbanisering

Eksempel på muligt eksamenssæt i Diskret Matematik

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter Abstract

Planoplæg til fremtidigt regionalt rutenet på Fyn

DM507 Algoritmer og datastrukturer

Dag/lektion Lærer Emne Opgaver og diverse

DM507 Algoritmer og datastrukturer

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Danmarks Tekniske Universitet

Grafer og graf-gennemløb

Skriftlig Eksamen DM507 Algoritmer og Datastrukturer

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

Danmarks Tekniske Universitet

DM507 Algoritmer og datastrukturer

Danmarks Tekniske Universitet

Grafer og graf-gennemløb

Grafer og graf-gennemløb

Forudsætningerne for FynBus svar er det nuværende regionale rutenet.

Reeksamen i Diskret Matematik

MANUAL TIL TRYKMASKINEN. Internetadresse: Kontakt: 1

Skriftlig Eksamen Algoritmer og Datastrukturer (DM507)

Vejledning i brugen af økonomiportalen 2010 Indhold

Danmarks Tekniske Universitet

MULTIMEDIEDESIGNER 1. ÅRS PRØVE

INSTITUT FOR DATALOGI, AARHUS UNIVERSITET

Skriftlig Eksamen Algoritmer og Datastrukturer 2 (2003-ordning)

Kompetencer

i modellen. Alle detaljer og analysemuligheder gennemgås dog ikke i denne skrivelse det er blot en introduktion, så du kommer godt fra start.

LEKTIONSPLAN SAMMENDRAG RESULTATER OG EVALUERING LÆRERENS FORBEREDELSE. OVERBLIK: Lektionsplan 3

Sommer i Danmark 26+19=30+15= =36+9=45. 1 Find historierne, og regn plusstykkerne. 2 Regn plusstykkerne = + = = + =

LUT. Lederuddannelse og træning. Ledelsens vejledning. DI-version

Dynamisk programmering

Skabelon til brug for KKR s forslag til dækningsområder og institutions- og skoleplaceringer for Forberedende Grunduddannelse

HVORNÅR ER DET? Parvis, mindre grupper eller almene tidsudtryk. - 6 skilte Øget ordforråd og træning af - Tjekliste og eksempel på udtale.

Resumé NSI har udviklet en funktionel prototype med en visuel brugergrænseflade, der giver ikke-teknikere mulighed for at tilgå adviseringsservicen.

Danmarks Tekniske Universitet

Vejledning i dataudveksling mellem TransSoft Løn og LetLøn

Danmarks Tekniske Universitet

Dm071 / Dm072 - Obligatorisk projekt 3: Design af model

Vejledning om aktivitetsindberetning for. folkehøjskoler og ungdomshøjskoler

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

DM507 Algoritmer og datastrukturer

DataHub Forbrugeradgangsløsning Spørgsmål og svar

Læring og læselyst. Tilbud fra Bibliotek & Borgerservice til dig og dine elever i efteråret Vi ses på jeres skole eller på biblioteket!

16. marts P NP. Essentielle spørgsmål: NP P? Et problem Q kaldes NP -fuldstændigt 1 Q NP 2 R NP : R pol Q. Resume sidste gang

Vejledning om aktivitetsindberetning for folkehøjskoler og ungdomshøjskoler

Danmarks Tekniske Universitet

Grafer og graf-gennemløb

Vejledning til budget for 2011 i provstisystemet 2010.

Sprog L : mængden af instanser for et afgørlighedsproblem

Vejledning om aktivitetsindberetning for efterskoler og frie fagskoler

Grafer og graf-gennemløb

Notat Betjening af Åbyskov med bybussystemet i Svendborg

Notat Rutenettet, den konkrete udmøntning

Vejlederne offentliggøres senest torsdag den 21. februar. Vejlederne for de enkelte elever vil fremgå af Lectio.

Vejledning i brugen af økonomiportalen for menighedsråd Indhold

Danmarks Tekniske Universitet

Dåvildtet på Fyn Temadag 11. feb. 2017

Eksamensopgaver datalogi, dl/vf 2010 side 1/5. 1. Lodtrækningssystem

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

Danmarks Tekniske Universitet

Programmering C RTG

Eksamensopgaver datalogi, dlc 2011 side 1/5. 1. Lodtrækningssystem

Forældre Undervisning

Landsplanområdet, Skov- og Naturstyrelsen. Udviklingen i detailhandelen i Fyns Amt

Dynamisk programmering

Tilbagemelding/kommentar Test af tilgængelighed og brugervenlighed i WebPatient

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

EVALUERING I SURVEYXACT TRIN FOR TRIN

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3

Ledelsens vejledning

16. december. Resume sidste gang

[Det talte ord gælder]

Spørgsmål og Svar A3 udbud af almindelig rutekørsel

Vejledning: AMUUDBUD.DK

TTS-Link Brugermanual

Høring - praksisplan for fysioterapi

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

Sådan sætter du TraceTool op til tælleugerne

Specialiseringen Rapport Lavede Af Rasmus R. Sørensen Side 1 af 6

Syddanmarks unge. Hjerner tur/retur. på kanten af fremtiden. NO.07 baggrund og analyse

Vejledning til opbygning af hjemmesider

Intranet anvendes til klubbens interne forhold, som kun skal kunne ses og betjenes af klubbens egne medlemmer.

XML Difftool brugervejledning

De fynske byråd ligger lavt placeret når det drejer sig om at lytte til erhvervslivet og at skabe mere privat beskæftigelse

CCS Formål Produktblad December 2015

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

Danmarks Tekniske Universitet

Transkript:

Obligatorisk projekt 3. Administration af Regionale Køre-Planer Fag: Projektet omhandler emner fra fagene Softwarearkitektur og Distribuerede Programmer, samt SystemUdviklingsMetoder. Formål: Formålet med projektet er at give dig mulighed for sammen med andre at bruge det, du har lært, mere selvstændigt og i en sammenhæng, samt give dig træning i de eksamensformer, der bruges på 2. studieår. Mål: Når du har gennemført projektet kan du: forstå og anvende Extended Bachus-Naur Form (EBNF) skanne, token-opdele og parse informationer fra en fil til en datastruktur implementere og anvende datastrukturen graf samt andre simplere datastrukturer implementere minimum-spanning-tree algoritmen for en graf samt anvende den på realistiske data Anvende en anden systemudviklingsmetode, end du tidligere har gjort Karakterisere systemudviklingsmetoder Rammer: Projektet gennemføres i uge 48 i 2008. Arbejdet foregår i grupper på ca. 2-4 personer. Underviserne sammensætter grupper på tværs af de to hold. I den periode, hvor I arbejder med projektet, står underviserne til rådighed med vejledning. I skemaet kan I se, hvornår hvilke undervisere er til jeres rådighed. Det er de enkelte gruppers eget ansvar at aftale med den enkelte underviser, hvornår der holdes vejledningsmøde. Opgaven: For at kunne administrere og optimere Regionale Køre-Planer ønskes et program som kan indlæse eksisterende køreplaner for en region fra tekst-filer til en passende datastruktur i dette tilfælde en graf. Den regionale køreplan er beskrevet ved en EBNF grammatik som kan ses i Bilag A og downloades som tekstfil: RKP.ebnf Som testdata har Region Fyn fremstillet en fil med en delmængde af de eksisterende køreplaner. Kun udvalgte hovedbyer fra de enkelte ruter er medtaget, idet der i første omgang blot ønskes en grov prototype. Bemærk at ruterne ikke nødvendigvis eksisterer i forvejen, og at de angivne afstande i minutter kun tilnærmelsesvist er realistiske! Testdata kan ses i Bilag B og kan downloades som tekstfil: RKP.txt SDP: Dit program skal kunne køres uden bruger-interaktion. Det skal derfor indlæse inddata fra en lokal tekstfil som skal hedde RKP.txt. Bemærk at vi tester dit program med andre data end dem du ser i Bilag B! Som output skal programmet skrive data til en tekstfil som skal hedde RKP.output. Hvilke informationer der skal skrives til tekstfilen og i hvilket format ses i Bilag C. Side 1 af 5 16.10.2008.

Dit program skal indlæse køreplanerne fra RKP.txt (Bilag B). Input skal opdeles i tokens (brikker) der skal analyseres (parses) ift. den EBNF-grammatik der er beskrevet i RKP.ebnf (Bilag A). Hvis der opstår fejl under parsningen skal der blot udskrives en fejlmeddelelse (relativt detaljeret), og programmet standser herefter. Hvis der ikke opstår fejl, skal der udskrives informationer om de indlæste data (Bilag C). Data skal indlæses i en vægtet ikke-orienteret graf (weighted non-directed graph) hvor knuder (vertices) repræsenterer en by og kanter (edges) repræsenterer en direkte (dobbelt-rettet) forbindelse mellem de implicerede byer. Kanternes vægt repræsenteres af afstanden i minutter mellem de implicerede byer. Du kan frit vælge om du vil anvende adjacency list eller adjacency matrix som implementering. Du får brug for at kunne udskrive din graf som par af knuder som hver repræsenterer en direkte forbindelser samt tilhørende vægt dette skal gøres iflg. breadth-first algoritmen med udgangspunkt i den node som repræsenterer den by som nævnes først i den første køreplan i RKP.txt ( odense i Bilag B). Du får brug for at kunne finde og udskrive grafens minimum-spanning-tree. OBS: 1. Da du er nødt til at have indlæst to byers tidsangivelser fra en rute for at kunne beregne deres indbyrdes afstand i minutter kan det være en fordel at indlæse de parsede data i en anden datastruktur (f.eks. en liste eller tabel) og så opbygge den endelige graf. 2. Pas på ikke at komme til at indsætte kanter mellem to knuder, med mindre der er en direkte forbindelse beskrevet i køreplanen. 3. Pas på ikke at komme til at indsætte mere end én knude pr. by (byerne optræder flere gange i forbindelse med forskellige ruter). 4. Hvis to ruter indeholder en direkte forbindelse mellem de samme to byer, og afstanden i minutter er forskellig for de to ruter, er det den største afstand, der skal gælde. 5. Du skal ikke anvende alle informationer fra den regionale køreplan (f.eks. er rutens nummer uden betydning for opbygningen af grafen). SUM: Hver gruppe skal i samråd med Tove vælge en systemudviklingsmetode, de ikke har anvendt før. Ud over at metoden skal anvendes ved løsningen af opgaven, skal I også karakterisere den (jf. Avison & Fitzgerald kap. 28), argumentere for karakteristikken, beskrive forskelle og ligheder til den metode, I kender fra 1. studieår, og endelig vurdere fordele og ulemper ved systemudviklingsmetoden i forhold til den opgave, I har anvendt den til. Aflevering og evaluering: SDP: Du skal aflevere din C#-solution i zippet format pr. mail til din SDP underviser. Der foretages en kort præsentation af løsningen for din SDP underviser mandag / tirsdag i uge 49. Hver gruppe har ca. 15 min. til deres præsentation. Præsentationen skal kort gennemgå centrale dele af koden samt beskrive de valg, I har foretaget samt de overvejelser (for og imod), der ligger til grund for valgene. I skal også nævne hvilke software design patterns, I har anvendt og vise, hvorledes I har implementeret dem. SUM: Der afleveres en kort rapport på papir (maks. 10 sider) til Bjarne/Tove senest fredag 28/11 kl. 12.00. Der gives en skriftlig tilbagemelding på rapporterne. Derudover præsenterer hver gruppe kort sin systemudviklingsmetode i SUM i uge 49. Side 2 af 5 16.10.2008.

Bilag A EBNF grammatik som beskriver en regional køreplan (EBNF grammatikken findes i filen RKP.ebnf). regionskoereplan = koereplan {koereplan}. koereplan = "#" ciffer ciffer [ciffer] afgang {afgang}. afgang = by tidspunkt. by = bogstav {bogstav}. tidspunkt = time ":" minut. time = ("0" "1") ciffer "2" ("0" "1" "2" "3"). minut = ("0" "1" "2" "3" "4" "5") ciffer. bogstav = "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "x" "y" "z". ciffer = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9". Side 3 af 5 16.10.2008.

Bilag B Test-data som beskriver en delmængde af ruter på Fyn kun udvalgte hovedbyer er medtaget for hver rute (data findes i filen RKP.txt). #44 odense 14:00 middelfart 15:07 #72 bogense 12:39 otterup 13:46 odense 14:08 #531 ringe 08:41 assens 09:24 odense 10:23 kerteminde 10:56 #62 svendborg 07:45 odense 09:15 bogense 10:04 #844 bogense 09:08 middelfart 09:46 assens 10:47 #22 svendborg 13:31 nyborg 14:16 odense 15:14 #32 svendborg 12:39 ringe 13:35 odense 14:20 Side 4 af 5 16.10.2008.

Bilag C EBNF-grammatik som beskriver det output dit program skal skrive til filen RKP.output. Bemærk at EOL betyder End Of Line og repræsenterer hermed et linieskift samt at EOF betyder End Of File og repræsenterer hermed slutningen på data. Output består af 2 blokke: Din graf udskrevet v.hj.a. breadth-first algoritmen (med udgangspunkt i odense ) Minimum-spanning tree output = breadthfirst "EOL" minimumspanningtree "EOF". breadthfirst = knudeid "EOL" {knudeid "EOL"}. knudeinfo = knudeid vaegt knudeid. knudeid = bogstav {bogstav}. vaegt = ciffer {ciffer}. minimumspanningtree = knudeinfo "EOL" {knudeinfo "EOL"}. bogstav = "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "x" "y" "z". ciffer = "0" "1" "2" "3" "4" "5" "6" "7" "8" "9". Side 5 af 5 16.10.2008.