Skip to content

Commit

Permalink
Features:
Browse files Browse the repository at this point in the history
	- Graph Tree Add Standalone Vertex (1)
	- Abbsord Graph Tree and Edge (2, 3)
	- Graph Tree Edge Priority Queue (4, 5, 6)
	- Graph Tree Templated Vertex (7, 8, 9)
	- Directed Graph Untemplated Vertex #1 (10, 11, 12)
	- Directed Graph Untemplated Vertex #2 (13, 14, 15)
	- Directed Graph Untemplated Vertex #3 (16, 17, 18)
	- Directed Graph Untemplated Vertex #4 (19, 20, 21)
	- Directed Graph Untemplated Vertex #5 (22, 23, 24)
	- Directed Graph Untemplated Vertex #6 (25, 26, 27)
	- Directed Graph Untemplated Vertex #7 (28, 29, 30)
	- Directed Graph Untemplated Vertex #8 (31, 32, 33)
	- Directed Graph Untemplated Vertex #9 (34)
	- Core Graph N Dimensional Hypercube (38, 39, 40)
	- Greedy MST Graph Boruvka Forest (42, 43, 44)
	- Boruvka Optimal Spanning Forest Generator (45, 46)
	- Greedy MST Graph Kruskal Generator (47, 48)
	- Greedy MST Graph Prime Generator (49, 50)
	- Greedy MST Graph Reverse Delete Generator (51)
	- Tree Builder Capacitated MST Generator (52)
	- Tree Builder Degree Constrained MST Generator (53)
	- Tree Builder Directed MST Generator (54)
	- Tree Builder Dynamic MST Generator (55)
	- Tree Builder Dynamic Euclidean Generator (56)
	- Tree Builder Dynamic KSMT Generator (57)
	- K Optimal Spanning Forests Generator (58)
	- Optimal Bottleneck Spanning Tree Generator (59)
	- Builder Optimal Labeling Spanning Tree Generator (60)
	- Tree Builder Rectilinear MST Generator (61)
	- Builder Steiner Tree Generator (62)
	- Complete MST Random Graph Ensemble (63, 64, 65)
	- Complete MST Random Graph (66)
	- Bellman Ford Bannister Eppstein Path Generator (67)
	- Bellman Ford Edge Partition Generator (68)
	- Graph Shortest Optimal Path Generator (69)
	- Graph Shortest Path Vertex Augmentor (70)
	- Bellman Ford Edge Relaxation Path Generator (71)
	- Bellman Ford Yen Edge Relaxation Path Generator (72)
	- Bellman Ford Yen Reduced Relaxation Path Generator (73)
	- Bellman Ford Johnson Path Generator (73)
	- Bellman Ford Edge Partition (74, 75)
	- Dijkstra Shortest Path Generator (76)
	- Shortest Path Floyd Warshall (77)
	- Shortest Path Floyd Warshall Distance Metric (78)
	- Graph Search Breadth First (79)
	- Graph Search Depth First (80)
	- A Star Vertex Function (81)
	- A Star Vertex Context (82, 83)
	- A Star F Heuristic (84)
	- A Star Static Weight F Heuristic (85)
	- A Star Dynamic Weight F Heuristic (86)
	- A Star Mark Allard F Heuristic (87)
	- Graph Connectivity Kosaraju (88)


Bug Fixes/Re-organization:

	- Graph Core Vertex R1 Remove (35, 36)
	- Graph Vertex R1 Function Remove (37)
	- Directed Graph R1 Remove (41)


Samples:

	- MST Boruvka Maximum Forest Generator (89, 90)
	- MST Boruvka Minimum Forest Generator (91, 92)
	- MST Kruskal Maximum Forest Generator (93, 94)
	- MST Kruskal Minimum Forest Generator (95, 96)
	- MST Prim Maximum Forest Generator (97, 98)
	- MST Prim Minimum Forest Generator (99, 100)
	- MST Reverse Delete Maximum Forest Generator (101, 102)
	- MST Reverse Delete Minimum Forest Generator (103, 104)
	- Graph Properties (105)
	- Graph Complete Bipartite Properties (106, 107, 108)
	- Yen Reduced Relaxation Single Source (109)
	- Yen Reduced Relaxation Single Pair (110)
	- Yen Edge Partition Single Source (111)
	- Yen Edge Partition Single Pair (112)
	- Shortest Path Bannister Eppstein Single Source (113)
	- Shortest Path Bannister Eppstein Single Pair (114)
	- Shortest Path Bellman Ford Single Source (115)
	- Shortest Path Bellman Ford Single Pair (116)
	- Shortest Path Johnson Single Source (117)
	- Shortest Path Johnson Single Pair (118)
	- Shortest Path Johnson Single Source Negative Weight (119)
	- Connectivity Kosaraju Strongly Connected Components (120)


