Algorithm classification: различия между версиями

Материал из Алговики
Перейти к навигации Перейти к поиску
[непроверенная версия][выверенная версия]
Строка 1: Строка 1:
# <div id="Векторные операции">'''Vector operations'''</div>
+
# <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="Матрично-векторные операции">'''Matrix-vector operations'''</div>
+
# <div id="Matrix-vector operations">'''Matrix-vector operations'''</div>
 
## {{level|Dense matrix-vector multiplication}}
 
## {{level|Dense matrix-vector multiplication}}
# <div id="Матричные операции">'''Matrix operations'''</div>
+
# <div id="Matrix operations">'''Matrix operations'''</div>
 
## {{level|Dense matrix multiplication}}
 
## {{level|Dense matrix multiplication}}
# <div id="Разложения матриц">'''Matrix decompositions'''</div>
+
# <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="Решение систем линейных уравнений">'''Solving systems of linear algebraic equations (SLAEs)'''</div>
+
# <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="Решения спектральных задач">'''Solving eigenvalue problems'''</div>
+
# <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="Тесты производительности компьютеров">'''Computer performance tests'''</div>
+
# <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="Преобразование Фурье">'''Fourier transform'''</div>
+
# <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="Алгебра многочленов">'''Algebra of polynomials'''</div>
+
# <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="Численные методы интегрирования">'''Numerical quadrature'''</div>
+
# <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)}}
### {{level|Numerical quadrature (cubature) rules on an interval (for a multidimensional cube)#Mathematical description|Rectangle rule}}
+
### [[Numerical quadrature (cubature) rules on an interval (for a multidimensional cube)#Rectangle rule|Rectangle rule]]
### {{level|Numerical quadrature (cubature) rules on an interval (for a multidimensional cube)#Mathematical description|Trapezoid rule}}
+
### [[Numerical quadrature (cubature) rules on an interval (for a multidimensional cube)#Trapezoid rule|Trapezoid rule]]
### {{level|Numerical quadrature (cubature) rules on an interval (for a multidimensional cube)#Mathematical description |Simpson rule}}
+
### [[Numerical quadrature (cubature) rules on an interval (for a multidimensional cube)#Simpson rule|Simpson rule]]
### {{level|Numerical quadrature (cubature) rules on an interval (for a multidimensional cube)#Mathematical description|Gauss rule}}
+
### [[Numerical quadrature (cubature) rules on an interval (for a multidimensional cube)#Gauss rule|Gauss rule]]
# <div id="Алгоритмы на графах">'''Graph algorithms'''</div>
+
# <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="Алгоритмы поиска">'''Search algorithms'''</div>
+
# <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="Алгоритмы сортировки">'''Sorting algorithms'''</div>
+
# <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="Вычислительная геометрия">'''Computational geometry'''</div>
+
# <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="Компьютерная графика">'''Computer graphics'''</div>
+
# <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="Криптографические алгоритмы">'''Cryptographic algorithms'''</div>
+
# <div id="Cryptographic algorithms">'''Cryptographic algorithms'''</div>
 
# <div id="Нейронные сети">'''Neural networks'''</div>
 
# <div id="Нейронные сети">'''Neural networks'''</div>
# <div id="Алгоритмы оптимизации">'''Optimization algorithms'''</div>
+
# <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="Алгоритмы теории игр">'''Game theory algorithms'''</div>
+
# <div id="Game theory algorithms">'''Game theory algorithms'''</div>
# <div id="Алгоритмы моделирования квантовых систем">'''Algorithms for quantum system simulation'''</div>
+
# <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="Алгоритмы решения уравнений математической физики">'''Algorithms for solving equations of mathematical physics'''</div>
+
# <div id="Algorithms for solving equations of mathematical physics">'''Algorithms for solving equations of mathematical physics'''</div>
 
## {{level|Poisson equation: Solving with DFT}}
 
## {{level|Poisson equation: Solving with DFT}}
# <div id="Другие алгоритмы">'''Other algorithms'''</div>
+
# <div id="Other algorithms">'''Other algorithms'''</div>

