# the primary purpose of this project is to build a system that will visualise graphs, and more...

Post on 21-Dec-2015

212 views

Embed Size (px)

TRANSCRIPT

- Slide 1
- The primary purpose of this project is to build a system that will visualise graphs, and more importantly visualise the execution of a graphing algorithm on that graph. The initial brief stressed the need for the solution to be modular in design and implement functionality through interchangeable Plug-ins. Thus, an Object Oriented approach was decided, using Java and implementing Plug-in functionality through extensions of abstract super-classes. The challenges lay in implementing the required features, which included: the ability to generate graphs in a number of different ways. the ability to import and export a graph to and from the program. the ability to execute a graph on all or part of a graph. the ability to visualise the step-by-step execution of an algorithm on a graph. the ability to execute an algorithm on the results of a previous algorithm. LEFT: A GATE XML Graph File demonstrating the simplicity of the GATE XML Schema and the ease with which complex graphs can be represented with the minimum amount of redundancy, whilst maintaining human readability and portability. ABOVE: A 3D Visualisation of a graph either imported from a file, generated randomly, created using the graph drawing tools or created as a result of a combination of the above. The graphs can be scaled, freely rotated and edited at will. Information about the nodes and edges can be found via tooltips by hovering the cursor over respective components. ABOVE: A demonstration of the execution of Prims algorithm on the graph. Shown here several steps into its execution. Graph editing abilities have temporarily been disabled, however the graphs can still be scaled and freely rotated to view the graph from different perspectives. Here the edges have been colourized to denote the progress and attention of the algorithm. Textual feedback of the algorithms process is also provided in the text area at the bottom of the window. ABOVE: The completed execution of the algorithm showing the resultant graph in green. The user is still free to scale or rotate the graph and may also induce a sub graph from the result. Meaning a new graph is created containing the nodes and edges in the result of the algorithm. Due to the Object Oriented approach to GATE this graph really is a sub graph, as it contains the appropriate same node and edge objects that its parent had. ABOVE: The result of the algorithm induced into a new sub graph. This can now be treated exactly like a new graph, i.e. scaled rotated edited, have an algorithm executed on it etc. In addition at any time this graph can be mapped back onto its parent, meaning this graphs nodes and edges will be added back to the original parent graph in their possible new positions, as well as any new edges and nodes. LEFT: An altered version of the result graph mapped back onto its parent. Here you can see that the original graph information has not been lost and that the visualisation self adjusts to accommodate the nodes/edges new positions. Implemented Feature List: - Object Oriented Graph Representation : a robust internal representation of a graph consisting of nodes connected by edges with redundant data structures to speed algorithm execution. 2D and 3D Graph Visualisation : a clean, colourable visualisation window capable of 2D or 3D representation with zoom, free-rotation and tooltip information functionality. In Place Graph Editing/Drawing : Graph drawing tools supporting 2D and 3D graphs both weighted and un- weighted, directed and not. Intuitive via context sensitive menus. Random Graph Generation : Random graph generation based upon Waxmans Algorithm for Network Topology Generation. Allowing control of number of nodes, number of edges, ratio of short to long edges, and average node degree. XML Graph Import/Export : Import and export of graphs to and from GATE using portable, human readable and extensible, XML with a strict schema. Graphing Algorithms with Visualised Stepped Iterations: Implementations of common graphing algorithms such and Prims and Dijsktras, that provide a step-by-step walkthrough of their execution both visually and via textual feedback. With the ability to step forward and backward through the steps at will. Selection/Toggling of Graphs and Root Identification : Nodes and edges can be selectively toggled and a root identified. An algorithm will only run on the selected sub graph. Sub Graph Induction and Mapback : The result of an algorithms execution can be induced into a sub graph. This sub graph can then be used just like a normal graph and at any point the user can mapback to the parent graph, meaning this graphs nodes and edges will be added back to the original parent graph in their possible new positions, as well as any new edges and nodes. Intuitive Tabbed Graphical User interface : A clean and functional GUI with tabbed visualisation panes, intuitive menu bar and context sensitive menus with the visualisation pane. Combined with a small help section and extensive documentation for any queries. Members: Gregory Haddow (gjh3@kent.ac.uk)gjh3@kent.ac.uk Konrad Wallach (kgw3@kent.ac.uk)kgw3@kent.ac.uk Kapasa Chitambala (Kc71@kent.ac.uk)Kc71@kent.ac.uk Supervisor: John Crawford (J.S.Crawford@kent.ac.uk)J.S.Crawford@kent.ac.uk