Datastrukturer och algoritmer

Relevanta dokument
Innehåll. Projekt Greed. Projekt definition. Projekt Greed En introduktion till projektmodellen LIPs

Projektarbete. Johan Eliasson

Innehåll. Föreläsning 10. Specifikation. Mängd. Specifikation. Konstruktion av mängd. Mängd Lexikon Hashtabell

Datastrukturer och algoritmer. Innehåll. Tabell. Tabell - exempel. Gränsyta till Tabell. Tabell. Modell. Hashtabell Relation, lexikon.

Projekt. Roller i ett industriellt projekt. Projekt. Roller. Roller

Innehåll. F7: Tabell, hashtabell, relation & lexikon. Gränsyta till Tabell. Tabell. Tabell Hashtabell Relation Lexikon.

LIPS 1, 2002 Lätt Interaktiv Projektstyrningsmodell

Dokumentation och presentation av ert arbete

Dokumentation och presentation av ert arbete. Kursens mål. Lärare Projektmedlemmar. Studenter Extern personal. Projektfaser. Projektroller.

Dokumentation och presentation av ert arbete

LiTH Autonom styrning av mobil robot Projektplan. Martin Elfstadius & Fredrik Danielsson. Version 1.0

Dokumentation och presentation av ert arbete

Projektplan. LiTH Segmentering av MR-bilder med ITK Anders Eklund. Version 1.0. Status. Bilder och grafik projektkurs, CDIO MCIV LIPs

Interfacen Set och Map, hashtabeller

LiTH Segmentering av MR-bilder med ITK Efterstudie MCIV. Anders Eklund. Status

TANA81: Matematikprojekt

Magnus Nielsen, IDA, Linköpings universitet

LIPs Daniel Axehill ChrKr Projektdirektiv_Saab_v3 CKr

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary Definitioner Implementation... 2

Välkomna till KMM! KMM. KMM - lärandemål Efter fullgjord kurs ska ni bland annat kunna:

Kravspecifikation Fredrik Berntsson Version 1.1

Projektdirektiv. Rikard Falkeborn Sida 1

Datastrukturer. föreläsning 6. Maps 1

LIPs Isak Nielsen ChrKr Projektdirektiv13_ROV.doc CKr

Programkonstruktion och. Datastrukturer

Projektplan David Sandberg Version 1.0

Projektplan. LiTH Reglering av Avgaser, Trottel och Turbo Fredrik Petersson Version 1.0. Status. Reglerteknisk Projektkurs RATT LIPs

Projektplan. Modellbaserad diagnos av motortestcell Fredrik Johansson Version 1.0. Status. TSRT71 Modellbaserad diagnos av motortestcell IPs

LIPs Martin Lindfors ChrKr Projdir2017_sbd.doc CKr

Dokumentation och presentation av ert arbete

Rapportering som krävs utöver LIPS-dokumenten: poster föredrag där projektets genomförande och resultat beskrivs hemsida som beskriver projektet

Dokumentation och presentation av ert arbete

Hashtabeller. TDA416, lp3 2016

Välkomna till KMM! KMM. KMM - lärandemål Efter fullgjord kurs ska ni bland annat kunna:

Projektplan. LIPs. LiTH Flygsimulator Petra Malmgren. Version 1.0. Status. TSRT71 Reglerteknisk projektkurs Kristin Fredman.

Projektdirektiv Christian Andersson Naesseth Sida 1

LIPs Fredrik Ljungberg ChrKr Projektdirektiv18_ROV.doc CKr

Projektdirektiv Oskar Ljungqvist Sida 1. Kund/Examinator: Daniel Axehill, Reglerteknik/LiU

Före Kravspecifikationen

Diskutera. Hashfunktion

Avbildningar och hashtabeller. Koffman & Wolfgang kapitel 7, mestadels avsnitt 2 4

Information TBMT41. Göran Salerud Version Status

Projektplan. LiTH AMASE Accurate Multipoint Acquisition from Stereovision Equipment. Johan Hallenberg Version 1.0

