A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/pgRouting/pgrouting/wiki/GSoC-2016-Contraction below:

GSoC 2016 Contraction · pgRouting/pgrouting Wiki · GitHub

Tag: https://github.com/pgRouting/pgrouting/releases/tag/gsoc%2Fcontraction-lw

Welcome to the pgrouting wiki for contraction!

In big graphs, like the road graphs, or electric networks, graph contraction can be used to speed up some graph algorithms. Contraction reduces the size of the graph by removing some of the vertices and edges and, for example, might add edges that represent a sequence of original edges decreasing the total time and space used in graph algorithms.

This implementation gives a flexible framework for adding contraction algorithms in the future, currently, it supports two algorithms:

Allowing the user to:

State of the project before GSoC

Previously there is no contraction functionality in the library.

Addition that my project brought to the software

I implemented the following during the GSoC program

https://docs.google.com/presentation/d/1CJ6edrKdvKh-daV7fZdxgOkeJUO-_p1N20-rEIq6uU4/pub?start=false&loop=true&delayms=3000&slide=id.g163d2119d3_0_85

My work is part of the 2.3.0 release of pgrouting. (programmed for September)

Please test my code on the pgrouting 2.3.0 release by following the guidelines here: http://docs.pgrouting.org/dev/en/doc/src/installation/build.html

TODO status Add description for dead end contraction with visual examples to the user documentation DONE Add description for linear contraction with visual examples to the user documentation DONE Getting familiar with graphviz to generate visual examples DONE Add description about the contraction cycle to the user documentation DONE TODO status Remove unwanted code and unused files DONE Updating the user documentation DONE Updating the developer documentation DONE TODO status Signature change DONE Change the number that represent dead end and linear contraction in the contraction order DONE Modify the result files according to the latest signature DONE Modify the pgTap tests according to the latest signature DONE Fixed memory leak by freeing the memory of contracted vertices DONE Linting the code according to the standard code guideline DONE Message posted from the mentor on July 26

Message from Virginia Vergara:

Documentation can be updated after I make the alpha, but signature can not, so this is urgent:

tools/testers/algorithm-tester.pl -documentation -alg contraction
tools/testers/algorithm-tester.pl -alg contraction

please before you work on the documentation stuff, make the changes of the signature & the changes of the tests & the documentation queries

