Welcome to Solving Algorithms for Discrete Optimization, which is the third course in our series on discrete optimization. I am Professor Peter Stuckey. And I'm Professor Jimmy Lee. In the previous two courses, you learned basic and advanced techniques in modeling practical applications as discrete optimization problems using the MiniZinc modelling language. You experienced the joy of solving such complex and difficult problems without even knowing how MiniZinc solves them. In this course, we'll uncover the secrets inside these black box solvers, which we've used in the previous courses. Oh, I got a call. Excuse me. Oh, sorry for the interruption. It was a call from Nuwa. She was widely thought to be the creator of humankind in Chinese mythology. She's seeking help from us to deal with a broken and falling sky. That's all right. We almost forgot to mention that this course still uses the fable-based approach. So you will immerse yourselves in interesting stories, which are again adapted from Chinese classics. These stories will help to motivate and contextualize the various algorithms are required in solving discrete optimization problems. The difference is that we are not following the romance of the Three Kingdoms this time. Although my favorite character Jugulan still plays important roles in our stories. What happened was that Jugulan messed around with a magical tablet, caused huge disruptions to space and time, and was taken to the beginning of time where he would meet with such characters as Nuwa, Houyi and the Monkey King, Sun Wukong. The story spanned across three Chinese classic novels, Lavos Shan Hai Jing or the Book of Mountains and Seas, Fengshen Yanyi or the Investiture of Gods. And last but not the least, Xiyou Ji or the Journey to the West. Yes, we all help our heroes to solve difficult problems by barring algorithm's from constraint programming solvers mixed into the programming solvers and local search solvers. What you will learn are the basis, these state-of-the-art algorithms embedded in modern discrete optimization solvers. By understanding the inner workings of these underlying solvers, you'll be able to write better models, suggest good search where we use the MiniZinc, and select the right solver for the right task. Perhaps you can even develop your own solvers. Under the stories we go.