Everything about Greedy algorithm
Sequence of locally optimal choices
A greedy algorithm is an algorithm which, at each step, makes the choice that is locally optimal, and subsequently does not reconsider past choices. Greedy algorithms are often used to solve combinatorial optimization problems. If an optimization problem only depends on the partial solution of solving it for one subproblem, we can solve this problem by "greedily" considering only the locally optimal subproblem. In this sense, a greedy algorithm is a special case of a dynamic programming algorithm. Uriel Feige notes that:[Greedy algorithms] may be viewed as the ultimate form of dynamic programming, in which only one partial solution is maintained. The problem needs to have much more structure for this approach to work. Wikipedia →
🧭 Start here: a 6-step reading path
- Read the overview: Greedy algorithmA 5-minute orientation
- Skim a recent paper: Greedy opposition-based learning for chimp optimization algorithmInfluential work since 2022
- Pick up a classic book: Introduction to AlgorithmsThe most-reprinted book on the subject
- Read the landmark paper: A Greedy Algorithm for Aligning DNA SequencesCited 4,572 times
- Go sideways: Welfare maximizationA closely related topic
- Go sideways: Combinatorial optimizationA closely related topic
📖 Definitions
Noun Any algorithm that follows the problem-solving heuristic of making the locally optimal choice at each stage.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
A Greedy Algorithm for Aligning DNA Sequences
Matroids and the greedy algorithm
Greedy algorithm and symmetric matroids
Greedy Algorithm for General Biorthogonal Systems
A framework for the greedy algorithm
A greedy Delaunay-based surface reconstruction algorithm
When the greedy algorithm fails
The Thresholding Greedy Algorithm, Greedy Bases, and Duality
🆕 Influential since 2022
Greedy opposition-based learning for chimp optimization algorithm
A novel greedy genetic algorithm-based personalized travel recommendation system
Greedy knot selection algorithm for restricted cubic spline regression
Review on greedy algorithm
Optimal Convergence Rates for the Orthogonal Greedy Algorithm
📚 Books worth reading
Introduction to AlgorithmsThomas H. Cormen, Charles E. Leiserson · 1990
Graphs, Networks and AlgorithmsDieter Jungnickel · 2006
Data structures and algorithm analysis in CMark Allen Weiss · 1993- 📕Compressed sensingYonina C. Eldar · 2012
Discrete mathematicsNorman Biggs · 1985
Introduction to the design & analysis of algorithmsAnany Levitin · 2008
Data structures & algorithm analysis in JavaMark Allen Weiss · 1999
Algorithms IlluminatedTim Roughgarden · 2018
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
🔗 Related topics
- Welfare maximization The welfare maximization problem is an optimization problem studied in economics and computer science. Its goal is to partition a set of items among agents…
- Combinatorial optimization Combinatorial optimization is a subfield of mathematical optimization that consists of finding an optimal object from a finite set of objects, where the…
- Submodular set function In mathematics, a submodular set function (also known as a submodular function) is a set function that, informally, describes the relationship between…
- Jack Edmonds Jack R. Edmonds (born April 5, 1934) is an American-born and educated computer scientist and mathematician who lived and worked in Canada for much of his…
- Matroid intersection In combinatorial optimization, the matroid intersection problem is to find a largest common independent set in two matroids over the same ground set. If…
- Fulkerson Prize The Fulkerson Prize for outstanding papers in the area of discrete mathematics is sponsored jointly by the Mathematical Optimization Society (MOS) and…
- Approximation algorithm In computer science and operations research, approximation algorithms are efficient algorithms that find approximate solutions to optimization problems…
- Linear programming relaxation In mathematics, the relaxation of a (mixed) integer linear program is the problem that arises by removing the integrality constraint of each variable.…