To save memory as much as possible, and keep find the Vertex by O(1)
- Graph_Map_EL ——> Map<K, Vertex> vertices, Map<K, List> edges.
- Graph_Map_CSR --> List vertices. List<List edges, Map<K, Integer> dictV
- Graph_CSR_EL_Map --> Map<K, Integer> dict_V; Map<Integer, List> targets;
- Graph_CSR_EL_List --> Map<K, Integer> dict_V; List<List> targets;
- Graph_CSR_GC_Brother -->
Map<K, Integer> dict_V; List<List<byte[]>> targets; List csr;
i = csr[dict_V[sid]]
targets[i][0] = dict_V[tid] - dict_V[sid]
targets[i][j] = SUB(dict_V[tid] - targets[i][k]) - dict_V[sid], k in [0, j) - Graph_CSR_GC --> Map<K, Integer> dict_V; List<List< byte[]>> targets;
Struc2vec implemented by Java and Graph_Map_CSR
A* is a modification of Dijkstra’s Algorithm that is optimized for a single destination.
Dijkstra’s Algorithm can find paths to all locations;
A* finds paths to one location, or the closest of several locations.
It prioritizes paths that seem to be leading closer to a goal.