IdeaDRIP:
  • Loading branch information
Lakshmik committed Aug 26, 2024
1 parent 1ee3559 commit d57d278
Show file tree
Hide file tree
Showing 83 changed files with 1,210 additions and 789 deletions.
61 changes: 61 additions & 0 deletions ReleaseNotes/04_02_2024.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@

Features:

- R^1 Square Matrix Spectral Radius (1)
- Eigenized R^1 Square Matrix #1 (2, 3, 4)
- Eigenized R^1 Square Matrix #2 (5, 6, 7)
- Eigenized R^1 Square Matrix Constructor (8, 9)
- Eigenized R^1 Square Matrix Eigencomponent (10, 11, 12)
- Eigenized R^1 Square Matrix Eigenize (13, 14)
- Eigenized R^1 Square Matrix SVD (15, 16)
- Eigenized R^1 Square Matrix Multiplicity (17, 18)
- Eigenized R^1 Square Matrix Determinant (19, 20)
- Eigenized R^1 Square Matrix L2 Condition Number (21, 22)
- Eigenized R^1 Square Matrix Characteristic Polynomial (23, 24)
- Eigenized R^1 Square Matrix Spectral Radius (25, 26)
- Numerical Eigenvalue/Vector Output Dimension (27, 28)
- Eigenized R^1 Square Standard #1 (29, 30, 31)
- Eigenized R^1 Square Standard #2 (32, 33, 34)
- Eigenized R^1 Square Standard #3 (35, 36, 37)
- Eigenized R^1 Square Standard #4 (38, 39, 40)
- Eigenized R^1 Square Standard #5 (41, 42, 43)
- Eigenized R^1 Square Generator #1 (44, 45, 46)
- Eigenized R^1 Square Generator #2 (47, 48, 49)
- Graph Core R1 Vertex Shell (50, 51, 52)
- Graph Core R1 Vertex Node Value (53, 54)
- Graph Core R1 Vertex Constructor (55, 56, 57)
- Graph Core Vertex Function Shell (58, 59)
- Graph Core Vertex Function R1 -> R1 (60, 61)
- Graph Core Vertex Function Constructor (62, 63, 64)
- Graph Vertex Function R1 Evaluate (65, 66, 67)
- Graph Vertex Function R1 Bounded (68, 69, 70)
- Directed R1 Function Graph Shell (73, 74)
- Directed Graph R1 Function Constructor (75, 76)
- Templated Graph Vertex Node Value (77, 78, 79)
- Standard, Non-templated Instance of Vertex (80, 81, 82)
- Untemplated Vertex Node Graph Network (83, 84, 85)
- Directed Graph Untemplated Vertex Node (86, 87)
- Templated Graph Network Format #1 (88, 89, 90)
- Templated Graph Network Format #2 (91, 92, 93)
- Templated Graph Network Format #3 (94, 95, 96)
- Templated Graph Network Format #4 (97, 98, 99)
- Templated Graph Network Format #5 (100, 101, 102)
- Templated Graph Network Format #6 (103, 104, 105)
- Templated Instance of Vertex Value (106, 107, 108)
- Graph Network Add Vertex Edge (109, 110)
- Graph Network Vertex Value Map (111, 112)
- Network Edge Vertex Value Map (113, 114, 115)
- Graph Tree Templated Vertex #1 (116, 117)
- Graph Tree Templated Vertex #2 (118, 119)
- Graph Tree Add Standalone Vertex (120)


Bug Fixes/Re-organization:

- Core Directed Graph Type (71)
- Core Directed Graph Rename (72)


Samples:

IdeaDRIP:
92 changes: 92 additions & 0 deletions ReleaseNotes/04_03_2024.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@

Features:

