Project Paper: Tiling problem



Vergelijkbare documenten
16.2 TREK AF VAN. Hoofdstuk 16 HAAKJES VWO. 8 a 16.0 INTRO. 1 b De uitkomsten zijn allemaal 3. c (n + 1)(n 1) (n + 2)(n 2) = 3

16.2 TREK AF VAN. Hoofdstuk 16 HAAKJES VWO. 8 a 16.0 INTRO. 1 b De uitkomsten zijn allemaal 3. c (n + 1)(n 1) (n + 2)(n 2) = 3

Uitwerking tentamen Algoritmiek 10 juni :00 13:00

1.1 Lineaire vergelijkingen [1]

Probeer de vragen bij Verkennen zo goed mogelijk te beantwoorden.

9 a met: 100 (a+b) ; zonder: 100 a b b 100 (a+b) = 100 a b. 10 a met: 24 (a b) ; zonder: 24 a + b b 24 (a b) = 24 a + b. 11 a 90 a b 90 + a

5.1 Lineaire formules [1]

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

Modelleren C Appels. Christian Vleugels Sander Verkerk Richard Both. 2 april Inleiding 2. 3 Data 3. 4 Aanpak 3

Practicumopgave 3: SAT-solver

Tentamen: Operationele Research 1D (4016)

Inleiding Programmeren 2

Eindexamen wiskunde A1 vwo 2001-II

Achtste college algoritmiek. 8 april Dynamisch Programmeren

Hoofdstuk 2: Grafieken en formules

Het Queens n 2 graafkleuring probleem

10 Meer over functies

Grafieken veranderen met Excel 2007

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

handleiding v3.1 Overzicht toont u alle bladzijden van uw album Bladzijde toont een specifieke pagina van uw album

Schonen patiëntenbestand

Samenwerking met techniek kan mooie houten puzzels opleveren.

Examen VWO. Wiskunde A1 (nieuwe stijl)

KLIK VOOR ELKE VOLGENDE DIA!!! COPYRIGHT & ONTWERP : RAYMOND BRIGEZ

Notificaties. Versie 2.0

Inleiding Programmeren 2

Examen Datastructuren en Algoritmen II

Handleiding RoosterPlaats

sheets Programmeren 2 Java Recursie, de muis en graphics Walter Kosters

Examen Datastructuren en Algoritmen II

Een eenvoudig algoritme om permutaties te genereren

Netwerkdiagram voor een project. AON: Activities On Nodes - activiteiten op knooppunten

Examen HAVO. Wiskunde A (oude stijl)

Interpretatie van de data

1. Inleiding Instellingen maken Toestellen plaatsen Leidingen tekenen... 6

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

Hoe een TomTom een sudoku oplost

Trolley koffer. Een geluidloze trolley koffer, zelfs over hobbelige paden

LES 2: Zwaartekracht gebruiken en springen

Werkblad havo 4 natuurkunde Basisvaardigheden

Computationele Intelligentie

Eindexamen vwo wiskunde C pilot II

Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 2 juni 2009, uur

Elke groep van 3 leerlingen heeft een 9 setje speelkaarten nodig: 2 t/m 10, bijvoorbeeld alle schoppen, of alle harten kaarten.

HANDLEIDING SELFSERVICE WERKGEVERS PORTAL

Uitwerking tentamen Algoritmiek 9 juli :00 13:00

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

installeren als gevulde wand

Fabsheet: Vinylsnijder

INSTALLATIE IN PRINT INSTALLEREN. Aan de slag met Communicate In Print

UIT de budgetlijn

Examen VWO. Wiskunde A1,2 (nieuwe stijl)

Blue-Bot ONDERWIJSGIDS

Kern 1 Lineaire functies

3. Een dia met een tabel

Colofon RekenGroen. Rekenen voor vmbo- groen en mbo- groen Extra Rekenmodule Oppervlakte Leerlingtekst Versie 1.0. November 2012 Auteurs: Mieke

GEBRUIKERSHANDLEIDING. Basisinrichting door een bedrijf

