Föreläsning 6. Slumptal Testa slumptal Slumptal för olika fördelningar Grafer Datastrukturen graf

Relevanta dokument
Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim

Indicerade variabler

Indexerade variabler

Trädstrukturer och grafer

Arrays (indicerade variabler) Föreläsning 6

MA2047 Algebra och diskret matematik

Arrays (indicerade variabler) Föreläsning 4

Grafer, allmänt. Med datastrukturen graf menas vanligen: en mängd av noder (vertices) och en mängd av bågar (edges).

Grafer. 1 Grafer. Grunder i matematik och logik (2015) 1.1 Oriktade grafer. Marco Kuhlmann

Föreläsning Datastrukturer (DAT036)

Slumptal och Simulering

Föreläsning Datastrukturer (DAT037)

Föreläsning Datastrukturer (DAT037)

Graphs (chapter 14) 1

C++ Slumptalsfunktioner + switch-satsen

Föreläsning 6 Datastrukturer (DAT037)

Datastrukturer och Algoritmer D0041D

Simulering av Poissonprocesser Olle Nerman, Grupprojekt i MSG110,GU HT 2015 (max 5 personer/grupp)

Föreläsning 6 Datastrukturer (DAT037)

Föreläsning 8 Datastrukturer (DAT037)

Föreläsning Datastrukturer (DAT036)

Föreläsning Datastrukturer (DAT036)

Slump och statistik med Scratch. Se video

Föreläsning 7 Datastrukturer (DAT037)

Kaliningrad) låg vid bägge sidor av floden Pregel samt på

Slump och statistik med Scratch

Grafer och grannmatriser

Simulering. Introduktion. Exempel: Antag att någon kastar tärning

Lösningar Datastrukturer TDA

Första sidan är ett försättsblad (laddas ned från kurshemsidan) Alla frågor som nns i uppgiftstexten är besvarade

Uppgifter 6: Grafteori

TNK049 Optimeringslära

Föreläsning 9. Repetition och exempelproblem

Datastrukturer. föreläsning 8. Lecture 6 1

Sannolikhetsteori. Måns Thulin. Uppsala universitet Statistik för ingenjörer 23/ /14

Näst nästa gång: Nästa gång: mer grafer (kap 10) Grafer 1 1. ! uppspännande träd. ! minimala uppspännande träd. ! Prims algoritm. !

Inledande programmering med C# (1DV402) Tärningarna ska kastas

Nedan redovisas resultatet med hjälp av ett antal olika diagram (pkt 1-6):

Kap.6 Grafer. Egenskaper: Handskakningslemmat och Eulers formel Sats om eulerkrets/väg Isomorfi och representation av grafer Graffärgning

Föreläsning Datastrukturer (DAT036)

Föreläsning 8 Datastrukturer (DAT037)

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

Matematikcentrum 1(7) Matematisk Statistik Lunds Universitet Per-Erik Isberg. Laboration 1. Simulering

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

Laboration 2: 1 Syfte. 2 Väntevärde och varians hos en s.v. X med fördelningen F X (x) MATEMATISK STATISTIK, AK FÖR BYGG, FMS 601, HT-08

Lösningar till tentamensskrivning för kursen Linjära statistiska modeller. 14 januari

TENTAMEN: Algoritmer och datastrukturer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Abstrakta datastrukturer

Matematisk statistik 9 hp Föreläsning 3: Transformation och simulering

träd dag graf båge och vikt Grafer definitioner och terminologi

Föreläsning 5. Träd Binära träd Binärt sökträd som ADT Implementering av binärt sökträd Travestera binärt sökträd Sökning Insättning/borttagning

Föreläsning 7. Felrättande koder

Kontrollera att följande punkter är uppfyllda innan rapporten lämnas in: Första sidan är ett försättsblad (laddas ned från kurshemsidan)

SF1901 Sannolikhetsteori och statistik I

Stora talens lag eller det jämnar ut sig

TMS136. Föreläsning 4

Föreläsning 11. Giriga algoritmer

Valfritt läromedel för kurs Matematik B Exempel: Räkna med Vux B, Gleerups förlag. Tag kontakt med examinator om du har frågor

Enkla uppgifter. Uppgift 1. Uppgift 2

Kapitel 4 Sannolikhetsfördelningar Sid Föreläsningsunderlagen är baserade på underlag skrivna av Karl Wahlin

N = {i}: noder (hörn) Graf: G = (N, B) Definitioner. Väg: Sekvens av angränsande bågar. Cykel: Väg som startar och slutar i samma nod.

Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner

DEL I. Matematiska Institutionen KTH

Matematik för språkteknologer (5LN445) Institutionen för lingvistik och filologi VT 2014 Författare: Marco Kuhlmann 2013

FÖRELÄSNING 3:

Föreläsning 3, Matematisk statistik Π + E

Matematikcentrum 1(6) Matematisk Statistik Lunds Universitet MASB11 - Biostatistisk grundkurs VT2014, lp3. Laboration 2. Fördelningar och simulering

Magnus Nielsen, IDA, Linköpings universitet

Välkommen till Matematik 3 för lärare!

