matiii / dijkstra.net Goto Github PK
View Code? Open in Web Editor NEWGraph processing library
License: MIT License
Graph processing library
License: MIT License
Hi,
It would be great if we can clear all the connections. In my example, the cost value is time vs distance. I like to use the same nodes but reconnected them with a different value due to different times.
Based on Cypher language
MATCH
(person:Person)-[:KNOWS]-(friend:Person)-[:KNOWS]-
(foaf:Person)
WHERE
person.name = "Joe"
AND NOT (person)-[:KNOWS]-(foaf)
RETURN
foaf
I'll try to provide a solution to getting a data chain of custom info to detalize connections
I would like to have opportunity to connect nodes by their values. But here is some point of performance of searching in dictionary by values as tested here . Surely, I can store node key with it value as result of AddNode method, but by this way are very possible to eat whole RAM by duplication, by the fact, the same data. What solution will be optimal, you think? I prepared some simple solution and waiting for your response for previous PR.
PageRank measures the importance of each vertex in a graph, assuming an edge from u to v represents an endorsement of vโs importance by u. For example, if a Twitter user is followed by many others, the user will be ranked highly.
Property with name IsFounded (link) should be IsFound, because the variable was not founded in 1983, so it should be IsFound
After implementation, benchmark has to prove that is worth to use it.
A vertex is part of a triangle when it has two adjacent vertices with an edge between them.
Since version 1.1.0 Dijkstra.NET will free from mutate graph by algorithms.
We have a scenario where we have a "base" graph and then a number of enhanced graph which is just "base" graph + a few extra nodes and edges.
Instead of rebuilding the "base" graph each time, it would be nice to have the ability to clone this dictionary https://github.com/matiii/Dijkstra.NET/blob/master/src/Dijkstra.NET/Graph/Graph.cs#L12 and return a new Graph.
Hi, thanks for writing the library, It's very useful.
I have just hit a problem where subsequent uses of the same same graph result in inconsistent results.
And then I found graph.Reset()
I wonder if the dijkstra.Process()
could call this automatically? It might save other developers some time.
Happy to create the PR.
It would be useful to attach metadata to arbitrary connections in the graph (and retrieve them when getting a path back).
Support a netstandard TFM in nuget file. So I can use it on mac.
Hi, my project is based on .net 4.0. Is there any possible to use this library?
Dijkstra.NET will support persistence graphs engines.
Use the function AddNode(1), but the last output node is the corresponding index, so the input becomes useless
The connected components algorithm labels each connected component of the graph with the ID of its lowest-numbered vertex. For example, in a social network, connected components can approximate clusters.
Could not install package 'Dijkstra.NET 1.0.6'. You are trying to install this package into a project that targets '.NETPortable,Version=v4.5,Profile=Profile111', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.
Hello!
Nodes in a graph have indices starting from 1, but it is inconvenient.
I suggest to make following changes in method AddNode
, If it is possible:
public uint AddNode(T item)
{
uint key = (uint) _nodes.Count;
AddNode(key, item);
return key;
}
Or is there any reason that 1 is added to key?
Thanks!
Do the fixed points of the graph have to be in order?
Hello. Thank you a lot for wonderful library! (Where the "tips" section? =))
I not found solution how I can get custom info pushed to graph here:
graph.Connect(1, 2, 5, "some custom information in edge"); //First node has key equal 1 ShortestPathResult result = graph.Dijkstra(1, 2); //result contains the shortest path var path = result.GetPath();
So: I would like to have opportunity to get "some custom information in edge" by nodes links or whatever
Since version 3.0 Dijkstra.NET will be lightweight graph database itself.
Hi!
I am wondering how/if it is possible to retrieve custom edge information added during graph generation via new Graph<T,TEdgeCustom>().Connect(). I was not able to figure out how to retrieve TEdgeCustom values.
Hi,
the benchmark section in the Readme.md states "For Graph where number of nodes is 1 000 000 and connections between them 1 000 000. The length of path is minimum 10." I couldn't find the testdata in this repository. Can you make it available? Thanks.
[Edit] Found it in BenchmarkBase.
Is there a way to use it with convex polygonal obstacles and coordinates?
Current graph data structure is developed for shortest path purpose. Refactor should allow using graph for wider amount of scenarios.
At present depth of path is infinite. To define the shortest path worth it is to define not only sum of weights but number of paths also.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.