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