Difference between revisions of "Algorithm classification"

From Algowiki
Jump to navigation Jump to search
[quality revision][quality revision]
Line 40: Line 40:
 
# <div id="Solving systems of linear algebraic equations">'''Solving systems of linear algebraic equations'''</div>
 
# <div id="Solving systems of linear algebraic equations">'''Solving systems of linear algebraic equations'''</div>
 
## ''Direct methods''
 
## ''Direct methods''
### ''Linpack benchmark''
+
### {{level|Linpack benchmark)}}
 
### ''Matrices of a special form''
 
### ''Matrices of a special form''
 
#### ''Triangular matrices''
 
#### ''Triangular matrices''

Revision as of 14:55, 9 November 2017

  1. Vector operations
    1. Method level Pairwise summation
      1. Method level Pairwise summation of numbers
      2. Algorithm level Parallel prefix scan algorithm using pairwise summation
    2. Algorithm level Uniform norm of a vector: Real version, serial-parallel variant
    3. Algorithm level Dot product
    4. Algorithm level The serial-parallel summation method
  2. Matrix-vector operations
    1. Algorithm level Dense matrix-vector multiplication
  3. Matrix operations
    1. Problem level Dense matrix multiplication
  4. Matrix decompositions
    1. Triangular decompositions
      1. Gaussian elimination (finding the LU decomposition)
      2. Gaussian elimination
          1. LU decomposition via Gaussian elimination
          2. Compact scheme for Gaussian elimination and its modifications
            1. Compact scheme for Gaussian elimination: Dense matrix
            2. Method level Compact scheme for Gaussian elimination and its modifications: Tridiagonal matrix
              1. Compact scheme for Gaussian elimination: Tridiagonal matrix, serial variant
              2. Algorithm level Stone doubling algorithm for the LU decomposition of a tridiagonal matrix
              3. Method level Serial-parallel algorithm for the LU decomposition of a tridiagonal matrix
        1. Gaussian elimination with pivoting
          1. Gaussian elimination with column pivoting
          2. Gaussian elimination with row pivoting
          3. Gaussian elimination with diagonal pivoting
          4. Gaussian elimination with complete pivoting
      3. Method level Cholesky method
        1. Algorithm level Cholesky decomposition
      4. Available triangular decompositions for matrices of special form
    2. Unitary-triangular decompositions
      1. Algorithm level Givens method
      2. Householder method (reflection method) for the QR-decomposition of a matrix
    3. Unitary Hessenberg decompositions
      1. Householder method (reflection method) for reducing a matrix to Hessenberg (bidiagonal) form
      2. Givens method (rotation method) for reducing a matrix to Hessenberg (bidiagonal) form
    4. Unitary-diagonal decompositions
      1. Problem level Eigenvalue decomposition (finding eigenvalues and eigenvectors)
      2. Problem level Singular value decomposition (finding singular values and singular vectors)
  5. Solving systems of linear algebraic equations
    1. Direct methods
      1. Linpack benchmark)
      2. Matrices of a special form
        1. Triangular matrices
          1. Algorithm level Forward substitution
          2. Algorithm level Backward substitution
        2. Bidiagonal matrices
            1. Forward and backward substitution for bidiagonal matrices
            2. Stone doubling algorithm for solving bidiagonal matrices
            3. Serial-parallel variant of the backward substitution
        3. Problem level Methods for solving tridiagonal SLAEs
          1. Methods based on the conventional LU decomposition
            1. Thomas algorithm
              1. Algorithm level Thomas algorithm, pointwise version
              2. Algorithm level Repeated Thomas algorithm, pointwise version
            2. Method level Stone doubling algorithm
            3. Method level Serial-parallel method for solving tridiagonal matrices based on the LU decomposition and backward substitutions
          2. Other methods
            1. Reduction method
              1. Complete reduction method
              2. Reduction method repeated for a new right-hand side
            2. Two-sided Thomas algorithm
              1. Algorithm level Two-sided Thomas algorithm, pointwise version
              2. Algorithm level Repeated two-sided Thomas algorithm, pointwise version
            3. Cyclic reduction
              1. Algorithm level Complete cyclic reduction
              2. Cyclic reduction repeated for a new right-hand side
            4. Bordering method
        4. Methods for solving block triangular matrices
          1. Block forward substitution (real version)
          2. Block backward substitution (real version))
          3. Methods for solving block bidiagonal matrices
            1. Forward and backward substitution for block bidiagonal matrices
            2. Stone doubling algorithm for solving block bidiagonal matrices
            3. Serial-parallel variant of the block backward substitution for solving block bidiagonal matrices
        5. Methods for solving block tridiagonal matrices
          1. Methods based on the conventional LU decomposition
            1. Algorithm level Block Thomas algorithm
            2. Serial-parallel method for solving block systems of linear algebraic equations based on the LU decomposition and backward substitutions
          2. Other methods
            1. Algorithm level Two-sided Thomas algorithm, block variant
            2. Block cyclic reduction
            3. Block bordering method
      3. Solving systems of linear algebraic equations with coefficient matrices of special form whose inverses are known
    2. Iterative methods for solving systems of linear algebraic equations
      1. Algorithm level High Performance Conjugate Gradient (HPCG) benchmark
  6. Solving eigenvalue problems
    1. Problem level Eigenvalue decomposition (finding eigenvalues and eigenvectors)
      1. Method level QR algorithm
      2. Givens method (rotation method) for solving the symmetric eigenvalue problem
    2. Problem level Singular value decomposition (finding singular values and singular vectors)
  7. Computer benchmarks
    1. Algorithm level High Performance Conjugate Gradient (HPCG) benchmark
    2. Algorithm level Linpack benchmark
  8. Fourier transform
    1. Algorithm level Cooley–Tukey Fast Fourier Transform, radix-2 case
  9. Algebra of polynomials
    1. Algorithm level Horners method
  10. Numerical quadrature
    1. Algorithm level Cubature rules
    2. Algorithm level Numerical quadrature (cubature) rules on an interval (for a multidimensional cube)
      1. Rectangle rule
      2. Trapezoid rule
      3. Simpson rule
      4. Gauss rule
  11. Graph algorithms
    1. Graph traversal
      1. Algorithm level Breadth-first search (BFS)
      2. Algorithm level Depth-first search (DFS)
    2. Problem level Single Source Shortest Path (SSSP)
      1. Algorithm level Breadth-first search (BFS) (for unweighted graphs)
      2. Algorithm level Dijkstra's algorithm
      3. Algorithm level Bellman-Ford algorithm
      4. Algorithm level Δ-stepping algorithm
    3. Problem level All Pairs Shortest Path (APSP)
      1. Algorithm level Johnson's algorithm
      2. Algorithm level Floyd-Warshall algorithm
    4. Problem level Transitive closure of a directed graph
      1. Algorithm level Purdom's algorithm
    5. Algorithm level Longest shortest path
    6. Problem level Construction of the minimum spanning tree (MST)
      1. Boruvka's akgorithm
      2. Algorithm level Kruskal's algorithm
      3. Algorithm level Prim's algorithm
      4. Algorithm level GHS algorithm
    7. Problem level Search for isomorphic subgraphs
      1. Algorithm level Ullman's algorithm
      2. Algorithm level VF2 algorithm
    8. Problem level Graph connectivity
      1. Algorithm level Shiloach-Vishkin algorithm for finding the connected components
      2. Algorithm level Disjoint set union
      3. Algorithm level Tarjan's strongly connected components algorithm
      4. Algorithm level DCSC algorithm for finding the strongly connected components
      5. Algorithm level Tarjan's biconnected components algorithm
      6. Algorithm level Tarjan-Vishkin biconnected components algorithm
      7. Algorithm level Tarjan's algorithm for finding the bridges of a graph
      8. Algorithm level Vertex connectivity of a graph
      9. Algorithm level Gabow's edge connectivity algorithm
    9. Problem level Finding maximal flow in a transportation network
      1. Algorithm level Ford–Fulkerson algorithm
      2. Algorithm level Preflow-Push algorithm
    10. Problem level Finding minimal-cost flow in a transportation network
    11. Problem level Assignment problem
      1. Algorithm level Hungarian algorithm
      2. Algorithm level Auction algorithm
      3. Algorithm level Hopcroft–Karp algorithm
    12. Betweenness centrality algorithm
  12. Search algorithms
    1. Algorithm level Binary search: Finding the position of a target value within a sorted array, [math]O(log(n))[/math]
  13. Sorting algorithms
    1. Binary tree sort
    2. Bubble sort
    3. Merge sort (serial and parallel variants)
  14. Computational geometry
    1. Finding the diameter of a point set
    2. Finding the convex hull of a point set
    3. Delaunay triangulation
    4. Voronoi diagram
    5. Point-in-polygon problem
    6. Convex polygon intersection - complexity [math]O(n_1 + n_2)[/math]
    7. Star-shaped polygon intersection - complexity [math]O(n_1 * n_2)[/math]
  15. Computer graphics
    1. Line drawing algorithms: Approximating a line segment on discrete graphical media
    2. Determining visible parts of a three-dimensional scene
    3. Ray tracing: Rendering realistic images
    4. Global illumination: Regarding direct illumination and reflection from other objects
  16. Cryptographic algorithms
  17. Neural networks
  18. Optimization algorithms
    1. Linear programming
    2. Simplex algorithm
    3. Branch and bound method (serial and parallel variants)
    4. Genetic algorithms
    5. Ant colony algorithms
    6. Hybrid algorithms
    7. Finding extrema of a function
  19. Game theory algorithms
  20. Algorithms of quantum system simulation
    1. Algorithms of quantum computation simulation
      1. Algorithm level Single-qubit transform of a state vector
      2. Algorithm level Two-qubit transform of a state vector
      3. Quantum Fourier transform simulation
  21. Algorithms for solving equations of mathematical physics
    1. Algorithm level Poisson equation, solving with DFT
  22. Other algorithms