Sunday, July 27, 2025

Top 10 algorithms of 20th century

QR decomposition 

๐Ÿ”Ÿ Top Algorithms – Importance, Simple Uses, Origins


1. Metropolis Algorithm (for Monte Carlo Simulation)

  • ๐Ÿง  What it does: Randomly explores complex systems to simulate equilibrium states (like particle systems).

  • ๐Ÿ”ง Simple use: Simulating gas molecules bouncing in a box.

  • ๐Ÿ’ก How it started: Developed in 1953 at Los Alamos by Metropolis et al. for studying atomic particles in thermodynamics. Introduced a clever accept/reject rule to simulate thermal systems.


2. Simplex Method (Linear Programming)

  • ๐Ÿง  What it does: Finds the best solution under linear constraints (optimization).

  • ๐Ÿ”ง Simple use: Maximize profits given constraints (like factory output).

  • ๐Ÿ’ก How it started: George Dantzig (1947) realized that linear programs could be solved by walking along the edges of a geometric shape (a polytope) to its optimal vertex.


3. Krylov Subspace Iteration Methods

  • ๐Ÿง  What it does: Solves large linear systems or eigenvalue problems iteratively by building solutions from a subspace.

  • ๐Ÿ”ง Simple use: Simulating airflow in aerodynamics using sparse matrix systems.

  • ๐Ÿ’ก How it started: Based on Krylov’s idea (1931) of using matrix powers to generate a subspace that captures the essence of the problem, later refined into practical iterative methods like GMRES and Lanczos.


4. Matrix Decomposition Methods (LU, QR, SVD...)

  • ๐Ÿง  What it does: Breaks matrices into simpler pieces to solve systems efficiently and stably.

  • ๐Ÿ”ง Simple use: Solving systems like Ax = b, or data compression using SVD.

  • ๐Ÿ’ก How it started: Grew from numerical analysis research—divide complex matrix tasks into smaller, structured problems. Think of it as factoring numbers, but for matrices.


5. Fortran Optimizing Compiler

  • ๐Ÿง  What it does: Automatically optimizes code written in Fortran for faster performance.

  • ๐Ÿ”ง Simple use: Making scientific code for weather models or physics simulations run faster.

  • ๐Ÿ’ก How it started: Built by John Backus and IBM in the 1950s to make high-level language code run as fast as hand-written assembly. Marked a turning point in compiler design.


6. QR Algorithm (Eigenvalue Computation)

  • ๐Ÿง  What it does: Finds eigenvalues and eigenvectors of a matrix efficiently.

  • ๐Ÿ”ง Simple use: Computing natural frequencies in structures (engineering).

  • ๐Ÿ’ก How it started: Independently developed by Francis and Kublanovskaya (1961). It uses QR decomposition repeatedly to diagonalize a matrix.


7. Quicksort

  • ๐Ÿง  What it does: Sorts lists efficiently using divide-and-conquer.

  • ๐Ÿ”ง Simple use: Sorting customer records, numbers, or search results.

  • ๐Ÿ’ก How it started: Invented by Tony Hoare in 1960 after learning Russian and working on machine translation. He devised Quicksort as an elegant recursive way to sort without extra memory.


8. Fast Fourier Transform (FFT)

  • ๐Ÿง  What it does: Transforms data from time to frequency domain super fast.

  • ๐Ÿ”ง Simple use: Audio filtering, image compression (like JPEG).

  • ๐Ÿ’ก How it started: Cooley and Tukey (1965) revived an old idea from Gauss by noticing symmetries in the Discrete Fourier Transform that could speed it up dramatically.


9. Integer Relation Detection (PSLQ Algorithm)

  • ๐Ÿง  What it does: Detects if a real number is a combination of other real numbers with integer coefficients.

  • ๐Ÿ”ง Simple use: Discovering hidden mathematical constants or relationships (e.g., formulas involving ฯ€ or e).

  • ๐Ÿ’ก How it started: Developed by Ferguson and Bailey in the 1990s for experimental mathematics. It uses lattice-based methods to find integer combinations with very high precision.


10. Fast Multipole Method (FMM)

  • ๐Ÿง  What it does: Speeds up simulations of forces between many particles (e.g., gravity).

  • ๐Ÿ”ง Simple use: Simulating how stars in a galaxy move under mutual gravity.

  • ๐Ÿ’ก How it started: Greengard and Rokhlin (1987) realized that distant particle groups could be approximated, reducing complexity from O(n²) to O(n) or O(n log n) — a breakthrough for physics and N-body problems.


๐Ÿงพ Summary Table

#AlgorithmCore UseKey Idea / Originator
1Metropolis AlgorithmSimulate complex systemsProbabilistic sampling (Metropolis)
2Simplex MethodLinear optimizationWalk along edges of a polytope
3Krylov Subspace MethodsLarge matrix systemsIterative subspace solution
4Matrix DecompositionsLinear algebra simplificationLU, QR, SVD breakdown
5Fortran CompilerOptimize scientific codeAuto code optimization (Backus)
6QR AlgorithmFind eigenvaluesIterative QR decomposition
7QuicksortEfficient sortingDivide-and-conquer (Hoare)
8Fast Fourier TransformFrequency analysisRecursive DFT (Cooley-Tukey)
9Integer Relation DetectionFind math relationshipsPSLQ algorithm
10Fast Multipole MethodParticle simulationApproximate distant effects

No comments: