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