This book introduces the basic ideas and techniques of optimization. It is designed to give the reader a sense of the challenge of analyzing a given situation and formulating a model for it while explaining the assumptions and inner structure of the methods discussed as fully as possible.