Chevron Left
返回到 Solving Algorithms for Discrete Optimization

Solving Algorithms for Discrete Optimization, The University of Melbourne

5.0
4 个评分
1 个审阅

课程信息

Discrete Optimization aims to make good decisions when we have many possibilities to choose from. Its applications are ubiquitous throughout our society. Its applications range from solving Sudoku puzzles to arranging seating in a wedding banquet. The same technology can schedule planes and their crews, coordinate the production of steel, and organize the transportation of iron ore from the mines to the ports. Good decisions on the use of scarce or expensive resources such as staffing and material resources also allow corporations to improve their profit by millions of dollars. Similar problems also underpin much of our daily lives and are part of determining daily delivery routes for packages, making school timetables, and delivering power to our homes. Despite their fundamental importance, these problems are a nightmare to solve using traditional undergraduate computer science methods. This course is intended for students who have completed Advanced Modelling for Discrete Optimization. In this course, you will extend your understanding of how to solve challenging discrete optimization problems by learning more about the solving technologies that are used to solve them, and how a high-level model (written in MiniZinc) is transformed into a form that is executable by these underlying solvers. By better understanding the actual solving technology, you will both improve your modeling capabilities, and be able to choose the most appropriate solving technology to use. Watch the course promotional video here: https://www.youtube.com/watch?v=-EiRsK-Rm08...
筛选依据:

1 个审阅

创建者 Alex Dainiak

Oct 11, 2018

The course is a good sequel in the “… Discrete Optimization” series. With just about any programming language, the true understanding of how the program is run by the computer helps tuning the program, minimizing the execution time. The same is especially true in optimization, as instead of the “classical” imperative programs we have “models” that are digested by some “solver”, which actually does all the number crunching. Different solvers (and the same solver with different configuration) can behave drastically different while running the same model. So this course finally removes the veil and uncovers the things inside these solvers, that were considered as black boxes in the previous two courses. The course is likely to motivate you to experiment with different solvers for the same models, and, maybe, even implementing your own solver.