Difference between revisions of "Algorithm classification"
Jump to navigation
Jump to search
[quality revision] | [quality revision] |
(6 intermediate revisions by the same user not shown) | |||
Line 23: | Line 23: | ||
===Matrix operations=== | ===Matrix operations=== | ||
# {{level|Dense matrix multiplication}} | # {{level|Dense matrix multiplication}} | ||
− | ## {{level|Dense matrix multiplication | + | ## {{level|Dense matrix multiplication (serial version for real matrices)}} |
## {{level|Strassen's algorithm}} | ## {{level|Strassen's algorithm}} | ||
Line 29: | Line 29: | ||
{{level|Matrix decomposition problem}} | {{level|Matrix decomposition problem}} | ||
# {{level|Triangular decompositions}} | # {{level|Triangular decompositions}} | ||
− | ## {{level|Gaussian elimination (finding the LU decomposition | + | ## {{level|Gaussian elimination (finding the LU decomposition)}} |
### {{level|LU decomposition using Gaussian elimination without pivoting}} | ### {{level|LU decomposition using Gaussian elimination without pivoting}} | ||
#### {{level|LU decomposition via Gaussian elimination}} | #### {{level|LU decomposition via Gaussian elimination}} | ||
Line 61: | Line 61: | ||
# {{level|Reducing matrices to compact forms}} | # {{level|Reducing matrices to compact forms}} | ||
## {{level|Unitary reductions to Hessenberg form}} | ## {{level|Unitary reductions to Hessenberg form}} | ||
− | ### {{level|Householder (reflections) | + | ### {{level|Householder (reflections) method for reducing of a matrix to Hessenberg form}} |
#### {{level|Classical point-wise Householder (reflections) method for reducing a matrix to Hessenberg form}} | #### {{level|Classical point-wise Householder (reflections) method for reducing a matrix to Hessenberg form}} | ||
### {{level|Givens (rotations) method for reducing a matrix to Hessenberg form}} | ### {{level|Givens (rotations) method for reducing a matrix to Hessenberg form}} | ||
#### {{level|Classical point-wise Givens (rotations) method for reducing a matrix to Hessenberg form}} | #### {{level|Classical point-wise Givens (rotations) method for reducing a matrix to Hessenberg form}} | ||
## {{level|Unitary reductions to tridiagonal form}} | ## {{level|Unitary reductions to tridiagonal form}} | ||
− | ### {{level|Householder (reflections) | + | ### {{level|Householder (reflections) method for reducing to tridiagonal form}} |
− | #### {{level|Householder (reflections) | + | #### {{level|Householder (reflections) method for reducing a symmetric matrix to tridiagonal form}} |
− | #### {{level|Householder (reflections) | + | #### {{level|Householder (reflections) method for reducing a complex Hermitian matrix to symmetric tridiagonal form}} |
### {{level|Givens (rotations) reduction to tridiagonal form}} | ### {{level|Givens (rotations) reduction to tridiagonal form}} | ||
## {{level|Eigenvalue decomposition (finding eigenvalues and eigenvectors)}} | ## {{level|Eigenvalue decomposition (finding eigenvalues and eigenvectors)}} | ||
Line 80: | Line 80: | ||
##### {{level|The dqds algorithm for calculating singular values of bidiagonal matrices}} | ##### {{level|The dqds algorithm for calculating singular values of bidiagonal matrices}} | ||
###### {{level|One step of the dqds algorithm}} | ###### {{level|One step of the dqds algorithm}} | ||
+ | |||
==Solving systems of linear algebraic equations== | ==Solving systems of linear algebraic equations== | ||
# {{level|Direct methods}} | # {{level|Direct methods}} | ||
Line 89: | Line 90: | ||
#### {{level|Bidiagonal matrices}} | #### {{level|Bidiagonal matrices}} | ||
##### {{level|Forward and backward substitution for bidiagonal matrices}} | ##### {{level|Forward and backward substitution for bidiagonal matrices}} | ||
− | ##### {{level|Stone doubling algorithm for solving bidiagonal | + | ##### {{level|Stone doubling algorithm for solving bidiagonal SLAEs}} |
##### {{level|Serial-parallel variant of the backward substitution}} | ##### {{level|Serial-parallel variant of the backward substitution}} | ||
### {{level|Methods for solving tridiagonal SLAEs}} | ### {{level|Methods for solving tridiagonal SLAEs}} | ||
Line 131: | Line 132: | ||
## {{level|Biconjugate gradient stabilized method (BiCGStab)}} | ## {{level|Biconjugate gradient stabilized method (BiCGStab)}} | ||
## {{level|Kaczmarz's algorithm}} | ## {{level|Kaczmarz's algorithm}} | ||
+ | |||
==Solving eigenvalue problems== | ==Solving eigenvalue problems== | ||
# {{level|Eigenvalue decomposition (finding eigenvalues and eigenvectors)}} | # {{level|Eigenvalue decomposition (finding eigenvalues and eigenvectors)}} | ||
Line 158: | Line 160: | ||
==Algebra of polynomials== | ==Algebra of polynomials== | ||
− | # {{level| | + | # {{level|Horners method}} |
= Algorithms on lists and arrays = | = Algorithms on lists and arrays = |
Latest revision as of 13:06, 15 March 2018
Contents
- 1 Linear algebra problems
- 2 Algorithms on lists and arrays
- 3 Computational geometry
- 4 Computer analysis and modeling
- 5 Miscellaneous applied problems
- 6 Cryptographic algorithms
- 7 Other algorithms
1 Linear algebra problems
1.1 Matrix and vector operations
1.1.1 Vector operations
- Pairwise summation
- Uniform norm of a vector: Real version, serial-parallel variant
- Dot product
- The serial-parallel summation method
1.1.2 Matrix-vector operations
1.1.2.1 Multiplying a nonsingular matrix by a vector
1.1.2.2 Multiplying a matrix of special form by a vector
- Fourier transform
1.1.3 Matrix operations
1.2 Matrix decompositions
- Triangular decompositions
- Gaussian elimination (finding the LU decomposition)
- LU decomposition using Gaussian elimination without pivoting
- LU decomposition using Gaussian elimination with pivoting
- Cholesky method
- Gaussian elimination (finding the LU decomposition)
- Available triangular decompositions for matrices of special form
- Unitary-triangular factorizations
- QR decomposition of dense nonsingular matrices
- QR decomposition methods for dense Hessenberg matrices
- Reducing matrices to compact forms
- Unitary reductions to Hessenberg form
- Unitary reductions to tridiagonal form
- Eigenvalue decomposition (finding eigenvalues and eigenvectors)
- Unitary non-similarity reductions to compact forms
1.3 Solving systems of linear algebraic equations
- Direct methods
- Linpack benchmark
- Matrices of a special form
- Triangular matrices
- Methods for solving tridiagonal SLAEs
- Methods for solving block triangular matrices
- Block forward substitution (real version)
- Block backward substitution (real version)
- Methods for solving block bidiagonal matrices
- Methods for solving block tridiagonal matrices
- Methods based on the conventional LU decomposition
- Other methods
- Solving systems of linear algebraic equations with coefficient matrices of special form whose inverses are known
- Iterative methods for solving systems of linear algebraic equations
1.4 Solving eigenvalue problems
- Eigenvalue decomposition (finding eigenvalues and eigenvectors)
- Partial eigenvalue problem
- Singular value decomposition (finding singular values and singular vectors)
1.5 Algebra of polynomials
2 Algorithms on lists and arrays
2.1 Search algorithms
- Linear search: Finding an item in an arbitrary list, [math]O(n)[/math]
- Binary search: Finding the position of a target value within a sorted array, [math]O(\log(n))[/math]
2.2 Sorting algorithms
2.3 Graph algorithms
- Graph traversal
- Single Source Shortest Path (SSSP)
- Breadth-first search (BFS) (for unweighted graphs)
- Dijkstra's algorithm
- Bellman-Ford algorithm
- Δ-stepping algorithm
- All Pairs Shortest Path (APSP)
- Transitive closure of a directed graph
- Longest shortest path
- Construction of the minimum spanning tree (MST)
- Search for isomorphic subgraphs
- Graph connectivity
- Shiloach-Vishkin algorithm for finding the connected components
- Disjoint set union
- Tarjan's strongly connected components algorithm
- DCSC algorithm for finding the strongly connected components
- Tarjan's biconnected components algorithm
- Tarjan-Vishkin biconnected components algorithm
- Tarjan's algorithm for finding the bridges of a graph
- Vertex connectivity of a graph
- Gabow's edge connectivity algorithm
- Finding maximal flow in a transportation network
- Finding minimal-cost flow in a transportation network
- Assignment problem
- Betweenness centrality algorithm
3 Computational geometry
- Finding the diameter of a point set
- Finding the convex hull of a point set
- Delaunay triangulation
- Voronoi diagram
- Point-in-polygon problem
- Convex polygon intersection
- Star-shaped polygon intersection
3.1 Computer graphics
- Line drawing algorithms: Approximating a line segment on discrete graphical media
- Determining visible parts of a three-dimensional scene
- Ray tracing: Rendering realistic images
- Global illumination: Regarding direct illumination and reflection from other objects
4 Computer analysis and modeling
4.1 Computer benchmarks
4.2 Algorithms of quantum system simulation
4.3 Machine learning algorithms
4.3.1 Neural networks
4.3.2 Game theory algorithms
5 Miscellaneous applied problems
5.1 Optimization algorithms
- Linear programming
- Simplex algorithm
- Branch and bound method
- Genetic algorithms
- Ant colony algorithms
- Hybrid algorithms
- Stochastic dual dynamic programming (SDDP)