Föreläsning 4 Datastrukturer (DAT037)

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

Föreläsning 1 Datastrukturer (DAT037)

4 Diskret stokastisk variabel

Stokastisk geometri. Lennart Råde. Chalmers Tekniska Högskola och Göteborgs Universitet

Laboration 4: Stora talens lag, Centrala gränsvärdessatsen och enkla punktskattningar

Tentamen TAIU07 Matematiska beräkningar med MATLAB för MI

Introduktion till programmering SMD180. Föreläsning 9: Tupler

översiktskurs (5DV031)

Tentamen Datastrukturer för D2 DAT 035

Matematikcentrum 1(7) Matematisk Statistik Lunds Universitet MASB11 - Biostatistisk grundkurs HT2007. Laboration. Simulering

Belopp Belopp > procent

1 Stora talens lag. Laboration 2 Matematisk statistik allmän kurs, MASA01:A, HT Teori. 1.2 Uppgifter

TAIU07 Matematiska beräkningar med Matlab

17.1 Kontinuerliga fördelningar

Laboration 3: Stora talens lag, centrala gränsvärdessatsen och enkla punktskattningar

Tentamen TANA17 Matematiska beräkningar Provkod: DAT1 Godkänd: 8p av totalt 20p Tid: 21:a April klockan

Programmering, grundkurs, 8.0 hp, Elektro, KTH, hösten Detta är andra problemlösningsföreläsningen, vi diskuterar problemen ur Problem II.

LUNDS UNIVERSITET 1(6) STATISTISKA INSTITUTIONEN Per-Erik Isberg

BMI = (vikt i kg) / (längd i m) 2. Lösningsförslag

Datastrukturer. föreläsning 9. Maps 1

Uppgift 1 ( Betyg 3 uppgift )

Föreläsning 7: Punktskattningar

Grafer MST Top. sortering Starkt samm. komponenter Kortaste avstånd. Grafalgoritmer 1. Douglas Wikström KTH Stockholm

1.1 Diskret (Sannolikhets-)fördelning

Labora&v matema&k - för en varierad undervisning

SF1920/SF1921 Sannolikhetsteori och statistik 6,0 hp Föreläsning 1 Mängdlära Grundläggande sannolikhetsteori Kombinatorik Deskriptiv statistik

FÖRELÄSNING 11 DATALOGI I

F3 Introduktion Stickprov

Transkript:

Föreläsning 6 Slumptal Testa slumptal Slumptal för olika fördelningar Grafer Datastrukturen graf

Repetition En dator kan inte generera slumptal då den är helt deterministisk, däremot kan den generera pseudo-slumptal som kan fås att upplevas som slumptal: #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void){ srand(time(null)); //Anropas EN gång för att sätta frö int tarning1 = rand()%6+1; //blir slumptal 1-6 int tarning2 = rand()%6+1; printf( Du fick %d och %d",tarning1, tarning2); return 0; } rand() beräknar nästa slumptal i serien. Resultatet blir mellan 0 och RAND_MAX

Pseudoslumptal Om inte hårdvarustöd finns kan en dator som är deterministisk inte skapa riktiga slumptal. Istället börjar den med ett frö (ett tal) och kan med detta beräkna en sekvens tal som saknar eller nästan saknar mönster. Vid varje beräkning erhålles ett nytt frö som kan användas till beräkning av nästa slumptal. Detta nya frö kan vara men bör helst inte vara det beräknade slumptalet. Förr eller senare kommer beräkningen att generera ett frö det redan tidigare använt och man har då fastnat i en loop. Antalet slumptal man kan beräkna innan detta händer är slumptalsgeneratorns period.

Kvalitetskrav Perioden lång Fördelningen likformig (alla tal lika sannolika, vanliga) Slumptal nära varandra ska vara oberoende (sannolikheten att få ett visst tal ska inte bero på vad vi fått innan) Effektiv

Linjär kongruensgenerator Har brister men är snabb och kräver nästan inget minne. Använder slumptalet som frö till nästa slumptal. Beräknas med: x n = (a x n-1 +c) mod m där a, c och m är konstanter som ska väljas med omsorg. Sätts m till en jämn tvåpotens blir modulus operationen snabbast. int rnd(int *seed){ long long a; a=(long long) 16807* *seed; *seed=(int)(a%2147483647); return *seed; }

Additiv kongruensgenerator x n = x n-j + x n-k mod m med j = 24 och k = 55 fungerar bra men kräver 55 startvärden. m=2 31

Chi-square-test Vi kastar en vanlig tärning 1200 gånger och noterar resultatet. Vi förväntar oss knappast: Låt oss säga att vi får: Är tärningen ok? Ett chi-square-test jämför tärningens resultat med det statistiska för att ge ett mått på hur sannolikt det är. För att det ska vara alls rimligt att göra ett chi-square-test bör förväntade antalet per utfall vara minst 5.

Som mått på avvikelsen använder vi: Vilket ger oss V = 5,18 Detta värde använder vi för att läsa av raden för rätt antal frihetsgrader i följande tabell. Antal frihetsgrader är antalet möjliga utfall -1, i vårt fall 5.