HANDLEIDING ZORGAANBIEDERS, LANDELIJK IMPLANTATENREGISTER FASE 2

Handleiding 2designers Content Management Systeem

HET GPS FIGURENSPEL GPS Figuren Voorbereiding & uitvoering Voorbereiding Uitvoering

Opgaven Fibonacci-getallen Datastructuren, 23 juni 2017, Werkgroep.

OPDRACHTKAART. Thema: Prepress. Photoshop 8. Afbeeldingsgrootte en canvasgrootte PP Voorkennis: De vorige Photoshop-opdrachten afgerond.

PRINT CV HANDLEIDING. OTYS Recruiting Technology

Netwerkdiagram voor een project. AOA: Activities On Arrows - activiteiten op de pijlen.

Antwoorden rekenopdracht OPPERVLAKTE

Dynamisch Programmeren. Het Rugzakprobleem

Legplan plat dak. Bepaal zelf uw indeling met Solar Frontier zonnepanelen

Spellen Rekentuin Optellen Aftrekken Vermenigvuldigen

1.0 Voorkennis. Voorbeeld 1: Los op: 6x + 28 = 30 10x.

TV DE SCHAKEL CROP ONLINE - PERCEELREGISTRATIE VIA INTERNET

Categorieënanalyse bij de LOVStoetsen

Rush Hour: pad-planning met een robot-arm

Handleiding Wordpress CMS

Zoals altijd is dit de laatste afbeelding die we gaan maken:

Löwenherz, de koning keert terug.

Waarom mensen zich niet verdiepen in partnerpensioen

Bedrijfspagina op Facebook. Hoe maak je een bedrijfspagina op Facebook?

Detector Ability Achtergronden bij het instrument

Gratis Sudoku Editie 00 PuDNL. Wat is een PuzzelDoku? 1 Uitdagende PuzzelDoku wacht om te worden opgelost

StabiCAD V Gasleidingberekening

WERKING TEKENPROGRAMMA

Hoofdstuk 27: Celopmaak* 2010

Combinatoriek groep 2

Opgave 2. Binaire informatie

Webwinkel ongekend populair

Examen VWO. wiskunde A1,2. tijdvak 2 woensdag 18 juni uur

Route Een programma bestaat uit verschillende routes (deelparcoursen). Elke route heeft een eigen instelling voor

Transcriptie:

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 kan worden door een set met s. Dit probleem behoort tot de klasse van de verpakking problemen en staat bekend als NP- volledig. Er zijn verschillende manieren om dit probleem op te lossen. In dit artikel analyseert men de heuristiek met behulp van twee algoritmes die deze heuristiek op een totaal tegengestelde wijze gebruiken. Hiermee worden er conclusies getrokken waarmee men verdere onderzoeken mogelijk maakt. Introductie Er is een gegeven veld wat gevuld dient te worden. Hiervoor is er een set met s geleverd die bestaat uit s met verschillende afmetingen. Er kunnen s tussen zitten die dezelfde afmetingen hebben, dus een kan meerdere malen gebruikt worden indien die zit in de set. Het idee is om de s zo in het veld te plaatsen dat het veld volledig gevuld is en er geen gaten tussen de s is. Hierbij mag er geen overlap zijn tussen de s. Ook is de oppervlakte van het te vullen veld gelijk aan de oppervlakte van de set. Dit betekent dat elke in de set gebruikt dient te worden. Probleembeschrijving Er zijn 15 problemen geleverd met elk een set die de twee algoritmes op moeten lossen gebruik makend van de heuristiek. Deze problemen worden opgedeeld in vijf categorieën: namelijk: 15 s, 5 s, 35 s, 45 s en 55 s. Elk categorie representeert een schatting van het aantal s in de geleverde set. Dit betekent dat problemen die tot de categorie 35 s behoren een set hebben met ongeveer 35 s. Probleemkarakteristieken Elke veld en is twee dimensionaal met een bepaalde breedte en hoogte. Tijdens het oplossen van een probleem mag men gebruiken maken van het plaatsen, het verwijderen en het omdraaien van een. Het omdraaien betekent indirect dat een van m bij n ook gezien kan worden als een s van n bij m. Aannames Voor het oplossen van de problemen worden de volgende aannames gemaakt. Elk probleem is op te lossen aangezien die geleverd wordt door de opdrachtgever. Elke set van s bevat minimaal een grootste. De grootte van een wordt bepaald door de oppervlakte. Indien er meerdere grootste s zijn, kiest men voor de die de hoogste waarde heeft voor de breedte of hoogte. Stel dat er een

