We may earn an affiliate commission when you visit our partners.
Course image
Prof. Jimmy Ho Man Lee and Prof. Peter James Stuckey

优化是决策的一般形式,在我们的社会中很常见。它的应用包括从求解数独谜题到婚礼上的座次安排。同样的技术可以调度航班和机组成员,协调钢铁生产,组织铁矿从矿井到港口的运输。人力资源和材料管理上好的决策可以令企业提升上百万的盈利。同样的问题很多也在我们日常生活出现,成为决定每天送货路线,决定学校时间表,传输电力到家里等种种问题的一部分。除了它们的重要性,这些问题如果用传统的本科计算机科学方法难以求解。

这门课程为已经完成离散优化高阶篇的同学设计。

请看这门课程的宣传视频:http://www.cpr.cuhk.edu.hk/cutv/detail/988

Enroll now

What's inside

Syllabus

基础约束编程
这个模块开始时用例子说明约束编程求解器的基础技术,也就是约束传播和搜索。值域代表了变量可能的取值,而约束可用于在值域上进行推理。约束本身可以以值域传播器和边界传播器的形式表示。你将会学习到一个传播引擎如何处理一组传播器,并通过变量值域协调沟通约束传播得到的信息。你也将会学到基础搜索,变量,数值选择等概念,还有传播和搜索是如何紧密而高效地连接起来的。最后,这个模块介绍了如何在Minizinc中进行编程化搜索。
Read more
高阶约束编程
在这个模块中,你将会看到如何用分支限界搜索求解优化问题,和搜索策略在这些情况下如何变得更为重要。你将会了解到高阶的搜索策略,包括重启搜索和基于影响(impact-based)的搜索。这个模块也会解释如alldifferent和cumulative全局约束的内部实现。
混合整数线性规划
这个模块从介绍线性规划和用于解决连续线性规划优化问题的Simplex算法开始,之后展示了这个方法如何可以和分支限界法配合来解决混合整数线性规划问题。之后再进一步学习Gomory切割和分支切割法并领略它们如何提高求解速度。
局部搜索
这个模块带你进入局部搜索的神奇领域,它可以高效地探索一些大而复杂的搜索空间。你将会学到状态,移动和邻域的概念,还有它们在受约束的搜索空间中如何被应用在基本贪心搜索和最速梯度下降搜索中。你还将学习不同的方法来逃离或者避免局部最小值,包括重启,模拟退火,禁忌表和离散拉格朗日乘数法。最后,你将会看到大邻域搜索把在邻域中找到最优相邻点看作一个离散优化问题来解决,并因此使我们探索更远和更有效地搜索。

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops core skills for decision making via problem solving
Emphasizes employability in various sectors
Primarily designed for participants with some experience in optimization
Taught by renowned experts in the field
Covers diverse optimization techniques suitable for complex problems
Includes interactive elements and case studies for practical understanding

Save this course

Save 离散优化算法篇 Solving Algorithms for Discrete Optimization to your list so you can find it easily later:
Save

Reviews summary

Excellent course on discrete optimization

This course is an excellent resource for students looking to learn about discrete optimization algorithms. The course is well-structured and the content is engaging. The instructor is knowledgeable and passionate about the subject matter. Overall, this course is highly recommended for anyone interested in learning about discrete optimization algorithms.
Engaging course content.
"非常用心准备的课程。"
Knowledgeable and passionate instructor.

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in 离散优化算法篇 Solving Algorithms for Discrete Optimization with these activities:
Review linear algebra
Revisit the basics of linear algebra to strengthen your foundation for understanding optimization concepts.
Browse courses on Linear Algebra
Show steps
  • Review the fundamental concepts of vector spaces, matrices, and linear transformations.
  • Practice solving systems of linear equations and finding eigenvalues and eigenvectors.
Review probability and statistics
Strengthen your foundation in probability and statistics to enhance your understanding of optimization techniques that involve probabilistic modeling and statistical analysis.
Browse courses on Probability
Show steps
  • Review the concepts of probability, random variables, and distributions.
  • Practice solving problems involving statistical inference and hypothesis testing.
Connect with experts in optimization
Seek guidance and insights from experienced professionals in the field of optimization to supplement your learning and stay up-to-date with industry best practices.
Show steps
  • Attend industry events and conferences to meet potential mentors.
  • Reach out to professors, researchers, or industry professionals in your field of interest.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Solve Sudoku puzzles
Sharpen your logical reasoning and problem-solving skills by regularly solving Sudoku puzzles, which demonstrate the application of constraint programming.
Show steps
  • Start with beginner-level puzzles to grasp the basics.
  • Challenge yourself with more complex puzzles as you progress.
Explore the Minizinc programming language
Learn the basics of Minizinc, a modeling language specifically designed for solving constraint programming problems, to enhance your understanding of the course material.
Show steps
  • Follow online tutorials or documentation to learn the syntax and basic concepts of Minizinc.
  • Experiment with writing and solving simple Minizinc models.
Curate a resource library on optimization techniques
Gather and organize a comprehensive collection of resources, including articles, tutorials, software tools, and datasets, on various optimization techniques to serve as a valuable reference for your learning journey.
Show steps
  • Conduct online research to identify relevant resources.
  • Create a structured repository or website to store and organize the resources.
  • Categorize and tag the resources for ease of access.
Solve optimization problems with Gurobi
Gain hands-on experience in solving mixed-integer linear programming problems using Gurobi, a popular optimization solver, to reinforce your understanding of the techniques covered in the course.
Show steps
  • Install Gurobi and familiarize yourself with its user interface.
  • Practice formulating and solving optimization problems using Gurobi's modeling language.
  • Explore advanced features of Gurobi to enhance your problem-solving capabilities.