Kandidatprojekt i elektronik Efter fullgjord kurs ska ni kunna: Kandidatprojekt i elektronik, 16 hp Kursansvarig: Tomas Svensson

Föreläsning 10 Innehåll

Projektplanering. Projektplanen. Om inte projektet planeras noga, kommer det garanterat att misslyckas

Datastrukturer och algoritmer. Föreläsning 15 Inför tentamen

Föreläsning 8. Mängd, Avbildning, Hashtabell

Föreläsning 10 Innehåll. Diskutera. Hashtabeller. Hashfunktion. hashfunktion. hashkod (ett heltal)

Projektdirektiv Hanna Nyqvist Sida 1

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary Definitioner Implementation... 2

Robotgräsklippare PROJEKTPLAN. Robotgräsklippare. Version 1.1. Status. Granskad. Godkänd. Robotgräsklippare.

Riktlinjer Projektmodell fo r Kungä lvs kommun

Kandidatprojekt i elektronik. Kandidatprojekt i elektronik, 16 hp Kursansvariga: Tomas Svensson, Mattias Krysander

Föreläsning 11 Innehåll

Sid 1 Kapitel 7: Sökning (Hashning) Hashning

Ingenjörsprojekt, TFYY Föreläsning 3. Urban Forsberg Institutionen för Fysik, Kemi och Biologi, IFM

PROJEKTPLAN. Programmerbar modellbåt Pontus Brånäs, Wojtek Thorn Version 1.1. Status

Projektplan. Redaktör: Patrik Molin Version 1.0. Mobile Scout. Status. LiTH Granskad Godkänd. TSRT71 Patrik Molin

Ramverk för projekt och uppdrag

Inlämningsuppgift och handledning

Föreläsning 8. Mängd, Avbildning, Hashtabell

LIPs Andreas Bergström ChrKr Projektdirektiv16_Toyota_v2.0.doc CKr

Projektplan. LIPs. Per Henriksson Version 1.0. LiTH 7 december Optimering av hjullastare. TSRT10 projektplan.pdf WHOPS 1

Inlämningsuppgift och handledning. Föreläsning 11 Innehåll. Diskutera. Hashtabeller

Projektmodell. 1. Riktlinjer projektmodell 1 (6)

Projektplan. Joachim Lundh TSRT10 - SEGWAY 6 december 2010 Version 1.0. Status:

Projektplan, Cykelgarage

Innehåll (3) Innehåll (2) Innehåll (5) Innehåll (4) Innehåll (6) Innehåll (7) Dokumenthistorik. beställare, Översiktlig beskrivning av projektet

Projektprocessen. Projektprocess

PROJEKTPLAN. Robotrace Robotrace Version 1.1. Status. Anton Karlsson Per Landström LIPS Projektplan i Oskar Svensson

Detektion och felisolering i förbränningsmotorer PROJEKTPLAN. Max Karjalainen. Version 1.0. Status

Innehåll. Föreläsning 12. Binärt sökträd. Binära sökträd. Flervägs sökträd. Balanserade binära sökträd. Sökträd Sökning. Sökning och Sökträd

LiTH Modellering av Helikopterdynamik Projektplan. Gustaf Norman Version 1.1

Kandidatprojekt i elektronik. Kandidatprojekt i elektronik, 16 hp

Projektstyrningspolicy för Strängnäs kommun

LiTH. WalkCAM 2007/05/15. Testplan. Mitun Dey Version 1.0. Status. Granskad. Godkänd. Reglerteknisk projektkurs WalkCAM LIPs

Projektkunskap & ledning Lektion 1

Projekthandbok. administrativa utvecklingsprojekt

Projektprocessen. Projektprocess

Projektplan. Flygande Autonomt Spaningsplan. Version 1.0. Dokumentansva Datum: 13 februari Dokumentansvarig: Henrik Abrahamsson.

Projektplan Autonomstyrning av gaffeltruck

Kravspecifikation. LiTH Segmentering av MR-bilder med ITK Anders Eklund Version 1.0. Status

Snabbguide - Region Skånes projektmodell webbplats:

