Intuitively, optimization problems can all be approached by determining the current "fitness", calculating which direction to move and deciding when to stop