set is met een 6x1 en een 3x. Dan kan men op basis van de oppervlakte niet uitmaken welke de grootste is, aangezien beide stenen een oppervlakte van 6 hebben. Dan beschouwt men de 6x1 als de grootste. De hoogste waarde voor de breedte is 6 en voor de hoogte is 3. Aangezien de hoogte waarde voor de breedte groter is dan die voor de hoogte, kies men voor de die hoor bij deze hoogste waarde. Heuristiek De heuristiek bestaat uit drie onderdelen: namelijk Perfect fit, Partly fit en No fit. Perfect fit betekent dat er een bestaat die het te vullen veld geheel vult. Links in figuur 1 is er sprake van perfect fit, aangezien de x het te vullen veld dat ook bij is geheeld vult. Partly fit betekent dat de breedte of hoogte van de gelijk is aan de breedte of hoogte van het te vullen veld. In het midden van figuur 1 ziet men dat zowel de breedte als de hoogte van het te vullen veld gelijk is aan de breedte van de. Dit is een voorbeeld van partly fit. Het rechtergedeelte van figuur 1 geeft een voorbeeld van No fit weer. Het te vullen veld is namelijk bij en de breedte noch hoogte van de is niet gelijk. In beiden algoritmes die nader worden behandeld weegt Perfect fit het zwaarst, daarna Partly fit en daarna No fit. x x1 1x1 Figuur 1. Respectievelijk van links naar rechts Perfect fit, Partly fit en No fit. Algoritme 1 Algoritme 1 gaat van groot naar klein door de set en kiest de grootste. Vervolgens plaatst het deze linksboven en tekent een horizontale en verticale lijn (links in figuur ). Zo ontstaan er drie ruimtes: onder, rechts en rechtsonder (rechts in figuur ). Dan berekent men de oppervlaktes van de ruimte onder en rechts. Als de oppervlakte van de ruimte van onder kleiner of gelijk is aan die van rechts, dan vult men eerst de ruimte onder. Daarna wordt de ruimte rechts en rechtsonder als één ruimte gezien en wordt deze samengevoegde ruimte gevuld (links in figuur 3). Indien de oppervlakte van de ruimte van onder groter is dan die van rechts, dan vult men eerst de ruimte rechts en dan de ruimtes onder en rechtsonder (rechts in figuur 3). Aangezien het vullen van de ruimtes een recursieve stap is, zal algoritme 1 zichzelf recursief aanroepen om de meegegeven ruimtes te vullen. Als de meegegeven ruimtes gevuld zijn, is dit het einde van algoritme 1. Zo niet, maakt het de ongedaan, draait de kwartslag en plaats het opnieuw

linksboven. Indien de ruimtes weer niet gevuld kunnen worden, zet het de terug in de set, pakt de volgende grootste steen en begint het opnieuw. Figuur 4 geeft deze stappenplan systematisch weer. Grootst e Grootst e Onder Rechts Rechts- onder Figuur. Links de lijnen die ontstaan na het plaatsen van de grootste, en rechts de drie ruimtes die daarna ontstaan. Grootste Rechts Grootste Rechts Onder Rechts- onder Onder Rechts- onder Figuur 3. Links de ruimtes onder en de samengevoegde ruimtes rechts en rechtsonder. Rechts de ruimtes rechts en de samengevoegde ruimtes onder en rechtsonder. 1. Ga van groot naar klein door set en kies grootste. Plaats linksboven 3. If oppervlakte van onder <= oppervlakte van rechts Vul onder, en vul rechts en rechtsonder als één geheel Else Vul rechts, en vul onder en rechtsonder als één geheel 4. Maak ongedaan, flip als eerder niet geflipt en ga terug naar 5. Zet terug in set, en ga terug naar 1 Figuur 4. Stappenplan van algoritme 1

