-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathtodo.txt
97 lines (60 loc) · 1.97 KB
/
todo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
Done
* Fixed bug in edge(,) methods in Adjacency Digraphs to return the correct edge.
* Added DigraphInnerEdgeTrait and LabelDigraphInnerEdgeTrait to get inner nodes and labels from edges.
TODO This release
* Clustering algorithm
* Congressional record
* A*
* Dijkstra's and Brandes - fill heap as nodes become reachable to reduce the heap's average complexity
* Semiring algorithm - create label graph methods for label-less directed graphs, undirected graphs.
* IndexedSubSet backed by BitSet
Next release
Future
* Subgraph representation
Far Future
* Graph layout based on clusters
Blog
* Blog about controlling complexity
* Blog about examples
* Blog about computational stability
Later
* More Enron
* path representation for net.walend.graph
* Prim's MST algorithm
* Faster transitive closure
* Dijkstra's algorithm special case speed-ups
* Dijkstra's algorithms for infinite graphs
* A* and A* for infinite graphs.
Publicize
* Blog a bit
* Simplicity for scala talk
Overall
* Add more to the package doc.
* Images in package doc
Structures
* MultiPath representation (Probably a subgraph via having)
* Concurrent Graph (Or at least Graph-With-Concurrently-Modifiable-Edges)
Algorithms
* MST with Fibonacci heap
* Variations on Dijkstra's algorithm from wikipedia
* Lazy Dijkstra. (Single-Source graph with Dijkstra's algorithm)
* A* algorithm
* Parallel queued graph minimization (will need a concurrent mutable edge graph)
Graph storage
* DynamoDB clusters
Semirings
* More Semirings
Figure out
* path representation.
---
Prim's MST algorithm
Put all the verticies in a priority queue with variable key values
Initialize all the keys to O.
Pick the root and set its key to I.
While the queue is not empty
extract the minimum edge and node
if the node isn't in the MST
for each node reachable from it not currently in the MST
if some node is closer by using this node
replace the key with the closer value
---