Informatica. les 7. Slimme (deel II: hoofdstuk 9) versus intelligente (deel III: hoofdstuk 10) algoritmen

Maat: px
Weergave met pagina beginnen:

Download "Informatica. les 7. Slimme (deel II: hoofdstuk 9) versus intelligente (deel III: hoofdstuk 10) algoritmen"

Transcriptie

1 Informatica les 7 Slimme (deel II: hoofdstuk 9) versus intelligente (deel III: hoofdstuk 10) algoritmen Jan Lemeire Informatica deel II & III februari mei 2014 Parallel Systems: Introduction

2 Is er een machine die even slim of zelfs slimmer is als de mens!?

3 HAL Film 1968

4 Computer HAL

5 Hoofdstuk 10: Artificiële intelligentie Jan Lemeire Pag. 5 / 94

6 Waarmaken van Leibniz s droom (10) Artificiële intelligentie (9) Communicatie & internet (8) Operating system (7) Computatietheorie & Software (6) Efficiënt productieproces (5) Hardware architectuur Electronica: (3) relais -schakeling, (4)geheugen (2) Digitaal & binair (1) Het idee Informatica deel III: technologie, historiek en economische aspecten

7 Wat is intelligentie? Informatie Redeneren Begrijpen Wikipedia: abstract thought, understanding, selfawareness, communication, reasoning, learning, having emotional knowledge, retaining, planning, and problem solving. Taal (noodzakelijk?) Verschil tussen slimme algoritmen en intelligentie! Er is nog geen eenduidige definitie van intelligentie! Jan Lemeire Pag. 7 / 94

8 Wanneer spreken we over intelligentie? Er is een verschil tussen slimme algoritmen en intelligentie! Veel van wat we intelligent noemen is in feite slechts gebaseerd op een goed doordacht algoritme Intelligentie heeft, volgens mij, te maken met begrijpen Jan Lemeire Pag. 8 / 94

9 Internet 3.0: het semantische web Internet 1.0: door informatie browsen Internet 2.0: interactiviteit, gebruiker die informatie uploadt Internet 3.0: een web van verbanden tussen informatie op het internet => semantische pagina s Een overzicht van alle staatshoofden van Europa kan alleen beantwoord worden als er een webpagina over bestaat. Ipv enkel informatie, ook inhoud (semantiek - betekenis) datasets combineren en er informatie uithalen Askjeeves.com Vb: who won the latest contest on the turing test? Begrijpen heeft te maken met semantiek, een droom voor het volgende internet. Zijn we daar kortbij? Ik vrees van niet. Jan Lemeire Pag. 9 / 94

10 De uitvinder van het internet 1989: maakte de eerste webserver en browser 1999: dacht verder: Tim Berners-Lee I have a dream for the Web [in which computers] become capable of analyzing all the data on the Web the content, links, and transactions between people and computers. A Semantic Web, which should make this possible, has yet to emerge, but when it does, the dayto-day mechanisms of trade, bureaucracy and our daily lives will be handled by machines talking to machines. The intelligent agents people have touted for ages will finally materialize. Jan Lemeire Pag. 10 / 94

11 Turing Test (1950) 'Can machines think? Artificiele intelligentie Kunnen we verschil maken tussen mens en computer? Computer Mens Alan Turing Hoever staan we? Omdat er geen duidelijke definitie bestaat over wat intelligentie inhoudt en wij als mens prototype zijn van intelligentie, bedacht Turing een test. Door vragen te stellen tracht je te ontdekken of er achter het scherm een computer of mens Informatica bevindt. II: les 7Als we geen verschil meer kunnen maken, kunnen we de Jan Lemeire Pag. 11 / 94 computer intelligent noemen.

12 Turing test Je kan je intelligent programma opladen dollar als je programma slaagt voor de Turing test Communiceer je met een computer of met een mens? Jan Lemeire Pag. 12 / 94

13 Turing test for bots The idea is to evaluate how we can make game bots, which are Non-Player Characters (NPCs) controlled by AI algorithms, appear as human as possible. Unreal Tournament 2004 (results) tournament against one another and about an equal number of humans tag opponents as human or bot. Jan Lemeire Pag. 13 / 94

14 Jan Lemeire Pag. 14 / 94

15 Digibeet-test Computers zijn de stomste dingen die er zijn. Als ik een probleem heb met het gebruik van de computer en hij kan dit kan oplossen, is hij intelligent. Als hij weet wat ik wil. Kunnen we zeggen dat onze computer intelligent is? Begrijpt hij wat we in feite willen? Het is eerder dat wij moeten weten hoe hem te gebruiken (digibeten hebben hier moeite weten). Jan Lemeire Pag. 15 / 94

16 Piet Vroon Drie soorten hersens Instinct (Hersenstam/hypothalamus - reptielenherses) Conditionering (Limbisch systeem - zoogdierenbrein) Intelligentie (Neocortex meest recente hersens) 1 miljoen jaar geleden: evolutionaire sprong (vuur werktuigen) jaar geleden: finale evolutionaire sprong (taal?) Geest is federatie van delen Daden gevolg van combinatie 3 hersens 1990 Jan Lemeire Pag. 16 / 94

17 Vandaag 1. Artificiële Intelligentie 2. Puzzel 3. NP-complete problemen 4. Leren 5. Spel: minimax 6. Non-zero sum games 7. Artificiële Intelligentie (conclusive)

18 Schuifpuzzel

19 p. 108 Puzzel: Tot nu toe Alle mogelijke zetten: zoekboom Score-functie Greedy search Score-optimalisatie met horizon Jan Lemeire Pag. 19 / 94

20 p. 119 Verdere verbeteringen a) Leren (type 5): zie later b) puzzel rij-per-rij afwerken. Behalve de laatste twee rijen, die tegelijkertijd aanpakken Beperkte horizon OK c) Regels opstellen Type 1 probleem Jan Lemeire Pag. 20 / 94

21 NP-complete problemen

22 NP-compleet: traveling salesman problem p. 122 Meest efficiënte volgorde om alle steden af te lopen? 15! = mogelijke volgorden Jan Lemeire Pag. 22 / 94

23 p. 122 NP-compleet Klasse van problemen Voor optimale oplossing: alle mogelijkheden afgaan (Type 3) Met Type 4-oplossingen nooit zeker! Jan Lemeire Pag. 23 / 94

24 Een goede oplossing Maar niet te bewijzen dat optimaal zie Jan Lemeire Pag. 24 / 94

25 Leren

26 Oplossingsmethoden p. 124 Type 1: De oplossing kan berekend worden met een formule (analytisch). Type 2: Je kunt de oplossing gericht zoeken of construeren (rechttoe-rechtaan). Type 3: Je gaat alle mogelijke actiesequenties af om een oplossing te vinden. Type 4: Door slimme keuzes (heuristieken) te maken, kan je verschillende actiesequenties uitsluiten. Type 5: Je leert al doende welke de juiste keuzes zijn. Jan Lemeire Pag. 26 / 94

27 p. 124 Kanon richten op doel Opgave: raak doel Instelbare parameter: hoek Feedback: te ver of te kort bij Leren: hoek iets verkleinen of vergroten Risico: oscillatie -> delta hoek goed kiezen α Jan Lemeire Pag. 27 / 94

28 Leerproces 23 => 27 => 31 => 29 => 30 => 29.5 Convergentie (hopelijk) streven naar convergentie lijkt op nulpunt zoeken! als feedback beperkt is, moet je dalfa zelf uitzoeken Voorbeeld: je komt enkel te weten als raak of niet raak Wordt reinforcement learning genoemd Voordeel: kan zich aanpassen aan wisselende omstandigheden Jan Lemeire Pag. 28 / 94

