Na dit college Weet je het doel is van het vak Weet je wat je moet gaan doen bij het vak Introductie Onderzoeksmethoden 1 Heb je kennis gemaakt met de projectonderwerpen 2 Informatica/Game-technologie Onderzoeksmethoden bij voorkeur in derde jaar `Om informatica onderzoek te doen, moet je goed kunnen programmeren Hoorcolleges Werkcolleges Marjan van den Akker Dirk Thierens Hans Bodlaender Silja Renooij Peter de Waal Arno Kamphuis Marjan van den Akker 3 4
Hoe zet je zelf zo n test op? Welke vraag wil ik beantwoorden? Wat zijn criteria? Hoe te testen? Welke PC s precies? 5 6 Resultaat: gebruiksgemak op schaal 1 (slecht) -5 (zeer goed) DellXS HPOpt Dhr A 1 1 Mw B 4 5 Dhr C 3 4 Mw D 3 5 Mw E 5 4 Mag ik nu zeggen: HPOpt is gebruikervriendelijker? Vrouwen kunnen beter met computers omgaan dan mannen? Gebruik Statistiek (heb je wel een grotere tabel nodig) Informatica onderzoek vaak met computerprogramma s `Als het computerprogramma goed werkt, is het onderzoek ook af. 7 8
Wat leer je bij onderzoeksmethoden: Wat leer je bij onderzoeksmethoden (2): Onderzoeksvaardigheden voor informatica anders dan software ontwikkeling Onderzoek opzetten op een wetenschappelijke manier: onderzoeksvragen formuleren, Experimenten opzetten en uitvoeren met behulp van statistische methoden Rapporteren Presenteren onderzoeksplan maken Literatuur verzamelen Ook Kennis over werkwijze binnen wetenschap en universiteit 9 10 Week Hoorcollege Werkcollege Hoorcollege. En hoe leer je dat: Werkcollege statistiek en toets statistiek. Flitspresentatie Literatuurstudie en hierover: Voordracht houden Paper schrijven Researchproject. 6 9-11: Introductie (MvdA) 11-13: Presenteren (HB) 7 9-11: Opzet van onderzoeksproject(hb) 11-13: Literatuur, plagiaat (HB) 8 9-11: Statistiek 1 (MvdA) 11-13: Schrijven + Latex (HB) Flitspresentatie 9 9-11: Statistiek 2 (MvdA) 11-13: werkcollege statistiek (MvdA, PdW) 10 9-11: Statistiek 3 (MvdA) 11-13: werkcollege statistiek (MvdA, PdW) 12 9-11: Tentamen statistiek 11-13: Filosofie van de wetenschap (Peter de Waal) 13 9-11: Het wetenschappelijk bedrijf (Peter de Waal) 11-13: Tussenpresentaties project 13-.. : Voordrachten 14 WOENSDAG (!) : Voordrachten 15 9-17: Voordrachten 16 Eindpresentaties project 11 12
Materiaal Flitsvoordracht College-slides Documentatie op website Aanbevolen boek: Carel van Wijk. Toetsende statistiek: basistechnieken. Coutino, 2008. ISBN 978 90 6283 172 2. Leerdoel Wennen aan spreken en luisteren Introductie KORT! Betoog opbouwen, scheiden feiten en mening Houding ten opzichte van publiek, discussie Eigen onderwerp, bijv. uit nieuws Maximaal 2 slides: powerpoint, beamer, 2 minuten: samenvatting + eigen mening Iedereen: vrijdag 17 februari 13 14 Paper en onderzoeksvoordracht Paper Individueel Kies je 3 favoriete onderwerpen uit de lijst op de webpagina en mail deze voor ma 13 feb 13.15 naar H.L.Bodlaender@uu.nl Er is een INCA-lijst en GameTech-lijst, maar je mag alles kiezen. Ander onderwerp kan: overleg ma 13 februari in de ochtend met Hans Bodlaender Je krijgt ma 13 feb onderwerp toegewezen. Ma 13 feb wordt groepsindeling gemaakt Over onderzoeksonderwerp Voldoet aan de vormeisen van een wetenschappelijk paper. Is geschreven in de Engelse taal. Is geschreven in LaTeX, waarbij je gebruikt maakt van de article-stijl met de opties 12pnt en a4paper. Heeft een omvang van minstens 8 bladzijden, exclusief illustraties, inclusief referenties Heeft een omvang van maximaal 12 bladzijden Heeft minstens 7 relevante referenties, dit zijn echte publicaties, geen wikipedia of websites. Je paper moet uiterlijk 8 maart 17.00 uur worden ingeleverd. Dit is aan het begin van de periode dus, begin op tijd!!!! 15 16
Voordracht Research projecten Over onderzoeksonderwerp 25 minuten Wordt gereviewed door mede-studenten Wordt besproken in de groep Wordt beoordeeld op presentatievaardigheden en inhoud Pizza koeriers (INCA/GameTech) Force-directed graph drawing (INCA en GameTech) Gebruikerservaringen in een snel speelbare game (GameTech/INCA) Elk project kan zowel door INCA als GameTech studenten worden uitgevoerd Programmeerwerk moet beperkt zijn, de uitvoering van het onderzoek is van belang 17 18 Pizza-koeriers in Manhattan Route planning Voor 18.00 uur besteld! Zo snel mogelijk bezorgd (na 18.00 uur) Gegeven: Centraal depot Locatie klanten: gegeven door (x,y)-coördinaat. Manhattan afstand: d((x,y),(u,z))= x-u + y-z 4 Bezorgers Vind een efficient bezorgplan Zelfde probleem bij: Depot 19 20
Routeplanning Wens om een goed routeplan te bepalen Elke bezorger evenveel werk.. Veel methoden We bekijken een bepaalde methode in dit project. Die methode laat nog veel keuzes open, instellen parameters, Eventueel verschillende bezorgscenarios, zoals brommers of bestelbusjes, mogelijkehid tot spoed 21 22 Grafen Toepassingen van grafen Grafen G=(V,E) V is verzameling knopen ( nodes, vertices ) E is verzameling kanten ( edges ) Een kant is een verzameling van twee verschillende knopen V={1,2,3} E={ {1,2}, {2,3}} 2 1 3 Grafen als model voor o.a.: Wegennetwerken Linkstructuur van website Vriendschapsrelaties uit sociaal netwerk Klassediagram van object georienteerd programma Etc. etc. 23 24
Tekenen van grafen Games: gebruikerservaringen Wens om een graaf te tekenen op het platte vlak zodat mooi duidelijk Veel methoden We bekijken in dit project het force-directed graph drawing algoritme. Die methode laat nog veel keuzes open, instellen parameters. Force-directed methoden toegepast binnen Geografische informatie systemen Computer vision Motion planning Open opdracht Kies een snel-speelbare game of groepje snel speelbare games: Internet game bijv tower defence,.. Game uit introductie-project Vereist proefpersonen 25 26 Mogelijke onderzoeksvragen Stappen in het project Is er verschil in succes tussen verschillende groepen, bijv INCA vs GameTech, jong vs oud, Is er verschil in waardering tussen verschillende groepen, bijv INCA vs GameTech, jong vs oud, Kosten level steeds meer tijd of minder tijd? Verschil in succes afh. van tijdstip in de week, tijdstip van de dag? Vergelijking verschillende `paltforms : PC vs mobiele telefoon.. 1. Onderzoeksvraag en plan (24 februari) 2. Tussenresultaten (30 maart presentatie en 2 april verslag) 3. Eindresultaten (18 april verslag en 20 april presentatie) Houdt het programmeerwerk beperkt Project in groepjes van 3 of 4. 27 28
Aanwezigheid is verplicht Aanwezigheid is verplicht bij alle colleges en werkcolleges Bij afwezigheid bij speciale omstandigheden: afmelden bij de werkcollegeleider 3 keer afwezig betekent extra taak 4 keer afwezig betekent gezakt voor het vak Geteld per sessie van 2 uur, hele dag afwezig telt als 2 keer, ook bij 3 of 4 sessies op die dag Veel te laat komen kan ook als afwezigheid worden geteld Onderdeel Cijferregeling Perc Minimum voor eindcijfer Paper 30 5 4 Voordracht 20 5 4 Toets statistiek 20 5 - Project 30 5 4 Minimum voor herkansing Je mag twee onderdelen herkansen Cijfer kan 1 punt worden bijgesteld op grond van participatie 29 30 Aanmelding is niet vrijblijvend Voortijdig stoppen ongewenst Onderzoeksmethoden is niet moeilijk maar meer werk dan een regulier vak. Dus werk gewoon door, maak het vak af, maar als je denkt echt geen tijd te hebben stop dan nu! Er is misschien een andere student die jouw onderwerp graag had willen hebben Je laat je projectteam in de steek Deelresultaten gaan verloren. Vak is docent-intensief: twee keer inschrijven = twee keer docent inplannen Onze flexibiliteit neemt af bij meerdere keren inschrijven 31 32
En nu Achtergrond pizza-koeriers: Traveling Salesman Problem (TSP) terug naar het echte werk Gegeven zijn N steden en hun onderlinge afstanden. Vind de kortste route waarbij je elke stad precies één keer bezoekt. 33 34 TSP is NP-lastig! N N! 2 2 5 120 10 3628800 15 1307674368000 25 15511210043330985984000000 NP-lastig!!!! P: op te lossen in polynomiaal aantal stapjes NP: alleen oplossing checken op feasibility polynomiaal, verder niet bewijsbaar beter dan alle oplossingen proberen. (niet-deterministisch polynomiaal) P vs NP is een van de $ 1 million Millenium Prize problems http://www.claymath.org/millennium/p_vs_np Pizza-koerier-probleem ook NP-lastig 35 36
En dan.heuristiek Lokale zoekmethoden Geen garanties voor optimum (kortste afstand) Wel goede oplossing in redelijke tijd Wij gaan kijken naar lokale zoekmethoden, in het bijzonder Simulated annealing Initialisatie: 0. Bepaal startoplossing x; dit is ook de beste oplossing tot nu toe Iteratie: 1. Zoek buur x van x door oplossing x iets te veranderen. 2. Als x geaccepteerd wordt dan x := x. 3. Indien nodig, update beste oplossing tot nu toe 4. Als niet aan stopcriterium is voldaan, ga naar 1. 37 38 Eenvoudig: Iteratieve verbetering Simulated annealing: accepteer verslechtering met bepaalde kans Iteratie: 1. Zoek buur x van x door oplossing x iets te veranderen. 2. Als x beter dan x dan x := x. 3. Als gedurende een aantal iteraties geen betere oplossing is gevonden, stop. Anders, ga naar 1. Iteratie: 1. Kies buur x uit de buurruimte van x 2. Als x beter dan x dan x := x (accepteer x ) Anders x := x met kans p = exp( ) T 3. Pas indien nodig control parameter T aan 4. Indien nodig, pas beste oplossing tot nu toe aan. 5. Als niet voldaan aan stopcriterium: Ga naar 1. 39 40
Voorbeelden methoden voor bepalen van buur 1. Kies random klant. Haal deze uit route en voeg deze op beste plaats in andere route toe. 2. Kies random klant. Haal deze uit route en voeg deze op willekeurige plaats in eigen route toe. 3. Kies random twee routes, en een willekeurige klant X uit de eerste route. X wordt verwisseld met een klant uit de tweede route. Kies hiervoor de beste mogelijkheid. 4. Kies random klant. Haal deze uit route en voeg deze in eigen of andere route toe. 5. Acceptatie verslechteringen Stel we minimaliseren kosten en de kosten van oplossing x worden gegeven door f(x). = f(x )-f(x) Altijd accepteren als < 0, als 0 accepteer met kans: p = exp ( - / T) T: controle parameter (temperatuur) Bij maximaliseren: = f(x)-f(x ) 41 42 Control parameter T Bepalen accepatie verslechtering Controle parameter T wordt kleiner in de loop van het algoritme. Bereken p Genereer random reëel getal x in [0;1] Accepteer verslechtering als x p Beginwaarde T: helft van verslechteringen dat wordt geaccepteerd Elke Q iteraties: T α T met α = 0.99 of 0.95 Vuistregel: Q ~ 8 * aantal buren van gegeven oplossing 43 44
Stopcriterium: vuistregels Startoplossing Maximaal aantal iteraties is voltooid (altijd gebruiken) Aantal geaccepteerde verslechteringen in serie iteraties is 1 à 2 % Beste oplossing wordt een tijd lang niet beter Random Eenvoudige vuistregel, bijv ga altijd naar dichtsbijzijnde klant 45 46 Vragen Tekenen van grafen Algoritme heeft veel keuzes open: waarden van parameters (methode om buren te bepalen, beginoplossing, etc.) Wat is een goede invulling van die keuzes? En wat bedoelen we met die vraag? Wens om een graaf te tekenen op het platte vlak zodat mooi duidelijk Veel methoden We bekijken een bepaalde methode in dit project. Die methode laat nog veel keuzes open 47 48
Tekening van graaf (met rechte lijnen) Iedere knoop heeft een x en een y coordinaat Elke kant is een rechte lijn tussen de twee knopen Lijnen kunnen kruisen Zelfde graaf, twee verschillende tekeningen Force directed Veren en magneten Inspiratie: natuurkundige wetten Iedere knoop wordt gezien als een magneet: knopen stoten elkaar af Iedere veer wordt gezien als een veer: kracht die veer naar juiste lengte wil trekken 49 50 Idee van methode Keuzes Elke knoop heeft een positie (xcoordinaat, y- coordinaat) Op elke knoop wordt een kracht uitgeoefend Hangt af van afstanden naar andere knopen en lengte van kanten met die knoop als een eindpunt Herhaal totdat tekening niet heel erg veranderd Voor elke knoop v reken kracht uit op v Verplaats v evenredig met de kracht op v Kies voor elke kant {u,v} in de graaf waardes: Stijfheid s uv Gewenste lengte l uv Kies voor elk paar knopen u en v De afstotende werking (repulsie) van u en v r uv Misschien wil je al die waarden hetzelfde nemen, misschien niet? 51 52
Kracht op knoop Krachten op knopen Noteer: d(u,v) = Euclidische afstand van u naar v x v : x-coordinaat van v y v : x-coordinaat van v Kracht op knoop v in x-richting Px(v): afstoten u:{u,v} E s uv x x d(u, v) v u uv ( d(u, v) l ) + ( x x ) uv u:u v r (d(u,v)) Soortgelijke formule voor Py(v) Staan ook in info op website. 3 v u aantrekken 53 54 Algoritme (schets) Vragen Maak een eerste locatie voor alle punten Herhaal totdat (stopcriterum geldt): Voor alle knopen v, bereken Px(v) en Py(v) Voor elke knoop v x v += c * Px(v) y v += c * Py(v) c is een kleine constante Algoritme heeft veel keuzes open: waarden van parameters (stijfheid, gewenste lengtes, repulsies, waarde van c, begintekening, stopcriterium) Wat is een goede invulling van die keuzes? En wat bedoelen we met die vraag? 55 56
En verder Mail uiterlijk ma 13 feb 9.00 naar H.L.Bodlaender@uu.nl: Informatica of gametechnologie 3 favoriete onderwerpen Voorkeur voor project Eventueel projectgroep Wij delen 13 feb de groepen in. Veel succes met het vak! 57