TODO status Added documentation for the proof of concept in the proposal DONE Added a test sql file which contains the queries used by the documentation for proof of concept DONE Debug appveyor error DONE Perform contraction on very large vertex and edge ids to check types DONE Update the user documentation DONE TODO status Update the pgTap tests using sample graph DONE Updated the documentation of Identifiers class and eliminated doxygen errors DONE Updated the documentation of contraction class and eliminated doxygen errors DONE Updated the documentation of contraction graph class and eliminated doxygen errors DONE Getting familiar with how query results can be used in documentation DONE Wrote user documentation of contraction class DONE TODO status Update the pgTap tests due to change in the function signature DONE Implement a function which expands the contracted graph DONE Create a new edge and a vertex table which represent the contracted graph DONE Update the C/C++ code to store contracted vertices in an array instead of a string DONE Update the C/C++ code to add the cost column to the output of the contraction query DONE Implement functions in contraction graph class that return the array of contracted vertices of a vertex or edge DONE Getting familiar with pl/pgsql DONE Add is_contracted column and contracted vertices column to the edge and vertex tables DONE Add shortcuts to the edge table along with contracted_vertices and is_contracted flag DONE Update the vertex table with contracted vertices of each vertex DONE Returning contracted vertices as an array: TODO status Documentation for Identifiers class DONE Documentation for contraction graph class DONE Analyse the contraction graph class and remove unwanted functions DONE Write pgtap tests to test contraction cycle for directed graphs DONE Write pgtap tests to test contraction cycle for undirected graphs DONE Testing contraction cycle: TODO status Write pgtap tests for linear contraction for directed graph without forbidden vertices DONE Write pgtap tests for linear contraction for directed graph with forbidden vertices DONE Write pgtap tests for combination of dead end and linear contraction for directed graph without forbidden vertices DONE Write pgtap tests for combination of dead end and linear contraction for directed graph with forbidden vertices DONE Write pgtap tests for dead end contraction for undirected graph without forbidden vertices DONE Write pgtap tests for dead end contraction for undirected graph with forbidden vertices DONE Write pgtap tests for dead end contraction for directed graph without forbidden vertices DONE Write pgtap tests for dead end contraction for directed graph with forbidden vertices DONE Write pgtap tests for checking argument types for the function DONE Meeting with mentor on 21/06/2016 DONE TODO status Read a paper on graph contraction DONE Write demo sql file for linear contraction DONE Clean up linear contraction class by removing unwanted functions DONE Clean up contraction graph class by removing unwanted functions DONE Give different ids to each of the added edge during linear contraction DONE Modify the conditions for linear contraction DONE Modify the conditions for dead end contraction DONE Write demo sql file for dead end contraction DONE Meeting with my mentor on 16/06/2016 DONE Import sample OSM data into a database using osm2pgrouting tool DONE Add source and target columns to the contraction output DONE Write code to add the contracted vertices of the edge to the vertex during dead end contraction DONE Write code to add the contracted vertices of the edge to the edge during linear contraction DONE Write tests for combination of dead end and linear contraction on a square like graph DONE Add only those edges and vertices that are changed to the contraction output DONE Meeting with my mentor on 14/06/2016 DONE Cleaning up unwanted files and directories DONE TODO status Check valid contraction condition in the c code DONE Add a test for dead end contraction followed by linear contraction DONE Make unit tests for the proper functioning of the linear contraction DONE Add constructor to the ch_edge class DONE Implement a class for linear contraction DONE Added a structure for storing added edges in contraction graph DONE Add functions to fetch added edges into the driver DONE Update the result file of the test sql files so that all tests pass DONE Add a unit test for dead end contraction with 4 nodes and 4 edges DONE Implement a new function pgr_get_bigIntArray_allowEmpty() which can read an empty array DONE Write unit tests for the above function DONE Meeting with my mentor on 06/06/2016 DONE TODO status Return the values of the function as that of fake contraction DONE Make unit tests for dead end contraction DONE Add constructor to the identifiers class DONE Convert forbidden_vertices array to a cpp container in the driver DONE Implement a class for dead-end contraction DONE Check max_cycles condition in the c code DONE Implement a contraction graph class which inherits the base graph class DONE Design Vertex Class DONE Design Edge Class DONE Implemented add_contracted_vertices() function in the Vertex class DONE Make unit tests for the proper functioning of the Vertex class DONE Add the edge class under the contraction namespace DONE Implemented add_contracted_vertices() function in the Edge class DONE Make unit tests for the proper functioning of the Edge class DONE TODO status Make use of the boost graph ids for the Identifiers class DONE Make unit tests for the proper functioning of the Identifiers class DONE Add default constructor to the vertex class DONE Move Identifiers class into the common directory DONE Change the name of the class Vertex_c to Vertex DONE Remove the "m_deleted" from vertex class DONE Remove the "contraction_type" from the vertex class DONE Remove the "recover" function from the vertex class DONE Use "Identifiers<int64_t> contracted_vertices" instead of "Removed_vertices removed_vertices" DONE Write code in an sql file for the output of contraction in the convenience folder DONE Make a new branch from the gsoc-ch branch DONE Read about different ways of storage in postgresql DONE TODO status Experiment with the base graph and see how it works DONE Read and understand the changes done to the base graph class DONE Read and understand the new classes implemented namely xy_vertex, xy_edge DONE TODO status Lesson, how to propagate the changes in main repo to you fork's branch DONE Learn how to use "git stash" command DONE GITTER Discussion on Base Graph DONE Working on Issue #555 TRANSFERRED BY REQUEST TO OTHER DEVELOPER (@cvvergara) TODO status Read the documentation of Base graph class DONE Setting up the development environment DONE Add links to the codes described in the videos DONE TODO status C++ Add a function that returns the set of adjacent vertices DONE C++ Add a function to the contraction graph class which tells us the connectivity of a vertex DONE C++ Change sql vertices to an array of forbidden vertices DONE C++ Perform unit tests on dead end vertices DONE C++ Change the vertex class and the edge class DONE C++ Change std::map<int64_t, Edge> removed_edges_c to std::deque removed_edges_c DONE C++ Add is_dead_end() function to the pgr_contract class DONE C++ Add getDeadEndSet() function to the pgr_contract class DONE C++ Add disconnectVertex(V v) function to the pgr_contract class DONE C++ Add documentation to the Identifier class DONE C++ Identifiers class +, -, *, == DONE C++ Make the Contraction_types class DONE C++ Change names of file with upper case to a name without uppercase DONE C++ Change class and variables names according to google cpp style DONE C++ Remove cpp lint errors on the Identifiers class DONE