29 Varianten Feedback: hoeveel te ver/te kort Je kan delta hoek kiezen evenredig aan fout Meerdere instelparameters: naast hoek ook munitie Jan Lemeire Pag. 29 / 94

30 Meerdere parameters parameters: variërende kracht en willekeurig gekozen hoek Jan Lemeire Pag. 30 / 94

31 Kanon richten op wisselende doelen Opgave: kies alfa om gevraagde afstand te bereiken Feedback: behaalde afstand Leren is niet altijd t beste α Jan Lemeire Pag. 31 / 94

32 Experimentele data Jan Lemeire Pag. 32 / 94

33 Regressie of curve fitting functie fout distance = angle angle angle distance = angle angle distance = angle 267 distance = angle distance = angle Jan Lemeire Pag. 33 / 94

34 Leren van hoek= f(afstand) Wanneer: als functie varieert (door wind bvb) Als je afstand tot doel niet kent Als feedback enkel te ver of te dichtbij Kwadratische functie met 3 parameters willekeurige beginwaarden voor de drie parameters Parameters bijstellen na feedback a b c % +5% +5% Jan Lemeire Pag. 34 / 94

35 Engineering noodzakelijk Inzicht en doordachtheid is noodzakelijk, het vakmanschap van een ingenieur. Er bestaat geen algemene leermethode Of artificiële intelligentie (volgende week!) Jan Lemeire Pag. 35 / 94

36 Hoe programmeren? niet te kennen, optioneel als vervangvraag

37 Pijlers van object-georiënteerde programmeertalen I. Encapsulatie 2.4 Conclusies ArrayList versus array p Stapel-datastructuur p Java s LinkedList p AVL-boom p. 70 II. Overerving (inheritance) 4.3 FunctieMetAfgeleide-interface p AVLTree subklasse p. 72 III. Polymorfisme en abstractie 4.2 Functie-interface p Mapimplementaties p Abstract zoekalgoritme p Vergelijking van zoekalgoritmes p.110

