Dr. Christoph Koutschan of the Austrian Institute for Symbolic Computing (research Institute for symbolic Computation, RISC) published an article on his own page, referring to a survey he did Most of the participants were computer scientists who asked the scientists to vote on the most important algorithms, following the results of the survey, sorted alphabetically by English name:
1, A * search algorithm-graphics search algorithm, from the given starting point to the given end point to calculate the path. It uses a heuristic estimate to estimate the optimal path through the node for each node and prioritize it for each location. The algorithm accesses these nodes in the order in which they are obtained. Therefore, A * search algorithm is an example of optimal first search.
2, cluster search (also known as directed search, Beam searches)-The best first search algorithm optimization. Use heuristic functions to evaluate the capabilities of each node it examines. However, cluster search can only find the most qualified node in each depth, M is a fixed number-the width of the cluster.
3, binary search (Binary search)--in a linear array to find a specific value of the algorithm, each step to remove half of the data does not meet the requirements.
4, branch-defined algorithm (Branch and Bound)--The algorithm for finding a specific optimization solution in a variety of optimization problems, especially for discrete, combinatorial optimization.
5. Buchberger algorithm--a mathematical algorithm which can be regarded as the generalization of the Euclidean algorithm and the Gaussian elimination method in the linear system for the GCD solution of a single variable.
6. Data compression-The process of encoding information using a specific coding scheme with fewer bytes (or other information-carrying units), also known as source code.
7, Diffie-hellman key exchange algorithm-a cryptographic protocol that allows both parties to establish shared keys in insecure communication channels without prior knowledge of each other. The key can later be encrypted with a symmetric cipher to encrypt subsequent traffic.
8. Dijkstra algorithm--for the directed graph without negative weights, compute the single starting point shortest algorithm.
9. Discrete differential algorithm (discrete differentiation)
10. Dynamic Programming algorithm (dynamical programming)--displaying the sub-problem of mutual overlay and the optimal sub-architecture algorithm
11, Euclidean algorithm (Euclidean algorithm)--Calculates the gcd of two integers. One of the oldest algorithms appeared in the Euclidean geometry of 300 BC.
12, the expectation-maximum algorithm (expectation-maximization algorithm, also known as em-training)--In the statistical calculation, the expectation-maximum algorithm finds the most probable parameter estimation in the probabilistic model, in which the model relies on the potential variables not found. EM is calculated alternately in two steps, and the first step is to compute the expectation, using the existing estimate of the hidden variable to compute its maximum possible estimate; The second step is to maximize the maximum possible value that is obtained on the first step to compute the value of the parameter.
13, Rapid Fourier transform (Fast Fourier transform,fft)--compute the discrete Fourier transform (DFT) and its inversion. The algorithm has a wide range of applications, ranging from digital signal processing to solving partial differential equations, to fast computing large integer products.
14, gradient descent (gradient descent)--a mathematical optimization algorithm.
15, hashing algorithm (hashing)
16, heap sorting (heaps)
17, Karatsuba multiplication-need to complete the multiplication of thousands of integers used in the system, such as computer algebra system and large library, if the use of long multiplication, too slow. The algorithm was found in 1962.
18, the LLL algorithm (Lenstra-lenstra-lovasz lattice reduction)--with the lattice protocol (lattice) base for input, output short orthogonal vector cardinality. The LLL algorithm is heavily used in the following public key cryptography methods: Knapsack encryption System (KNAPSACK), RSA encryption with specific settings, and so on.
19, the maximum flow algorithm (Maximum flows)--the algorithm attempts to find the largest flow from a traffic network. Its advantage is defined as the value of finding such a stream. The maximum flow problem can be seen as a specific case of a more complex network flow problem. The maximum flow is related to the interface in the network, and this is the maximum flow-minimum section theorem (Max-flow min-cut theorem). Ford-fulkerson can find the maximum flow in a stream network.
20. Merging sorting (merge sort)
21, Newton Method (Newton ' s methods)--an important iterative method for solving the 0 points of nonlinear equations (sets).
22, q-learning Learning algorithm-This is a learning action value functions (Action-value function) completed by the reinforcement learning algorithm, functions take a given state of the given action, and calculate the expected utility value, followed by a fixed strategy thereafter. The advantage of q-leanring is that, without the need for an environmental model, the desired utility of the acceptable action can be compared.
23, two times sieve (quadratic sieve)-Modern integer factorization algorithm, in practice, is now known as the second fastest such algorithm (second only to the number field of the screen numbers field sieve). It is still the fastest for 10-bit integers below 110 digits, and is considered simpler than the number-domain sieve method.
24, ransac--is "RANdom SAmple Consensus" abbreviation. The algorithm is based on a series of observed data, which contains outliers and estimates the parameter values of a mathematical model. The basic assumption is that the data contains the non alienation value, which is the value that can be interpreted by some model parameters, and the dissimilation value is those data points which do not conform to the model.
25, rsa--public key encryption algorithm. The first algorithm to be used for encryption with a signature. RSA is still used on a large scale in the electric business sector, and it is believed to have a public key with sufficient security length.
26, Schönhage-strassen algorithm-in mathematics, the Schönhage-strassen algorithm is used to complete large integer multiplication of the fast asymptotic algorithm. The algorithm has the complexity of: O (n log (n) log (n)), which uses Fourier transform.
27, simplex algorithm (Simplex algorithm)--in the mathematical optimization theory, the simplex algorithm is a commonly used technique to find the numerical solution of the linear programming problem. Linear programming problems include a series of linear inequalities on a set of real variables, and a fixed linear function waiting to be maximized (or minimized).
28, singular value decomposition (Singular value decomposition, abbreviated to SVD)--In linear algebra, SVD is an important decomposition method of real or complex matrices, there are many applications in signal processing and statistics, such as calculating the pseudo inverse matrix of matrices (to solve the least squares problem), To solve the hyper-fixed linear system (overdetermined linear systems), matrix approximation, numerical weather forecast and so on.
29. Solving systems of linear equations (solving a system of linear equations)--linear equations are the oldest problems in mathematics, and they have many applications, such as in digital signal processing, estimation and prediction in linear programming, approximation of nonlinear problems in numerical analysis, and so on. To solve a linear equation group, you can use the Gauss-Approximate elimination method (Gauss-jordan elimination), or Kolesky decomposition (Cholesky decomposition).
30, Strukturtensor algorithm-applied to the field of pattern recognition, to find a calculation for all pixels to see if the pixel is in the homogeneous region (homogenous region) to see if it belongs to the edge, or a vertex.
31, the merge lookup algorithm (Union-find)--given a set of elements, the algorithm is often used to divide these elements into multiple separate, not coincide with each other group. A disjoint set (disjoint-set) data structure can track such a segmentation method. The merge lookup algorithm can do two useful things with this data structure: find: Determine which group a particular element belongs to, Merge: Combine or merge two groups into one group.
32, the Viterbi algorithm (Viterbi algorithm)--to find the most likely sequence of hidden states dynamic programming algorithm, this sequence is called the Viterbi path, the result is a series of observable events, especially in the hidden Markov model.
Above is Dr. Christoph's findings on the most important algorithms, these algorithms have a wide range of applications, although it is a computer algorithm, in fact, many of them are a math course, or an important chapter in a course, widely involved in basic mathematics, computational Mathematics and other courses, such as numerical calculation, Information theory, matrix theory and so on.