- Graph Tree Add Standalone Vertex (1)
- Abbsord Graph Tree and Edge (2, 3)
- Graph Tree Edge Priority Queue (4, 5, 6)
- Graph Tree Templated Vertex (7, 8, 9)
- Directed Graph Untemplated Vertex #1 (10, 11, 12)
- Directed Graph Untemplated Vertex #2 (13, 14, 15)
- Directed Graph Untemplated Vertex #3 (16, 17, 18)
- Directed Graph Untemplated Vertex #4 (19, 20, 21)
- Directed Graph Untemplated Vertex #5 (22, 23, 24)
- Directed Graph Untemplated Vertex #6 (25, 26, 27)
- Directed Graph Untemplated Vertex #7 (28, 29, 30)
- Directed Graph Untemplated Vertex #8 (31, 32, 33)
- Directed Graph Untemplated Vertex #9 (34)
- Core Graph N Dimensional Hypercube (38, 39, 40)
- Greedy MST Graph Boruvka Forest (42, 43, 44)
- Boruvka Optimal Spanning Forest Generator (45, 46)
- Greedy MST Graph Kruskal Generator (47, 48)
- Greedy MST Graph Prime Generator (49, 50)
- Greedy MST Graph Reverse Delete Generator (51)
- Tree Builder Capacitated MST Generator (52)
- Tree Builder Degree Constrained MST Generator (53)
- Tree Builder Directed MST Generator (54)
- Tree Builder Dynamic MST Generator (55)
- Tree Builder Dynamic Euclidean Generator (56)
- Tree Builder Dynamic KSMT Generator (57)
- K Optimal Spanning Forests Generator (58)
- Optimal Bottleneck Spanning Tree Generator (59)
- Builder Optimal Labeling Spanning Tree Generator (60)
- Tree Builder Rectilinear MST Generator (61)
- Builder Steiner Tree Generator (62)
- Complete MST Random Graph Ensemble (63, 64, 65)
- Complete MST Random Graph (66)
- Bellman Ford Bannister Eppstein Path Generator (67)
- Bellman Ford Edge Partition Generator (68)
- Graph Shortest Optimal Path Generator (69)
- Graph Shortest Path Vertex Augmentor (70)
- Bellman Ford Edge Relaxation Path Generator (71)
- Bellman Ford Yen Edge Relaxation Path Generator (72)
- Bellman Ford Yen Reduced Relaxation Path Generator (73)
- Bellman Ford Johnson Path Generator (73)
- Bellman Ford Edge Partition (74, 75)
- Dijkstra Shortest Path Generator (76)
- Shortest Path Floyd Warshall (77)
- Shortest Path Floyd Warshall Distance Metric (78)
- Graph Search Breadth First (79)
- Graph Search Depth First (80)
- A Star Vertex Function (81)
- A Star Vertex Context (82, 83)
- A Star F Heuristic (84)
- A Star Static Weight F Heuristic (85)
- A Star Dynamic Weight F Heuristic (86)
- A Star Mark Allard F Heuristic (87)
- Graph Connectivity Kosaraju (88)


Bug Fixes/Re-organization:

- Graph Core Vertex R1 Remove (35, 36)
- Graph Vertex R1 Function Remove (37)
- Directed Graph R1 Remove (41)


Samples:

- MST Boruvka Maximum Forest Generator (89, 90)
- MST Boruvka Minimum Forest Generator (91, 92)
- MST Kruskal Maximum Forest Generator (93, 94)
- MST Kruskal Minimum Forest Generator (95, 96)
- MST Prim Maximum Forest Generator (97, 98)
- MST Prim Minimum Forest Generator (99, 100)
- MST Reverse Delete Maximum Forest Generator (101, 102)
- MST Reverse Delete Minimum Forest Generator (103, 104)
- Graph Properties (105)
- Graph Complete Bipartite Properties (106, 107, 108)
- Yen Reduced Relaxation Single Source (109)
- Yen Reduced Relaxation Single Pair (110)
- Yen Edge Partition Single Source (111)
- Yen Edge Partition Single Pair (112)
- Shortest Path Bannister Eppstein Single Source (113)
- Shortest Path Bannister Eppstein Single Pair (114)
- Shortest Path Bellman Ford Single Source (115)
- Shortest Path Bellman Ford Single Pair (116)
- Shortest Path Johnson Single Source (117)
- Shortest Path Johnson Single Pair (118)
- Shortest Path Johnson Single Source Negative Weight (119)
- Connectivity Kosaraju Strongly Connected Components (120)