38 p. 109 public class Zoekboom<Actie> { } ZoekNode<Actie> root; class ZoekNode<Actie>{ // beschrijving van de boom ZoekNode<Actie> parent; List<ZoekNode<Actie>> children; } // eigenschappen van node ZoekToestand<Actie> toestand; Actie actie; int diepte;

39 Uitdaging: algemene oplossing onafhankelijk van het specifieke probleem dat je wenst op te lossen! Wat moet je weten om de boom aan te maken? Je moet de mogelijke acties kennen. Met de actie kom je in een nieuwe situatie, je bereikt een nieuwe toestand. Je wilt ook weten of je de gevraagde eindsituatie bereikt hebt. Allemaal operaties op de toestand Jan Lemeire Pag. 39 / 94

40 ZoekToestand interface public interface ZoekToestand<Actie> { } List<Actie> possiblemoves(); ZoekToestand<Actie> domove(actie actie); boolean isendgoal(); De uitwerking van de methodes is afhankelijk van het probleem Meer moeten we niet weten van het probleem Jan Lemeire Pag. 40 / 94

41 p. 112 Probleemspecifieke code Link tussen algoritme en probleem gegeven door interface

42 public class Schuifpuzzel implements ZoekToestand<Schuifpuzzel.Actie>{ public enum Actie { UP, RIGHT, DOWN, LEFT } // enumeratie int breedte, hoogte; // afmetingen van de puzzel int[][] puzzel; // het lege vakje krijgt de waarde 0 int leegvakjerij, leegvakkolom; // coordinaten van het lege vakje /** een schuifpuzzel met een willekeurige begintoestand */ Schuifpuzzel(int breedte, int hoogte){ this.breedte = breedte; this.hoogte = hoogte; puzzel = new int[breedte][hoogte]; // TODO: opvullen met random waarden } /** een schuifpuzzel met een gegeven begintoestand bvb new int[][]{ {0, 5, 2}, {1, 8, 3}, {4, 7, 6}}; */ Schuifpuzzel(int[][] begintoestand){ this.hoogte = begintoestand.length; this.breedte = begintoestand[0].length; puzzel = begintoestand; // TODO: leegvakjerij, leegvakkolom bepalen }

43 // Methodes van interface public List<Actie> possiblemoves(){ // TODO Auto-generated method stub return null; public Schuifpuzzel domove(actie actie){ // TODO Auto-generated method stub return null; public boolean isendgoal() { // TODO Auto-generated method stub return false; }

44 p. 111 void expand(int maximalediepte){ if ( diepte < maximalediepte){ List<Actie> acties = toestand.possiblemoves(); for(actie actie: acties){ ZoekToestand<Actie> nieuw = toestand.domove(actie); ZoekNode<Actie> childnode = new ZoekNode<Actie>(nieuw, actie, diepte + 1); children.add(childnode); childnode.expand(maximalediepte);// recursieve oproep } } } Opbouw boom

45 Nu: generieke oplossing aanmaken zoekboom kan nu algemeen (generiek), onafhankelijk van het specifiek probleem Herbruikbaar Eenvoudiger probleem-specifieke dingen zijn er uit Software engineering Jan Lemeire Pag. 45 / 94

46 p. 114 Gebruik van code Je geeft concreet object mee met het abstract algoritme public static void main(string[] args) { int[][] begintoestand = new int[][]{ {0, 5, 2}, {1, 8, 3}, {4, 7, 6}}; Schuifpuzzel puzzel = new Schuifpuzzel(beginToestand); Zoekboom<Schuifpuzzel.Actie> zoekboom = new Zoekboom<Schuifpuzzel.Actie>(puzzel); } zoekboom.maakboom(10); ZoekNode<Schuifpuzzel.Actie> oplossing = zoekboom.vindbesteoplossing(); List<Actie> actiesequentie = zoekboom.actiesequentie(oplossing); System.out.println(actieSequentie); Jan Lemeire Pag. 46 / 94

47 Code herbruikbaar voor analoge problemen p. 112 Implementeer interface Jan Lemeire Pag. 47 / 94

48 p Depth-first brute force public ZoekNode<Actie> vindbesteoplossing(){ return vindbesteoplossing(root, null); } private ZoekNode<Actie> vindbesteoplossing(zoeknode<actie> node, ZoekNode<Actie> bestenodetotnu){ if (node.toestand.isendgoal()){ if (bestenodetotnu == null bestenodetotnu.diepte > node.diepte) bestenodetotnu = node; // betere gevonden } for(zoeknode<actie> child: node.children) // recursie bestenodetotnu = vindbesteoplossing(child, bestenodetotnu); return bestenodetotnu; } Jan Lemeire Pag. 48 / 94

49 Visibiliteit van attributen en p. 2 methoden Public: voor iedereen toegankelijk Private: enkel toegankelijk voor de klasse zelf Protected: ook toegankelijk voor subklasses Geen keywoord = package scope vrij toegankelijk binnen package Jan Lemeire Pag. 49 / 94

50 p. 114 actiesequentie afleiden public List<Actie> actiesequentie(zoeknode<actie> node){ ArrayList<Actie> actiesequentie = new ArrayList<Actie>(); while (node.parent!= null){ actiesequentie.add(0, node.actie); // voeg toe aan de voorkant } } node = node.parent; return actiesequentie; Jan Lemeire Pag. 50 / 94

51 Vergelijken van algoritmen niet te kennen

52 Andere zoekalgoritmen Greedy search Score-optimalisatie met horizon Varianten van score We willen deze gaan vergelijken! framework voor zoekalgoritmes die een probleem oplossen Abstractie! Jan Lemeire Pag. 52 / 94

53 p. 119 Abstract zoekalgoritme Wat willen we doen met algoritme? We moeten het algoritme kunnen starten met een gegeven beginsituatie. Eenmaal het algoritme geëindigd bereikte eindtoestand gevraagde eindsituatie bereikt? de actiesequentie tot de oplossing? het aantal acties (de lengte van de sequentie) de score? Met een score kunnen we ook algoritmen bestuderen die niet de gewenste eindconfiguratie bereiken, maar die in de buurt stranden. Jan Lemeire Pag. 53 / 94

54 p. 120 public interface ZoekAlgoritme<Actie> { void vindoplossing(zoektoestand<actie> beginsituatie); boolean solutionfound(); List<Actie> actiesequentie(); int aantalacties(); float score(); } ZoekToestand<Actie> bereiktetoestand();

55 p. 122 p. 120

56 public class ZoekBruteForce<Actie> implements ZoekAlgoritme<Actie> { int maximalediepte; List<Actie> actiesequentie; ZoekToestand<Actie> eindtoestand; p. 120 public ZoekBruteForce(int maximalediepte){ this.maximalediepte = maximalediepte; public void vindoplossing(zoektoestand<actie> beginsituatie) { Zoekboom<Actie> zoekboom = new Zoekboom<Actie>(beginSituatie); zoekboom.maakboom(maximalediepte); ZoekNode<Actie> besteoplossing = zoekboom.vindbesteoplossing(); actiesequentie = zoekboom.actiesequentie(besteoplossing); eindtoestand = besteoplossing.toestand; public boolean solutionfound() { return score() == 0; public List<Actie> actiesequentie() { return actiesequentie; }

57 @Override public int aantalacties() { return actiesequentie.size(); public float score() { return eindtoestand.score(); public ZoekToestand<Actie> bereiktetoestand() { return eindtoestand; public String tostring() { return "bruteforce (max "+maximalediepte+")"; } } p. 121

58 public static void main(string[] args) { p. 122 // definitie van het probleem int[][] begintoestand = new int[][]{ {0, 5, 2}, {1, 8, 3}, {4, 7, 6}}; Schuifpuzzel puzzel = new Schuifpuzzel(beginToestand); // lijst alle beschikbare algoritmes op List<ZoekAlgoritme<Schuifpuzzel.Actie>> algoritmes = new ArrayList<ZoekAlgoritme<Schuifpuzzel.Actie>>(); algoritmes.add( new ZoekBruteForce<Schuifpuzzel.Actie>(10) ); algoritmes.add( new ZoekBruteForce<Schuifpuzzel.Actie>(15) ); // andere algoritmes kunnen hier toegevoegd worden... } // laat alle algoritmes hun werk doen for(zoekalgoritme<schuifpuzzel.actie> alg: algoritmes){ System.out.print("Algoritme "+alg+": "); alg.vindoplossing(puzzel); System.out.println(" vindt oplossing met score "+alg.score() +" te bereiken in "+alg.aantalacties()+" stappen."); }

59 Spel

60 p. 126 Spel Je speelt tegen een tegenstander, hebt een aantal acties ter beschikking, speelt om beurten en er is een einddoel of eindscore bepaald. Of varianten hierop. Jan Lemeire Pag. 60 / 94

61 p. 126 OXO X begint possible games Zonder symmetrieen: Winst voor X: Winst voor O: Gelijkspel: Jan Lemeire Pag. 61 / 94

62 p. 127 Schaken Evaluatiefunctie (score) 1. Waarde van de stukken 2. Positie van de koning 3. Controle over het middenveld (de 4 middelste vakjes) 4. Positie van de pionnen Bijvoorbeeld, of ze aaneensluitend gepositioneerd zijn 5. Positie van de stukken bijvoorbeeld, hoeveel de bewegingsvrijheid van elk stuk Jan Lemeire Pag. 62 / 94

63 p. 127 Minimax Wit & zwart spelen om beurten Score te maximaliseren door wit Wat moet wit doen: links of rechts? 4 White plays 5 6 Black plays White plays Black plays Jan Lemeire Pag. 63 / 94

64 p. 128 Minimax: wat doet zwart? Kiest zet die score minimaliseert White plays Enkel score van de laagste nodes is van belan!!! Black plays White plays Black plays MIN Jan Lemeire Pag. 64 / 94

65 Minimax: wat doet wit? Kiest zet die score maximaliseert White plays Black plays White plays MAX Black plays MIN Jan Lemeire Pag. 65 / 94

66 Minimax: zwart White plays Black plays MIN 6 White plays MAX 6 4 Black plays MIN Jan Lemeire Pag. 66 / 94

67 Minimax: wit beslist Links geeft score 6 6 White plays MAX Black plays MIN White plays MAX Black plays MIN Jan Lemeire Pag. 67 / 94

68 Snoeien van de boom Pruning Alfa-beta pruning: als tegenstander beschikt over een succesvolle actiesequentie => geen zin om dit deel verder te bekijken Voor sommige situaties dieper gaan Regels die hierover beslissen Jan Lemeire Pag. 68 / 94

69 Computer wint van Mens 1997: IBM s Deep Blue verslaat wereldkampioen Gary Kasparov Nadien enkele revanches van de mens, verschillende gelijke spelen, maar nu wordt geaccepteerd dat de computer sterker is Computer Brute-force search: veel rekenen, weinig redeneren Evalueert 200 millioen posities per seconde Niet goed in strategisch denken Jan Lemeire Pag. 69 / 94

70 Is dit Artificiële Intelligentie? p. 130 Betwijfel het Jan Lemeire, An Alternative Approach for Playing Complex Games like Chess, Annual machine learning conference of Belgium and The Netherlands (BeneLearn 2008), Spa, Belgium zie mijn homepage Idee: opportuniteit (patronen) checken of einddoel gehaald kan worden enkel branches nagaan die relevant zijn? Gericht zoeken in boom mogelijk pattern -> Effects(pattern) -> win Jan Lemeire Pag. 70 / 94

71 Go Strategisch-tactisch bordspel waarbij mens nog steeds wint Regel: als vijandelijke stukken zijn ingesloten => weg Jan Lemeire Pag. 71 / 94

72 p. 132 Probleem: explosie van staten Stel: voor elke toestand (staat) willen we beste zet leren Schuifpuzzel: 9! mogelijke configuraties Schaken: nog groter Te veel mogelijkheden om te leren! Oplossing: regels gebruiken Als X, doe actie Y X: eigenschap van staat geldt dus voor meerdere staten Leren van relevantie van de regels Jan Lemeire Pag. 72 / 94

73 Leren van evaluatiefunctie Aanpassen van parameters met behulp van feedback (winst of verlies) Voorbeeld: gewichten van de score-functie Jan Lemeire Pag. 73 / 94

74 Non-zero sum game

75 p. 130 Prisoner s dillema Henry & Dave beschuldigd van misdrijf Rechter roept hen apart bij zich en vraagt hen of de ander schuldig is Antwoord bepaalt straf: Jan Lemeire Pag. 78 / 94

76 Iterative Prisoner s dillema Samenwerken of bedriegen? Iteratief toepassen Op termijn speelt vertrouwen mee Cf vertrouwen op het internet Jan Lemeire Pag. 79 / 94

77 Jan Lemeire Pag. 80 / 94

78 Iterative Prisoner s dillema Samenwerken of bedriegen? Wat is beste strategie? Toernooien worden gespeeld Elk duel bestaat uit 100 opeenvolgende beslissingen Winnaar: oog-om-oog, tand-om-tand Voorbeeld: strategie te leren met reinforcement learning Staat = 2/3 laatste beslissingen MEER UITLEG!! Hier reinforcement learning toepassen Jan Lemeire Pag. 81 / 94

79 Mijn masterproef De evolutie naar coöperatie Egoistische robotjes leren samenwerken omdat het hun wederzijds voordeel oplevert (win-win) Mijn onderzoek: onder welke voorwaarden ontstaat er coöperatie? Jan Lemeire Pag. 82 / 94

80 Artificiële Intelligentie, de grote uitdaging

81 Wanneer spreken we over intelligentie? Er is verschil tussen slimme algoritmen en intelligentie! Jan Lemeire Pag. 85 / 94

82 AI: actuele toepassingen Stemherkenning Spreken met de computer, zullen we/willen we? Objectherkenning Vb: security, gezichtsherkenning in facebook, verkeersbordherkenning Vertalingen Consumentenprofiel adhv historische egevens Grootwarenhuizen Facebook, google: aangepaste reclame Is dit intelligentie?? Jan Lemeire Pag. 86 / 94

83 Lemeire-test Als mens het kan, moet er een computerprogramma bestaan die het ook kan Programmeren in natuurlijke taal Begrijpen van natuurlijke taal hier achter Jan Lemeire Pag. 87 / 94

84 Niet in cursus Wat is intelligentie? Marvin Minsky Marvin Minsky Founding father of AI Ontdekker van artificiele neurale netwerken The Society of Mind theory. Intelligentie ontstaat uit het samenvoegen van vele domme building blocks die elk iets kunnen. Het geheel is intelligent. Jan Lemeire Pag. 90 / 94

85 Volgens mij Met een graduele verbetering van de huidige technieken komen we er niet Echte ontdekking moet nog gebeuren Hoe we informatie opslaan/verwerken/gebruiken Natuurlijke taal? Waar is het genie die dit gaat ontdekken? Jan Lemeire Pag. 91 / 94

86 Conclusie voor ingenieur Er is gespecialiseerd onderzoek naar A.I. Maar meestal is engineering nog noodzakelijk Meestal zijn simpele, slimme oplossingen even goed Zware A.I.-technieken nog weinig in gebruik, nog niet voor meteen Gebruik je intelligentie en ingenioziteit om adequate oplossing te vinden Jan Lemeire Pag. 92 / 94

87 Willen we wel een slimme computer? Die beslissingen voor ons neemt In de film 2001 neemt de computer HAL de controle over van het ruimteschip en negeert de bevelen van de mens Voorbeeld: slimme paperclip van Windows Office Assistant Controlekamer van chemisch bedrijf/kerncentrale Computer die fouten analyseert en beslist wat er moet gebeuren Nog een voorbeeld: automatische piloot (vliegtuig) => auto?? Jan Lemeire Pag. 93 / 94

Waarmaken van Leibniz s droom

Waarmaken van Leibniz s droom Waarmaken van Leibniz s droom Artificiële intelligentie Communicatie & internet Operating system Economie Computatietheorie & Software Efficiënt productieproces Hardware architectuur Electronica: relais

Nadere informatie

Addendum bij hoofdstuk 5 Generieke implementatie van de zoekalgoritmen

Addendum bij hoofdstuk 5 Generieke implementatie van de zoekalgoritmen Addendum bij hoofdstuk 5 Generieke implementatie van de zoekalgoritmen De implementatie wordt kort besproken in 5.2.6 1. Programmatie Zoekalgoritme Definitie van boom: we hebben geen binaire boom met exact

Nadere informatie

Informatica. les 6. Slimme (deel II: hoofdstuk 5) versus intelligente (deel III: hoofdstuk 9) algoritmen

Informatica. les 6. Slimme (deel II: hoofdstuk 5) versus intelligente (deel III: hoofdstuk 9) algoritmen Informatica les 6 Slimme (deel II: hoofdstuk 5) versus intelligente (deel III: hoofdstuk 9) algoritmen Jan Lemeire Informatica deel II & III februari mei 2015 1 Is er een machine die even slim of zelfs

Nadere informatie

Informatica. les 6. Slimme (deel II: hoofdstuk 5) versus intelligente (deel III: hoofdstuk 9) algoritmen

Informatica. les 6. Slimme (deel II: hoofdstuk 5) versus intelligente (deel III: hoofdstuk 9) algoritmen Informatica les 6 Slimme (deel II: hoofdstuk 5) versus intelligente (deel III: hoofdstuk 9) algoritmen Jan Lemeire Informatica 2 e semester februari mei 2016 1 Is er een machine die even slim of zelfs

Nadere informatie

Informatica 2e semester

Informatica 2e semester Informatica 2 e semester: les 6 Slimme (deel II: hoofdstuk 5) versus intelligente (deel III: hoofdstuk 9) algoritmen Jan Lemeire Informatica 2 e semester februari mei 2017 1 Is er een machine die even

Nadere informatie

Informatica 2e semester

Informatica 2e semester Informatica 2 e semester: les 7 Slimme (deel II: hoofdstuk 5) versus intelligente (deel III: hoofdstuk 9) algoritmen Jan Lemeire Informatica 2 e semester februari mei 2018 1 Is er een machine die even

Nadere informatie

Informatica 2e semester

Informatica 2e semester Informatica 2 e semester: les 7 Slimme (deel II: hoofdstuk 5) versus intelligente (deel III: hoofdstuk 9) algoritmen Jan Lemeire Informatica 2 e semester februari mei 2019 1 Is er een machine die even

Nadere informatie

Hoofdstuk 9. Beslissingsalgoritmen

Hoofdstuk 9. Beslissingsalgoritmen Hoofdstuk 9 Beslissingsalgoritmen In dit laatste hoofdstuk bespreken we een reeks basisalgoritmen die ons helpen om bepaalde beslissingen te nemen. Met deze beslissingen willen we een specifiek doel bereiken

Nadere informatie

Informatica. Deel II & III: les 5. Basis- & slimme algoritmen. Jan Lemeire Informatica deel II & III februari mei Parallel Systems: Introduction

Informatica. Deel II & III: les 5. Basis- & slimme algoritmen. Jan Lemeire Informatica deel II & III februari mei Parallel Systems: Introduction Informatica Deel II & III: les 5 Basis- & slimme algoritmen Jan Lemeire Informatica deel II & III februari mei 2016 Parallel Systems: Introduction Oefening Iets met een functie public class IetsMetFunctie

Nadere informatie

Informatica 2e semester

Informatica 2e semester Informatica Les 6 Basis- & slimme algoritmen Jan Lemeire Informatica 2 e semester februari mei 2018 Vandaag 1. Iets met functie 2. Interfaces en abstracte klasses 3. Newton s algoritme 4. Oefening op interfaces

Nadere informatie

Informatica. Deel II: les 2. Leibniz - erven - digitaal. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction

Informatica. Deel II: les 2. Leibniz - erven - digitaal. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction Informatica Deel II: les 2 Leibniz - erven - digitaal Jan Lemeire Informatica deel II februari mei 2013 Parallel Systems: Introduction Leibniz 1646 1716 Jan Lemeire Pag. 2 / 48 Calculemus! Berechnen wir!

Nadere informatie

Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei 2015. Parallel Systems: Introduction

Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei 2015. Parallel Systems: Introduction Informatica Deel II: les 1 Java versus Python Jan Lemeire Informatica deel II februari mei 2015 Parallel Systems: Introduction Arabidopsis (zandraket) Arabidopsis (zandraket) MMIQQA Multimodal Microscopic

Nadere informatie

Informatica. Deel II&III: les 7. AI linked lists - chips. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction

Informatica. Deel II&III: les 7. AI linked lists - chips. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction Informatica Deel II&III: les 7 AI linked lists - chips Jan Lemeire Informatica deel II februari mei 2015 Parallel Systems: Introduction Hoofdstuk 9: Artificiële intelligentie Jan Lemeire Pag. 2 / 77 Waarmaken

Nadere informatie

Informatica 2e semester

Informatica 2e semester Informatica Les 6 Basis- & slimme algoritmen Jan Lemeire Informatica 2 e semester februari mei 2019 Vandaag 1. Iets met functie 2. Interfaces en abstracte klasses 3. Newton s algoritme 4. Oefening op interfaces

Nadere informatie

Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei 2014. Parallel Systems: Introduction

Informatica. Deel II: les 1. Java versus Python. Jan Lemeire Informatica deel II februari mei 2014. Parallel Systems: Introduction Informatica Deel II: les 1 Java versus Python Jan Lemeire Informatica deel II februari mei 2014 Parallel Systems: Introduction Arabidopsis (zandraket) Arabidopsis (zandraket) MMIQQA Multimodal Microscopic

Nadere informatie

Informatica 2e semester

Informatica 2e semester Informatica Les 5 Basis- & slimme algoritmen Jan Lemeire Informatica 2 e semester februari mei 2017 Vandaag 1. Iets met functie 2. Interfaces en abstracte klasses 3. Newton s algoritme 4. Oefening op interfaces

Nadere informatie

Waarmaken van Leibniz s droom

Waarmaken van Leibniz s droom Waarmaken van Leibniz s droom Artificiële intelligentie Communicatie & internet Operating system Economie Computatietheorie & Software Efficiënt productieproces Hardware architectuur Electronica: relais

Nadere informatie

Informatica. Deel II & III: les 5. Von Neumann, basis- & slimme algoritmen. Jan Lemeire Informatica deel II & III februari mei 2015

Informatica. Deel II & III: les 5. Von Neumann, basis- & slimme algoritmen. Jan Lemeire Informatica deel II & III februari mei 2015 Informatica Deel II & III: les 5 Von Neumann, basis- & slimme algoritmen Jan Lemeire Informatica deel II & III februari mei 2015 Parallel Systems: Introduction Institute for Advanced Studies, New Jersey,

Nadere informatie

Waarmaken van Leibniz s droom

Waarmaken van Leibniz s droom Waarmaken van Leibniz s droom Artificiële intelligentie Communicatie & internet Operating system Economie Computatietheorie & Software Efficiënt productieproces Hardware architectuur Electronica: relais

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 6 december 2013 Terugblik Programma en geheugen Opdrachten Variabelen Methoden Objecten Klasse Programma en geheugen Opdrachten Variabelen zijn gegroepeerd in

Nadere informatie

Overerving & Polymorfisme

Overerving & Polymorfisme Overerving & Polymorfisme Overerving Sommige klassen zijn speciaal geval van andere klasse Docent is een speciaal geval van werknemer, dwz. elke docent is ook werknemer Functionaliteit van docent = functionaliteit

Nadere informatie

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden.

Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden. Herhaling Objectgeorïenteerd werken is gebaseerd op de objecten die door het systeem gemanipuleerd worden. De basisbouwsteen is het object; een geïntegreerde eenheid van data en operaties werkend op deze

Nadere informatie

Informatica 2e semester

Informatica 2e semester Informatica 2 e semester: les 8 Software & binaire bomen Jan Lemeire Informatica 2 e semester februari mei 2019 Vandaag 1. Non-zero sum games 2. Leren 3. Deel III: slimme algoritmen versus intelligentie

Nadere informatie

Uitwerking tentamen Algoritmiek 9 juni :00 17:00

Uitwerking tentamen Algoritmiek 9 juni :00 17:00 Uitwerking tentamen Algoritmiek 9 juni 2015 14:00 17:00 1. Clobber a. Toestanden: m x n bord met in elk hokje een O, een X of een -. Hierbij is het aantal O gelijk aan het aantal X of er is hooguit één

Nadere informatie

Informatica. Deel II&III: les 2. Leibniz - erven - digitaal. Jan Lemeire Informatica deel II&III februari mei Parallel Systems: Introduction

Informatica. Deel II&III: les 2. Leibniz - erven - digitaal. Jan Lemeire Informatica deel II&III februari mei Parallel Systems: Introduction Informatica Deel II&III: les 2 Leibniz - erven - digitaal Jan Lemeire Informatica deel II&III februari mei 2015 Parallel Systems: Introduction Leibniz 1646 1716 Informatica II: les 2 Jan Lemeire Pag. 2

Nadere informatie

Python (gem=1,86) Java (gem=1,57) Enquete cursus informatica 1e bachelors oefeningen beter aansluiten bij project?

Python (gem=1,86) Java (gem=1,57) Enquete cursus informatica 1e bachelors oefeningen beter aansluiten bij project? Enquete cursus informatica 1e bachelors 216-217 Python (gem=1,86) Java (gem=1,7) 3 3 2 2 1 1 3 2 1-1 -2-3 3 2 1-1 -2-3 2 Combinatie python va (gem=1,6) 1 Hoe is de overgang python2va 1 1 3 2 1-1 -2-3 3

Nadere informatie

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double. Algemeen C# Variabele Een variabele is een willekeurige waarde die word opgeslagen. Een variabele heeft altijd een datetype ( De soort waarde die een variabele bevat). Datatypes Een datatype is de sort

Nadere informatie

Elementary Data Structures 3

Elementary Data Structures 3 Elementary Data Structures 3 Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 29 september 2014 ODE/FHTBM Elementary Data Structures 3 29 september 2014 1/14 Meer

Nadere informatie

Waarmaken van Leibniz s droom

Waarmaken van Leibniz s droom Waarmaken van Leibniz s droom Artificiële intelligentie Communicatie & internet Operating system Economie Computatietheorie & Software Efficiënt productieproces Hardware architectuur Electronica: relais

Nadere informatie

Java Programma structuur

Java Programma structuur Java Programma structuur public class Bla // div. statements public static void main(string argv[]) // meer spul Voortgezet Prog. voor KI, week 4:11 november 2002 1 Lijsten Voorbeelden 2, 3, 5, 7, 13 Jan,

Nadere informatie

Programmeermethoden. Recursie. week 11: november kosterswa/pm/

Programmeermethoden. Recursie. week 11: november kosterswa/pm/ Programmeermethoden Recursie week 11: 21 25 november 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Derde programmeeropgave 1 Het spel Gomoku programmeren we als volgt: week 1: pointerpracticum,

Nadere informatie

Vakgroep CW KAHO Sint-Lieven

Vakgroep CW KAHO Sint-Lieven Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie

Halma Bot: Monte Carlo versus Alpha-Beta

Halma Bot: Monte Carlo versus Alpha-Beta : Monte Carlo versus Alpha-Beta Inleiding Marijn Biekart-11032278, Artemis Çapari-11336390, Jesper van Duuren-10780793, Jochem Hölscher-11007729 en Reitze Jansen-11045442 Zoeken, Sturen en Bewegen 30 juni

Nadere informatie

Informatica. Deel II: les 3. Electronica Arrays. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction

Informatica. Deel II: les 3. Electronica Arrays. Jan Lemeire Informatica deel II februari mei Parallel Systems: Introduction Informatica Deel II: les 3 Electronica Arrays Jan Lemeire Informatica deel II februari mei 2014 Parallel Systems: Introduction Leibniz droom De Calculus ratiocinator Een logisch denkend apparaat 1646 1716

Nadere informatie

Uitwerking tentamen Algoritmiek 9 juli :00 13:00

Uitwerking tentamen Algoritmiek 9 juli :00 13:00 Uitwerking tentamen Algoritmiek 9 juli 0 0:00 :00. (N,M)-game a. Toestanden: Een geheel getal g, waarvoor geldt g N én wie er aan de beurt is (Tristan of Isolde) b. c. Acties: Het noemen van een geheel

Nadere informatie

ALGORITMIEK: answers exercise class 7

ALGORITMIEK: answers exercise class 7 Problem 1. See slides 2 4 of lecture 8. Problem 2. See slides 4 6 of lecture 8. ALGORITMIEK: answers exercise class 7 Problem 5. a. Als we twee negatieve (< 0) getallen bij elkaar optellen is het antwoord

Nadere informatie

Ontwerp van Informatiesystemen

Ontwerp van Informatiesystemen 1ste bach HIB Ontwerp van Informatiesystemen Prof. Verelst Q www.quickprinter.be uickprinter Koningstraat 13 2000 Antwerpen 112 2,50 Online samenvattingen kopen via www.quickprintershop.be Table of Contents

Nadere informatie

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele

Informatica. Objectgeörienteerd leren programmeren. Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele Informatica Objectgeörienteerd leren programmeren Van de theorie met BlueJ tot een spelletje met Greenfoot... Bert Van den Abbeele http://creativecommons.org/licenses/by-nc-nd/3.0/legalcode Objectgeörienteerd

Nadere informatie

Genetische algoritmen in Java met JGAP

Genetische algoritmen in Java met JGAP Genetische algoritmen in Java met JGAP Inleiding JGAP, uitgesproken als "jee-gep", is een framework voor het implementeren van genetische algoritmen en het gebruik ervan in Java. Genetische algoritmen

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 13 december 2013 Terugblik Fibonacci public class Fibonacci { public static void main(string[] args) { // Print het vijfde Fibonaccigetal System.out.println(fib(5));

Nadere informatie

public boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber

public boolean equaldates() post: returns true iff there if the list contains at least two BirthDay objects with the same daynumber Tentamen TI1310 Datastructuren en Algoritmen, 15 april 2011, 9.00-12.00 TU Delft, Faculteit EWI, Basiseenheid Software Engineering Bij het tentamen mag alleen de boeken van Goodrich en Tamassia worden

Nadere informatie

Opgaven Kunstmatige Intelligentie 1 maart 2017

Opgaven Kunstmatige Intelligentie 1 maart 2017 Opgaven Kunstmatige Intelligentie 1 maart 2017 Opgave 1. a. Denkt een schaakprogramma? b. Denkt een (Nederlands-Engels) vertaalprogramma? c. Denkt een C ++ -compiler? d. Denkt Watson, the IBM-computer

Nadere informatie

Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft

Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Tentamen Object Georiënteerd Programmeren TI1200 30 januari 2013, 9.00-12.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit

Nadere informatie

NAAM: Programmeren 1 Examen 29/08/2012

NAAM: Programmeren 1 Examen 29/08/2012 Programmeren 29 augustus 202 Prof. T. Schrijvers Instructies Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien). Geef ook je kladbladen af. Bij heel wat vragen moet je

Nadere informatie

Lessen Java: Reeks pag. 1

Lessen Java: Reeks pag. 1 Lessen Java: Reeks 2 1-3-2016 pag. 1 Primitieve types type grootte waardes byte 8 bits 128, 127 short 16 bits 32768, 32767 int 32 bits 2 31, 2 31 1 long 64 bits 2 63, 2 63 1 type grootte waardes float

Nadere informatie

Zoekproblemen met tegenstanders. Zoekalgoritmen ( ) College 9: Zoeken met een tegenstander (I) Een zoekprobleem met een tegenstander

Zoekproblemen met tegenstanders. Zoekalgoritmen ( ) College 9: Zoeken met een tegenstander (I) Een zoekprobleem met een tegenstander Zoekproblemen met tegenstanders Zoekalgoritmen (29 2) College 9: Zoeken met een tegenstander (I) Dirk Thierens, Tekst: Linda van der Gaag Zoekproblemen met meer dan één partij worden gekenmerkt door interventies

Nadere informatie

Intelligente Spelen. Pieter Spronck. TouW Informatica Symposium, Open Universiteit, Universiteit van Tilburg

Intelligente Spelen. Pieter Spronck. TouW Informatica Symposium, Open Universiteit, Universiteit van Tilburg Intelligente Spelen Pieter Spronck Open Universiteit, Universiteit van Tilburg TouW Informatica Symposium, 13-11-2010 Wat is kunstmatige intelligentie? Kunstmatige intelligentie Kunstmatige intelligentie

Nadere informatie

Programmeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/

Programmeermethoden. Recursie. Walter Kosters. week 11: november kosterswa/pm/ Programmeermethoden Recursie Walter Kosters week 11: 20 24 november 2017 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Vierde programmeeropgave 1 De Grote getallen programmeren we als volgt: week 1: pointerpracticum,

Nadere informatie

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren

Universiteit van Amsterdam FNWI. Voorbeeld van tussentoets Inleiding programmeren Universiteit van Amsterdam FNWI Voorbeeld van tussentoets Inleiding programmeren Opgave 1: Wat is de uitvoer van dit programma? public class Opgave { static int i = 0 ; static int j = 1 ; int i = 1 ; int

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 27 november 2015 Recursie Objecten Constructors Aanpassen variabelen this keyword Recursie Recursie Recursieve functie roept zichzelf (direct of indirect) aan

Nadere informatie

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2.

Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, , Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Voorbeeldtentamen Inleiding programmeren (IN1608WI), Oktober 2003, 14.00-15.30, Technische Universiteit Delft, Faculteit EWI, Afdeling 2. Dit tentamen bestaat uit twee delen. Deel 1 (14.00-14.45, gesloten

Nadere informatie

Programmeren in Java 3

Programmeren in Java 3 26 september 2007 Deze les korte herhaling vorige les Unified Modelling Language notatie van een class afleiding pointers abstracte classes polymorphisme dubieuze(?) constructies interfaces Meer over class

Nadere informatie

Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft

Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft Tentamen Object Georiënteerd Programmeren TI1206 29 oktober 2014, 9.00-11.00 Afdeling SCT, Faculteit EWI, TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Digitale

Nadere informatie

Tentamen in2705 Software Engineering

Tentamen in2705 Software Engineering Tentamen in2705 Software Engineering Voorbeeld (bijna tweemaal te groot) U mag meenemen naar dit tentamen: Lethbridge, afdrukken PPT slides, afdrukken handouts. 1. De TU wil een nieuw systeem ontwikkelen

Nadere informatie

Ingebouwde klassen & methodes

Ingebouwde klassen & methodes Ingebouwde klassen & methodes Statische methodes Methodes die bij een klasse horen ipv. bij een object public class Docent { public static Docent departementshoofd() { return new Docent("Jan Ivens"); private

Nadere informatie

Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing

Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing Beginselen van programmeren Practicum 1 (Doolhof) : Oplossing Introductie In dit document geven we een mogelijke oplossing voor het eerste practicum. Deze oplossing gebruikt verschillende klassen en overerving,

Nadere informatie

Planning. 1. Mini College. 2. Introductiecursus Imperatief Programmeren. 3. Crash and Compile (vanaf 17:00 uur)

Planning. 1. Mini College. 2. Introductiecursus Imperatief Programmeren. 3. Crash and Compile (vanaf 17:00 uur) Planning 1. Mini College 2. Introductiecursus Imperatief Programmeren 3. Crash and Compile (vanaf 17:00 uur) Geschiedinis van de Codemonkeys imperatief programmeren voor beginners Geschiedenis van de Codemonkey

Nadere informatie

IMP Uitwerking week 13

IMP Uitwerking week 13 IMP Uitwerking week 13 Opgave 1 Nee. Anders moet bijvoorbeeld een venster applicatie een subklasse zijn van zowel Frame en WindowListener. Als de applicatie ook een button of een menu heeft, dan moet het

Nadere informatie

Tentamen Kunstmatige Intelligentie

Tentamen Kunstmatige Intelligentie Naam: Studentnr: Tentamen Kunstmatige Intelligentie Department of Information and Computing Sciences Opleiding Informatica Universiteit Utrecht Donderdag 2 februari 2012 08.30 10:30, EDUCA-ALFA Vooraf

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2014 2015, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

Zelftest Programmeren in Java

Zelftest Programmeren in Java Zelftest Programmeren in Java Document: n0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST PROGRAMMEREN IN JAVA Deze test

Nadere informatie

Tentamen Kunstmatige Intelligentie (INFOB2KI)

Tentamen Kunstmatige Intelligentie (INFOB2KI) Tentamen Kunstmatige Intelligentie (INFOB2KI) 12 december 2014 8:30-10:30 Vooraf Mobiele telefoons en dergelijke dienen uitgeschakeld te zijn. Het eerste deel van het tentamen bestaat uit 8 multiple-choice

Nadere informatie

Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 2 juni 2009, uur

Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 2 juni 2009, uur Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 2 juni 2009, 10.00 13.00 uur Opgave 1. a. Een toestand wordt bepaald door: het aantal lucifers op tafel, het aantal lucifers in het bezit van Romeo,

Nadere informatie

Modelleren en Programmeren

Modelleren en Programmeren Modelleren en Programmeren Jeroen Bransen 11 december 2015 Ingebouwde datastructuren Meer boomstructuren Access specifiers Gebruikersinvoer Codestijl Packages SAT-solver Ingebouwde datastructuren Ingebouwde

Nadere informatie

Informatica 2e semester

Informatica 2e semester Informatica 2 e semester: les 11 Hashing & Internet Slot Jan Lemeire Informatica 2 e semester februari mei 2018 Vandaag 1. Hashing 2. Internet (deel II) 3. Highscore server 4. Examen Hoofdstuk 9 Hashing

Nadere informatie

Computationale Intelligentie Dirk Thierens

Computationale Intelligentie Dirk Thierens Computationale Intelligentie Dirk Thierens Organisatie Onderwijsvormen: Docent: Topic: Collegemateriaal: Boek: Beoordeling: hoorcollege, practicum, werkcollege Dirk Thierens Deel : Zoekalgoritmen Toets

Nadere informatie

Algoritmen abstract bezien

Algoritmen abstract bezien Algoritmen abstract bezien Jaap van Oosten Department Wiskunde, Universiteit Utrecht Gastcollege bij Programmeren in de Wiskunde, 6 april 2017 Een algoritme is een rekenvoorschrift dat op elk moment van

Nadere informatie

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40

Recursion. Introductie 37. Leerkern 37. Terugkoppeling 40. Uitwerking van de opgaven 40 Recursion Introductie 37 Leerkern 37 5.1 Foundations of recursion 37 5.2 Recursive analysis 37 5.3 Applications of recursion 38 Terugkoppeling 40 Uitwerking van de opgaven 40 Hoofdstuk 5 Recursion I N

Nadere informatie

Stacks and queues. Hoofdstuk 6

Stacks and queues. Hoofdstuk 6 Hoofdstuk 6 Stacks and queues I N T R O D U C T I E In dit hoofdstuk worden drie datastructuren stack, queue en deque behandeld. Om deze datastructuren te implementeren, worden onder andere arrays en linked

Nadere informatie

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft

Tentamen Objectgeorienteerd Programmeren TI februari Afdeling ST Faculteit EWI TU Delft I ' Tentamen Objectgeorienteerd Programmeren TI 1200 1 februari 2012 9.00-12.00 Afdeling ST Faculteit EWI TU Delft Bij dit tentamen mag je geen gebruik maken van hulpmiddelen zoals boek of slides. Dit

Nadere informatie

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI

Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Tentamen Imperatief en Object-georiënteerd programmeren in Java voor CKI Vrijdag 22 januari 2010 Toelichting Dit is een open boek tentamen. Communicatie en het gebruik van hulpmiddelen zijn niet toegestaan.

Nadere informatie

Een voorbeeld. Computationele Intelligentie Zoeken met een tegenstander. Een voorbeeld vervolg. Een zoekprobleem met een tegenstander

Een voorbeeld. Computationele Intelligentie Zoeken met een tegenstander. Een voorbeeld vervolg. Een zoekprobleem met een tegenstander Computationele Intelligentie Zoeken met een tegenstander Beschouw het boter-kaas-en-eieren spel: een probleemtoestand is een plaatsing van i kruisjes en j nulletjes in de vakjes van het raam, met i j en

Nadere informatie

Tentamen Kunstmatige Intelligentie (INFOB2KI)

Tentamen Kunstmatige Intelligentie (INFOB2KI) Tentamen Kunstmatige Intelligentie (INFOB2KI) 30 januari 2014 10:30-12:30 Vooraf Mobiele telefoons dienen uitgeschakeld te zijn. Het tentamen bestaat uit 7 opgaven; in totaal kunnen er 100 punten behaald

Nadere informatie

Kleine cursus PHP5. Auteur: Raymond Moesker

Kleine cursus PHP5. Auteur: Raymond Moesker Kleine cursus PHP5 Auteur: Raymond Moesker Kleine cursus PHP PHP is platform en CPU onafhankelijk, open source, snel, heeft een grote userbase, het is object georiënteerd, het wordt omarmd door grote bedrijven

Nadere informatie

Informatica: C# WPO 11

Informatica: C# WPO 11 Informatica: C# WPO 11 1. Inhoud Pass by reference (ref, out), recursie, code opdelen in verschillende codebestanden 2. Oefeningen Demo 1: Swapfunctie Demo 2: TryParse(int) Demo 3: Recursion Tree Demo

Nadere informatie

Zelftest Inleiding Programmeren

Zelftest Inleiding Programmeren Zelftest Inleiding Programmeren Document: n0824test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST INLEIDING PROGRAMMEREN Deze

Nadere informatie

Dynamisch Programmeren. Het Rugzakprobleem

Dynamisch Programmeren. Het Rugzakprobleem INLEIDING Dynamisch Programmeren 1 Dynamisch Programmeren Section Page Inleiding................................................. 1 1 Oplossing................................................ 2 2 Subprobleem.............................................

Nadere informatie

Abstracte klassen & Interfaces

Abstracte klassen & Interfaces Abstracte klassen & Interfaces Overerving public class Vierhoek {... Vierhoek public class Rechthoek extends Vierhoek {... public class Ruit extends Vierhoek {... Rechthoek Ruit Elke rechthoek is een vierhoek.

Nadere informatie

Informatica. Deel II&III: les 4. geheugen set, stacks & queues - interfaces. Jan Lemeire Informatica deel II&III februari mei 2015

Informatica. Deel II&III: les 4. geheugen set, stacks & queues - interfaces. Jan Lemeire Informatica deel II&III februari mei 2015 Informatica Deel II&III: les 4 geheugen set, stacks & queues - interfaces Jan Lemeire Informatica deel II&III februari mei 2015 Parallel Systems: Introduction Waarmaken van Leibniz s droom (9) Artificiële

Nadere informatie

Mijn project noemt Het Wari-spel. De doelgroep van mijn programma is iedereen die houdt van strategische spelen.

Mijn project noemt Het Wari-spel. De doelgroep van mijn programma is iedereen die houdt van strategische spelen. Voorstel project Mijn project noemt Het Wari-spel. De doelgroep van mijn programma is iedereen die houdt van strategische spelen. Het doel van mijn project is de spelers een ontspannende, plezierige en

Nadere informatie

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie

recursie Hoofdstuk 5 Studeeraanwijzingen De studielast van deze leereenheid bedraagt circa 6 uur. Terminologie Hoofdstuk 5 Recursion I N T R O D U C T I E Veel methoden die we op een datastructuur aan kunnen roepen, zullen op een recursieve wijze geïmplementeerd worden. Recursie is een techniek waarbij een vraagstuk

Nadere informatie

Nascholing Algoritmisch Denken. Martin Bruggink Renske Smetsers

Nascholing Algoritmisch Denken. Martin Bruggink Renske Smetsers Nascholing Algoritmisch Denken Martin Bruggink Renske Smetsers Speerpunten bijeenkomst #2 Praktische bijeenkomst Hele ontwikkelcyclus doorlopen Algoritme ontwerpen Flowchart Code Reflectie Programma tweede

Nadere informatie

Programmeren (1) Examen NAAM:

Programmeren (1) Examen NAAM: Schrijf al je antwoorden op deze vragenbladen (op de plaats die daarvoor is voorzien) en geef zowel klad als net af. Bij heel wat vragen moet je zelf Java-code schrijven. Hou dit kort en bondig. Je hoeft

Nadere informatie

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin:

Een topprogrammeur in het OO programmeren is Graig Larman. Hij bedacht de volgende zin: Java Les 2 Theorie Beslissingen Algemeen Net als in het dagelijks leven worden in software programma s beslissingen genomen, naast het toekennen van waarden aan variabelen zijn beslissingen één van de

Nadere informatie

Minder Big data Meer AI.

Minder Big data Meer AI. Minder Big data Meer AI. Minder Big data, meer AI. Marijn uilenbroek BI & Analytics consultant Utrecht, 1 november 2016 BI&A symposium 2016 Minder Big data meer AI 2 BI&A symposium 2016 Minder Big data

Nadere informatie

Twaalfde college complexiteit. 11 mei 2012. Overzicht, MST

Twaalfde college complexiteit. 11 mei 2012. Overzicht, MST College 12 Twaalfde college complexiteit 11 mei 2012 Overzicht, MST 1 Agenda voor vandaag Minimum Opspannende Boom (minimum spanning tree) als voorbeeld van greedy algoritmen Overzicht: wat voor technieken

Nadere informatie

Informatica. Deel II&III: les 1. Java versus Python. Jan Lemeire Informatica deel II&III februari mei Parallel Systems: Introduction

Informatica. Deel II&III: les 1. Java versus Python. Jan Lemeire Informatica deel II&III februari mei Parallel Systems: Introduction Informatica Deel II&III: les 1 Java versus Python Jan Lemeire Informatica deel II&III februari mei 2016 Parallel Systems: Introduction identificeren van cellen Arabidopsis (zandraket) Arabidopsis (zandraket)

Nadere informatie

Programmeren I. 26 augustus Algemene Richtlijnen. Richtlijnen Programmeren 1

Programmeren I. 26 augustus Algemene Richtlijnen. Richtlijnen Programmeren 1 Algemene Richtlijnen Programmeren I 26 augustus 2015 Schrijf je naam bovenaan elk antwoordblad en kladblad. Schrijf niet met potlood of in het rood op je antwoordbladen. Gebruik voor elke vraag een afzonderlijk

Nadere informatie

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld

Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld Tentamen Objectgeorienteerd Programmeren IN1205 Voorbeeld Afdeling ST Faculteit EWI TU Delft Bij dit tentamen mag u gebruik maken van: Barnes, Object-Oriented Programming with Java en de Notitie Algoritmiek

Nadere informatie

(Kunst)Matige intelligentie

(Kunst)Matige intelligentie (Kunst)Matige intelligentie programmeren, α-β, nonogrammen, Tetris dr. Walter Kosters, Informatica β-dag Leiden, donderdag 11 februari 2016 www.liacs.leidenuniv.nl/ kosterswa/ 1 Jeopardy! 2011 2 Informatica

Nadere informatie

Presentatie Michiel. Informaticastage najaar 2004

Presentatie Michiel. Informaticastage najaar 2004 Presentatie Michiel michielborkent@gmail.com Informaticastage najaar 2004 Inhoud presentatie: Wie ben ik? Over mijn stage Informatie over Lisp Wie/wat ben ik? Student Technische Informatica, Universiteit

Nadere informatie

Datastructuren en Algoritmen voor CKI

Datastructuren en Algoritmen voor CKI Ω /texmf/tex/latex/uubeamer.sty-h@@k 00 /texmf/tex/latex/uubeamer.sty Datastructuren en Algoritmen voor CKI Vincent van Oostrom Clemens Grabmayer Afdeling Wijsbegeerte Hoorcollege 5 16 februari 2009 Waar

Nadere informatie

Nascholing Algoritmisch Denken. Martin Bruggink Renske Smetsers

Nascholing Algoritmisch Denken. Martin Bruggink Renske Smetsers Nascholing Algoritmisch Denken Martin Bruggink Renske Smetsers Speerpunten bijeenkomst #2 Praktische bijeenkomst Hele ontwikkelcyclus doorlopen Algoritme ontwerpen Flowchart Code Reflectie Programma tweede

Nadere informatie

Intelligentie: hoe gaan we hier intelligent mee om in de neuropsychologie?

Intelligentie: hoe gaan we hier intelligent mee om in de neuropsychologie? Intelligentie: hoe gaan we hier intelligent mee om in de neuropsychologie? een kritische noot... Martine J.E. van Zandvoort Wat kunt u verwachten? In de MEDIA. Wat betekent intelligentie eigenlijk? Historisch

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2012 2013, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

Hoofdstuk 2. Week 4: Datastructuren. 2.1 Leesopdracht. 2.2 Bomen. 2.3 Definitie

Hoofdstuk 2. Week 4: Datastructuren. 2.1 Leesopdracht. 2.2 Bomen. 2.3 Definitie Hoofdstuk 2 Week 4: Datastructuren 2.1 Leesopdracht In het hoorcollege komen lijsten en bomen aan de orde. De eerste datastructuur komt in het boek in bladzijden 317-333 aan de orde. In dit dictaat komt

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2012 2013, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

Programmeren in C++ Efficiënte zoekfunctie in een boek

Programmeren in C++ Efficiënte zoekfunctie in een boek Examen Software Ontwikkeling I 2e Bachelor Informatica Faculteit Wetenschappen Academiejaar 2010-2011 21 januari, 2011 **BELANGRIJK** 1. Lees eerst de volledige opgave (inclusief de hints/opmerkingen)!

Nadere informatie

VI. Klassen en objecten

VI. Klassen en objecten VI. Klassen en objecten Klassen en objecten vormen het fundament van OOP. We zullen dus uitgebreid aandacht besteden aan klassen en objecten. U kunt Java niet begrijpen zonder goed met klassen en objecten

Nadere informatie