Mathematical modeling techniques for representing a complex system will be presented. Topics to be covered include linear (LP) and non-linear programming (NLP); algorithmic search methods for optimization; branch and bound and dynamic programming, and their uses.