UMEÅ UNIVERSITET 26 april 2002 Instutionen för datavetenskap. Grafproblem. Laboration 4, Datastrukturer och Algoritmer VT02



Relevanta dokument
Föreläsning 11. Giriga algoritmer

Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012

Gunnesboskolan, miljövänlig? Energi och Miljö tema VT-10

Processidentifiering och Polplacerad Reglering

Objektorienterad programmering D2

Ett ämnesövergripande arbetsområde som innehåller biologi, fysik och teknik.

Laboration 2: Ett kommunikationssystem

Föreläsning 3.1: Datastrukturer, en översikt

Uppgift 1 ( Betyg 3 uppgift )

Föreläsning 6: Introduktion av listor

Datastrukturer och algoritmer

Tentamen i Realtidsprogrammering

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

Lathund för att arbeta med pdf

Problem: BOW Bowling. Regler för Bowling. swedish. BOI 2015, dag 1. Tillgängligt minne: 256 MB

Tentaupplägg denna gång

Tips och anvisningar vid fiberanslutning inom tätort

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa

Bygga hus med LECA-stenar

OBS - ranking NYTT RANKINGSYSTEM. Jan-Erik Thomasson INNEHÅLL

VIKTIG INFO GÄLLANDE OMKOPPLINGEN TILL DET ÖPPNA NÄTET

Steg 4. Lika arbeten. 10 Diskrimineringslagen

Sverige tåget - Vem kör lok och vem åker vagn? Innehållsförteckning. All data avser år 2004

Datorhårdvaruteknik 1DV426 - Laboration Clustring och migrering av cluster från FibreChannel till iscsi

LEGO Robot programmering och felsökning Hur svårt ska det vara att följa den svarta linjen?

KOPPLA AV OCH UPP I VINTER.

Sätt att skriva ut binärträd

Paper från lärgruppen i matematik. S:t Olofsskolan vt 13

Övning 2: I cellerna B19 och F26 ska du beräkna den totala ytan för respektive hus. I cell C28 den totala ytan, för båda husen.

Datorsystem Laboration 2: Minnesmappade bussar

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Omtentamen (del 1, 6 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201)

19. Skriva ut statistik

Datorlära 3 Octave Workspace ovh mijlö Skriva text på skärmen Värdesiffror Variabler och typer Strängar Makro Vektorer

Omtentamen i DV & TDV

Tentamen TEN1 HI

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Föreläsning 1 & 2 INTRODUKTION

Hur BitTorrent fungerar

Se om dina grannar anmält intresse

Kommunikationskoncept för kommuner som arbetar med hastighetsöversyn

Det första steget blir att titta i Svensk MeSH för att se om vi kan hitta några bra engelska termer att ha med oss på sökresan.

kl Tentaupplägg

Förarbete, planering och förankring

4/16 Yttrande över motion "WiFi & mobilanslutning på Nynäs" Behandlat av Mötesdatum Ärendenr 1 Nämnden för kultur, utbildning och /16

Tentamen i. för D1 m fl, även distanskursen. lördag 19 januari 2013

Excelfiler läggs till i ArcMap på samma sätt som annan data, genom Lägg till Dataknappen.

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på layout, ett GUI-baserat program Frågor

Programmeringsuppgifter 1

Microsoft Publisher. Laborationskompendium för digital behandling av publikationer. Detta exemplar tillhör:

Inlämningsuppgift 4 NUM131

NXT LEGO-robot laboration Programmering och felsökning av en LEGOrobot

Användarmanual Pagero Connect 2.0

Tentamen i Programmering grundkurs och Programmering C

LYCK. Tips och idéer till roliga och lärorika lektioner i samband med aktuellt tema i Lyckoslanten. Nr Spara & Låna

Föreläsning 4: Poster

Fortsättningskurs i programmering F 2. Algoritmer i Programutveckling Hugo Quisbert Problemexempel 1

PRAO. PP Av Michaela Bärlund, Studie- och yrkesvägledare (2015), reviderad av Moa Bergendahl ( )

Aldrig mer krångliga system

MÄSSHANDBOK ENTREPRENÖRSKAP PÅ RIKTIGT 2016 KRONOBERG

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Hur mäts kunskap bäst? examinationen som inlärningsmoment

1DV433 HT13. I vilken utsträckning har kursens innehåll och uppläggning gett förutsättningar för att du ska ha uppnått respektive lärandemål?

Vandrande Tidsverkstad. Ett naturligt tillfälle till reflektion och samtal om tiden och tillvaron

Tentaupplägg denna gång

Barns och ungdomars informationskanaler kring hälsofrågor

TILL DIG SOM ARBETSGIVARE. PRAO I PRAKTIKEN Tips och information för dig som tar emot prao-elever

Smartair System. TS1000 Version 4.23

Den golfspelande roboten

Exempeluppgift i Logikstyrning. 1 Inledning. 2 Insignaler och utsignaler

Användarmeddelande (november 2014) Ny programversion. Version 14.3a

UPPGIFT 1 KANINER. Håkan Strömberg 1 Pär Söderhjelm

