# orderedItems[].object.content
Bonus: (somebody probably already did it)

# orderedItems[].object.contentMap.en
Bonus: (somebody probably already did it)

# orderedItems[].object.attachment[].name
Meme
"Wait, it's all linear algebra?"
"Always has been"

# orderedItems[].object.content
Additional references:
https://graphblas.org/ and GraphBLAS pointers: https://github.com/GraphBLAS/GraphBLAS-Pointers
Introductory blog post: https://sinews.siam.org/Details-Page/g raphblas-and-graphchallenge-advance-network-frontiers
Presentation on GraphBLAS: https://doi.org/10.5281/zenodo.6400356
Kepner, Jeremy, and John Gilbert. 2011. Graph Algorithms in the Language of Linear Algebra: Software, Environments, and Tools. SIAM. https://doi.org/10.1137/1.978089871991 8.
(6/n, n=6)

# orderedItems[].object.contentMap.en
Additional references:
https://graphblas.org/ and GraphBLAS pointers: https://github.com/GraphBLAS/GraphBLAS-Pointers
Introductory blog post: https://sinews.siam.org/Details-Page/g raphblas-and-graphchallenge-advance-network-frontiers
Presentation on GraphBLAS: https://doi.org/10.5281/zenodo.6400356
Kepner, Jeremy, and John Gilbert. 2011. Graph Algorithms in the Language of Linear Algebra: Software, Environments, and Tools. SIAM. https://doi.org/10.1137/1.978089871991 8.
(6/n, n=6)

# orderedItems[].object.content
You can implement these using only a library to manipulate matrices over arbitrary semirings: (sparse) linear algebra is all you need!
GraphBLAS is a standard set of primitives to do exactly this, implemented in the SuiteSparse library. There are also #Python and #JuliaLang wrappers!
(5/n)

# orderedItems[].object.contentMap.en
You can implement these using only a library to manipulate matrices over arbitrary semirings: (sparse) linear algebra is all you need!
GraphBLAS is a standard set of primitives to do exactly this, implemented in the SuiteSparse library. There are also #Python and #JuliaLang wrappers!
(5/n)

# orderedItems[].object.content
Many classical graph algorithms have been reinterpreted in this framework, often leading to lower complexity or better computational performance (due to cache efficiency, etc). It's an active research topic, some are still being improved!
(4/n)

# orderedItems[].object.contentMap.en
Many classical graph algorithms have been reinterpreted in this framework, often leading to lower complexity or better computational performance (due to cache efficiency, etc). It's an active research topic, some are still being improved!
(4/n)

# orderedItems[].object.attachment[].name
Table summarizing computational complexity of classical vs linear-algebra-based algorithms on graphs (m is the number of edges, n is the number of vertices) (from https://doi.org/10.5281/zenodo.6400356 p. 12)

# orderedItems[].object.content
The general idea is to extend traditional matrix multiplication on ℕ, ℝ, or ℂ to arbitrary semirings: C = AB = A⊕.⊗B.
Each semiring can then be used for specific algorithms/use cases:
- the standard semiring (+, ×) can be used to compute graph traversals (e.g. number of paths)
- the tropical semiring (min, +) can be used to compute shortest paths
- (∩, ∪) for set operations, useful for database applications
- and many more!
(3/n)

# orderedItems[].object.contentMap.en
The general idea is to extend traditional matrix multiplication on ℕ, ℝ, or ℂ to arbitrary semirings: C = AB = A⊕.⊗B.
Each semiring can then be used for specific algorithms/use cases:
- the standard semiring (+, ×) can be used to compute graph traversals (e.g. number of paths)
- the tropical semiring (min, +) can be used to compute shortest paths
- (∩, ∪) for set operations, useful for database applications
- and many more!
(3/n)

# orderedItems[].object.content
The advantage is that linear algebra operations on (sparse) matrices are much easier to optimize. In standard applications, BLAS libraries have demonstrated that optimized micro-kernels constitute a basis on which efficient implementations can be built.
But it would also be much more elegant in theory to describe a minimum spanning tree computation using linear algebra alone!
(2/n)

# orderedItems[].object.contentMap.en
The advantage is that linear algebra operations on (sparse) matrices are much easier to optimize. In standard applications, BLAS libraries have demonstrated that optimized micro-kernels constitute a basis on which efficient implementations can be built.
But it would also be much more elegant in theory to describe a minimum spanning tree computation using linear algebra alone!
(2/n)

# orderedItems[].object.content
A short thread on #graph algorithms in the language of #LinearAlgebra 🧵
It is well-known that the adjacency matrix is a useful tool to compute various properties of the underlying graph: the number of connected components, isomorphism to other graphs, etc.
But can we go further? Most graph algorithms are still expressed in terms of iterations over all nodes or edges. Can we leverage linear algebra to express these operations more efficiently?
(1/n)

# orderedItems[].object.contentMap.en
A short thread on #graph algorithms in the language of #LinearAlgebra 🧵
It is well-known that the adjacency matrix is a useful tool to compute various properties of the underlying graph: the number of connected components, isomorphism to other graphs, etc.
But can we go further? Most graph algorithms are still expressed in terms of iterations over all nodes or edges. Can we leverage linear algebra to express these operations more efficiently?
(1/n)

# orderedItems[].object.content
@rwxrwxrwx @codingquark good to know! Love browsing into them at random, so it might be time to invest to level up my electronics 😀

# orderedItems[].object.contentMap.en
@rwxrwxrwx @codingquark good to know! Love browsing into them at random, so it might be time to invest to level up my electronics 😀

# orderedItems[].object.content
@codingquark @rwxrwxrwx Does it cover the same material as the "original" book? I always assumed it was kind of a companion guide, not a self-contained handbook.

# orderedItems[].object.contentMap.en
@codingquark @rwxrwxrwx Does it cover the same material as the "original" book? I always assumed it was kind of a companion guide, not a self-contained handbook.

# orderedItems[].object.content
An interesting book about applications of max-plus algebras to scheduling problems:

> Heidergott, Bernd, Geert Jan Olsder, and Jacob van der Woude. 2005. Max plus at Work: Modeling and Analysis of Synchronized Systems: A Course on Max-plus Algebra and Its Applications. Princeton, NJ, USA: Princeton University Press. https://press.princeton.edu/books/hard cover/9780691117638/max-plus-at-work.

# orderedItems[].object.contentMap.en
An interesting book about applications of max-plus algebras to scheduling problems:

> Heidergott, Bernd, Geert Jan Olsder, and Jacob van der Woude. 2005. Max plus at Work: Modeling and Analysis of Synchronized Systems: A Course on Max-plus Algebra and Its Applications. Princeton, NJ, USA: Princeton University Press. https://press.princeton.edu/books/hard cover/9780691117638/max-plus-at-work.

# orderedItems[].object.attachment[].name
Cover of the book:
Heidergott, Bernd, Geert Jan Olsder, and Jacob van der Woude. 2005. Max plus at Work: Modeling and Analysis of Synchronized Systems: A Course on Max-plus Algebra and Its Applications. Princeton, NJ, USA: Princeton University Press.