Algorithm classification: различия между версиями
Перейти к навигации
Перейти к поиску
[непроверенная версия] | [выверенная версия] |
Икрамов (обсуждение | вклад) |
м (Откат правок AntonChupin (обсуждение) к версии ASA) |
||
(не показаны 3 промежуточные версии 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) | ||
Строка 38: | Строка 38: | ||
### {{level|Eigenvalue decomposition (finding eigenvalues and eigenvectors)}} | ### {{level|Eigenvalue decomposition (finding eigenvalues and eigenvectors)}} | ||
### {{level|Singular value decomposition (finding singular values and singular vectors)}} | ### {{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 | ## Direct methods for solving SLAEs | ||
### {{level|Linpack benchmark}} | ### {{level|Linpack benchmark}} | ||
Строка 85: | Строка 85: | ||
## Iterative methods for solving SLAEs | ## 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|Eigenvalue decomposition (finding eigenvalues and eigenvectors)}} | ## {{level|Eigenvalue decomposition (finding eigenvalues and eigenvectors)}} | ||
### {{level|QR algorithm}} | ### {{level|QR algorithm}} | ||
### {{level|Givens method (rotation method) for solving the symmetric eigenvalue problem}} | ### {{level|Givens method (rotation method) for solving the symmetric eigenvalue problem}} | ||
## {{level|Singular value decomposition (finding singular values and singular vectors)}} | ## {{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|Fast Fourier transform for powers of two}} | ## {{level|Fast Fourier transform for powers of two}} | ||
− | # <div id=" | + | # <div id="Algebra of polynomials">'''Algebra of polynomials'''</div> |
## {{level|Horner's rule: Real version, serial variant|Horner's rule}} | ## {{level|Horner's rule: Real version, serial variant|Horner's rule}} | ||
− | # <div id=" | + | # <div id="Numerical quadrature">'''Numerical quadrature'''</div> |
## {{level|Cubature rules}} | ## {{level|Cubature rules}} | ||
## {{level|Numerical quadrature (cubature) rules on an interval (for a multidimensional cube)}} | ## {{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 | ## Traversing a graph | ||
### {{level|Breadth-first search (BFS)}} | ### {{level|Breadth-first search (BFS)}} | ||
Строка 146: | Строка 146: | ||
### {{level|Hopcroft–Karp algorithm}} | ### {{level|Hopcroft–Karp algorithm}} | ||
## {{level|Betweenness centrality algorithm|Finding the betweenness centrality of vertices}} | ## {{level|Betweenness centrality algorithm|Finding the betweenness centrality of vertices}} | ||
− | # <div id=" | + | # <div id="Search algorithms">'''Search algorithms'''</div> |
## {{level|Binary search: Finding the position of a target value within a sorted array}}, <math>O(log(n))</math> | ## {{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|Binary tree sort}} | ## {{level|Binary tree sort}} | ||
## {{level|Bubble sort}} | ## {{level|Bubble sort}} | ||
## {{level|Merge sort (serial and parallel variants)}} | ## {{level|Merge sort (serial and parallel variants)}} | ||
− | # <div id=" | + | # <div id="Computational geometry">'''Computational geometry'''</div> |
## {{level|Finding the diameter of a point set}} | ## {{level|Finding the diameter of a point set}} | ||
## {{level|Finding the convex hull of a point set}} | ## {{level|Finding the convex hull of a point set}} | ||
Строка 160: | Строка 160: | ||
## {{level|Convex polygon intersection}} - complexity <math>O(n_1 + n_2)</math> | ## {{level|Convex polygon intersection}} - complexity <math>O(n_1 + n_2)</math> | ||
## {{level|Star-shaped polygon intersection}} - complexity <math>O(n_1 * n_2)</math> | ## {{level|Star-shaped polygon intersection}} - complexity <math>O(n_1 * n_2)</math> | ||
− | # <div id=" | + | # <div id="Computer graphics">'''Computer graphics'''</div> |
## {{level|Line drawing algorithms: Approximating a line segment on discrete graphical media}} | ## {{level|Line drawing algorithms: Approximating a line segment on discrete graphical media}} | ||
## {{level|Determining visible parts of a three-dimensional scene}} | ## {{level|Determining visible parts of a three-dimensional scene}} | ||
## {{level|Ray tracing: Rendering realistic images}} | ## {{level|Ray tracing: Rendering realistic images}} | ||
## {{level|Global illumination: Regarding direct illumination and reflection from other objects}} | ## {{level|Global illumination: Regarding direct illumination and reflection from other objects}} | ||
− | # <div id=" | + | # <div id="Cryptographic algorithms">'''Cryptographic algorithms'''</div> |
# <div id="Нейронные сети">'''Neural networks'''</div> | # <div id="Нейронные сети">'''Neural networks'''</div> | ||
− | # <div id=" | + | # <div id="Optimization algorithms">'''Optimization algorithms'''</div> |
## {{level|Linear programming}} | ## {{level|Linear programming}} | ||
## {{level|Simplex algorithm}} | ## {{level|Simplex algorithm}} | ||
Строка 175: | Строка 175: | ||
## {{level|Hybrid algorithms}} | ## {{level|Hybrid algorithms}} | ||
## {{level|Finding extrema of a function}} | ## {{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'' | ## ''Algorithms for quantum computation simulation'' | ||
### {{level|Single-qubit transform of a state vector}} | ### {{level|Single-qubit transform of a state vector}} | ||
### {{level|Two-qubit transform of a state vector}} | ### {{level|Two-qubit transform of a state vector}} | ||
### {{level|Quantum Fourier transform simulation}} | ### {{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