1. Att lyssna 1. Titta på den som talar. 2. Tänk på vad som sagts. 3. Vänta på min tur att prata. 4. Säg det jag vill säga. 1.

Manual för version V2

Introduktion till arv

Närvarande: Bertil, Kristina, Jesper, Linnea, Pia Revidering av handelsplansmöte kl. 10 mån den 27 november Miljömöte är kl.

UBit arbetsmöte 14 december 2015 kl 09:30 16:00 Landstinget, Stora Badhusgatan 2, Göteborg UBit, Utveckling av Bredband och IT-infrastruktur Page 1

Chapter 3: Using Classes and Objects

Öppen data och vad vi kan vinna på att offentliggöra uppgifter! Formatdag i västerås Björn Hagström bjorn.

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor

Föreläsning 13 och 14: Binära träd

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Tips och anvisningar vid fiberanslutning inom tätort

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

KLOKA FRÅGOR OM ÄLDRES LÄKEMEDELSBEHANDLING ATT STÄLLA I SJUKVÅRDEN

Dugga Datastrukturer (DAT036)

Glöd och dynamik när Ingrepp stod i centrum

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

Excelfiler läggs till i ArcMap på samma sätt som annan data, genom Lägg till Data-knappen.

Arbetsrätt. Ola Brinnen April 2016

Föreläsning 10. ADT:er och datastrukturer

2. Får jag bestämma var ni ska gräva? Ja, om det finns något känsligt i vägen vid grävning kan ni påverka var grävning ska ske.

Digitalt lärande och programmering i klassrummet. Introduktionsworkshop - Bygg ett akvarium i Scratch

UPPGIFT 2 KVADRATVANDRING

PRAO åk 8 vecka 13 och Vecka 14 är Påsklov och eleverna är också lediga annandag Påsk vecka 15!

FIBERNÄT STEGET TILL SNABBARE OCH STÖRRE FRIHET

Föreläsning 7. Grafiska användargränssnitt

TNM011 Grafisk teknik Laboration 3 - Färg

Företagsförsäkring för fotografer

TDP Regler

Transkript:

UMEÅ UNIVERSITET 26 april 2002 Instutionen för datavetenskap Grafproblem Laboration 4, Datastrukturer och Algoritmer VT02

Laboration 4 - grafproblem Förpackningsdatum: Denna lab-spec är senast ändrad: 2002-04-26. Bäst-före-datum: Labrapporten lämnas i röda postlådan märkt A-kursernas laborationer senast 08:00 den 29 maj. Grupparbete: Denna lab skall utföras i grupper om 4 personer, listor för gruppanmälan sitter på dörren till rum NADV103 (där David, Fredrik och Johan sitter). Bredband für alle! Inledning Det är valår och flera kommuner planerar att fiska röster genom att lova bredband fram till alla orter i kommunen. Även kommunalrådet i Umeå går i sådana tankar. Men oppositionen väntas passa på att bita ifrån ordentligt i den här frågan, varför det är extra viktigt att det trots allt blir så kostnadseffektivt som möjligt. Vi vill helst visa att Umeås bredbandsprojekt kostar mindre per skattebetalare än vad Ö-viks och Skellefteås utbyggnad kostar. Prognosmakarna har förutspått att det kommer att bli överhettning i både kabelgrävningsbranschen och bland fiberkabel-producenterna, så det är av yttersta vikt att man planerar kabeldragningarna på ett optimalt sätt. Konsultfirman FullKoll AB, där ni arbetar, har fått i uppdrag 1 att planera för hur orterna bör förbindas med varandra. Några av dina medarbetare har redan undersökt markförhållanden, arbets- och materialkostnader förknippade med att dra kabel mellan alla de olika byarna. Mellan två orter har man alltså redan räknat fram ett värde som representerar den totalkostnad som är förknippad med att dra fram en fiber mellan dem. Ditt uppdrag blir nu att bedöma vilka orter som skall ha direktförbindelse med vilka, så att alla orter får kontakt med varandra. I vanlig ordning så bekymrar det ingen att vissa byar kan få låg prestanda pga. strukturella brister. Det enda som räknas är att alla orter skall ha indirekt kontakt med varandra och att kostnaderna skall bli så låga som möjligt. Prestanda och redundans är irrelevant. Dina kollegor har försett dig med två textfiler. Den ena filen innehåller en lista på alla orter som ingår, och den andra filen är en kostnadsbeskrivning med alla tänkbara kabeldragningar mellan två orter och den kostnad som det skulle medföra. Indata Ortfilen är en textfil med lista av strängar: 1 Upphandlingen skedde i hård konkurrens med NollKoll AB, HalvKoll AB samt Lejsy & Gridy AB. Laboration 4 1 26 april 2002