Projektstyrningsmodell

Lilla Ratten STOCKHOLMS STADS PROJEKTMODELL

LiTH, Reglerteknik Saab Dynamics. Testplan Collision avoidance för autonomt fordon Version 1.0

Policy för projektarbete

Projektplan. LiTH Kamerabaserat Positioneringssystem för Hamnkranar Mikael Ögren Version 1.0. Status

Guide till projektmodell - ProjectBase

LIPS Kravspecifikation. Institutionen för systemteknik Mattias Krysander

Linköpings universitet

Föreläsning 6 Datastrukturer (DAT037)

Projektplan. LiTH Autonom bandvagn med stereokamera Henrik Berggren Version 1.0. Status. TSRT10 8Yare LIPs. Granskad

FÖRFATTNINGSSAMLING Flik Projektmodell för Vingåkers Kommun

RESULTAT, AVSLUT OCH UPPFÖLJNING. Stefan Berglund

Utsikt - Ett projekt kring missbruksproblematik och

Att utveckla, förvalta, och införa FGS:er Utvecklingsprocess

Testplan. Redaktör: Sofie Dam Version 0.1. Status. Planering och sensorfusion för autonom truck Granskad Dokumentansvarig - Godkänd

Transkript:

Innehåll Föreläsning En introduktion till projektmodellen LIPS Hashtabeller Att läsa: Dessa bilder + kapitel. Projekt definition Projekt En grupp av projektdeltagare utför under ledning av en projektledare en klart definierad uppgift, på en viss tid, med begränsade resurser. Resurserna kan vara i form av människor, material, pengar, eller lokaler. Projekt ska ha mätbara mål. Ett projekt är en engångsföreteelse! Dokumentationen är mycket viktig Fördelar med projekt: Arbetsuppgifter kan utföras parallellt och därmed slutföras på kortare tid Skapar engagemang genom att arbetet utförs i en eller flera grupper o Enskild medlem får insikt i bidraget till helheten Projekt bemannas ofta med personer med kompletterande kunskaper Exempel på organisation i ett industriellt projekt Roller i ett projekt Beställare Styrgrupp Projektledare M M TL M M M Kund Referensgrupp M projektmedlem TL teamledare, eller delprojektledare Beställare Kan vara en extern kund till ett företag eller en intern beställare (ex produktchef) Ansvarig för nyttan med projektet, om det är värt investeringen Projektledare Ansvarar för att projektet utförs och slutförs enligt givna direktiv Projektmedlem ansvarig för att en aktivitet utförs kan också utses till dokumentansvarig, kvalitetsansvarig, testansvarig, kundansvarig, designansvarig,... Bilden hämtad från projektplanemallen.

Roller i ett projekt Organisationen i vårt projekt Styrgrupp Utses av beställaren för att styra och bevaka att projektet når målen. Referensgrupp Personer som stöttar projektledaren och projektmedlemmarna (utan beslutanderätt). Leverantör Person/företag utanför projektgruppen som kontrakteras för att utföra arbete/leverera utrustning. Beställare Projektgrupp M M Bilden hämtad från projektplanemallen. Referensgrupp Beställare Kursansvarig Referensgrupp Handledarna M Medlem i projektgruppen Projektplan LIPS - begrepp Specifikation av hur projektet ska genomföras Dokumenterar till exempel Mål Resurser Tidplan Avslutning Milstolpar En signifikant mätbar händelse Etappmål Definieras oftast av projektgruppen själv Beslutspunkter Punkter där beställaren bestämmer om projektet får fortsätta in i nästa fas. Ofta resultat vid en milstolpe som ligger till grund för beslut. Aktiviteter De arbetsuppgifter som ska utföras under projektet och plan för tidsåtgången för var och en av dessa. Granskningar Varje dokument måste granskas innan de godkänns. Projektstyrningsmodell LIPS Regler och hjälpmedel för att bedriva ett projektarbete Gemensamma definitioner och beskrivningar av flöden, aktiviteter, roller, dokument, etc Varje företag har oftast en egen projektmodell Konfidentiell (konkurrensmedel!) Ericsson använder en modell som heter PROPS Saab använder en modell som heter PSM Vi kommer att använda LIPS o Lätt Interaktiv ProjektStyrning

