eXtensive ATM Position Optimizer
Transcrição
eXtensive ATM Position Optimizer
eXtensive ATM Position Optimizer 1 Vorstellung Das Team: oBianca Voigts oChristoph Stallmann Universität von Pretoria (Südafrika) oCentre for Geo‐Information Science 2 Das Problem o Bankautomaten (ATMs) müssen optimal in einer Stadt platziert werden. o Das Gewicht eines Stadtviertels wird berechnet basierend auf verschiedenen Attributen. • Bevölkerungsdichte, Handys pro Person. Leichtes Stadtviertel Schweres Stadtviertel Bankautomat 3 Das Problem o Daten von Statistics South Africa, Census 2001 (Südafrikanisches Statistikamt). 4 Die Programmstruktur Drei strukturelle Teile: oBibliothek: Algorithmen und Geometrie oBenutzeroberfläche: Grafiken und Widgets oTest‐Framework: Testoberfläche und Unit Tests 5 Die Platzierungsalgorithmen 6 Die Platzierungsalgorithmen Brute‐Force‐Methode: oEine Lösungsmethode, die auf dem Ausprobieren aller möglichen Fälle beruht. oBasierend auf einer Diskretisierung des Problems. Genetischer Algorithmus: oRandomisierte Suche. oVerschiedene Lösungsvorschläge werden wiederholend generiert und kombiniert. 7 Sequentieller Positionierer (Brute‐Force) o Stadtplan wird in ein Flächenraster (Gitter) aufgeteilt. o Positionen werden ausgewertet und sortiert. o Die bestmöglichen Positionen werden ausgewählt. Platzierung des 1sten Aktuelle Berechnung: Platzierung des 3 Erstellen der Liste Platzierung des 2 Stadt Erstellung ten Automaten Netz Erstellung Schnittstellen Auswertung Sortierung der Liste Automaten Gut Schlecht 8 Paralleler Positionierer (Brute‐Force) o Anstatt einzelne Automaten sequentiell zu positionieren, wird eine Gruppe von mehreren Automaten gleichzeitig platziert. o Bis zu 10 Bankautomaten gleichzeitig. 9 Sequentieller vs. Paralleler Positionierer ATMs: ATMs: Gewicht: 50 Summiertes ATM Gewicht: 118 Gewicht: 8 Sequentieller Positionierer Summiertes ATM Gewicht: 131 Paralleler Positionierer 10 Genetischer Positionierer o Zufällige Lösungen (Positionen) werden wiederholend verschoben und kombiniert. o Keine Diskretisierung (Gitter) notwendig. o Maschinengenauigkeit: Automaten können überall auf der Karte platziert werden. 11 Berechnung der Anfangspositionen o Der genetische Algorithmus: Randomisierte Bevölkerung Genetischer Algorithmus o Unser genetischer Algorithmus: Randomisierte Bevölkerung Sequentielle oder parallele Bevölkerung Genetischer Algorithmus 12 Schnittflächenberechnung o N‐Eck anstatt eines Kreises. o Optimierung für alle Algorithmen. o Gängige Praxis bei den meisten GIS‐Anwendungen (z.B. PostGIS). o Wähle Fermat‐Zahlen für die Anzahl der Ecken. 13 Anwendung des MER o Ein MER ist das Minimale Einschließende Rechteck. o Optimierung für alle Algorithmen. o Nur Stadtviertel dessen MER sich mit dem Automaten schneiden werden berücksichtigt. Ohne MER Polygone berechnet: 5 1 2 4 6 6 Mit MER 2 3 1 2 o Im Durchschnitt bis zu 4 mal schneller. 14 Simultanverarbeitung o Mehrere Prozesse laufen gleichzeitig. o Optimierung für die Brute‐Force Algorithmen. o Optimale Ausnutzung von Mehrkernrechnern. o QThreads verwendet. 15 Benutzeroberfläche 16 Technologien o Programmiersprache: C++ C++ o GUI und Bibliothek: Nokias Qt Framework •Plattformübergreifend •Windows, Linux, Mac OS und mehr o Versionsverwaltung: Apache Subversion o Windows Compiler: MinGW o Linux Compiler: GCC 17 Vorgehensweise o Agile Unified Process (AUP). o Flexibilität: Kein festgelegter Algorithmus und viel Veränderung. o Disziplin: Festgelegter Zeitplan. o Gegründet auf Testgetriebener Entwicklung und kurzen Abgabe‐Iterationen. 18 Das Programm im Test o Entwicklung eines eigenen Test Automation Frameworks. o Fast 100 einzelne Unit Tests. o Fehler früh im Software‐ Entwicklungsprozess eliminiert. 19 Die Algorithmen im Vergleich 20 Die Algorithmen im Vergleich 21 www.xapo.org 22