Algoritme Algoritme werkt hetzelfde als algoritme 1 op één cruciaal verschil na. Algoritme 1 vult eerst de kleinere oppervlakte en vult daarna de rest (stap 3 in figuur 4). Algoritme daarentegen vult eerst de grotere oppervlakte en vult daarna de rest. Dus het stappenplan van algoritme ontstaat als men bij stap 3 in figuur 4 het kleiner of gelijk aan - teken (<=) verandert in een groter dan - teken (>). De gevolgen van deze kleine verandering worden nader besproken. Resultaten Zowel algoritme 1 als algoritme zijn geprogrammeerd in JAVA en hebben geprobeerd om de 15 problemen op te lossen. Om elk probleem op te lossen hebben beide algoritme maximaal 5 minuten. Indien de 5 minuten zijn overschreven wordt dit gerekend als niet- opgelost. Dit doen we om de tijdsduur voor het oplossen ook te laten meetellen bij het beoordelen. Oplossingen die men vind na langer dan 5 minuten worden gerekend tot onacceptabele oplossingen. Algoritme 1 lost 119 van de 15 op (95,%) en algoritme lost 94 van de 15 problemen op (75,%). Dit is een verschil van precies 0 procent, wat gelijk staat een geheel categorie. Figuur 5 geeft het aantal opgeloste problemen weer per categorie. Het is te zien dat beide algoritme ongeveer gelijk scoren bij de eerste twee categorieën. Daarna blijft algoritme 1 ongeveer gelijk, terwijl algoritme steeds slechter presteert naarmate de grootte van de tileset toeneemt. Figuur 6 geeft de gemiddelde tijdsduur weer van de opgeloste problemen per categorie. Weer is te zien dat naarmate de grootte van tileset toeneemt, de tijdsduur om een probleem op te lossen voor algoritme behoorlijk omhoog gaat. De tijdsduur van algoritme 1 om een probleem op te lossen gaat iets omhoog wat begrijpelijk is, aangezien de tileset groter wordt. Ook hier zien we dat algoritme het slechter presteert dan algoritme 1. Met figuur 6 kan ook worden verklaard waarom algoritme bij de laatste categorie zo weinig problemen oplost. Dat komt waarschijnlijk doordat het oplossen bij de grotere tileset de tijdslimiet bereikt wordt. Conclusie Het is overduidelijk dat deze heuristiek beter werkt met algoritme 1 dan met algoritme. Het eerst vullen van de kleinere ruimtes scoort beter dan het eerst vullen van grotere ruimtes. Dit komt omdat er minder combinaties mogelijk zijn om een kleinere ruimte te vullen dan om een grotere ruimte te vullen. Dus men komt er bij algoritme 1 eerder achter zodra een ruimte niet te vullen is en er recursie moet optreden. Bij algoritme zijn er meer combinaties om een grotere ruimte te vullen, dus het heeft langer de tijd nodig om te beoordelen of dat gegeven ruimte te vullen is.

5 Aantal opgeloste problemen 0 Aantal opgeloste problemen 15 10 5 Algoritme 1 Algoritme 0 15 s 5 s 35 s 45 s 55 s Categorie Figuur 5. Vergelijking van het aantal opgelost problemen per categorie door algoritme 1 en. Tijdsduur 10 100 Tijdsduur in seconden 80 60 40 0 Algoritme 1 Algoritme 0 15 s 5 s 35 s 45 s 55 s Categorie Figuur 6. Vergelijking van de gemiddelde tijdsduur van de opgeloste problemen per categorie door algoritme 1 en.