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

Slides:



Advertisements
Liknande presentationer
Warpen BK Här följer en instruktion hur man plockar fram egen statistik från datafilen. Det finns två sätt att få fram statistik. Man byter antal dagar.
Advertisements

PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
Talföljder formler och summor
Formulär Tänkte nu gå igenom vad ett formulär är och hur man kan skapa dem i Access.
Hur lång tid tar det att räkna till en miljon?
En genomgång av spelet: Dubbelkrig-Grön
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
void hittaMax(int tal[], int antal, int *pmax) { int i; ??=tal[0]; for(i=1;i??) ??=tal[i]; } int main() { int v[]={1,2,3,4,2}; int.
hej och välkomna EKVATIONER Ta reda på det okända talet.
FL4 732G70 Statistik A Detta är en generell mall för att göra PowerPoint presentationer enligt LiUs grafiska profil. Du skriver in din rubrik,
Ruttplanering Vad är det??.
Numeriska beräkningar i Naturvetenskap och Teknik
Funktioner och programorganisation
Algoritmer och data strukturer -Länkade listor
Mannitoltest Vid frågor ring Peter Josefsson , alt.
PowerPoint av Bendik S. Søvegjarto Koncept, text och regler av Skage Hansen.
Logikprogrammering Ons, 25/9
Föreläsning 7 Analys av algoritmer T(n) och ordo
Projektet IT-coacher 2013 Enkäter angående intresset av IT-utbildning för seniorer gjordes i kommunerna Lidköping, Götene och Munkedal. De som svarade.
Predicting protein folding pathways.  Mohammed J. Zaki, Vinay Nadimpally, Deb Bardhan and Chris Bystroff  Artikel i Bioinformatics 2004.
Grundläggande statstik, ht 09, AN1 F9 Analys av frekvenstabeller Hittills har vi analyserat eller jämfört 2 grupper avseende variabler på intervall- eller.
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Algoritmer och datastrukturer
1 Sårbarhetsanalys av vägtransportnätverk Erik Jenelius Avd. för transport- och lokaliseringsanalys, KTH VTI Transportforum, Linköping, januari 2007.
C-programmering ID120V William Sandqvist Länkad lista
ABC EFG IJK Markera noden som besökt. Grannar = {E, F, B} E ej besökt, rekursivt anrop. depthFirst(A) * Djupet först i en oriktad graf.
Föreläsning 10 Länkade lista Stack och Kö Att arbeta med listor
FL2 732G70 Statistik A Detta är en generell mall för att göra PowerPoint presentationer enligt LiUs grafiska profil. Du skriver in din rubrik,
732G22 Grunder i statistisk metodik
Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater och 13-15reguljära uttryck Leif Grönqvist
Tentamensdags och lab 3…. Större program delas normalt upp i flera filer/moduler vilket har flera fördelar:  Programmets logiska struktur när man klumpar.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Pathfinding. –Vad är det? –Sökning från A till B.
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Föreläsning 4 Kö Implementerad med array Implementerad med länkad lista Djup kontra bredd Bredden först mha kö.
Algebra och ekvationer
Algoritmer och datastrukturer
Felkalkyl Ofta mäter man inte direkt den storhet som är den intressanta, utan en grundläggande variabel som sedan används för att beräkna det som man är.
Frågor om elevinflytande till elever i åk 3 – 9 i grundskolan
Skattningens medelfel
Grundläggande programmering
Problemlösning Veckodagsproblemet Gissa talet Siffersumman.
En mycket vanlig frågeställning gäller om två storheter har ett samband eller inte, många gånger är det helt klart: y x För en mätserie som denna är det.
Logikprogrammering 21/10 Binära träd
Ingenjörsmetodik IT & ME 2008
Föreläsning 5Forskningsmetodik 2005 Forskningsmetodik lektion 6.
Sannolikhet Stickprov Fördelningar
Simulering Introduktion Exempel: Antag att någon kastar tärning
Föreläsning 7 Fysikexperiment 5p Poissonfördelningen Poissonfördelningen är en sannolikhetsfördelning för diskreta variabler som är mycket.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
Institutionen för matematik, KTH Mats Boij 5B1118 Diskret matematik 26 november B1118 Diskret matematik Nionde föreläsningen Grafer.
Graph och graph-algoritmer. Några enkla graph teorier Hur IP trafik hittar destinationen i Internät ? GPS-system ? Sociala nätverk. Vanligaste frågeställningar:
Välkommen till Strands BK´s upptaktsträff :30 Startar vi med en process 10:45Grunder i spärrspel 12:00 SISU bjuder på lunch på Hot Chili 13:00Första.
Föreläsning 13 Logik med tillämpningar Innehåll u Aritmetik i Prolog u Rekursiva och iterativa program u Typpredikat u Metalogiska predikat.
Satslogik, forts. DAA701/716 Leif Grönqvist 5:e mars, 2003.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 9 Grafalgoritmer.
Fysikexperiment, 5p1 Random Walk 36 försök med Random walk med 1000 steg. Beräknad genomsnittlig räckvidd är  1000  32. Visualisering av utfallsrum.
1 Ingenjörsmetodik IT & ME 2007 Föreläsare Dr. Gunnar Malm.
Slumpmässiga tal i datorer Johan Hjerling Institutionen för informationsbehandling
Procedurellt potpurri Dagens samtalsämnen –Klipp (Cut) –If-then-else –fail/0 –repeat/0 Att läsa –The Art of Prolog, kapitel 11 –Relevant avsnitt i Learn.
© Anders Broberg, Lena Kallin Westin, 2007 Datastrukturer och algoritmer Föreläsning 14.
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och Datastrukturer -- Kap 21,14 Prioritets Köer (Priority Queues ), Graph.
1 Fler uträkningar med normalfördelningstabell Låt X vara Nf(170,5). Beräkna Lösning:
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 8 Relationer, prioritetsköer och grafer.
Malmö högskola Rolf Axelsson 2003/2004 DA7235, 4 poäng Fält som returvärde Sortera fält Söka i fält Tvådimensionella fält Fält och spelplan Föreläsning.
Växjö 14 april -04Språk & logik: Finita automater1 DAB760: Språk och logik 14/4:Finita automater Leif Grönqvist Växjö Universitet.
Anders Sjögren Programmering i ANSI-C Ett första program för att se vart vi ska...
För utveckling av verksamhet, produkter och livskvalitet. Algoritmer och datastrukturer Hash Tabeller och Graf.
Sannolikhet och statistik Tabell Används för att ge en bra överblick av svaren man fått in, datan. Består av rader och kolumner. Frekvens Är hur många.
Föreläsning 8: Exempel och problemlösning
Presentationens avskrift:

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 Diskutera även hur vi får ett decimaltal mellan [0,1[ och hur vi får 1-6 med samma sannolikhet exakt och varför ovanstående inte är exakt (ex randmax=10)

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: xn = (axn-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. Brister: perioden högst m ofta kortare, korrelation mellan tal, minst signifikanta bitarna har kortare period (sista siffran alternerar mellan 2 och 7) int rnd(int *seed){ long long a; a=(long long) 16807* *seed; *seed=(int)(a%2147483647); return *seed; }

Additiv kongruensgenerator xn = xn-j + xn-k mod m med j = 24 och k = 55 fungerar bra men kräver 55 startvärden. m=231

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 f(2) – är alltså sannolikheten att det kommer 2 kunder under 1 minut. kunderna räknas som oberoende, ex sönderfall

Generera poissonfördelade slumptal Analet händelser under en tidsenhet där lambda är snittantalet

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 Leonhard Euler

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