Comments (3)
Hi @ZevEisenberg,
We are currently using an easy to implement cycle-detection algorithm that also allows us to limit detection to cycles of a certain length. However, there are much more performant algorithms out there. We would probably get more bang for the buck operating on large graphs by implementing one of these other algorithms (even if single-threaded) than we would by working on parallelizing the existing implementation.
Best,
Dave
from swiftgraph.
Related: #79
I think there are some quick improvements that could be made to detectCycles
that'd improve speed and memory usage a lot - mainly memoizing the results of neighborsForVertex
and indexOfVertex
, and using indices instead of vertices where possible.
from swiftgraph.
@dabbott No doubt you're right! Good call.
from swiftgraph.
Related Issues (20)
- Add Support for the Swift 4 Serialization Mechanisms HOT 4
- removeAllEdges crash HOT 6
- Port to Swift 4
- Support Testing on Linux
- GraphML support HOT 3
- Function to find cycles HOT 10
- Spruce Up README
- Implement Graph Union operation HOT 11
- Make graph classes structs? HOT 4
- Use the generated xcodeproj and test boilerplate HOT 2
- Add Performance Tests Based on Medium–Large Real World Graphs
- Swift 5 Support HOT 6
- Graphviz encodable HOT 7
- When added as Carthage dependency, SwiftGraphPerformanceTests is built
- Add Accio support HOT 1
- Please use swift_versions DSL in podspec HOT 2
- Comparison of `WeightedEdge` should take into consideration whether the edges are directed HOT 1
- Running BFS/DFS and returning the names associated with edges HOT 2
- Make `Graph` conform to `Codable` only when the vertices are `Codable`? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from swiftgraph.