Career center

Learners who complete 离散优化算法篇 Solving Algorithms for Discrete Optimization will develop knowledge and skills that may be useful to these careers:
Management Consultant
Management consultants help businesses improve their performance by providing advice on strategy, operations, and technology. They use their knowledge of business and management principles to develop and implement solutions to complex problems. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the analytical techniques used by management consultants, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for management consultants who want to specialize in solving discrete optimization problems.
Project Manager
Project managers plan and execute projects to achieve specific goals. They use their knowledge of project management principles and techniques to develop and implement project plans, and to manage project teams. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the analytical techniques used by project managers, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for project managers who want to specialize in managing projects that involve solving discrete optimization problems.
Data Scientist
Data scientists use their knowledge of mathematics, statistics, and computer science to extract insights from data. They develop and apply algorithms to analyze data and build models that can be used to make predictions and solve business problems. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the algorithms and techniques used by data scientists, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for data scientists who want to specialize in solving discrete optimization problems.
Operations Research Analyst
Operations research analysts are experts in using advanced analytical techniques to solve complex business problems. They use mathematical modeling, optimization techniques, and statistical analysis to improve efficiency and productivity in a variety of industries, including manufacturing, healthcare, and finance. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the techniques used by operations research analysts, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for operations research analysts who want to specialize in solving discrete optimization problems.
Software Engineer
Software engineers design, develop, and maintain software systems. They use their knowledge of programming languages and algorithms to create software that meets the needs of users. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the algorithms and techniques used by software engineers, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for software engineers who want to specialize in developing software for solving discrete optimization problems.
Financial Analyst
Financial analysts use financial data to make investment recommendations and provide advice to clients. They use their knowledge of financial markets and investment strategies to develop and implement investment portfolios. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the algorithms and techniques used by financial analysts, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for financial analysts who want to specialize in solving discrete optimization problems.
Product Manager
Product managers are responsible for the development and marketing of products. They work with engineers, designers, and marketers to develop and launch products that meet the needs of customers. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the analytical techniques used by product managers, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for product managers who want to specialize in developing products that solve discrete optimization problems.
Transportation Manager
Transportation managers plan and manage the movement of goods and people. They use their knowledge of transportation management principles and techniques to develop and implement efficient and effective transportation systems. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the analytical techniques used by transportation managers, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for transportation managers who want to specialize in solving discrete optimization problems.
Warehouse Manager
Warehouse managers plan and manage the storage and distribution of goods. They use their knowledge of warehouse management principles and techniques to develop and implement efficient and effective warehouse operations. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the analytical techniques used by warehouse managers, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for warehouse managers who want to specialize in solving discrete optimization problems.
Operations Manager
Operations managers plan and coordinate the activities of a business to achieve its goals. They use their knowledge of business processes and management principles to develop and implement efficient and effective operations. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the analytical techniques used by operations managers, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for operations managers who want to specialize in solving discrete optimization problems.
Quantitative Analyst
Quantitative analysts use mathematical and statistical models to analyze financial data and make investment decisions. They develop and apply algorithms to analyze risk and return, and to build models that can be used to make trading decisions. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the algorithms and techniques used by quantitative analysts, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for quantitative analysts who want to specialize in solving discrete optimization problems.
Actuary
Actuaries use mathematical and statistical models to assess risk and uncertainty. They develop and apply models to calculate insurance premiums, pensions, and other financial products. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the algorithms and techniques used by actuaries, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for actuaries who want to specialize in solving discrete optimization problems.
Risk Manager
Risk managers identify and assess risks that a business faces. They develop and implement strategies to mitigate these risks, and to ensure the continuity of the business. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the analytical techniques used by risk managers, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for risk managers who want to specialize in solving discrete optimization problems.
Market Researcher
Market researchers collect and analyze data about consumers and markets. They use their knowledge of research methods and statistical analysis to develop and implement marketing strategies. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the algorithms and techniques used by market researchers, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for market researchers who want to specialize in solving discrete optimization problems.
Supply Chain Manager
Supply chain managers plan and manage the flow of goods and services from suppliers to customers. They use their knowledge of supply chain management principles and techniques to develop and implement efficient and effective supply chains. This course in Solving Algorithms for Discrete Optimization provides a strong foundation in the analytical techniques used by supply chain managers, including constraint programming, mixed integer linear programming, and local search. This course may be particularly useful for supply chain managers who want to specialize in solving discrete optimization problems.

Reading list

We've selected nine books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in 离散优化算法篇 Solving Algorithms for Discrete Optimization.
One of the pioneers in constraint programming, this book provides comprehensive theoretical background and advanced applications in this field.
As an important textbook for teaching discrete optimization at universities, this book is quite useful for self-study and for professionals who want to learn more about the subject.
Is an introductory textbook in combinatorial and discrete optimization. It is useful for both academic audience and industrial practitioners.
Can be a great reference book covering local search. It offers a good introduction to this subject for those who are interested.
Is not an introduction to constraint programming but rather an introduction to the modeling of combinatorial optimization problems in constraint programming.
Is about the Linear Programming (LP) methodology in Operations Research and demonstrates how LP can be applied in practice to help solve real-world mathematical problems. It is good for those who need to apply LP in practice.
For those who want to learn about non-linear programming, this book provides an overview of the theoretical aspects as well as practical numerical algorithms.
General book for computational optimization and applications. It provides an introduction to optimization. This book mainly is for graduate students and practitioners in operations research, computer science, and applied mathematics.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to 离散优化算法篇 Solving Algorithms for Discrete Optimization.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser