Arrayfire Graph: Extend Sparse Array Functionality
bradbrett opened this issue · comments
Brad Brett commented
Description
Graphs are everywhere and are fundamental to computer science.
Extend arrayfire sparse functionality to support efficient universal graph manipulation functions that can be used to create many types of graph.
The idea is rather than implementing the graph, I think it would be very beneficial to implement efficient functions that can be used to build efficient graph including the following (not exclusively):
- Adding/removing nodes
- Adding/removing edges including directed or undirected or both (including edge with single or multiple weights)
- Finding nearest nodes
- Edge operations including multi edges and edges with multiple values/weights
- Neighbors exploration
- Message passing / aggregation
- Extraction of sub graph connected to certain node(s)
- Graph algorithms such as finding shortest path
- Clusters identification