A technique used to solve optimization problems by making locally optimal choices that lead to a globally optimal solution.