Pgr_contract::disconnectVertex(V v) { pgassert(is_connected(v)); pgassert(is_dead_end(v));

pgr_connectionGraph.disconnect_vertex ( v );

pgassert(!is_connected(v)); }

Pgr_contract::getDeadEndSet(mygraph g) { cycle the Vertices, and use is_dead_end(v); when true it add is to the Identifiers Set and return the set; }

bool is_dead_end(v) { return dead_end_vertices.has(v) }

Vertex_c { id,removed_vertices = {} }

Edge_c { id,removed_vertices = {} }

TODO status C++ Addition of "removed" flag to the Vertex_c class to assess its logical removal DONE C++ Check that contraction_order elements are valid DONE C++ Check that max_cycles is atleast one DONE C++ Comment about the public functions used DONE C++ Surround the functions used for linear contraction with #if 0 #endif DONE C++ Implement "<<" operator for the base graph DONE

contract(v1,v2): v2 is being contracted to v1

TODO status Test contraction on sample data(graph #1,graph #2,graph #3,graph #4),starting from different points and verify the results DEFERRED Make the call on directed graph DEFERRED Make both calls at the same time DEFERRED Check the style: pgr_contract.hpp DEFERRED Wrapping the functions into pgr_contract class DONE Add a new class which serves as a baseGraph for contraction DONE TODO status Make the call on directed graph DEFERRED Make both calls at the same time DEFERRED Cleanup includes DONE Return ostream's DONE Make the call on undirected graph DONE Check the style: contractGraph.c DONE Check the style: contractGraph_driver.h DONE Check the style: contractGraph_driver.cpp DONE https://github.com/pgRouting/pgrouting/pull/483/files DONE
tools/cpplint.py src/contraction/src/contractGraph.c
TODO status revcost to reverse_cost DONE remove has_rcost and add directed flag to the query DONE Return setof record instead of returning pgr_contracted_blob DONE Convert integer to int64_t in the C/C++ structures DONE Convert integer to int64_t where applicable DONE Typecheck for innersql of contraction query DONE Return ostringstream to the contraction driver DONE git commit -a -m 'saving before generating template' DONE edit create.sh DONE generate files DONE git stash <--- that will revert the edition on funnyDijkstra DONE generate files DONE putting the correct names and putting them in the contraction directory DONE add funnyDijkstra to the repo while we work DONE but after all movements are finish you delete it from the repo DONE

##My initial plan

##What did I do this week?

##What will I be working on next week?

##Did I meet with any stumbling blocks?

##My initial plan

##What did I do this week?

##What will I be working on next week?

##Did I meet with any stumbling blocks?

##My initial plan

##What did I do this week?

##What will I be working on next week?

##Did I meet with any stumbling blocks?

##My initial plan

##What did I do this week?

##What will I be working on next week?

##Did I meet with any stumbling blocks?

#My initial plan

##What did I do this week?

##What will I be working on next week?

##Did I meet with any stumbling blocks?

##My initial plan

##What did I do this week?

##What will I be working on next week?

##Did I meet with any stumbling blocks?

##My initial plan

##What did I do this week?

##What will I be working on next week?

##Did I meet with any stumbling blocks?

What will I be working on next week? Did I meet with any stumbling blocks?

##My initial plan

##What did I do this week?

##What will I be working on next week?

##Did I meet with any stumbling blocks?

##My initial plan

##What did I do this week?

##What will I be working on next week?

##Did I meet with any stumbling blocks?

##My initial plan

##What did I do this week?

##What will I be working on next week?

##Did I meet with any stumbling blocks?

##My initial plan

##What did I do this week?

##What will I be working on next week?

##Did I meet with any stumbling blocks?


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4