Semaforen. Semaforen p. 1/2
|
|
|
- Melanie Koning
- 8 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Semaforen 2008 Semaforen p. 1/2
2 Vorige Keer mbv mutual exclusion kritieke sectie (cs) 1. software : Dekker s, Peterson s algoritme 2. hardware: uniprocessor machine: disable interrupts 3. hardware: multiprocessor machine: speciale machineinstructies, bijv. set&test Nadeel van 1 & 3 : busy waiting Nadeel van 2 : bloedlink Daarom in Hfst 5.3: semaforen [Dijkstra 65] Semaforen p. 2/2
3 Binaire Semaforen Binaire semafoor s bestaat uit: integer s.count, met waarde 0 of 1 een rij van geblokkeerde processen s.queue 2 atomaire operaties: wait en signal Idee: count = 0 kritieke sectie bezet proces wacht in queue tot het naar binnen mag wait(s) als je mag ga cs in en zet s.count op 0 anders blokkeer in s.queue signal(s) wek indien mogelijk proces in s.queue anders zet s.count terug op 1 Semaforen p. 3/2
4 Mutual Exclusion P1 P2.. wait(s); wait(s); cs1; cs2; signal(s); signal(s);.. binaire semafoor wordt ook wel lock genoemd wait is dan acquire lock signal is dan release lock Semaforen p. 4/2
5 Implementatie struct semaphore { int count; list_of_processes queue; void wait(semaphore s) { if (s.count = 1 ) then { s.count = 0 else { zet dit proces in s.queue; blokkeer het void signal(semaphore s) { if empty(s.queue) then { s.count = 1 else { haal een proces uit s.queue ; zet het in ready queue Semaforen p. 5/2
6 Implementatie Maar: wait en signal moeten atomair zijn! Dus: mutual exclusion nodig! Oplossingen: software oplossing (Dekker s, Peterson s) probleem: overhead, beetje busy waiting op uniprocessor machine: disable interrupts redelijk, gegeven korte en vaste duur operaties gebruik speciale machineinstructie (set&test) probleem: beetje busy waiting wait en signal zelf als machine-instructies? Semaforen p. 6/2
7 Voordelen van Semaforen Busy waiting? Neen: proces wordt gewekt en hoeft niet zelf te kijken of het weer verder mag Starvation? Als het wekken via First-In-First-Out gaat zal er geen starvation optreden Bij een ander wekbeleid mogelijk wel starvation Ten opzichte van uitschakelen interrupts: Semaforen niet zo link Verschillende semaforen worden voor verschillende soorten kritieke secties gebruikt Semaforen p. 7/2
8 Algemene Semaforen Algemene semafoor s bestaat uit integer s.count, met initiële waarde 0 een rij van geblokkeerde processen s.queue atomaire operaties: wait, signal Idee: count is het aantal processen dat nog naar binnen mag wait(s) verlaag eerst s.count blokkeer in s.queue als s.count< 0 signal(s) verhoog eerst s.count wek proces in s.queue als s.count 0 Semaforen p. 8/2
9 Implementatie struct semaphore { int count; list_of_processes queue; ; void wait(semaphore s) { s.count = s.count-1; if (s.count<0) {zet dit proces in s.queue; blokkeer het ; void signal(semaphore s) { s.count = s.count+1; if (s.count<=0) {haal ander proces uit s.queue; zet het in ready queue ; Natuurlijk weer atomair! Semaforen p. 9/2
10 Eigenschappen Het wekken van een proces wil zeggen dat het in de READY-queue wordt geplaatst; het hoeft dus niet meteen aan de beurt te zijn om instructies uit te voeren Semaforen worden niet uitsluitend gebruikt om kritieke secties af te schermen, maar meer algemeen om ervoor te zorgen dat bepaalde code alleen wordt uitgevoerd als aan bepaalde eisen is voldaan. Semaforen p. 10/2
11 Producer/Consumer Probleem n producers en 1 consumer van buffer b Gemeenschappelijke variabelen: in, out, b producer while (true) { "produceer item v"; b[in] = v; in = in+1; consumer while (true) { "wacht tot in > out"; w = b[out]; out = out+1; "verwerk item w"; Wat zijn de synchronisatie-problemen hier? Semaforen p. 11/2
12 Oneindige Buffer b[1] b[2] b[3] b[4] b[5] out in Note: shaded area indicates portion of buffer that is occupied Figure 5.12 Infinite Buffer for the Producer/Consumer Problem Semaforen p. 12/2
13 Oplossing? bin. sem. s, initieel s.count=1 bin. sem. delay, initieel delay.count=0 producer while (true) { produce(); semwaitb(s); append(); n++; if (n==1) {semsignalb(delay); semsignalb(s); consumer semwaitb(delay); while (true) { semwaitb(s); take(); n--; semsignalb(s); consume(); if (n==0) {semwaitb(delay); Semaforen p. 13/2
14 Neen... Zie Uppaal tegenvoorbeeld. Semaforen p. 14/2
15 Consumer Aanpassing Introduceer hulpvariabele semwaitb (delay); while (true) { semwaitb(s); take(); n--; m = n; semsignalb(s); consume(); if (m==0) {semwaitb(delay) Nu wel beide problemen opgelost! Semaforen p. 15/2
16 Oplossing met Alg. Semaforen bin. sem. s, initieel s.count=1 alg. sem. n, initieel n.count=0 producer while (true) { produce(); semwait(s); append(); semsignal(s); semsignal(n); consumer while (true) { semwait(n); semwait(s); take(); semsignal(s); consume(); Semaforen p. 16/2
17 Producer Aanpassing? Verwissel signal(s) en signal(n) producer while (true) { produce(); semwait(s); append(); semsignal(n); semsignal(s); consumer while (true) { semwait(n); semwait(s); take(); semsignal(s); consume(); Semaforen p. 17/2
18 Producer Aanpassing? Verwissel signal(s) en signal(n) OK omdat consumer op beide semaforen wacht Semaforen p. 17/2
19 Consumer Aanpassing? Verwissel wait(n) en wait(s) producer while (true) { produce(); semwait(s); append(); semsignal(n); semsignal(s); consumer while (true) { semwait(s); semwait(n); take(); semsignal(s); consume(); Semaforen p. 18/2
20 Consumer Aanpassing? Verwissel wait(n) en wait(s) producer while (true) { produce(); semwait(s); append(); semsignal(n); semsignal(s); consumer while (true) { semwait(s); semwait(n); take(); semsignal(s); consume(); Deadlock als consumer in cs bij lege buffer Semaforen p. 18/2
21 Eindige Buffer b[1] b[2] b[3] b[4] b[5] b[n] out in (a) b[1] b[2] b[3] b[4] b[5] b[n] in out (b) Figure 5.16 Finite Circular Buffer for the Producer/Consumer Problem Semaforen p. 19/2
22 Oplossing? bin. sem. s, initieel s.count=1 alg. sem. n, initieel n.count=0 alg. sem. e, initieel e.count=buffersize producer while (true) { produce(); wait(e); wait(s); append(); signal(s); signal(n); consumer while (true) { wait(n); wait(s); take(); signal(s); signal(e); Semaforen p. 20/2
23 Oplossing?!!! bin. sem. s, initieel s.count=1 alg. sem. n, initieel n.count=0 alg. sem. e, initieel e.count=buffersize producer while (true) { produce(); wait(e); wait(s); produce(); signal(s); signal(n); consumer while (true) { wait(n); wait(s); take(); signal(s); signal(e); Semaforen p. 20/2
Gelijktijdigheid: Wederzijdse Uitsluiting & Synchronisatie Concurrency: Mutual Exclusion & Synchonization (5e ed: 5.1-5.2, Appendix A.
Gelijktijdigheid: Wederzijdse Uitsluiting & Synchronisatie Concurrency: Mutual Exclusion & Synchonization (5e ed: 51-52, Appendix A1) Processes zijn meestal niet onafhankelijk Bijvoorbeeld: 2 processen
Mutual Exclusion en Semaforen
Mutual Exclusion en Semaforen Werkcollege Processen Wouter Geraedts [email protected] 24 mei 2013 Wouter Geraedts 24 mei 2013 Werkcollege Processen 2013-05-24 1 / 18 Outline Hyman s Algoritme Hyman
Het begrip 'Proces' Proces-toestand
Het begrip 'Proces' Een proces is de uitvoering van een programma Bij een proces hoort een programma (de code) Program Counter (Instructiewijzer) stack data (data sectie) twee of meer processen kunnen
Real-Time Systems (RTSYST)
Real-Time Systems (RTSYST) Week 2 Process/Thread states ready running Wait for I/O or I/O or completion blocked / sleeping Scheduler = deel van OS dat de toestanden van processen/threads bepaald. OS gebruikt
Tree traversal. Bomen zijn overal. Ferd van Odenhoven. 15 november 2011
15 november 2011 Tree traversal Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 15 november 2011 ODE/FHTBM Tree traversal 15 november 2011 1/22 1 ODE/FHTBM Tree
Tree traversal. Ferd van Odenhoven. 15 november Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering. Doorlopen van bomen
Tree traversal Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 15 november 2011 ODE/FHTBM Tree traversal 15 november 2011 1/22 1 ODE/FHTBM Tree traversal 15 november
Datastructuren: stapels, rijen en binaire bomen
Programmeermethoden Datastructuren: stapels, rijen en binaire bomen week 12: 23 27 november 2015 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Inleiding In de informatica worden Abstracte DataTypen (ADT s)
RCL Arduino Workshop 1
RCL Arduino Workshop 1 Leren door doen april 2015 - slides voor RCL Arduino workshop 1 ON4CDU & ON8VQ Workshop Leren door doen Werken in een groep Beperkte tijd Alleen essentiele vragen stellen Thuis oefenen
CPU scheduling : introductie
CPU scheduling : introductie CPU scheduling nodig bij multiprogrammering doel: een zo hoog mogelijke CPU-bezetting, bij tevreden gebruikers proces bestaat uit afwisselend CPU-bursts en I/O-bursts lengte
Datastructuren: stapels, rijen en binaire bomen
Programmeermethoden : stapels, rijen en binaire bomen Walter Kosters week 12: 26 30 november 2018 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 en Vierde programmeeropgave Othello programmeren we als volgt:
Gedistribueerd programmeren
Gedistribueerd programmeren Gedistribueerd programmeren Collegedictaat, september 2007 Gerard Tel Email: [email protected] Instituut voor Informatica en Informatiekunde Universiteit Utrecht Opmaak: Gerard
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
Arduino Cursus, Deel 2 Programmeren. Simon Pauw, ZB45, Amsterdam
Arduino Cursus, Deel 2 Programmeren Simon Pauw, ZB45, Amsterdam Programmeren Geen zorgen als je niet alles begrijpt. Doel: Het snappen van bestaande code. Meeste kennis ook toepasbaar buiten de Arduino
Hoofdstuk 3: Processen: Beschrijving en Besturing. Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces?
Hoofdstuk 3: Processen: Beschrijving en Besturing Wat is een proces? Waarom processen? Wat moet het OS ervoor doen? Is het OS zelf een proces? 1 Wat is een proces? Een proces is een programma in uitvoering
Deel 8: stappenmotoren en interrupts
Deel 8: stappenmotoren en interrupts Stappenmotor Kan hoek van as instellen zonder een gesloten feedbacksysteem. Het is een simpel en precies open loop systeem. Werkt met discrete stappen, dus schokkerig
Besturingssystemen. Gilles Callebaut. Samenvatting Operating Systems
Samenvatting Operating Systems Besturingssystemen Samenvatting gebaseerd op de lessen van Naessens Vincent, alsook op het boek, Operating Systems: Internals and Design Principles. Gilles Callebaut 1 INHOUD
Vierde college algoritmiek. 2 maart Toestand-actie-ruimte Exhaustive Search
Algoritmiek 2018/Toestand-actie-ruimte Vierde college algoritmiek 2 maart 2018 Toestand-actie-ruimte Exhaustive Search 1 Algoritmiek 2018/Toestand-actie-ruimte Kannen Voorbeeld 4: Kannenprobleem We hebben
Tentamen Programmeren in C (EE1400)
TU Delft Faculteit EWI Tentamen Programmeren in C (EE1400) 28 jan 2011, 9.00 12.00 - Zet op elk antwoordblad je naam en studienummer. - Beantwoord alle vragen zo nauwkeurig mogelijk. - Wanneer C code gevraagd
HOOFDSTUK 3. Imperatief programmeren. 3.1 Stapsgewijs programmeren. 3.2 If Then Else. Module 4 Programmeren
HOOFDSTUK 3 3.1 Stapsgewijs programmeren De programmeertalen die tot nu toe genoemd zijn, zijn imperatieve of procedurele programmeertalen. is het stapsgewijs in code omschrijven wat een programma moet
Concurrency in Java met threads. Java Threads. Voorbeelden concurrency in applicaties. Waarom concurrency in Java?
Java Threads Concurrency in Java met threads Wat zijn threads? Hoe werken threads? Hoe werk je met threads in Java? Scheduling Synchronisatie In Java programma s is concurrency (aka parallellisme) mogelijk.
Doorzoeken van grafen. Algoritmiek
Doorzoeken van grafen Algoritmiek Vandaag Methoden om door grafen te wandelen Depth First Search Breadth First Search Gerichte Acyclische Grafen en topologische sorteringen 2 Doolhof start eind 3 Depth
Arduino Workshop 1 Zuid-Limburg
Arduino Workshop 1 Zuid-Limburg Leren door doen Mei 2016 - slides voor Arduino workshop 1 v2.5 Zuid-Limburg PA3CZS, PA0FOT, ON4CDU, PE1EAM 1 Workshop 1 Workshop 1 concentreert op kennismaking en eenvoudige
Computerarchitectuur en netwerken. InterProcess Communication (IPC)
Computerarchitectuur en netwerken 5 InterProcess Communication (IPC) Lennart Herlaar 21 september 2016 Inhoud Manieren van communicatie tussen processen binnen één computer: Via files erven I/O redirection
Module 3: Scratch programmeren: is het logisch of is het niet logisch?
Module 3: Scratch programmeren: is het logisch of is het niet logisch? Inhoudsopgave Module 3: Scratch programmeren: is het logisch of is het niet logisch?...1 Wat is een computerprogramma eigenlijk?...2
ICT Infrastructuren: Processen en Threads. 18 november 2013 David N. Jansen
ICT Infrastructuren: Processen en Threads 18 november 2013 David N. Jansen Datum en Ajd van werkcollege na overleg met de aanwezigen: donderdag 8:45 10:30 Leerdoel voor vandaag. Stallings hoofdst 2 4 Hoofddoelen
Leren Programmeren met Visual Basic 6.0 Les 3+4. Hoofdstuk 4 : De Selectie
Leren Programmeren met Visual Basic 6.0 Les 3+4 Hoofdstuk 4 : De Selectie Visual Basic 6.0 1 Basisstructuren (herhaling) Sequentie (HK2) : Alle opdrachten gewoon na mekaar uitvoeren. Hier worden geen keuzes
Uitwerking tentamen Analyse van Algoritmen, 29 januari
Uitwerking tentamen Analyse van Algoritmen, 29 januari 2007. (a) De buitenste for-lus kent N = 5 iteraties. Na iedere iteratie ziet de rij getallen er als volgt uit: i rij na i e iteratie 2 5 4 6 2 2 4
Lineaire data structuren. Doorlopen van een lijst
Lineaire data structuren array: vast aantal data items die aaneensluitend gestockeerd zijn de elementen zijn bereikbaar via een index lijst: een aantal individuele elementen die met elkaar gelinkt zijn
OPDRACHT Opdracht 2.1 Beschrijf in eigen woorden wat het bovenstaande PSD doet.
Les C-02: Werken met Programma Structuur Diagrammen 2.0 Inleiding In deze lesbrief bekijken we een methode om een algoritme zodanig structuur te geven dat er gemakkelijk programmacode bij te schrijven
Semantiek & Correctheid Thread synchronisatie & communicatie
emantiek & Correctheid Thread ynchroniatie & communicatie Naam: Chritian Gilien (0342688) Maurice amulki (034239) Datum: 30 juni 2004 Verie: 2.5 Inhoudopgave Inhoudopgave...2 Inleiding...3 Thread ynchroniatie
TI-2720 Operating System Concepten. 21 januari 2013, uur. docent: H.J. Sips. Dit is een tentamen met 9 open vragen
TECHNISCHE UNIVERSITEIT DELFT Faculteit EWI, Afdeling SCT Sectie Parallelle en Gedistribueerde Systemen Ty Delft TI-2720 Operating System Concepten 21 januari 2013, 14.00-17.00 uur. docent: H.J. Sips Dit
Als een PSD selecties bevat, deelt de lijn van het programma zich op met de verschillende antwoorden op het vraagstuk.
HOOFDSTUK 3 3.1 Stapsgewijs programmeren In de vorige hoofdstukken zijn programmeertalen beschreven die imperatief zijn. is het stapsgewijs in code omschrijven wat een programma moet doen, net als een
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
Dynamisch Programmeren. Het Rugzakprobleem
INLEIDING Dynamisch Programmeren 1 Dynamisch Programmeren Section Page Inleiding................................................. 1 1 Oplossing................................................ 2 2 Subprobleem.............................................
VOORBLAD SCHRIFTELIJKE TOETSEN
Technology, Innovation & Society Delft VOORBLAD SCHRIFTELIJKE TOETSEN OPLEIDING TOETSCODE GROEP : ELEKTROTECHNIEK : GESPRG-SC1 : EP11/EP12 TOETSDATUM : 23-01-2014 TIJD : 15.00 16.30 uur AANTAL PAGINA S
Workshop Arduino - deel 2
Workshop Arduino - deel 2 Inleiding In het vorige deel van de workshop Arduino heb je voor het eerst kennis gemaakt met deze microcontroller. In dit deel, deel 2, ga je meer leren over de software: het
7 Omzetten van Recursieve naar Iteratieve Algoritmen
7 Omzetten van Recursieve naar Iteratieve Algoritmen Het lijkt mogelijk om elke oplossings-algoritme, die vaak in eerste instantie recursief geformuleerd werd, om te zetten in een iteratieve algoritme
Examen besturingssystemen
Examen besturingssystemen Vrijdag 3 februari 2006, 9u 12u Prof. Koen De Bosschere Richting: Naam: Belangrijk 1. Vergeet niet uw naam te vermelden. 2. Schrijf de antwoorden in de daarvoor voorziene ruimte.
DDS chips. DDS = Direct Digital (frequency) Synthesis. Output = sinusvormig signaal. Maximum frequentie = ½ klokfrequentie
www.arduino.cc Arduino en DDS DDS chips DDS = Direct Digital (frequency) Synthesis Output = sinusvormig signaal Maximum frequentie = ½ klokfrequentie Frequentie bepaald door tuning word Grootste fabrikant:
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,
Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms
Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Giso Dal (0752975) Pagina s 5 7 1 Deelverzameling Representatie
Programmeermethoden NA. Week 6: Lijsten
Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna2016/ Getal opbouwen Stel je leest losse karakters (waaronder cijfers) en je moet daar een getal
Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,
Deel 1: Arduino kennismaking Wat is een microcontroller, structuur van een programma, syntax, Wat is een microcontroller Wat is een microcontroller? Microcontroller = kleine dedicated computer. - Beperkt
Werkbladen voor Arduino workshop 1
De aansluitingen van de Arduino Uno Werkbladen voor Arduino workshop 1 Arduino Arduino is een open-source ontwikkelbord, waarmee het eenvoudig is om informatica aan fysieke objecten te koppelen. Je kunt
Algoritmiek. 15 februari Grafen en bomen
Algoritmiek 15 februari 2019 Grafen en bomen 1 Grafen (herhaling) Een graaf G wordt gedefinieerd als een paar (V,E), waarbij V een eindige verzameling is van knopen (vertices) en E een verzameling van
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,
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,
Evenwijdig programmeren - communicatie tussen processen
LinuxFocus article number 281 http://linuxfocus.org Evenwijdig programmeren - communicatie tussen processen door Leonardo Giordani Over de auteur: Is student aan de faculteit
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
Javascript oefenblad 1
Leer de basis van Javascript. Javascript oefenblad 1 Niels van Velzen Javascript oefenblad 1 Pagina 2 Inleiding Javascript is niet altijd even makkelijk. Vooral aan het begin is het even wennen hoe de
Programmeren in Java les 3
4 september 2015 Deze les korte herhaling vorige week loops methodes Variabelen Soorten variabelen in Java: integer: een geheel getal, bijv. 1,2,3,4 float: een gebroken getal, bijv. 3.1415 double: een
Computerarchitectuur en netwerken Toets 1 4 okt
11.00 13.00 De open vragen moet je beantwoorden op tentamenpapier. De multiple-choice antwoorden moet je op het vragenblad invullen in de rechtervakjes en dat blad inleveren. Schrijf je naam, studentnummer
Arrays in LOGO. In LOGO heeft de eerste item van de array standaard index 1.
Arrays in LOGO Een array Is één variabele die verschille items bevat. Iedere item heeft een waarde. De items staan in een bepaalde volgorde. Het is dus een rij van waarden. De positie van iedere item in
Verslag Opdracht 4: Magische Vierkanten
Verslag Opdracht 4: Magische Vierkanten Stefan Schrama, Evert Mouw, Universiteit Leiden 2007-08-14 Inhoudsopgave 1 Inleiding 2 2 Uitleg probleem 2 3 Theorie 2 4 Aanpak 2 5 Implementatie 4 6 Experimenten
Samenvatting Besturingssystemen
Samenvatting Besturingssystemen Vloeberghs Sam 2 Toegepaste Informatica 4 2007-2008 BESCHRIJVING EN BESTURING VAN PROCESSEN...4 WAT IS EEN PROCES?...4 Processen en besturingsblokken...4 PROCESTOESTANDEN...4
Kunstmatige Intelligentie (AI) Hoofdstuk 25 van Russell/Norvig = [RN] Robotica. voorjaar 2019 College 9, 11 april 2019
AI Kunstmatige Intelligentie (AI) Hoofdstuk 25 van Russell/Norvig = [RN] Robotica voorjaar 2019 College 9, 11 april 2019 www.liacs.leidenuniv.nl/ kosterswa/ai/robot.pdf 1 RoboCup Ξ www.robocup.org 2 Robots
Een gelinkte lijst in C#
Een gelinkte lijst in C# In deze tutorial ga demonstreren hoe je een gelinkte lijst kan opstellen in C#. We gaan een klasse schrijven, die een gelijkaardige functionaliteit heeft als een ArrayList, namelijk
Constraint satisfaction. Computationele Intelligentie. Voorbeelden. Een constraint satisfaction probleem. Constraint Satisfaction
Constraint satisfaction Computationele Intelligentie Constraint Satisfaction Een constraint satisfaction probleem (CSP) bestaat uit: een verzameling variabelen; een domein van waarden voor elke variabele;
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
Programmeren met Arduino-software
Programmeren met Arduino-software De software waarin we programmeren is Arduino IDE. Deze software is te downloaden via www.arduino.cc. De programmeertaal die hier gebruikt wordt, is gebaseerd op C en
1. Een kortste pad probleem in een netwerk kan worden gemodelleerd als a. een LP probleem. b. een IP probleem. c. een BIP probleem. d.
1. Een kortste pad probleem in een netwerk kan worden gemodelleerd als a. een LP probleem. b. een IP probleem. c. een BIP probleem. d. een toewijzingsprobleem. 2. Het aantal toegelaten hoekpunten in een
Over binaire beslissingsdiagrammen naar Donald E. Knuth s The Art of Computer Programming, Volume 4
Over binaire beslissingsdiagrammen naar Donald E. Knuth s The Art of Computer Programming, Volume 4 Jonathan K. Vis 1 Inleiding (blz. 70 72) In dit essay behandelen we bladzijden 70 75 van Donald E. Knuth
Wat is FP? The Haskell School of Expression. Functies. Types 1+1=2. Iedere expressie (en waarde) heeft een type.
Wat is FP? The Haskell School of Expression Functioneel Programmeren Een andere manier om tegen programmeren aan te kijken Gebaseerd op het uitrekenen van expressies 1+1=2 Eenvoudig maar krachtig (modulair,
Gedistribueerd Programmeren - Samenvatting
Gedistribueerd Programmeren - Samenvatting Geertjan van Vliet Disclaimer: Aan deze teksten kunnen geen rechten ontleend worden. Bepaalde passages zijn de visie van de auteur en niet die van de docent.
Inhoudsopgave. Optimalisatie van de mmips. Forwarding optie 1. Design flow. implementation
2 Inhoudsopgave Optimalisatie van de mmips pc Sander Stuijk Veel gestelde vragen Hoe moet ik forwarding implementeren? Hoe moet ik clipping implementeren? Waarom is mijn simulatie zo traag? Hoe kan ik
Honours projecten BSc Informatica: twee voorstellen
Honours projecten BSc Informatica: twee voorstellen mogelijk ook geschikt voor BSc Kunstmatige Intelligentie Alban Ponse section Theory of Computer Science Informatics Institute, University of Amsterdam
Programmeermethoden NA
Programmeermethoden NA Week 6: Lijsten Kristian Rietveld http://liacs.leidenuniv.nl/~rietveldkfd/courses/prna/ Bij ons leer je de wereld kennen 1 Getal opbouwen Stel je leest losse karakters (waaronder