IdeaDRIP:
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ public static final DynamicWeightFHeuristic Pohl1970 (
new org.drip.graph.astar.VertexFunction()
{
@Override public double evaluate (
final org.drip.graph.core.Vertex vertex)
final org.drip.graph.core.Vertex<?> vertex)
throws java.lang.Exception
{
double wHeuristicValue = 1. - (
Expand Down Expand Up @@ -239,7 +239,7 @@ public org.drip.graph.astar.VertexFunction wHeuristic()
}

@Override public double evaluate (
final org.drip.graph.core.Vertex vertex)
final org.drip.graph.core.Vertex<?> vertex)
throws java.lang.Exception
{
return gHeuristic().evaluate (
Expand Down
12 changes: 6 additions & 6 deletions src/main/java/org/drip/graph/astar/FHeuristic.java
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,7 @@ public org.drip.graph.astar.VertexFunction hHeuristic()
}

@Override public double evaluate (
final org.drip.graph.core.Vertex vertex)
final org.drip.graph.core.Vertex<?> vertex)
throws java.lang.Exception
{
return _gHeuristic.evaluate (
Expand All @@ -190,7 +190,7 @@ public org.drip.graph.astar.VertexFunction hHeuristic()
*/

public boolean isMonotone (
final org.drip.graph.core.Network graph,
final org.drip.graph.core.Network<?> graph,
final org.drip.graph.core.Edge edge)
throws java.lang.Exception
{
Expand All @@ -203,7 +203,7 @@ public boolean isMonotone (
);
}

java.util.Map<java.lang.String, org.drip.graph.core.Vertex> vertexMap = graph.vertexMap();
java.util.Map<java.lang.String, org.drip.graph.core.Vertex<?>> vertexMap = graph.vertexMap();

return evaluate (
vertexMap.get (
Expand All @@ -228,7 +228,7 @@ public boolean isMonotone (
*/

public boolean isConsistent (
final org.drip.graph.core.Network graph,
final org.drip.graph.core.Network<?> graph,
final org.drip.graph.core.Edge edge)
throws java.lang.Exception
{
Expand All @@ -250,7 +250,7 @@ public boolean isConsistent (
*/

public double reducedWeight (
final org.drip.graph.core.Network graph,
final org.drip.graph.core.Network<?> graph,
final org.drip.graph.core.Edge edge)
throws java.lang.Exception
{
Expand All @@ -263,7 +263,7 @@ public double reducedWeight (
);
}

java.util.Map<java.lang.String, org.drip.graph.core.Vertex> vertexMap = graph.vertexMap();
java.util.Map<java.lang.String, org.drip.graph.core.Vertex<?>> vertexMap = graph.vertexMap();

return edge.weight() + evaluate (
vertexMap.get (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ public double nearAdmissibleHFLoading()
}

@Override public double evaluate (
final org.drip.graph.core.Vertex vertex)
final org.drip.graph.core.Vertex<?> vertex)
throws java.lang.Exception
{
return _foundationFLoading * _foundationFHeuristic.evaluate (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ public double epsilon()
}

@Override public double evaluate (
final org.drip.graph.core.Vertex vertex)
final org.drip.graph.core.Vertex<?> vertex)
throws java.lang.Exception
{
return gHeuristic().evaluate (
Expand Down
18 changes: 9 additions & 9 deletions src/main/java/org/drip/graph/astar/VertexContext.java
Original file line number Diff line number Diff line change
Expand Up @@ -118,9 +118,9 @@

public class VertexContext
{
private org.drip.graph.core.Vertex _parent = null;
private org.drip.graph.core.Vertex _current = null;
private org.drip.graph.core.Vertex _mostRecentlyExpanded = null;
private org.drip.graph.core.Vertex<?> _parent = null;
private org.drip.graph.core.Vertex<?> _current = null;
private org.drip.graph.core.Vertex<?> _mostRecentlyExpanded = null;

/**
* VertexContext Constructor
Expand All @@ -133,9 +133,9 @@ public class VertexContext
*/

public VertexContext (
final org.drip.graph.core.Vertex current,
final org.drip.graph.core.Vertex parent,
final org.drip.graph.core.Vertex mostRecentlyExpanded)
final org.drip.graph.core.Vertex<?> current,
final org.drip.graph.core.Vertex<?> parent,
final org.drip.graph.core.Vertex<?> mostRecentlyExpanded)
throws java.lang.Exception
{
if (null == (_current = current) ||
Expand All @@ -156,7 +156,7 @@ public VertexContext (
* @return The Current Vertex
*/

public org.drip.graph.core.Vertex current()
public org.drip.graph.core.Vertex<?> current()
{
return _current;
}
Expand All @@ -167,7 +167,7 @@ public org.drip.graph.core.Vertex current()
* @return The Parent Vertex
*/

public org.drip.graph.core.Vertex parent()
public org.drip.graph.core.Vertex<?> parent()
{
return _parent;
}
Expand All @@ -178,7 +178,7 @@ public org.drip.graph.core.Vertex parent()
* @return The Most Recently Expanded Vertex
*/

public org.drip.graph.core.Vertex mostRecentlyExpanded()
public org.drip.graph.core.Vertex<?> mostRecentlyExpanded()
{
return _mostRecentlyExpanded;
}
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/drip/graph/astar/VertexFunction.java
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,6 @@ public interface VertexFunction
*/

public abstract double evaluate (
final org.drip.graph.core.Vertex vertex)
final org.drip.graph.core.Vertex<?> vertex)
throws java.lang.Exception;
}
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ public class BannisterEppsteinPathGenerator
*/

public BannisterEppsteinPathGenerator (
final org.drip.graph.core.DirectedGraph graph,
final org.drip.graph.core.Directed<?> graph,
final boolean shortestPath,
final org.drip.graph.astar.FHeuristic fHeuristic)
throws java.lang.Exception
Expand All @@ -141,7 +141,7 @@ public BannisterEppsteinPathGenerator (
);
}

@Override public org.drip.graph.bellmanford.EdgePartition edgePartition()
@Override public org.drip.graph.bellmanford.EdgePartition<?> edgePartition()
{
return org.drip.graph.bellmanford.EdgePartition.FromGraph (
graph(),
Expand Down
24 changes: 12 additions & 12 deletions src/main/java/org/drip/graph/bellmanford/EdgePartition.java
Original file line number Diff line number Diff line change
Expand Up @@ -113,11 +113,11 @@
* @author Lakshmi Krishnamurthy
*/

public class EdgePartition
public class EdgePartition<V>
{
private java.util.List<java.lang.String> _vertexNameList = null;
private org.drip.graph.core.DirectedGraph _forwardDirectedGraph = null;
private org.drip.graph.core.DirectedGraph _backwardDirectedGraph = null;
private org.drip.graph.core.Directed<?> _forwardDirectedGraph = null;
private org.drip.graph.core.Directed<?> _backwardDirectedGraph = null;
private java.util.Map<java.lang.String, java.lang.Integer> _vertexIndexMap = null;

private static final java.util.List<java.lang.String> ShuffleVertexNameCollection (
Expand Down Expand Up @@ -148,8 +148,8 @@ private static final java.util.List<java.lang.String> ShuffleVertexNameCollectio
* @return EdgePartition from a Graph
*/

public static final EdgePartition FromGraph (
final org.drip.graph.core.DirectedGraph graph,
public static <V> EdgePartition<?> FromGraph (
final org.drip.graph.core.Directed<?> graph,
final boolean randomizeVertexes)
{
if (null == graph)
Expand Down Expand Up @@ -185,9 +185,9 @@ public static final EdgePartition FromGraph (
);
}

org.drip.graph.core.DirectedGraph forwardDirectedGraph = new org.drip.graph.core.DirectedGraph();
org.drip.graph.core.Directed<?> forwardDirectedGraph = new org.drip.graph.core.Directed<V>();

org.drip.graph.core.DirectedGraph backwardDirectedGraph = new org.drip.graph.core.DirectedGraph();
org.drip.graph.core.Directed<?> backwardDirectedGraph = new org.drip.graph.core.Directed<V>();

for (org.drip.graph.core.Edge edge : graph.edgeMap().values())
{
Expand Down Expand Up @@ -218,7 +218,7 @@ public static final EdgePartition FromGraph (

try
{
return new EdgePartition (
return new EdgePartition<V> (
vertexIndexMap,
vertexNameList,
forwardDirectedGraph,
Expand Down Expand Up @@ -247,8 +247,8 @@ public static final EdgePartition FromGraph (
public EdgePartition (
final java.util.Map<java.lang.String, java.lang.Integer> vertexIndexMap,
final java.util.List<java.lang.String> vertexNameList,
final org.drip.graph.core.DirectedGraph forwardDirectedGraph,
final org.drip.graph.core.DirectedGraph backwardDirectedGraph)
final org.drip.graph.core.Directed<?> forwardDirectedGraph,
final org.drip.graph.core.Directed<?> backwardDirectedGraph)
throws java.lang.Exception
{
if (null == (_vertexIndexMap = vertexIndexMap) ||
Expand Down Expand Up @@ -302,7 +302,7 @@ public java.util.List<java.lang.String> vertexNameList()
* @return The Forward Directed Graph
*/

public org.drip.graph.core.DirectedGraph forwardDirectedGraph()
public org.drip.graph.core.Directed<?> forwardDirectedGraph()
{
return _forwardDirectedGraph;
}
Expand All @@ -313,7 +313,7 @@ public org.drip.graph.core.DirectedGraph forwardDirectedGraph()
* @return The Backward Directed Graph
*/

public org.drip.graph.core.DirectedGraph backwardDirectedGraph()
public org.drip.graph.core.Directed<?> backwardDirectedGraph()
{
return _backwardDirectedGraph;
}
Expand Down
Loading

0 comments on commit d57d278

Please sign in to comment.