Huvudfaser i LIPS - Före Bilden hämtad från http://www.liu.se/cul-resurser/lips/kartor/fore.htm I denna fas ges uppdraget och utförandet planeras. En projektplan skapas Kravspecifikation definierar vad man ska göra Systemskiss visar hur man ska göra det Aktiviteter identifieras Resurser och tid planeras Viktig fas! Görs planeringen fel kan projektet inte bli lyckat. Tar tid men man går inte på djupet i detaljerna Före-fasen under kursen: Huvudfaser i LIPS - Under Projektidé och förstudie har redan gjorts och BP, MS och BP har passerats. Dokumentet Projektdirektiv och Kravspecifikation finns på projektsidan. Ni får uppdraget (OU) att förbereda projektet inför utförandefasen. Kraven studeras och man beskriver hur man ska göra i en systemskiss/funktionsspecifikation. Projektplan upprättas MS består av projektplan och kravspecifikation BP är rättningen av OU endast U medför att projektet ej får forstätta Utför projektet och dess aktiviteter Detaljerade specifikationer skapas Aktiviteterna utförs, dokumenteras och resultatet testas. Kontinuerlig rapport till beställaren (mötesprotokoll och statusrapporter) Fasen avslutas med ett systemtest. Arbetet går i cykler Upptäcka att ett krav påverkar designen, måste göra ny design tex. Bilden hämtad från http://www.liu.se/cul-resurser/lips/kartor/under.htm Under-fasen under kursen: Testplan där man funderar på vad som ska testas och hur är viktigt för att garantera fungerande slutresultat. Viktigt att lägga in många milstolpar och stämma av tidsplan och testplan för att se eventuella problem tidigt. Man kan behöva revidera projektplanen. Krav under kursen Utföra individuell tidsrapportering Redovisa pågående arbete och reviderad projektplan (OU). o Milstolparna ni beslutar er för att ha ska synas i projektplanen Vi använder endast BP som är rättningen av OU.

Huvudfaser i LIPS - Efter Bilden hämtad från http://www.liu.se/cul-resurser/lips/kartor/efter.htm Projektresultatet överförs till beställaren och projektet avslutas. Utvärdering utförs. Ofta det svåraste i ett projekt... Att få det betalt och avslutat! Efter-fasen under kursen: Här lämnar ni in sluversionen tillsammans med dokumentation av systemet och efterstudien direkt (OU). Handledarna utför acceptanstestet utifrån kravspecifikationen och kan komma med en restlista... BP är med andra ord rättningen av OU Tillbaka till tabellerna! Hashtabell Hashfunktionen (h) En annan form av en tabell Dvs man associerar en nyckel med ett tillhörande värde. Nycklarna i tabellen är siffror vilket gör att tabellen kan konstrueras som ett fält. o Viktigt att nycklarna är relativt väl samlade och inte utspridda Två problem Nycklar kan behöva omvandlas till siffror Heltal är allt för stor mängd. Detta löses med hjälp av en hashfunktion. Kan omvandla en nyckel av godtycklig typ till en siffra. Avbildar den större indextypen A till en mindre indextyp B.

