IN THIS PART …
Use greedy programming techniques to obtain results faster.
Perform dynamic programming to perform tasks using a smart approach.
Randomize your results to solve problems where a straightforward approach doesn’t work well.
Search locally to final solutions that are good enough in a short time.
Use linear programming techniques to perform scheduling and planning tasks.
Employ heuristics and interact with robots.