Engine Processing
There are many different types of engines including heuristic, rules-based, METRIC, dynamic programming, linear programming, decision trees, neural nets, etc. This document is not focused on these techniques or which best fits a particular problem but rather the general rules around the processing.