Версия 16:02, 12 апреля 2016

  1. Vector operations
    1. Pairwise summation
      1. Summing an array by pairwise summation
      2. Finding partial sums of an array by pairwise summation
    2. Uniform norm of a vector: Real version, serial-parallel variant
    3. Dot product: Real version, serial-parallel variant
    4. Serial-parallel summation method
  2. Matrix-vector operations
    1. Dense matrix-vector multiplication
  3. Matrix operations
    1. Dense matrix multiplication
  4. Matrix decompositions
    1. Triangular decompositions
      1. Gaussian elimination (finding the LU decomposition)
        1. Gaussian elimination without pivoting
          1. LU decomposition via Gaussian elimination
          2. Compact scheme for Gaussian elimination and its modifications
            1. Compact scheme for Gaussian elimination: Dense matrix
            2. Compact scheme for Gaussian elimination and its modifications: Tridiagonal matrix
              1. Compact scheme for Gaussian elimination: Tridiagonal matrix, serial variant
              2. Stone doubling algorithm for the LU decomposition of a tridiagonal matrix
              3. Serial-parallel algorithm for the LU decomposition of a tridiagonal matrix
        2. 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
      2. Cholesky method (finding the symmetric triangular decomposition)
        1. Cholesky decomposition (square root method): Basic pointwise real variant, dense symmetric positive definite matrix
      3. Available triangular decompositions for matrices of special form
    2. Unitary-triangular decompositions
      1. Givens method (rotation method) for the QR-decomposition of a matrix
      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. Eigenvalue decomposition (finding eigenvalues and eigenvectors)
      2. Singular value decomposition (finding singular values and singular vectors)
  5. Solving systems of linear algebraic equations (SLAEs)
    1. Direct methods for solving SLAEs
      1. Уровень алгоритма Linpack benchmark
      2. Methods for solving SLAEs of special forms
        1. Methods for solving triangular SLAEs
          1. Forward substitution (real version)
          2. Backward substitution (real version)
          3. Methods for solving bidiagonal SLAEs
            1. Forward and backward substitution for bidiagonal SLAEs
            2. Stone doubling algorithm for solving bidiagonal SLAEs
            3. Serial-parallel variant of the backward substitution
        2. Methods for solving tridiagonal SLAEs
          1. Methods based on the conventional LU decomposition
            1. Thomas algorithm
              1. Thomas algorithm, pointwise version
              2. Repeated Thomas algorithm, pointwise version
            2. Stone doubling algorithm
            3. Serial-parallel method for solving tridiagonal SLAEs 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. Two-sided Thomas algorithm, pointwise version
              2. Repeated two-sided Thomas algorithm, pointwise version
            3. Cyclic reduction
              1. Complete cyclic reduction
              2. Cyclic reduction repeated for a new right-hand side
            4. Bordering method
        3. Methods for solving block triangular SLAEs
          1. Block forward substitution (real version)
          2. Block backward substitution (real version))
          3. Methods for solving block bidiagonal SLAEs
            1. Forward and backward substitution for block bidiagonal SLAEs
            2. Stone doubling algorithm for solving block bidiagonal SLAEs
            3. Serial-parallel variant of the block backward substitution for solving block bidiagonal SLAEs
        4. Methods for solving block tridiagonal SLAEs
          1. Methods based on the conventional LU decomposition
            1. Block Thomas algorithm
            2. Serial-parallel method for solving block SLAEs based on the LU decomposition and backward substitutions
          2. Other methods
            1. Two-sided Thomas algorithm, block variant
            2. Block cyclic reduction
            3. Block bordering method
      3. Solving SLAEs with coefficient matrices of special form whose inverses are known
    2. Iterative methods for solving SLAEs
      1. Уровень алгоритма High Performance Conjugate Gradient (HPCG) benchmark
  6. Solving eigenvalue problems
    1. Eigenvalue decomposition (finding eigenvalues and eigenvectors)
      1. QR algorithm
      2. Givens method (rotation method) for solving the symmetric eigenvalue problem
    2. Singular value decomposition (finding singular values and singular vectors)
  7. Computer performance tests
    1. Уровень алгоритма High Performance Conjugate Gradient (HPCG) benchmark
    2. Уровень алгоритма Linpack benchmark
  8. Fourier transform
    1. Fast Fourier transform for powers of two
  9. Algebra of polynomials
    1. Horner's rule: Real version, serial variant
  10. Numerical quadrature
    1. Cubature rules
    2. 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. Traversing a graph
      1. Breadth-first search (BFS)
      2. Depth-first search (DFS)
    2. Single source shortest path (SSSP)
      1. Breadth-first search (BFS) (for unweighted graphs)
      2. Dijkstra's algorithm
      3. Bellman-Ford algorithm
      4. Δ-stepping algorithm
    3. All pairs shortest path (APSP)
      1. Johnson's algorithm
      2. Floyd-Warshall algorithm
    4. Transitive closure of a directed graph
      1. Purdom's algorithm
    5. Longest shortest path
    6. Construction of the minimum spanning tree (MST)
      1. Boruvka's akgorithm
      2. Kruskal's algorithm
      3. Prim's algorithm
      4. GHS algorithm
    7. Search for isomorphic subgraphs
      1. Ullman's algorithm
      2. VF2 algorithm
    8. Graph connectivity
      1. Shiloach-Vishkin algorithm for finding the connected components
      2. Disjoint set union
      3. Tarjan's strongly connected components algorithm
      4. DCSC algorithm for finding the strongly connected components
      5. Tarjan's biconnected components algorithm
      6. Tarjan-Vishkin biconnected components algorithm
      7. Tarjan's algorithm for finding the bridges of a graph
      8. Vertex connectivity of a graph
      9. Gabow's edge connectivity algorithm
    9. Finding maximal flow in a transportation network
      1. Ford–Fulkerson algorithm
      2. Preflow-Push algorithm
    10. Finding minimal-cost flow in a transportation network
    11. Assignment problem
      1. Hungarian algorithm
      2. Auction algorithm
      3. Hopcroft–Karp algorithm
    12. Betweenness centrality algorithm
  12. Search algorithms
    1. 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 for quantum system simulation
    1. Algorithms for quantum computation simulation
      1. Уровень алгоритма Single-qubit transform of a state vector
      2. Two-qubit transform of a state vector
      3. Quantum Fourier transform simulation
  21. Algorithms for solving equations of mathematical physics
    1. Poisson equation: Solving with DFT
  22. Other algorithms