Hashfunktion Sluten hashing Funktionen h(x) avbildar en stor mängd nycklar, A, på en liten mängd tal, B. Kollisioner är oundvikliga men kan hanteras med Sluten hashing Öppen hashing En bra hashfunktion kännetecknas av: Litet förväntat antal kollisioner Jämnt spridda element Bör påverkas av alla delar av nyckeln Använd en cirkulär vektor Dvs. efter det sista elementet följer det första. Linjär teknik för kollisioner Om ett element kolliderar, sätt in det på den första lediga platsen efter den upptagna. o Ger upphov till klustring i tabellen. Exempel: Sluten hashing, linjär teknik Sluten hashing linjär teknik Grundmängden,,, ska avbildas på värdena,,...,. Mängd {, 8, 7,, } Använd hashfunktionen f(x) x % 7. h() 8 h(8) 8 h(7) 8 h() 8 h() Sökning efter ett elementvärde Börja på den plats dess hashvärde anger och fortsätt framåt. Om det inte påträffats före nästa lediga plats så finns värdet inte i tabellen. Om vi vid borttagning i tabellen bara lämnar platsen tom blir det fel vid sökning! Sätt in en borttagen markör i tabellen. 7 7 Sluten hashing, linjär teknik Hashtabeller - fyllnadsgrad Värstafallskomplexiteten för samtliga operationer är O(n) där n är antalet element som finns insatta i tabellen. Är dock ytterst osannolikt. Alla element måste ligga i en följd. Under förutsättning att tabellen inte fylls mer än till en viss del får man i medeltal O() för operationerna. En hashtabells fyllnadsgrad (λ) definieras som λ n tablesize där n antalet insatta element i tabellen tablesize tabellens storlek En tom tabell har λ och en full λ.

Hashtabeller medelantalet platser som besöks Sluten hashing, kvadratisk teknik Insättning och misslyckad sökning är uppåt begränsad av (λ. ger.): + ( λ) Medelantalet platser för en lyckad sökning är uppåt begränsad av: (λ. ger.) + ( λ) När fyllnadsgraden blir hög (>7%) blir operationerna för den linjära tekniken långsam. Kvadratisk teknik kan användas istället: Vid kollision tas först nästa element, sedan det fyra platser fram sedan nio fram etc, dvs H, H+, H+,, H+i, där H är elementets hashvärde. Ex: Sluten hashing, kvadratisk teknik Sluten hashing Kvadratisk teknik Sätt in talen 89, 8, 9, 8, 9 i en tabell med platser. h(x) x % 7 8 9 9 8 9 89 % 9 8 % 8 9 % 9, upptagen prova H+ 8 % 8, upptagen, H+9 upptagen, H+ 9 % 9, nästa lediga plats H+ 8 89 Inte säkert att man hittar en ledig plats även om det finns! Exempel: Man har en tabell som är element stor och man använder hashfunktionen h(x) x % Stoppar in elementen,, och. Då finns det inte plats för några fler tal som hashas till. De enda platser som kommer prövas är de upptagna,,, 9. Men: Om kvadratisk teknik används och tabellens storlek är ett primtal så kan ett nytt element alltid stoppas in om fyllnadsgraden <.. Fullständig komplexitetsanalys saknas men i praktiken ger den upphov till mindre klustring än linjär hashing. Öppen hashing Förklaring: Insättning och misslyckad sökning, öppen hashing Istället för cirkulär vektor används en vektor av lista. I lista nummer i ligger alla element med hashvärde i. Värstafallskomplexitet: O(n) för alla operationer (Alla element i samma lista). Medelfallskomplexitet: Insättning och misslyckad sökning blir n/tablesize Lyckad sökning blir (n-)/(*tablesize)+ Tumregel: Inte fler än *tablesize element bör sättas in. Antag att det är lika sannolikt att det n:te värdet x hashas till var och en av listorna. Eftersom den lista där x ska placeras måste genomsökas helt innan sökningen misslyckas så krävs det O(antal element i listan i) sökningar I medelfall blir det längdlista _ i n tablesize tablesize tablesize i λ

Exempel: Öppen hashing Grundmängden,,, ska avbildas på värdena,,...,. Mängd {, 7, 7,, } Använd hashfunktionen f(x) x % 7. 7 Från: http://www.ida.liu.se/labs/logpro/ulfni/dalg/resources/f8.pdf Linear prob Sluten hashing med linjär teknik Chaining Öppen hashing Double hash Sluten hashing med kvadratisk teknik 7 Hashfunktionen Vi har använt h(x) x % m i exemplen. Fungerar bra om m är ett primtal. Annars kan periodicitet uppstå. Finns mer generella metoder, tex h(x) ((c *x + c ) % p) % m o p stort primtal > m, tex 88 o c och c konstant heltal > och < p o c ofta satt till