Vårt värde hamnade mellan 4,351 och 6,626 En korrekt tärning ska enligt tabellen hamna under 6,626 i 75% av fallen. Hade vi hamnat över 6,626 hade det alltså varit lite osannolikt men inte exceptionellt. Det hade ju hänt i 25% av gångerna man gjorde experimentet med en riktig tärning. Att vi kom över 4,351 är inte alls konstigt men det hade inte varit konstigt att komma under heller. En korrekt tärning hade kommit under 50% av gångerna man gjorde försöket. Hade vi fått under 0,5543 eller över 15,09 hade det varit lite oroande. Det händer bara i 1% av försöken. Därmed inte sagt att slumptalsgeneratorn är dålig. För att säkerställa detta behöver man göra fler försök.

Gap test Om vi kastar en tärning och får: 11111,22222,33333, osv känns det kanske inte så där jätteslumpmässigt även om chi-square-testet ovan ger ok. Man kan då analysera avståndet mellan tal nära varandra (ex. avståndet mellan samma siffra). Man gör då statistik på vilket avstånd tal som är på ett visst avstånd från varandra är och gör sedan ett chi-squar test på denna statistik. Mer om detta finns i boken.

Ej rektangelfördelade slumptal De inbyggda slumptalen i C och i många andra miljöer är rektangelfördelade, dvs alla tal i ett intervall är lika sannolika. När vi vill simulera verkligheten är det vanligt att vi har andra fördelningar. Tex är längden hos människor snarare normalfördelade runt ett medelvärde

Normalfördelade slumptal

Exponentialfördelade slumptal

Poissonfördelning

Generera poissonfördelade slumptal

Grafer Grafteori är en gren inom matematiken som är mycket användbar inom datalogi. Vi ska här ge en översikt som ingång till ämnet och hjälp inför problemlösning under kursens andra del. Vi börjar med lite begrepp. Graf (graph) - En mängd V av noder (vertices) och en mängd E av bågar (edges) sådan att ändpunkterna på varje båge i E finns i V. En graf skrivs G = (V, E). Ett exempel: G = ({a, b, c, d}, {(a, c), (b, d), (b, c), (a, d)}) Broarna i Königsberg 1736

Riktad graf (digraf) en graf där varje båge är riktad väg (path), en vandring i grafen där alla noder är olika (undantag: första och sista kan vara samma). sluten väg (closed path) väg där den första och sista noden är samma. Kallas också cykel (cycle). förbindelsematris (adjacency matrix) har lika många rader och kolumner som antalet noder i grafen. Talet 1 i rad i och kolumn j betyder att det går en båge mellan nod i och nod j. Talet 0 betyder att i samma position i matrisen betyder att ingen båge finns mellan dessa noder. Förbindelsematrisen för grafen ovan:

sammanhängande graf (connected graph) är en graf där det finns en väg mellan alla par av noder. brygga (bridge) är en båge, sådan om den tas bort så är inte längre grafen sammanhängande. intilliggande noder (adjacent vertices) Två noder som sammanbinds av en båge. komplett graf (complete graph) en graf där varje par av noder har en gemensam båge. gradtal (degree) Givet en nod v, säger vi att deg(v) är antalet bågar som är anslutna till denna nod v. avstånd (distance) Givet två noder v och w den kortaste vägen d(v,w) mellan dessa noder. diameter (diameter) Det största avståndet d(v,w) som finns i en sammanhängande graf. Euler tur (Euler tour) En sluten väg som går genom samtliga grafens bågar precis en gång. skog (forest) en graf utan cykler (slutna vägar). Om skogen är sammanhängande är det ett träd.

Hamilton tur (Hamilton cycle) En sluten väg som besöker samtliga grafens noder precis en gång. isomorfi (isomorphic) Två grafer med samma matematiska struktur (samma förbindelsematris). ordning (order) antal noder i grafen viktad graf (weighted graph) en graf där där varje båge tilldelats ett tal som kallas för vikten, kostnaden eller avståndet. Spelar en stor roll i datalogin. I motsvarande förbindelsematris placerar vi in kostnaden istället för 1.

Tillämpningar Födesscheman Sociala nätverk Vägnät Datornätverk Transporter Kartografi - att måla kartor. Noderna är länder och bågarna är gränser. Binära sökträd

Graf som ADT Exempel på operationer: Sätta in en nod Sätta in en båge Ta bort en nod Ta bort en båge Söker upp en nod i grafen Bestämmer grannarna till en given nod Beror på tillämpning se tex binära sökträdet som är en graf

Implementering av graf (hur lagrar vi informationen) Enklast möjligast? (men krävande man måste söka igenom hela varje gång man vill hitta en förbindelse): Förbindelsematris. Effektiv och enkel att slå i men slösaktig på minne. (Blir vårt val i kursen) En array med pekare till länkade listor som innehåller de noder som respektive nod har bågar till. effektivare att slå i än förslag ett och mindre minneskrävande än förbindelsematrisen.

Inlämningsuppgifter Följande uppgifter redovisas senast tisdag den 12 februari och kan inte redovisas senare: 6.2, 6.11