Ersmark Flurkmark Innertavle Kostnadsfilen är en textfil med en tabseparerad lista av (sträng sträng heltal): Ersmark Flurkmark 120 Ersmark Innertavle 320 Utdata Ni ska skapa en applikation som heter Bredband som m.h.a. datastrukturer som ni själva skall skapa, löser problemet i enlighet med en lämplig algoritm. >java Bredband <ortfil> <kostnadsfil> Utdata från programmet skall vara ett heltal som motsvarar totalkostnaden att förbinda samtliga orter i kommunen: >java Bredband orter.txt kostnader.txt >23746 Lokala nätverk Alla är dock inte lika imponerade av politikernas löften om bredband. Missnöjet är särskilt stort i de byar som ligger lång ifrån Umeå, och därmed kommer att få en långsammare uppkoppling. Datorföreningen Karzanovs vänner i Flurkmark har bestämt sig för att ta saken i egna händer. Man har storstilade planer på att bygga sitt eget bredbandsnät, dit man tänker ladda ner en lokal kopia av internet. Tack vare en generös donation från firman HalvKoll AB äger föreningen numer en stor mängd datorer samt all nödvändig nätverksutrustning. Dessvärre har firma HalvKoll AB inte full koll på läget, vilket medför att utrustningen är av varierande prestanda och inte följde någon som helst standard. Den största begränsningen är att all nätverksutrustning är av typen kvarts-duplex, vilket innebär att det enbart går att överföra data i en riktning. Trots detta kopplar Karzanovs vänner ihop sitt nätverk, men man stöter på oväntade problem. Den ursprungliga tanken var att placera hela internet på samma dator men det visade sig att allt inte rymdes. För att råda bot på detta har man i stället spridit ut datat på olika datorer. Av rättviseskäl vill man att den totala bandbredd som förbinder alla par av datorer skall vara ungefär densamma. Laboration 4 2 26 april 2002

För tillfället håller föreningen på att experimentera lite med olika konfigurationer, och man undersöker hur snabbt data kan överföras från en dator till en annan. Din uppgift är att bestämma den maximala bandbredden mellan ett givet par av datorer. Observera att allt data inte behöver överföras via samma länk, datastömmen kan delas upp på olika fysiska förbindelser. Figur 1: Exempel på nätverk, alla hastigheter i Mbps Indata Indatat kommer att bestå av två filer, samt namn på de två datorer man vill veta överföringshastigheten mellan. Den första filen (datorfilen) innehåller alla datornamn: A B C Laboration 4 3 26 april 2002

Nästa fil är nätverksfilen som innehåller information om nätverkets konfiguration. Filen innehåller tre kolumner, dator1 dator2 hastighet, vilket betyder att data kan överföras mellan dator1 och dator2 med hastighet Mbps. Observera att detta inte innebär att dator2 kan sända data till dator1. Ett litet exempel: A B 10 B C 100 C A 10 I exemplet ovan kan A sända till B, men om B vill sända till A måste detta ske via C. Utdata Er applikation, som skall heta LAN, skall anropas enligt följande: >java LAN <datorfil> <nätverksfil> <dator1> <dator2> Exempel: >java LAN dator.txt natverk.txt A B > 140 I exemplet ovan är A och B två av datorerna i dator.txt. Det nätverk som kan konstrueras utifrån dator.txt och natverk.txt är samma som på bilden på föregående sida. Den totala överföringshastigheten mellan A och B är 130 Mbps. Ytterligare tips och info Lös problemen först, och implementera sedan. Fundera först över ifall det går att härleda problemen till något känt typproblem. Välj sedan en lämplig algoritm som löser problemet. För Bredband für alle får den valda algoritmen (i teorin) ej ha en komplexitet överstigande O(n log n), där n är antal rader i kostnadsfilen. Inga tidskomplexitetskrav ställs på algoritmen för uppgiften Lokala nätverk. Förklara i er rapport algoritmerna m.h.a. en algoritmbeskrivning, och försök göra en uppskattning av algoritmernas komplexitet med en kort resonerande text, där ni relaterar till olika delar av algoritmerna. Skapa lämpliga datatyper. De datatyper ni väljer att implementera måste i princip ha den standardiserade gränsyta som anges i kursboken. Om ni t.ex. implementerar en stack så skall ni implementera de funktioner som Laboration 4 4 26 april 2002

anges på sida 134 i kursboken 2. Om gränssnittet för en datatyp skulle vara väldigt omfattande, så tillåter vi att ni utelämnar en liten del av gränssnittet om den är helt irrelevant för den uppgift som skall utföras. Beskriv då i er rapport vilka funktioner ni utelämnat och motivera varför. Då många datatyper med fördel både kan användas i deluppgift 1 och deluppgift 2 är det bra att tänka efter lite extra innan man börjar skriva kod. Kom ihåg att konstruera klasser och interface i enlighet med de riktlinjer som ni har lärt er. Använd exceptions för felhantering. Lägg källkodsfilerna i anvnamn/edu/doa/lab4/ (i vanlig ordning), och sätt filrättigheterna korrekt ( t.ex. chmod 705). Observera att de körbara filerna skall heta Bredband respektive LAN. På denna laboration kommer särskilda krav att ställas på rapporten när det gäller såväl tekniskt innehåll som språkliga detaljer. För den som är ovan att skriva laborationsrapporten rekommenderas http://www.cs.umu.se/information/rapportguide.html där tips och råd finns. 2 Janlert, Wiberg. Datatyper och algoritmer. 2:a upplagan. Studentlitteratur, Lund, 2000. Laboration 4 5 26 april 2002