Algorithm classification: различия между версиями
Перейти к навигации
Перейти к поиску
[непроверенная версия] | [выверенная версия] |
Икрамов (обсуждение | вклад) |
м (Откат правок AntonChupin (обсуждение) к версии ASA) |
||
(не показаны 24 промежуточные версии 3 участников) | |||
Строка 1: | Строка 1: | ||
− | # <div id=" | + | # <div id="Vector operations">'''Vector operations'''</div> |
## ''Pairwise summation'' | ## ''Pairwise summation'' | ||
### {{level|Summing an array by pairwise summation}} | ### {{level|Summing an array by pairwise summation}} | ||
Строка 6: | Строка 6: | ||
## {{level|Dot product: Real version, serial-parallel variant}} | ## {{level|Dot product: Real version, serial-parallel variant}} | ||
## {{level|Serial-parallel summation method}} | ## {{level|Serial-parallel summation method}} | ||
− | # <div id=" | + | # <div id="Matrix-vector operations">'''Matrix-vector operations'''</div> |
## {{level|Dense matrix-vector multiplication}} | ## {{level|Dense matrix-vector multiplication}} | ||
− | # <div id=" | + | # <div id="Matrix operations">'''Matrix operations'''</div> |
## {{level|Dense matrix multiplication}} | ## {{level|Dense matrix multiplication}} | ||
− | # <div id=" | + | # <div id="Matrix decompositions">'''Matrix decompositions'''</div> |
## ''Triangular decompositions'' | ## ''Triangular decompositions'' | ||
### Gaussian elimination (finding the LU decomposition) | ### Gaussian elimination (finding the LU decomposition) | ||
Строка 24: | Строка 24: | ||
##### Gaussian elimination with column pivoting | ##### Gaussian elimination with column pivoting | ||
##### Gaussian elimination with row pivoting | ##### Gaussian elimination with row pivoting | ||
− | ##### | + | ##### Gaussian elimination with diagonal pivoting |
− | ##### | + | ##### Gaussian elimination with complete pivoting |
− | ### {{level| | + | ### {{level|Cholesky method (finding the symmetric triangular decomposition)}} |
− | #### {{level| | + | #### {{level|Cholesky decomposition (square root method)}}: Basic pointwise real variant, dense symmetric positive definite matrix |
− | ### {{level| | + | ### {{level|Available triangular decompositions for matrices of special form}} |
− | ## '' | + | ## ''Unitary-triangular decompositions'' |
− | ### {{level| | + | ### {{level|Givens method (rotation method) for the QR-decomposition of a matrix}} |
− | ### {{level| | + | ### {{level|Householder method (reflection method) for the QR-decomposition of a matrix}} |
− | ## '' | + | ## ''Unitary Hessenberg decompositions'' |
− | ### {{level| | + | ### {{level|Householder method (reflection method) for reducing a matrix to Hessenberg (bidiagonal) form}} |
− | ### {{level| | + | ### {{level|Givens method (rotation method) for reducing a matrix to Hessenberg (bidiagonal) form}} |
− | ## '' | + | ## ''Unitary-diagonal decompositions'' |
− | ### {{level| | + | ### {{level|Eigenvalue decomposition (finding eigenvalues and eigenvectors)}} |
− | ### {{level| | + | ### {{level|Singular value decomposition (finding singular values and singular vectors)}} |
− | # <div id=" | + | # <div id="Solving systems of linear algebraic equations (SLAEs)">'''Solving systems of linear algebraic equations (SLAEs)'''</div> |
− | ## | + | ## Direct methods for solving SLAEs |
### {{level|Linpack benchmark}} | ### {{level|Linpack benchmark}} | ||
− | ### | + | ### Methods for solving SLAEs of special forms |
− | #### | + | #### Methods for solving triangular SLAEs |
− | ##### {{level| | + | ##### {{level|Forward substitution (real version)|Forward substitution}} |
− | ##### {{level| | + | ##### {{level|Backward substitution (real version)|Backward substitution}} |
− | ##### | + | ##### Methods for solving bidiagonal SLAEs |
− | ###### {{level| | + | ###### {{level|Forward and backward substitution for bidiagonal SLAEs}} |
− | ###### {{level| | + | ###### {{level|Stone doubling algorithm for solving bidiagonal SLAEs}} |
− | ###### {{level| | + | ###### {{level|Serial-parallel variant of the backward substitution}} |
− | #### {{level| | + | #### {{level|Methods for solving tridiagonal SLAEs}} |
− | ##### | + | ##### Methods based on the conventional LU decomposition |
− | ###### {{level| | + | ###### {{level|Thomas algorithm}} |
− | ####### {{level| | + | ####### {{level|Thomas algorithm, pointwise version|Classical monotone elimination algorithm}} |
− | ####### {{level| | + | ####### {{level|Repeated Thomas algorithm, pointwise version|Thomas algorithm repeated for a new right-hand side: Classical scheme}} |
− | ###### {{level| | + | ###### {{level|Stone doubling algorithm}} |
− | ###### {{level| | + | ###### {{level|Serial-parallel method for solving tridiagonal SLAEs based on the LU decomposition and backward substitutions}} |
− | ##### | + | ##### Other methods |
− | ###### {{level| | + | ###### {{level|Reduction method}} |
− | ####### {{level| | + | ####### {{level|Complete reduction method}} |
− | ####### {{level| | + | ####### {{level|Reduction method repeated for a new right-hand side}} |
− | ###### | + | ###### Two-sided Thomas algorithm |
− | ####### {{level| | + | ####### {{level|Two-sided Thomas algorithm, pointwise version|Classical two-sided scheme}} |
− | ####### {{level| | + | ####### {{level|Repeated two-sided Thomas algorithm, pointwise version|Thomas algorithm repeated for a new right-hand side: Two-sided scheme }} |
− | ###### {{level| | + | ###### {{level|Cyclic reduction}} |
− | ####### {{level| | + | ####### {{level|Complete cyclic reduction}} |
− | ####### {{level| | + | ####### {{level|Cyclic reduction repeated for a new right-hand side}} |
− | ###### {{level| | + | ###### {{level|Bordering method}} |
− | #### | + | #### Methods for solving block triangular SLAEs |
− | ##### {{level| | + | ##### {{level|Block forward substitution (real version)|Block forward substitution}} |
− | ##### {{level| | + | ##### {{level|Block backward substitution (real version))|Block backward substitution}} |
− | ##### | + | ##### Methods for solving block bidiagonal SLAEs |
− | ###### {{level| | + | ###### {{level|Forward and backward substitution for block bidiagonal SLAEs}} |
− | ###### {{level| | + | ###### {{level|Stone doubling algorithm for solving block bidiagonal SLAEs}} |
− | ###### {{level| | + | ###### {{level|Serial-parallel variant of the block backward substitution for solving block bidiagonal SLAEs}} |
− | #### {{level| | + | #### {{level|Methods for solving block tridiagonal SLAEs}} |
− | ##### | + | ##### Methods based on the conventional LU decomposition |
− | ###### {{level| | + | ###### {{level|Block Thomas algorithm}} |
− | ###### {{level| | + | ###### {{level|Serial-parallel method for solving block SLAEs based on the LU decomposition and backward substitutions}} |
− | ##### | + | ##### Other methods |
− | ###### {{level| | + | ###### {{level|Two-sided Thomas algorithm, block variant}} |
− | ###### {{level| | + | ###### {{level|Block cyclic reduction}} |
− | ###### {{level| | + | ###### {{level|Block bordering method}} |
− | ### {{level| | + | ### {{level|Solving SLAEs with coefficient matrices of special form whose inverses are known}} |
− | ## | + | ## Iterative methods for solving SLAEs |
### {{level|High Performance Conjugate Gradient (HPCG) benchmark}} | ### {{level|High Performance Conjugate Gradient (HPCG) benchmark}} | ||
− | # <div id=" | + | # <div id="Solving eigenvalue problems">'''Solving eigenvalue problems'''</div> |
− | ## {{level| | + | ## {{level|Eigenvalue decomposition (finding eigenvalues and eigenvectors)}} |
− | ### {{level|QR | + | ### {{level|QR algorithm}} |
− | ### {{level| | + | ### {{level|Givens method (rotation method) for solving the symmetric eigenvalue problem}} |
− | ## {{level| | + | ## {{level|Singular value decomposition (finding singular values and singular vectors)}} |
− | # <div id=" | + | # <div id="Computer performance tests">'''Computer performance tests'''</div> |
## {{level|High Performance Conjugate Gradient (HPCG) benchmark}} | ## {{level|High Performance Conjugate Gradient (HPCG) benchmark}} | ||
## {{level|Linpack benchmark}} | ## {{level|Linpack benchmark}} | ||
− | # <div id=" | + | # <div id="Fourier transform">'''Fourier transform'''</div> |
− | ## {{level| | + | ## {{level|Fast Fourier transform for powers of two}} |
− | # <div id=" | + | # <div id="Algebra of polynomials">'''Algebra of polynomials'''</div> |
− | ## {{level| | + | ## {{level|Horner's rule: Real version, serial variant|Horner's rule}} |
− | # <div id=" | + | # <div id="Numerical quadrature">'''Numerical quadrature'''</div> |
− | ## {{level| | + | ## {{level|Cubature rules}} |
− | ## {{level| | + | ## {{level|Numerical quadrature (cubature) rules on an interval (for a multidimensional cube)}} |
− | ### | + | ### [[Numerical quadrature (cubature) rules on an interval (for a multidimensional cube)#Rectangle rule|Rectangle rule]] |
− | ### | + | ### [[Numerical quadrature (cubature) rules on an interval (for a multidimensional cube)#Trapezoid rule|Trapezoid rule]] |
− | ### | + | ### [[Numerical quadrature (cubature) rules on an interval (for a multidimensional cube)#Simpson rule|Simpson rule]] |
− | ### | + | ### [[Numerical quadrature (cubature) rules on an interval (for a multidimensional cube)#Gauss rule|Gauss rule]] |
− | # <div id=" | + | # <div id="Graph algorithms">'''Graph algorithms'''</div> |
− | ## | + | ## Traversing a graph |
− | ### {{level| | + | ### {{level|Breadth-first search (BFS)}} |
− | ### {{level| | + | ### {{level|Depth-first search (DFS)}} |
− | ## {{level| | + | ## {{level|Single source shortest path (SSSP)}} |
− | ### {{level| | + | ### {{level|Breadth-first search (BFS)}} (for unweighted graphs) |
− | ### {{level| | + | ### {{level|Dijkstra's algorithm}} |
− | ### {{level| | + | ### {{level|Bellman-Ford algorithm}} |
− | ### {{level| | + | ### {{level|Δ-stepping algorithm}} |
− | ## {{level| | + | ## {{level|All pairs shortest path (APSP)}} |
− | ### {{level| | + | ### {{level|Johnson's algorithm}} |
− | ### {{level| | + | ### {{level|Floyd-Warshall algorithm}} |
− | ## {{level| | + | ## {{level|Transitive closure of a directed graph}} |
− | ### {{level| | + | ### {{level|Purdom's algorithm}} |
− | ## {{level| | + | ## {{level|Longest shortest path}} |
− | ## {{level| | + | ## {{level|Construction of the minimum spanning tree (MST)}} |
− | ### {{level| | + | ### {{level|Boruvka's akgorithm}} |
− | ### {{level| | + | ### {{level|Kruskal's algorithm}} |
− | ### {{level| | + | ### {{level|Prim's algorithm}} |
− | ### {{level| | + | ### {{level|GHS algorithm}} |
− | ## {{level| | + | ## {{level|Search for isomorphic subgraphs}} |
− | ### {{level| | + | ### {{level|Ullman's algorithm}} |
− | ### {{level| | + | ### {{level|VF2 algorithm}} |
− | ## {{level| | + | ## {{level|Graph connectivity}} |
− | ### {{level| | + | ### {{level|Shiloach-Vishkin algorithm for finding the connected components}} |
− | ### {{level| | + | ### {{level|Disjoint set union}} |
− | ### {{level| | + | ### {{level|Tarjan's strongly connected components algorithm}} |
− | ### {{level| | + | ### {{level|DCSC algorithm for finding the strongly connected components}} |
− | ### {{level| | + | ### {{level|Tarjan's biconnected components algorithm}} |
− | ### {{level| | + | ### {{level|Tarjan-Vishkin biconnected components algorithm}} |
− | ### {{level| | + | ### {{level|Tarjan's algorithm for finding the bridges of a graph}} |
− | ### {{level| | + | ### {{level|Vertex connectivity of a graph}} |
− | ### {{level| | + | ### {{level|Gabow's edge connectivity algorithm}} |
− | ## {{level| | + | ## {{level|Finding maximal flow in a transportation network}} |
− | ### {{level| | + | ### {{level|Ford–Fulkerson algorithm}} |
− | ### {{level| | + | ### {{level|Preflow-Push algorithm}} |
− | ## {{level| | + | ## {{level|Finding minimal-cost flow in a transportation network}} |
− | ## {{level| | + | ## {{level|Assignment problem}} |
− | ### {{level| | + | ### {{level|Hungarian algorithm}} |
− | ### {{level| | + | ### {{level|Auction algorithm}} |
− | ### {{level| | + | ### {{level|Hopcroft–Karp algorithm}} |
− | ## {{level| | + | ## {{level|Betweenness centrality algorithm|Finding the betweenness centrality of vertices}} |
− | # <div id=" | + | # <div id="Search algorithms">'''Search algorithms'''</div> |
− | ## {{level| | + | ## {{level|Binary search: Finding the position of a target value within a sorted array}}, <math>O(log(n))</math> |
− | # <div id=" | + | # <div id="Sorting algorithms">'''Sorting algorithms'''</div> |
− | ## {{level| | + | ## {{level|Binary tree sort}} |
− | ## {{level| | + | ## {{level|Bubble sort}} |
− | ## {{level| | + | ## {{level|Merge sort (serial and parallel variants)}} |
− | # <div id=" | + | # <div id="Computational geometry">'''Computational geometry'''</div> |
− | ## {{level| | + | ## {{level|Finding the diameter of a point set}} |
− | ## {{level| | + | ## {{level|Finding the convex hull of a point set}} |
− | ## {{level| | + | ## {{level|Delaunay triangulation}} |
− | ## {{level| | + | ## {{level|Voronoi diagram}} |
− | ## {{level| | + | ## {{level|Point-in-polygon problem}} |
− | ## {{level| | + | ## {{level|Convex polygon intersection}} - complexity <math>O(n_1 + n_2)</math> |
− | ## {{level| | + | ## {{level|Star-shaped polygon intersection}} - complexity <math>O(n_1 * n_2)</math> |
− | # <div id=" | + | # <div id="Computer graphics">'''Computer graphics'''</div> |
− | ## {{level| | + | ## {{level|Line drawing algorithms: Approximating a line segment on discrete graphical media}} |
− | ## {{level| | + | ## {{level|Determining visible parts of a three-dimensional scene}} |
− | ## {{level| | + | ## {{level|Ray tracing: Rendering realistic images}} |
− | ## {{level| | + | ## {{level|Global illumination: Regarding direct illumination and reflection from other objects}} |
− | # <div id=" | + | # <div id="Cryptographic algorithms">'''Cryptographic algorithms'''</div> |
− | # <div id="Нейронные сети">''' | + | # <div id="Нейронные сети">'''Neural networks'''</div> |
− | # <div id=" | + | # <div id="Optimization algorithms">'''Optimization algorithms'''</div> |
− | ## {{level| | + | ## {{level|Linear programming}} |
− | ## {{level| | + | ## {{level|Simplex algorithm}} |
− | ## {{level| | + | ## {{level|Branch and bound method (serial and parallel variants)}} |
− | ## {{level| | + | ## {{level|Genetic algorithms}} |
− | ## {{level| | + | ## {{level|Ant colony algorithms}} |
− | ## {{level| | + | ## {{level|Hybrid algorithms}} |
− | ## {{level| | + | ## {{level|Finding extrema of a function}} |
− | # <div id=" | + | # <div id="Game theory algorithms">'''Game theory algorithms'''</div> |
− | # <div id=" | + | # <div id="Algorithms for quantum system simulation">'''Algorithms for quantum system simulation'''</div> |
− | ## '' | + | ## ''Algorithms for quantum computation simulation'' |
− | ### {{level| | + | ### {{level|Single-qubit transform of a state vector}} |
− | ### {{level| | + | ### {{level|Two-qubit transform of a state vector}} |
− | ### {{level| | + | ### {{level|Quantum Fourier transform simulation}} |
− | # <div id=" | + | # <div id="Algorithms for solving equations of mathematical physics">'''Algorithms for solving equations of mathematical physics'''</div> |
− | ## {{level| | + | ## {{level|Poisson equation: Solving with DFT}} |
− | # <div id=" | + | # <div id="Other algorithms">'''Other algorithms'''</div> |
Текущая версия на 18:23, 1 ноября 2016
- Vector operations
- Matrix-vector operations
- Matrix operations
- Matrix decompositions
- Triangular decompositions
- Gaussian elimination (finding the LU decomposition)
- Gaussian elimination without pivoting
- LU decomposition via Gaussian elimination
- Compact scheme for Gaussian elimination and its modifications
- Compact scheme for Gaussian elimination: Dense matrix
- Compact scheme for Gaussian elimination and its modifications: Tridiagonal matrix
- Gaussian elimination with pivoting
- Gaussian elimination with column pivoting
- Gaussian elimination with row pivoting
- Gaussian elimination with diagonal pivoting
- Gaussian elimination with complete pivoting
- Gaussian elimination without pivoting
- Cholesky method (finding the symmetric triangular decomposition)
- Cholesky decomposition (square root method): Basic pointwise real variant, dense symmetric positive definite matrix
- Available triangular decompositions for matrices of special form
- Gaussian elimination (finding the LU decomposition)
- Unitary-triangular decompositions
- Unitary Hessenberg decompositions
- Unitary-diagonal decompositions
- Triangular decompositions
- Solving systems of linear algebraic equations (SLAEs)
- Direct methods for solving SLAEs
- Linpack benchmark
- Methods for solving SLAEs of special forms
- Methods for solving triangular SLAEs
- Methods for solving tridiagonal SLAEs
- Methods based on the conventional LU decomposition
- Other methods
- Reduction method
- Two-sided Thomas algorithm
- Cyclic reduction
- Bordering method
- Methods for solving block triangular SLAEs
- Block forward substitution (real version)
- Block backward substitution (real version))
- Methods for solving block bidiagonal SLAEs
- Methods for solving block tridiagonal SLAEs
- Methods based on the conventional LU decomposition
- Other methods
- Solving SLAEs with coefficient matrices of special form whose inverses are known
- Iterative methods for solving SLAEs
- Direct methods for solving SLAEs
- Solving eigenvalue problems
- Computer performance tests
- Fourier transform
- Algebra of polynomials
- Numerical quadrature
- Graph algorithms
- Traversing a graph
- 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
- Search algorithms
- Binary search: Finding the position of a target value within a sorted array, [math]O(log(n))[/math]
- Sorting algorithms
- 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 - complexity [math]O(n_1 + n_2)[/math]
- Star-shaped polygon intersection - complexity [math]O(n_1 * n_2)[/math]
- Computer graphics
- Cryptographic algorithms
- Neural networks
- Optimization algorithms
- Game theory algorithms
- Algorithms for quantum system simulation
- Algorithms for quantum computation simulation
- Algorithms for solving equations of mathematical physics
- Other algorithms