n-queens Local Search met Conflict Minimalizatie
|
|
- Margaretha van der Wal
- 6 jaren geleden
- Aantal bezoeken:
Transcriptie
1 n-queens Local Search met Conflict Minimalizatie Efficient Local Search with Conflict Minimalization: A Case Study of the n-queens Problem, door Rok Sosič en Jun Gu. Sjoerd van Egmond svegmond@liacs.nl LIACS, Universiteit Leiden 8 april 2010 Samenvatting Deze notitie is een nederlandse vrije vertolking van de artikelen Efficient Local Search with Conflict Minimalization [1] en 3,000,000 Queens in Less Than One Minute [2] van Rok Sosič en Jun Gu. Hierin wordt een algoritme voor het n-queens probleem beschreven dat in lineaire tijd een oplossing vindt voor heel grote n. 1 Introductie Er is al veel onderzoek gedaan naar het oplossen van het n-queens probleem, maar de auteurs van [1] hebben toch een nieuwe methode onderzocht om snel een oplossing te genereren. Waar het meeste onderzoek gedaan wordt naar het verbeteren van backtracking zijn Sosič en Gu meer richting een local search methode gegaan, om van daar uit een willekeurige oplossing te kunnen genereren in lineaire tijd. Backtracking is simpel te omschrijven en toch een erg sterk mechanisme. Het onthoudt welke stappen het gedaan heeft, probeert alles op volgorde en gaat terug als het vast loopt. In Figuur 1 is een voorbeeld te zien van een backtracking mechanisme voor het n-queens probleem met n = 4. Alle knopen met een kruis erin zijn knopen zonder oplossingen waaruit het backtrack 1
2 Figuur 1: Backtrack voorbeeld voor n=4 algoritme is teruggekomen. In deze figuur is het backtracking algoritme gestopt nadat het twee oplossingen had gevonden, daardoor zijn de knopen aan de rechterkant nog niet bezocht. De opbouw van deze notitie is als volgt. In Hoofdstuk 2 behandelen we het n-queens probleem en de bruikbaarheid van de oplossingen, in Hoofdstuk 3 komt het daadwerkelijke algoritme aan bod. We vervolgen met een verkorte analyse van het algoritme in Hoofdstuk 4 en besluiten met een korte conclusie in Hoofdstuk 5. 2 n-queens Het n-queens probleem wordt compact beschreven in Definitie 1. Definitie 1. Op een schaakbord van grootte n n willen we n queens plaatsen zodanig dat geen enkele queen een ander kan slaan. Een queen kan horizontaal, verticaal en diagonaal andere stukken op het schaakbord slaan, wat voor horizontaal en verticaal betekent dat er precies één queen op iedere rij en iedere kolom moet komen te staan. Ook op iedere diagonaal mag er dus maximaal één queen staan, anders slaan ze elkaar. Dit is een voorbeeld van een Constraint Satisfaction Probleem, waarbij een oplossing gevonden moet worden voor een probleem terwijl de beperkingen (constraints) in acht (satisfaction) genomen moeten worden. 2
3 2.1 Bruikbaarheid Figuur 2: Transmitter voorbeeld voor n=10 In [1] worden een aantal applicatie-domeinen aangehaald waarbinnen de oplossingen van het n-queens probleem gebruikt worden. Genoemde domeinen zijn onder andere very large scale integration (VLSI) testing, luchtverkeerscontrole, moderne communicatie-systemen, data/bericht-routering in een multiprocessor computer, load balancing in een multiprocessor computer, computer task scheduling, computer resource management, optische parallele processen en data-compressie. Naast eerdergenoemde domeinen is er nog een ander voorbeeld dat daadwerkelijk uitgewerkt is, namelijk het plaatsen van een array van smalband, directionele zers/ontvangers. Als we aannemen dat deze zers/ontvangers in 8 richtingen kunnen versturen of luisteren dan is dit te modelleren als een n-queens probleem. In Figuur 2 is een oplossing voor n = 10 te zien, waarbij elke zer/ontvanger in alle richtingen contact heeft met de wereld buiten het array, en er dus geen interferentie optreedt binnen het array. 3 Algoritme Het algoritme om een willekeurige n-queens oplossing te vinden bestaat uit twee onderdelen, een initiële plaatsing en een local search. In de eerste versie van het algoritme [2], genaamd QS1, werd alleen het local search gedeelte gebruikt. In de huidige versie zoals beschreven in [1], en QS4 genoemd in [2], is de initiële plaatsing toegevoegd om de complexiteit aanzienlijk te verminderen. In Algoritme 1 is de verdeling tussen de initiële plaatsing en de local search te zien, in Algoritme 2 wordt vervolgens de initiële plaatsing uitgewerkt, en in Algoritme 3 wordt de local search methode behandeld. Algoritme 1 is de omvatte functie die Algoritme 2 en Algoritme 3 bevat. Vanuit Algoritme 2 komt het aantal queens aan de rechterkant van 3
4 het bord dat mogelijk nog conflicten heeft, wat als parameter aan Algoritme 3 wordt meegegeven. Algoritme 1 n-queens algoritme proc Queens Oplossing(queen array[1..n] of integer) var k integer comment: k: aantal queens met conflicten. begin k Initieel(queen) Lokaal Zoeken(k, queen) Algoritme 2 is een stuk interessanter. Hierin wordt van links naar rechts in iedere kolom een queen op een locatie gezet zodanig dat die queen aan de linkerkant geen conflicten genereert. Dit gebeurt door middel van het swappen van kolommen. Omdat alle queens aan het begin geplaatst worden op de diagonaal wordt de oplossing direct aan twee van de drie beperkingen gehouden, namelijk dat er horizontaal en vertikaal maar één queen per rij en kolom mag staan. Door een swap te definiëren volgens Definitie 2 zal er altijd aan deze beperkingen voldaan worden. Omdat door een swap het aantal queens per kolom niet verandert blijft de oplossing geldig met betrekking tot de vertikale beperking. Omdat er ook per rij maar één queen staat en er twee rijen worden omgewisseld blijft de horizontale beperking ook geldig. Definitie 2. Een swap wordt uitgevoerd door de posities van twee queens uit verschille kolommen om te wisselen. Een eigenschap van de swap in Algoritme 2 is dat een kolom j alleen geswapt wordt met een kolom rechts ervan. Wat Links Conflicten doet is het controleren van de nieuwe situatie op conflicten aan de linkerkant van kolom j. Als de nieuwe positie van de queen in kolom j een conflict met een queen aan de linkerkant veroorzaakt wordt de swap teruggedraaid. In Hoofdstuk 4 wordt uitgelegd waarom er in totaal maar 3,08 n keer geswapt wordt en er dan doorgegaan wordt naar het volge deel. In Algoritme 3 wordt het laatste stuk stuk van het bord aan de rechterkant opgelost door middel van een local search met conflict-minimalizatie. Als invoer wordt het aantal queens met conflicten meegegeven, en zolang er nog conflicten bestaan in een kolom (en het aantal swaps niet over een bepaalde 4
5 Algoritme 2 Initieel proc Initieel(queen array[1..n] of integer) var i,j,m integer begin for i = 1 to n do queen[i] = i; od j = 1; for i = 1 to 3,08 n do m = Random(j,n) Swap(j, m) if Links Conflicten(j)=0 then j = j+ 1 else Swap(j,m) fi od for i = j to n do m = Random(i,n) Swap(i, m) od Returnn j+ 1 drempel komt) wordt er doorgezocht. In tegenstelling tot Algoritme 2 wordt er hier met alle kolommen geswapt, dus ook de eerste n k kolommen. Wat ook anders is is dat een swap alleen wordt toegestaan als beide kolommen na de swap geen enkel conflict hebben, en daar zorgt Totaal Conflicten voor. 3.1 Links- en Totaal-Conflicten Het gehele algoritme is lineair met betrekking tot de swap operaties en dit betekent echter ook dat de functies Links Conflicten en Totaal Conflicten niet te tijdrov mogen zijn. Dit wordt bereikt door voor de twee verschille diagonalen arrays van grootte 2n 1 bij te houden die bijhouden hoeveel queens er al op die diagonalen staan. Voor de diagonaal van linksonder naar rechtsboven hebben we de indices 2 tot n+n nodig, en voor de diagonaal van linksboven naar rechtsonder de indices n + 1 tot n 1. Voor iedere swap operatie, waarbij er dus twee queens verplaatst worden, hoeft er dus maar vier keer een diagonaal-telling te veranderen. Twee keer omdat er een queen weggaat, en twee keer omdat er een queen bijkomt. De reden waarom de indices zo gekozen zijn is omdat we dan met behulp van het kolomnummer en het rijnummer direct kunnen berekenen in welke diagonaal de queen zich bevindt. Voor de eerst beschreven indices is de optelling van het kolomnummer met het rijnummer de benodigde index. De 5
6 Algoritme 3 Lokaal Zoeken proc Lokaal Zoeken(k integer, queen array[1..n] of integer) var i,j integer b boolean swaps integer maxswaps integer begin swaps = 0 maxswaps = 7000 for i = n k+ 1 to n do if Totaal Conflicten(i)>0 swaps maxswaps then b = false while b swaps maxswaps do j = Random(1,n) Swap(i, j) b =(Totaal Conflicten(i) > 0) or(totaal Conflicten(j) > 0) if b then Swap(i, j) else swaps = swaps+ 1 fi od fi od index van de tweede diagonaal wordt verkregen door het rijnummer van het kolomnummer af te trekken. 4 Analyse In [1] wordt stap-voor-stap een formule opgebouwd om weer te geven hoeveel swaps er in Algoritme 2 nodig zijn om een oplossing te genereren. In Figuur 3 is deze formule geplot als een vloeie functie, waarbij de punten experimenteel geverifieerde aantallen zijn. Hieruit is het aantal swaps overgenomen dat nodig is om in de initiële fase een volledige oplossing te genereren als bovengrens van het aantal toegelaten swaps. Dit is de 3,08 uit de loop van Algoritme 2. Een belangrijk effect van het zetten van 3,08 is dat het aantal queens met conflicten niet lineair lijkt toe te nemen bij een vergroting van n. In Tabel 1 zijn de resultaten te zien van experimenten met n van 100 tot , waaruit aannemelijk wordt dat het aantal queens met conflicten niet erg groot zal zijn. Dit wordt gebruikt om een lineaire beperking te zetten op 6
7 Figuur 3: Stappen om x queens succesvol te plaatsen: benadere formule (curve) en experimenteel (punten). Aantal queens n Gemiddeld Minimum Maximum Tabel 1: Aantal queens geplaatst in de initiële fase na 3,08 n stappen. Algoritme 3, zodat het totale algoritme lineair is. Een ander gegeven dat nodig is om te bepalen hoeveel berekeningen Algoritme 3 nodig heeft is het aantal swaps per queen om alle conflicten daarmee te verwijderen. In [1] is dit ook experimenteel bepaald, en in Figuur 4 zijn zowel de benadere formule (lijn) als de experimenten (punten) geplot. Ook hier is te zien dat de formule niet veel afwijkt van de werkelijkheid en er kan dus een redelijk maximum aan het aantal swaps bepaalt worden waarbinnen een oplossing gevonden zou moeten zijn, wat in [1] op 7000 gezet wordt. Een kleine notitie is echter nodig omdat er een kans bestaat dat Algoritme 2 een situatie heeft opgeleverd die te lastig is om binnen het gegeven maximum aantal swaps op te lossen. Als dit maximum bereikt wordt, wordt overnieuw begonnen met een nieuwe situatie. Maar ondanks het feit dat dit erg inefficiënt klinkt laat Tabel 2 zien dat dit erg mee valt voor grote n. Daarentegen is ook te zien dat voor n=200 dit getal erg omhoog springt en daarom is voor n<200 voor een andere methode gekozen, waarbij in Algo- 7
8 Figuur 4: Aantal queens met conflicten x, aantal swap pogingen om een queen succesvol te verwisselen. Aantal queens n Aantal starts Tabel 2: Totaal aantal starts om 100 oplossingen te vinden. ritme 3 in plaats van het random swappen van queens voor een volledige test met alle andere queens gekozen wordt. Dit levert voor n in de buurt van 200 doorgaans ongeveer drie herstarts op om een oplossing te vinden. 5 Conclusie Voor grote n hebben de auteurs van [1] en [2] een bijzonder efficiënt algoritme gevonden, dat in maximaal 3,08 n+7000 swap operaties met zeer grote kans een oplossing kan vinden. Voor n in de buurt van 200 en kleiner is deze methode echter minder effectief omdat er vaak niet binnen het gegeven aantal swaps een oplossing gevonden wordt. Bibliografie [1] Rok Sosič and Jun Gu. Efficient Local Search with Conflict Minimization: A Case Study of the n-queens Problem. IEEE Transactions on Knowledge and Data Engineering, 6(5): , [2] Rok Sosič and Jun Gu. 3,000,000 Queens in Less Than One Minute. SIGART Bulletin, 2(2):22 24,
From Alife Agents to a Kingdom of Queens
From Alife Agents to a Kingdom of Queens Bob Wansink 27 Mei 2010 Deze notitie is een vrije vertaling en uitleg van het gelijknamige artikel in Intelligent Agent Technology: Systems, Methodologies, and
Nadere informatieCombinatorische Algoritmen: Binary Decision Diagrams, Deel III
Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Sjoerd van Egmond LIACS, Leiden University, The Netherlands svegmond@liacs.nl 2 juni 2010 Samenvatting Deze notitie beschrijft een nederlandse
Nadere informatieVierde college complexiteit. 26 februari Beslissingsbomen en selectie Toernooimethode Adversary argument
Complexiteit 2019/04 College 4 Vierde college complexiteit 26 februari 2019 Beslissingsbomen en selectie Toernooimethode Adversary argument 1 Complexiteit 2019/04 Zoeken: samengevat Ongeordend lineair
Nadere informatieUitwerking 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
Nadere informatieDerde college complexiteit. 7 februari Zoeken
College 3 Derde college complexiteit 7 februari 2017 Recurrente Betrekkingen Zoeken 1 Recurrente betrekkingen -1- Rij van Fibonacci: 0,1,1,2,3,5,8,13,21,... Vanaf het derde element: som van de voorgaande
Nadere informatieVierde college complexiteit. 16 februari Beslissingsbomen en selectie
Complexiteit 2016/04 College 4 Vierde college complexiteit 16 februari 2016 Beslissingsbomen en selectie 1 Complexiteit 2016/04 Zoeken: samengevat Ongeordend lineair zoeken: Θ(n) sleutelvergelijkingen
Nadere informatieVierde college complexiteit. 14 februari Beslissingsbomen
College 4 Vierde college complexiteit 14 februari 2017 Restant zoeken Beslissingsbomen 1 Binair zoeken Links := 1; Rechts := n; while Links Rechts do Midden := Links + Rechts 2 ; if X = A[Midden] then
Nadere informatieVijfde college complexiteit. 21 februari Selectie Toernooimethode Adversary argument
Complexiteit 2017/05 College 5 Vijfde college complexiteit 21 februari 2017 Selectie Toernooimethode Adversary argument 1 Complexiteit 2017/05 Opgave 28 Gegeven twee oplopend gesorteerde even lange rijen
Nadere informatieUitleg van de Hough transformatie
Uitleg van de Hough transformatie Maarten M. Fokkinga, Joeri van Ruth Database groep, Fac. EWI, Universiteit Twente Versie van 17 mei 2005, 10:59 De Hough transformatie is een wiskundige techniek om een
Nadere informatieALGORITMIEK: antwoorden werkcollege 5
ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit
Nadere informatieZevende college Algoritmiek. 6 april Verdeel en Heers
Zevende college Algoritmiek 6 april 2018 Verdeel en Heers 1 Algoritmiek 2018/Backtracking Programmeeropdracht 2 Puzzel 2: D O N A L D G E R A L D + R O B E R T Elke letter stelt een cijfer voor (0,1,...,9)
Nadere informatie3. Structuren in de taal
3. Structuren in de taal In dit hoofdstuk behandelen we de belangrijkst econtrolestructuren die in de algoritmiek gebruikt worden. Dit zijn o.a. de opeenvolging, selectie en lussen (herhaling). Vóór we
Nadere informatieZevende college algoritmiek. 23/24 maart Verdeel en Heers
Zevende college algoritmiek 23/24 maart 2017 Verdeel en Heers 1 Algoritmiek 2017/Backtracking Tweede Programmeeropdracht 0 1 2 3 0 1 2 3 4 1 2 3 4 5 2 Algoritmiek 2017/Backtracking Tweede Programmeeropdracht
Nadere informatieALGORITMIEK: antwoorden werkcollege 5
1 ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit
Nadere informatieALGORITMIEK: antwoorden werkcollege 5
ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit
Nadere informatieBasiskennis lineaire algebra
Basiskennis lineaire algebra Lineaire algebra is belangrijk als achtergrond voor lineaire programmering, omdat we het probleem kunnen tekenen in de n-dimensionale ruimte, waarbij n gelijk is aan het aantal
Nadere informatieII. ZELFGEDEFINIEERDE FUNCTIES
II. ZELFGEDEFINIEERDE FUNCTIES In Excel bestaat reeds een uitgebreide reeks van functies zoals SOM, GEMIDDELDE, AFRONDEN, NU enz. Het is de bedoeling om functies aan deze lijst toe te voegen door in Visual
Nadere informatien-queens minimale dominantie verzamelingen Chessboard Domination on Programmable Graphics Hardware door Nathan Cournik
n-queens minimale dominantie verzamelingen Chessboard Domination on Programmable Graphics Hardware door Nathan Cournik Rick van der Zwet 4 augustus 2010 Samenvatting Dit schrijven zal
Nadere informatieDivide & Conquer: Verdeel en Heers vervolg. Algoritmiek
Divide & Conquer: Verdeel en Heers vervolg Algoritmiek Algoritmische technieken Vorige keer: Divide and conquer techniek Aantal toepassingen van de techniek Analyse met Master theorem en substitutie Vandaag:
Nadere informatieAchtste college algoritmiek. 8 april Dynamisch Programmeren
Achtste college algoritmiek 8 april 2016 Dynamisch Programmeren 1 Werkcollege-opgave Dutch Flag Problem Gegeven een array gevuld met R, W, en B. Reorganiseer dit array zo dat van links naar rechts eerst
Nadere informatieProgrammeren Blok B. Onderwerpen. wstomv/edu/2ip05/ College 8. Tom Verhoeff
Programmeren Blok B Onderwerpen http://www.win.tue.nl/ wstomv/edu/2ip05/ College 8 Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software Engineering & Technology Verdelen
Nadere informatieGelijktijdigheid: 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
Nadere informatieAlgoritmiek. 2 februari Introductie
College 1 Algoritmiek 2 februari 2017 Introductie 1 Introductie -1- docent: Rudy van Vliet rvvliet@liacs.nl assistent werkcollege: Bart van Strien bartbes@gmail.com website: http://www.liacs.leidenuniv.nl/~vlietrvan1/algoritmiek/
Nadere informatieTwaalfde college algoritmiek. 13 mei Branch & Bound Heap, Heapsort & Heapify
Algoritmiek 2016/Branch & Bound Twaalfde college algoritmiek 13 mei 2016 Branch & Bound Heap, Heapsort & Heapify 1 Algoritmiek 2016/Branch & Bound TSP met Branch & Bound Mogelijke ondergrenzen voor de
Nadere informatieOpgave Constraint Processing
Opgave Constraint Processing De deadline voor het indienen van je verslag is woensdag 9 december, 12u. We verwachten je verslag op papier in de studentenbrievenbus in 200A. In dit project zullen we een
Nadere informatieWI1808TH1/CiTG - Lineaire algebra deel 1
WI1808TH1/CiTG - Lineaire algebra deel 1 College 6 26 september 2016 1 Hoofdstuk 3.1 en 3.2 Matrix operaties Optellen van matrices Matrix vermenigvuldigen met een constante Matrices vermenigvuldigen Machten
Nadere informatieConstraint 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;
Nadere informatieVerslag 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
Nadere informatieZevende college algoritmiek. 24 maart Verdeel en Heers
Zevende college algoritmiek 24 maart 2016 Verdeel en Heers 1 Verdeel en heers 1 Divide and Conquer 1. Verdeel een instantie van het probleem in twee (of meer) kleinere instanties 2. Los de kleinere instanties
Nadere informatieMagidoku s en verborgen symmetrieën
Uitwerking Puzzel 92-6 Magidoku s en verborgen symmetrieën Wobien Doyer Lieke de Rooij Een Latijns vierkant van orde n, is een vierkante matrix, gevuld met n verschillende symbolen waarvan elk precies
Nadere informatieUitwerking tentamen Algoritmiek 10 juni :00 13:00
Uitwerking tentamen Algoritmiek 10 juni 2014 10:00 13:00 1. Dominono s a. Toestanden: n x n bord met in elk hokje een O, een X of een -. Hierbij is het aantal X gelijk aan het aantal O of hooguit één hoger.
Nadere informatieUitgebreide uitwerking Tentamen Complexiteit, mei 2007
Uitgebreide uitwerking Tentamen Complexiteit, mei 007 Opgave. a. Een beslissingsboom beschrijft de werking van het betreffende algoritme (gebaseerd op arrayvergelijkingen) op elke mogelijke invoer. In
Nadere informatieModelleren C Appels. Christian Vleugels Sander Verkerk Richard Both. 2 april 2010. 1 Inleiding 2. 3 Data 3. 4 Aanpak 3
Modelleren C Appels Christian Vleugels Sander Verkerk Richard Both 2 april 2010 Inhoudsopgave 1 Inleiding 2 2 Probleembeschrijving 2 3 Data 3 4 Aanpak 3 5 Data-analyse 4 5.1 Data-analyse: per product.............................
Nadere informatieHoofdstuk 16: Zoek- en verwijzingsfuncties
Hoofdstuk 16: Zoek- en verwijzingsfuncties 16.0 Inleiding Eén van de belangrijkste functies binnen Excel is de mogelijkheid om te zoeken naar een specifieke waarde binnen een groot aantal cellen met gegevens.
Nadere informatieVBA voor doe het Zelvers deel 22. Handleiding van Helpmij.nl. Auteur: leofact
VBA voor doe het Zelvers deel 22 Handleiding van Helpmij.nl Auteur: leofact december 2015 Vorige aflevering In de vorige aflevering werden de regular expressions behandeld. Voor VBA zijn deze beschikbaar
Nadere informatieMatrixoperaties. Definitie. Voorbeelden. Een matrix is een rechthoekig array van getallen, die kentallen of elementen heten.
Definitie Een matrix is een rechthoekig array van getallen, die kentallen of elementen heten. Voorbeelden De coëfficiëntenmatrix of aangevulde matrix bij een stelsel lineaire vergelijkingen. Een rij-echelonmatrix
Nadere informatieLocal search. Han Hoogeveen CGN A februari, 2009
1 Local search Han Hoogeveen CGN A312 j.a.hoogeveen@cs.uu.nl www.cs.uu.nl/docs/vakken/opt/colleges.html 4 februari, 2009 2 Inhoud vandaag In totaal vier uur Slides staan al op het web www.cs.uu.nl/docs/vakken/opt/colleges.html
Nadere informatieOPDRACHT 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
Nadere informatieMet de functies Verticaal zoeken of Horizontaal zoeken kun je gegevens in het rekenblad laten opzoeken en weergeven.
Formules functies verticaal en horizontaal zoeken Excel Met de functies Verticaal zoeken of Horizontaal zoeken kun je gegevens in het rekenblad laten opzoeken en weergeven. Opbouw van de functie Verticaal
Nadere informatieElfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort
Algoritmiek 018/Algoritme van Dijkstra Elfde college algoritmiek 18 mei 018 Algoritme van Dijkstra, Heap, Heapify & Heapsort 1 Algoritmiek 018/Algoritme van Dijkstra Uit college 10: Voorb. -1- A B C D
Nadere informatieKennisrepresentatie & het IDP systeem
Kennisrepresentatie & het IDP systeem Setting Expert heeft declaratieve kennis over probleemdomein We willen die kennis gebruiken Voorbeelden Kennis van HCR over uurroosters gebruiken om automatisch een
Nadere informatieLocal search. Han Hoogeveen. 21 november, 2011
1 Local search Han Hoogeveen 21 november, 2011 Inhoud vandaag 2 Inhoud: Uitleg methode Bespreking oude opdrachten: ˆ Bezorgen wenskaarten ˆ Roosteren tentamens Slides staan al op het web www.cs.uu.nl/docs/vakken/opt/colleges.html
Nadere informatieHoofdstuk 3. Matrices en stelsels. 3.1 Matrices. [[1,7]],[[12,8] ] of [ 1, 7; 12,8 ] bepaalt de matrix
Hoofdstuk 3 Matrices en stelsels 3.1 Matrices Een matrix is in DERIVE gedefinieerd als een vector van vectoren. De rijen van de matrix zijn de elementen van de vector. Op de volgende manier kan je een
Nadere informatieDoorzoeken 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
Nadere informatieHopfield-Netwerken, Neurale Datastructuren en het Nine Flies Probleem
Hopfield-Netwerken, Neurale Datastructuren en het Nine Flies Probleem Giso Dal (0752975) 13 april 2010 Samenvatting In [Kea93] worden twee neuraal netwerk programmeerprojecten beschreven, bedoeld om studenten
Nadere informatieProgrammeerstructuren met App Inventor
Programmeerstructuren met App Inventor Kevin Krul, Universiteit Utrecht Roncalli, Bergen op Zoom Inhoud: Les 1: Introductie tot App Inventor, when statement en variabelen. Les 2: Introductie if-statement
Nadere informatieDatastructuren en algoritmen voor CKI
Datastructuren en algoritmen voor CKI Jeroen Bransen 1 11 september 2015 1 met dank aan Hans Bodlaender en Gerard Tel Heaps en heapsort Heap 1 2 3 4 5 6 7 8 9 10 16 14 10 8 7 9 3 2 4 1 16 14 10 8 7 9 3
Nadere informatieHet Queens n 2 graafkleuring probleem
Het Queens n 2 graafkleuring probleem Wouter de Zwijger Leiden Institute of Advanced Computer Science Universiteit Leiden Niels Bohrweg 1 2333 CA Leiden The Netherlands Samenvatting In dit artikel behandelen
Nadere informatieIMO-selectietoets I donderdag 7 juni 2018
IMO-selectietoets I donderdag 7 juni 018 NEDERLANDSE W I S K U N D E OLYMPIADE Uitwerkingen Opgave 1. Gegeven is een bord met m rijen en n kolommen, waarbij m en n positieve gehele getallen zijn. Je mag
Nadere informatieNegende college algoritmiek. 15 april Dynamisch Programmeren
Negende college algoritmiek 15 april 2016 Dynamisch Programmeren 1 algemeen Uit college 8: DP: - nuttig bij problemen met overlappende deelproblemen - druk een oplossing van het probleem uit in oplossingen
Nadere informatievandaag is Annie twee jaar jonger dan Ben en Cees samen
Hoofdstuk I Lineaire Algebra Les 1 Stelsels lineaire vergelijkingen Om te beginnen is hier een puzzeltje: vandaag is Annie twee jaar jonger dan Ben en Cees samen over vijf jaar is Annie twee keer zo oud
Nadere informatieLeren 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
Nadere informatieComputationele Intelligentie
Computationele Intelligentie Uitwerking werkcollege Representatie, Ongeïnformeerd zoeken, Heuristisch zoeken 1 lokkenwereld a. De zoekboom die door het dynamische breadth-first search algoritme wordt gegenereerd
Nadere informatieProgrammeren (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 informatieAfbeelding 12-1: Een voorbeeld van een schaakbord met een zwart paard op a4 en een wit paard op e6.
Hoofdstuk 12 Cartesische coördinaten 157 Hoofdstuk 12 CARTESISCHE COÖRDINATEN In dit hoofdstuk behandelen we: Het Cartesisch coördinatenstelsel De X-as en de Y-as De commutatieve eigenschap van optellen
Nadere informatieExamen Datastructuren en Algoritmen II
Tweede bachelor Informatica Academiejaar 2014 2015, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele
Nadere informatieTiende college algoritmiek. 2 mei Gretige algoritmen, Dijkstra
College 10 Tiende college algoritmiek mei 013 Gretige algoritmen, Dijkstra 1 Muntenprobleem Gegeven onbeperkt veel munten van d 1,d,...d m eurocent, en een te betalen bedrag van n (n 0) eurocent. Alle
Nadere informatieVierde 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
Nadere informatieZevende college complexiteit. 17 maart Ondergrens sorteren, Quicksort
College 7 Zevende college complexiteit 17 maart 2008 Ondergrens sorteren, Quicksort 1 Sorteren We bekijken sorteeralgoritmen gebaseerd op het doen van vergelijkingen van de vorm A[i] < A[j]. Aannames:
Nadere informatieKunstmatige Intelligentie (AI) Hoofdstuk 6 van Russell/Norvig = [RN] Constrained Satisfaction Problemen (CSP s) voorjaar 2015 College 7, 31 maart 2015
AI Kunstmatige Intelligentie (AI) Hoofdstuk 6 van Russell/Norvig = [RN] Constrained Satisfaction Problemen (CSP s) voorjaar 2015 College 7, 31 maart 2015 www.liacs.leidenuniv.nl/ kosterswa/ai/ 1 Introductie
Nadere informatieTiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra
Algoritmiek 017/Gretige Algoritmen Tiende college algoritmiek 13/1 april 017 Gretige Algoritmen Algoritme van Dijkstra 1 Algoritmiek 017/Gretige Algoritmen Muntenprobleem Gegeven onbeperkt veel munten
Nadere informatieGenetische 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 informatieWiskunnend Wiske. 5. Goochelende getallen. Wat ik ga studeren? Wiskunde natuurlijk!
Wat ik ga studeren? Wiskunde natuurlijk! Wiskunnend Wiske 5. Goochelende getallen c 2010, Standaard Uitgeverij, Antwerpen, België voor alle afbeeldingen van groot Wiske Opdracht 5 Vele goochelaars gebruiken
Nadere informatieElfde college algoritmiek. 21 april Dijkstra en Branch & Bound
Algoritmiek 011/11 College 11 Elfde college algoritmiek 1 april 011 Dijkstra en Branch & Bound 1 Algoritmiek 011/11 Kortste paden Gegeven een graaf G met gewichten op de takken, en een beginknoop s. We
Nadere informatieUitwerking 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 informatieTiende college algoritmiek. 14 april Gretige algoritmen
College 10 Tiende college algoritmiek 1 april 011 Gretige algoritmen 1 Greedy algorithms Greed = hebzucht Voor oplossen van optimalisatieproblemen Oplossing wordt stap voor stap opgebouwd In elke stap
Nadere informatieVierde college algoritmiek. 23/24 februari Complexiteit en Brute Force
Algoritmiek 2017/Complexiteit Vierde college algoritmiek 23/24 februari 2017 Complexiteit en Brute Force 1 Algoritmiek 2017/Complexiteit Tijdcomplexiteit Complexiteit (= tijdcomplexiteit) van een algoritme:
Nadere informatieInformatica: C# WPO 13
Informatica: C# WPO 13 1. Inhoud Bestanden uitlezen, bestanden schrijven en data toevoegen aan een bestand, csv-bestanden 2. Oefeningen Demo 1: Notepad Demo 2: Read CSV-file Demo 3: Write CSV-file A: Plot
Nadere informatieElfde college algoritmiek. 16 mei Dijkstra, Gretige algoritmen en Branch & Bound
Algoritmiek 013/11 College 11 Elfde college algoritmiek 1 mei 013 Dijkstra, Gretige algoritmen en Branch & Bound 1 Algoritmiek 013/11 Voorbeeld -1- A B C D E F G H 9 7 5 A B C D E F G H 0 9 9 7 5 A B C
Nadere informatieBenaderingsalgoritmen
Benaderingsalgoritmen Eerste hulp bij NP-moeilijkheid 1 Herhaling NP-volledigheid (1) NP: er is een polynomiaal certificaat voor jainstanties dat in polynomiale tijd te controleren is Een probleem A is
Nadere informatieTiende college algoritmiek. 14 april Dynamisch Programmeren, Gretige Algoritmen, Kortste Pad met BFS
Algoritmiek 2016/Dynamisch Programmeren Tiende college algoritmiek 14 april 2016 Dynamisch Programmeren, Gretige Algoritmen, Kortste Pad met BFS 1 Algoritmiek 2016/Dynamisch Programmeren Houtzaagmolen
Nadere informatieRandom-Getallen. Tristan Demont en Mark van der Boor en
Random-Getallen Tristan Demont en Mark van der Boor 0768931 en 0772942 18 januari 2013 Begeleider: Relinde Jurrius Opdrachtgever: Berry Schoenmakers Modelleren B, 2WH02 Technische Universiteit Eindhoven
Nadere informatie1. Cellen en formules
19 1. Cellen en formules Microsoft Excel is een rekenprogramma, ook wel spreadsheetprogramma genoemd. Met het woord spread wordt in het Engels tekst over meer kolommen bedoeld en de term sheet betekent
Nadere informatieDe statespace van Small World Networks
De statespace van Small World Networks Emiel Suilen, Daan van den Berg, Frank van Harmelen epsuilen@few.vu.nl, daanvandenberg1976@gmail.com, Frank.van.Harmelen@cs.vu.nl VRIJE UNIVERSITEIT AMSTERDAM 2 juli
Nadere informatieDatastructuren college 10
we hadden Backtracking verbetering i i Datastructuren college 0 0: : : 0: : : P r r r r r b r b r P r r r b r b r backtracking we hoeven vaak de kandidaat niet helemaal af te maken om hem te kunnen verwerpen
Nadere informatieGaap, ja, nog een keer. In één variabele hebben we deze formule nu al een paar keer gezien:
Van de opgaven met een letter en dus zonder nummer staat het antwoord achterin. De vragen met een nummer behoren tot het huiswerk. Spieken achterin helpt je niets in het beter snappen... 1 Stelling van
Nadere informatieArtificiële Intelligentie Project 2 - Constraint Processing
Artificiële Intelligentie Project 2 - Constraint Processing Philippe Dellaert 3 e Bachelor Computerwetenschappen - Elektrotechniek 13 mei 2007 1 Een logisch circuit 1.1 Variabelen en constraints Name:
Nadere informatie3.1 Negatieve getallen vermenigvuldigen [1]
3.1 Negatieve getallen vermenigvuldigen [1] Voorbeeld 1: 5 3 = 15 (3 + 3 + 3 + 3 + 3 = 15) Voorbeeld 2: 5-3 = -15 (-3 +-3 +-3 +-3 +-3 = -3-3 -3-3 -3 = -15) Voorbeeld 3: -5 3 = -15 Voorbeeld 4: -5 3 9 2
Nadere informatie(On)Doenlijke problemen
Fundamentele Informatica In3 005 Deel 2 College 1 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit Informatie Technologie en Systemen Overzicht Inleiding - Relatie Deel 1 en Deel 2 - Doenlijke
Nadere informatieInhoudsopgave Voorwoord 7 Nieuwsbrief 7 De website bij het boek 7 Introductie Visual Steps 8 Wat heeft u nodig? 8 Uw voorkennis 9 Bonushoofdstukken
Inhoudsopgave Voorwoord... 7 Nieuwsbrief... 7 De website bij het boek... 7 Introductie Visual Steps... 8 Wat heeft u nodig?... 8 Uw voorkennis... 9 Bonushoofdstukken... 9 Hoe werkt u met dit boek?... 10
Nadere informatie{ specificatie (contract) en toelichting }
Programmeren Blok A Drie aspecten van routines http://www.win.tue.nl/ wstomv/edu/2ip05/ College 5 Kees Hemerik Tom Verhoeff Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software
Nadere informatieGratis Sudoku Editie 00 PuDNL. Wat is een PuzzelDoku? 1 Uitdagende PuzzelDoku wacht om te worden opgelost
Gratis Sudoku Editie 00 PuDNL 1 Uitdagende PuzzelDoku wacht om te worden opgelost Gratis Sudoku Editie 00 PuDNL Website: www.sudoku-variations.com DISCLAIMER MEBO Educational Services besteedt voortdurend
Nadere informatieTake-home Tentamen Protocolvericatie. Universiteit van Amsterdam. 27 Maart 1994
Take-home Tentamen Protocolvericatie Vakgroep Programmatuur Universiteit van Amsterdam 27 Maart 1994 Algemene Opmerkingen Dit tentamen omvat zes reguliere opgaven plus een bonusopgave. Opgaves 1, 2, 5
Nadere informatie1. Cellen en formules
11 1. Cellen en formules Microsoft Excel is een rekenprogramma, ook wel spreadsheetprogramma genoemd. Met het woord spread wordt in het Engels tekst over meer kolommen bedoeld en de term sheet betekent
Nadere informatieEen Stelling over Priemgetallen Bewezen op een Schaakbord Seminar Combinatorial Algorithms (voorjaar 2010)
Een Stelling over Priemgetallen Bewezen op een Schaakbord Seminar Combinatorial Algorithms (voorjaar 2010) Johan de Ruiter, johan.de.ruiter@gmail.com 27 april 2010 1 De stelling van Fermat over de som
Nadere informatieProgrammeermethoden. 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 informatie3.2 Vectoren and matrices
we c = 6 c 2 = 62966 c 3 = 32447966 c 4 = 72966 c 5 = 2632833 c 6 = 4947966 Sectie 32 VECTOREN AND MATRICES Maar het is a priori helemaal niet zeker dat het stelsel vergelijkingen dat opgelost moet worden,
Nadere informatieAchtste college complexiteit. 2 april Polynoomevaluatie Matrixvermenigvuldiging Euler- en Hamiltonkringen
College 8 Achtste college complexiteit 2 april 2019 Polynoomevaluatie Matrixvermenigvuldiging Euler- en Hamiltonkringen 1 Polynoomevaluatie Zij p(x) = a n x n + a n 1 x n 1 +... + a 1 x + a 0 een polynoom
Nadere informatie16.3 Opgaven hoofdstuk 4: 2-d partities
Opgave 4.1 b Voor het getal drie geldt dat het op drie manieren opgedeeld kan worden in gehele getallen volgens definitie 4.1. Het kan opgedeeld worden in één keer 3 of in één keer 2 en één keer 1 of in
Nadere informatie1. Rekenen en formules
9 1. Rekenen en formules Microsoft Excel is een zogenaamd spreadsheetprogramma. Het woord spreadsheet is zo n typische computerterm die u pas gaat begrijpen als u met zo n programma werkt. Te vertalen
Nadere informatieVakgroep 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 informatieHoofdstuk 7: Werken met arrays
Programmeren in Microsoft Visual Basic 6.0, lessenserie voor het voortgezet onderwijs HAVO/VWO David Lans, Emmauscollege, Marnix Gymnasium Rotterdam, januari 2004 Hoofdstuk 7: Werken met arrays 7.0 Leerdoel
Nadere informatieAchtste college algoritmiek. 12 april Verdeel en Heers. Dynamisch Programmeren
Achtste college algoritmiek 12 april 2019 Verdeel en Heers Dynamisch Programmeren 1 Uit college 7: Partitie Partitie Partitie(A[l r]) :: // partitioneert een (sub)array, met A[l] als spil (pivot) p :=
Nadere informatieTiende college algoritmiek. 26 april Gretige algoritmen
Algoritmiek 01/10 College 10 Tiende college algoritmiek april 01 Gretige algoritmen 1 Algoritmiek 01/10 Muntenprobleem Gegeven onbeperkt veel munten van d 1,d,...d m eurocent, en een te betalen bedrag
Nadere informatieProject Paper: Tiling problem
Project Paper: Tiling problem Groep 11: Said Hattachi, Ismael el Hadad Hakim, Muttalip Küçük Januari 015 Abstract Dit artikel beschrijft een heuristiek waarmee een veld op een systematische wijze gevuld
Nadere informatieProgrammeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:
Programmeren A Genetisch Programma voor het Partitie Probleem begeleiding: Inleiding Het Partitie Probleem luidt als volgt: Gegeven een verzameling van n positieve integers, vindt twee disjuncte deelverzamelingen
Nadere informatieInformatica: 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 informatieInformatica: C# WPO 10
Informatica: C# WPO 10 1. Inhoud 2D arrays, lijsten van arrays, NULL-values 2. Oefeningen Demo 1: Fill and print 2D array Demo 2: Fill and print list of array A: Matrix optelling A: Matrix * constante
Nadere informatieHet oplossen van stelsels lineaire vergelijkingen Wiskunde 2, 2DM60 College 2b
Het oplossen van stelsels lineaire vergelijkingen Wiskunde 2, 2DM60 College 2b Ruud Pellikaan g.r.pellikaan@tue.nl /k 2014-2015 Lineaire vergelijking 2/64 DEFINITIE: Een lineaire vergelijking in de variabelen
Nadere informatieStelsels Vergelijkingen
Hoofdstuk 5 Stelsels Vergelijkingen Eén van de motiverende toepassingen van de lineaire algebra is het bepalen van oplossingen van stelsels lineaire vergelijkingen. De belangrijkste techniek bestaat uit
Nadere informatie