Transcript Prezentace

Diplomová práce
Aplikace pro plánování rozvozu
zboží
Vedoucí práce: ing Jan Růžička, Ph. D.
Vypracoval: Petr Fuks
Studijní obor: geoinformatika
Studijní skupina: G562, 5.ročník
Školní rok: 2004/2005
Úkoly
Nastudujte algoritmy prohledávání sítě
Použijte poznatky z teorie grafů
Připravte data a aplikaci (využijte stávající) pro automatizovaný
import do struktur vhodných pro vyhledávání v silniční síti
Vytvořte aplikaci, která na základě udání polohy zákazníka
(zákazníků) navrhne trasu rozvozu zboží (s možnou nakládkou v
meziskladech a pobočkách firmy).
Teorie grafů
Graf je uspořádaná dvojice G = (V,E) kde V je množina
vrcholů a E je množina hran – množina vybraných
dvouprvkových podmnožin množiny vrcholů
Silniční síť
souvislý,orientovaný,
ohodnocený multigraf
Rozsah silniční sítě ČR – graf :
22126 vrcholů a 30490 hran (
viz. silniční databanka ŘSD ze
dne 1.7.2004)
Algoritmy pro hledání
nejkratší cesty
Problémem hledání cesty (pathfinding) se rozumí
úloha nalezení podle daných kritérií nejvhodnější
cesty z místa A do místa B v mapě.
Příklady algoritmů
–
–
–
–
–
Prohledávání do šířky
Prohledávání do hloubky
Dijkstrův algoritmus
Prohledávání čistě podle heuristiky
Dijkstrův algoritmus s heuristikou
Problém obchodního
cestujícího
Je dáno m měst. Některá města jsou propojena silnicemi,
délka silnic je známa. Úkolem obchodního cestujícího je
navštívit všechna města a vrátit se do výchozího města.
Nalezněte takovou cestu (permutaci měst), aby délka
uražené cesty byla co nejmenší.
Příklady řešení
Nalezení nejkratší permutace ze všech permutací – při větším počtu měst
výpočetně náročné
Neuronová síť (Hopfieldova síť)
Genetické algoritmy – napodobení systému biologické evoluce
Princip hledání cesty
7
O3
5
Z1
6
Z3
Start
4
O2
6
3
5
4
5
Z2
5
O4
O1
Princip hledání cesty
vypočet nejkratších cest
15
Z1
12
Start
15
9
Z3
12
9
Z2
Princip hledání cesty
problém obchodního cestujícího
4.
Z1
Start
3.
Z3
1.
2.
Z2
Princip hledání cesty
vytvoření cesty v grafu silniční sítě
Z1
O3
Start
O2
Z3
Z2
O4
O1
Data
Požadavky
vektorová mapa silniční sítě ČR
dostupnost dat
Možné zdroje dat
ArcČR 500
T-mapy Silniční síť ČR 1: 50 000
DMÚ 25
silniční databanka ŘSD - ZDARMA
Graf (projekt JGraphT)
JGraphT - Open source projekt implementující objekty a algoritmy
Teorie grafů
knihovna JGraphT
optimalizována pro vytváření datových a výpočetních modelů
obsahuje obecně popsané API funkce které lze dále rozšiřovat,
modifikovat a
specializovat
je navržena pro práci s rozsáhlým grafem (v řádu milionů
vrcholů a hran)
Vytvoření grafu
Na základě atributů vrstvy úseků a tříd projektu JGraphT byl
vytovořen graf silniční sítě
Úsek silniční sítě
Hrana grafu
B
A
B
A
D
C
D
C
5046 * 1,5
Vývoj GUI aplikace
J2SE 1.4.2 JAVA – Swing – neobsahuje třídy pro práce s
geodaty
Projekt OpenMap –
pro vizualizaci nutná transformace
dat ze souřadnicového systému
JTSK do WGS 84
Projekt GeoTools lite –
obsahuje základní nastroje pro
vizualizaci dat zaměřené na
publikaci dat webu
JUMP –
open source aplikace pro práci s
geodaty, kterou lze jednoduše
rozšiřovat pomocí pluginů
Projekt JUMP
Open source projekt jež vyvíjí snadno rozšiřitelné API
funkce a grafického rozhraní pro prohlížení a manipulaci s
prostorovými daty
Je rozdělen na tři samostatné projekty:
The JUMP Unified Mapping Platform (JUMP)
The JTS Topology Suite (JTS)
The JCS Conflation Suite (JSC)
Tvorba plugin aplikace JUMP
Seznámení se s možnostmi projektu JUMP
Nastudování dokumentace
Vyzkoušení tvorby jednoduchých pluginů
Přepsání dosavadní aplikace do podoby
pluginu
Vývoj pluginu - Načtení dat
K načtení vstupních dat je využito existujícího pluginu
LoadDataSet.
Attribute
Feature
ID
Layer úseky
Feature
Collection
Length
Orienation
Quality
Vývoj pluginu – nalezení
nejkratší cesty
Vypočtení nejkratší spojení mezi zastávkami – využití
implemtace Dijkstrova algoritmu z projektu JGraphT
Nalezení nejkratší permutace – úloha obchodního
cestujícho
Rekonstrukce nalezené cesty – převedení nalezné cesty
grafu na pouslopnost geoprvků reprezentující cestu v
silniční síti
Vývoj Pluginu - GUI
Vývoj Pluginu - GUI
Použité nástroje a
technoligie
Programovací jazyk – Java J2SE v. 1.4.2
Vývojové prostředí – Borland JBuilder X
Operační systém Windows/Linux (Fedora 2)
Literatura:
http://www.rsd.cz
http://www.tmapy.cz
http://www.arcdata.cz
http://www.cs.vsb.cz/ochodkova
http://sourceforge.net/projects/geotools/
http://pathlib.hildebrand.cz/doc/Referat/pathref.html
http://www.sys-con.com/story/?storyid=36224&DE=1
http://www.aic.nrl.navy.mil/galist/src/
http://sickboy.hyperlink.cz/ctufee/paa/tsp/ascii/tsp.html
http://java.sun.com/j2se/1.4.2/docs/api/
http://www.cs.vsb.cz/hlineny/
http://openmap.bbn.com/
http://www.jump-project.org/
http://jgap.sourceforge.net/
Děkuji za pozornost