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

优化问题是一种常见的决策问题,它在我们的社会中很常见。它的应用可以从数独问题的解决涵盖到婚礼的座次安排。同样的技术可以用于航班与机组成员的安排,钢铁生产的调节,和钢铁从矿区到港口的调度问题。在生产中,人力资源与生产材料的合理决策可以使企业获得成千上万的利润提升。类似的问题也存在于我们的日常生活中,它们包括决定包裹的运输路径,调整学校课程时间,和传输能源到千家万户。尽管这些问题很基础,不过以一般本科教育的知识来解决这些问题都会十分困难。

这个课程是设计给所有对优化问题应用的各个方面感兴趣的同学。你将学习到一种全新的方法来思考如何解决这些有挑战性的问题。这种方法只需用先进的高级建模语言把问题在表述清楚,然后让约束求解器完成剩下的工作。它可以让你接触到业界问题求解的技术,而这在过去几十年中有上百个博士研究者不断将其完善优化。通过利用这种前沿的科技,在过去看起来不可思议的问题突然间变得易如反掌。

Enroll now

What's inside

Syllabus

MiniZinc介绍
在第一单元中,你将学习到MiniZinc的基础知识。它是一门用于离散优化问题的高级建模语言。通过结合简洁的MiniZinc语言和业界开源项目强大的求解技术,你将学会如何轻松地解决一些应用问题,比如背包问题,涂色问题,生产规划和覆面算问题。这个模块的学习目标是: (1) 建立一个基本的MiniZinc模型。 (2)理解一个由他人创建的简单MiniZinc模型。
Read more
集合建模
在这个单元中,你将学到如何对集合选择问题进行建模。特别是你将学习到如何利用不同的方法来表示没有势约束的,固定势的,或有界势的集合变量。在建模时,你还需要确保所有的模型决策都是有效的决策,而每一个有效的决策刚好对应一个模型决策。这个模块的学习目标是:(1) 建立一个MiniZinc模型来选择一个集合 。 (2)选择一种最适合的表示方式来表示集合。
函数建模
在这个单元中,你将学习到如何对纯分配问题和划分问题建模,而实际上它们都是函数建模问题。这些问题可以应用到值勤安排或者约束聚类问题中。而在建模技术上,你将看到共同子表达式消除和中间变量的威力,还会初次接触到全局势约束。另外,MiniZinc还提供了约束来去除值对称。这个模块的学习目标是:(1) 创建MiniZinc模型来决定一个函数 。 (2)分析问题来洞察问题中是否含有赋值的子结构 。 (3)创建基本的值班模型。 (4)发现问题是否需要划分一个集合 。
多重建模
在最后一个单元中,你将会看到离散优化问题可以如何通过不同的视角来切入,和如何从不同的视角来建立完全不同的模型。每一个视角都有优劣,而实际上不同的视角的模型可以结合起来互补。 这个模块的学习目标是:(1) 创建可以用两种不同视角的决策变量的MiniZinc模型。 (2)决定使用哪一种视角(或者组合视角)的决策变量对某一类问题更适合。

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Explores techniques and algorithms that are core to industry
Taught by two professors who are recognized for their work in computer science
Develops skills in modeling, problem-solving, and optimization
Uses advanced modeling language and powerful求解技术
Provides learners with experience in solving real-world problems

Save this course

Save 离散优化建模基础篇 Basic Modeling for Discrete Optimization to your list so you can find it easily later:
Save

Reviews summary

Effective optimization modeling

This course is highly rated by its students, receiving a perfect score of 5 out of 5 by all three reviewers. Students praise the course's emphasis on practical problem-solving, engaging case studies, and responsive instructor support. Overall, this course is well-suited for learners with a basic understanding of programming who seek to develop their optimization modeling skills.

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 离散优化建模基础篇 Basic Modeling for Discrete Optimization with these activities:
补习 线性代数 知识
课程中大量使用 线性代数 相关知识,建议课前补习,以方便课程理解
Browse courses on Mathematics
Show steps
  • 复习 线性代数 教材或在线课程
  • 完成 线性代数 练习题
Sudoku Puzzle Solving
Solving Sudoku puzzles will help you develop your logic and problem-solving skills, which are essential for optimization problems.
Browse courses on Optimization
Show steps
  • Choose a Sudoku puzzle to solve.
  • Fill in the empty cells using logic and reasoning.
  • Check your solution to make sure it is correct.
整理和复习相关资料
整理和复习相关资料,有助于课程理解和知识巩固
Show steps
  • 收集课程相关资料,如讲义、笔记和作业
  • 整理和归类这些资料
  • 定期复习这些资料
Ten other activities
Expand to see all activities and additional details
Show all 13 activities
Guided Tutorials on MiniZinc
Guided tutorials on MiniZinc will help you learn the basics of the language and how to use it to solve optimization problems.
Browse courses on MiniZinc
Show steps
  • Find a guided tutorial on MiniZinc.
  • Follow the tutorial step-by-step.
  • Complete the exercises in the tutorial.
Constraint Satisfaction Problems
Solving constraint satisfaction problems will help you improve your problem-solving skills and your understanding of optimization problems.
Show steps
  • Choose a constraint satisfaction problem to solve.
  • Find the constraints for the problem.
  • Solve the problem using a constraint satisfaction solver.
学习 MiniZinc 相关的教程
通过学习 MiniZinc 相关的教程,可以补充课程内容,加深理解
Browse courses on MiniZinc
Show steps
  • 查找 MiniZinc 相关的教程资源
  • 选择适合自己学习水平的教程
  • 按照教程中的步骤进行操作
Create a MiniZinc Model
Creating a MiniZinc model will help you understand the concepts of optimization problems and how to solve them.
Browse courses on MiniZinc
Show steps
  • Choose an optimization problem to model.
  • Create a MiniZinc model for the problem.
  • Solve the model using a MiniZinc solver.
  • Analyze the results of the model.
解决 MiniZinc 练习题
练习 MiniZinc 的使用技巧,有助于巩固课程中所学的理论知识
Browse courses on MiniZinc
Show steps
  • 收集 MiniZinc 练习题
  • 利用 MiniZinc 求解器解决练习题
  • 分析求解结果
Create a Visualization of an Optimization Problem
Creating a visualization of an optimization problem will help you understand the problem and its solution more clearly.
Browse courses on Optimization
Show steps
  • Choose an optimization problem to visualize.
  • Create a visual representation of the problem.
  • Analyze the visualization to find the solution to the problem.
参与 MiniZinc 学习小组
参与 MiniZinc 学习小组,可以与其他同学交流和讨论,共同解决问题
Browse courses on MiniZinc
Show steps
  • 寻找或组建一个 MiniZinc 学习小组
  • 定期与小组成员会面讨论
  • 分享学习心得和解决问题的思路
创建 MiniZinc 项目
创建 MiniZinc 项目,可以将所学的知识应用到实际问题中,加深理解
Browse courses on MiniZinc
Show steps
  • 选择一个感兴趣的问题
  • 设计和实现 MiniZinc 模型
  • 测试和调试程序
参加 MiniZinc 相关的研讨会
参加 MiniZinc 相关的研讨会,可以接触到最新的研究成果和技术应用
Browse courses on MiniZinc
Show steps
  • 查找 MiniZinc 相关的研讨会
  • 报名参加研讨会
  • 在研讨会上学习和交流
帮助初学者学习 MiniZinc
帮助初学者学习 MiniZinc,可以巩固自己的知识,同时帮助他人入门
Browse courses on MiniZinc
Show steps
  • 找到愿意学习 MiniZinc 的初学者
  • 根据初学者的需要提供指导和帮助
  • 回答初学者的疑问

Career center

Learners who complete 离散优化建模基础篇 Basic Modeling for Discrete Optimization will develop knowledge and skills that may be useful to these careers:
Operations Research Analyst
Operations Research Analysts use data analysis and modeling techniques to help businesses solve problems and improve their performance. This course may be useful for Operations Research Analysts because it can help them develop the skills needed to build optimization models that can be used to solve a variety of problems, such as scheduling, staffing, and logistics. Additionally, the course can help Operations Research Analysts learn about the different types of optimization problems that can be solved using MiniZinc, and how to use MiniZinc to solve these problems.
Scheduling Analyst
Scheduling Analysts use data analysis and modeling techniques to help businesses develop and manage schedules. This course may be useful for Scheduling Analysts because it can help them develop the skills needed to build optimization models that can be used to solve a variety of problems, such as scheduling employees, equipment, and resources. Additionally, the course can help Scheduling Analysts learn about the different types of optimization problems that can be solved using MiniZinc, and how to use MiniZinc to solve these problems.
Airline Revenue Analyst
Airline Revenue Analysts use data analysis and modeling techniques to help airlines maximize revenue. This course may be useful for Airline Revenue Analysts because it can help them develop the skills needed to build optimization models that can be used to solve a variety of problems, such as pricing, scheduling, and routing. Additionally, the course can help Airline Revenue Analysts learn about the different types of optimization problems that can be solved using MiniZinc, and how to use MiniZinc to solve these problems.
Healthcare Operations Analyst
Healthcare Operations Analysts use data analysis and modeling techniques to help healthcare providers improve their operations. This course may be useful for Healthcare Operations Analysts because it can help them develop the skills needed to build optimization models that can be used to solve a variety of problems, such as scheduling, staffing, and logistics. Additionally, the course can help Healthcare Operations Analysts learn about the different types of optimization problems that can be solved using MiniZinc, and how to use MiniZinc to solve these problems.
Research Scientist
Research Scientists use data analysis and modeling techniques to solve problems in a variety of fields, such as medicine, engineering, and finance. This course may be useful for Research Scientists because it can help them develop the skills needed to build optimization models that can be used to solve a variety of problems, such as drug discovery, product design, and financial modeling. Additionally, the course can help Research Scientists learn about the different types of optimization problems that can be solved using MiniZinc, and how to use MiniZinc to solve these problems.
Industrial Engineer
Industrial Engineers use data analysis and modeling techniques to help businesses improve their operations. This course may be useful for Industrial Engineers because it can help them develop the skills needed to build optimization models that can be used to solve a variety of problems, such as scheduling, staffing, and logistics. Additionally, the course can help Industrial Engineers learn about the different types of optimization problems that can be solved using MiniZinc, and how to use MiniZinc to solve these problems.
Data Analyst
Data Analysts use data analysis and modeling techniques to help businesses understand their data and make better decisions. This course may be useful for Data Analysts because it can help them develop the skills needed to build optimization models that can be used to solve a variety of problems, such as scheduling, staffing, and logistics. Additionally, the course can help Data Analysts learn about the different types of optimization problems that can be solved using MiniZinc, and how to use MiniZinc to solve these problems.
Business Analyst
Business Analysts use data analysis and modeling techniques to help businesses improve their operations. This course may be useful for Business Analysts because it can help them develop the skills needed to build optimization models that can be used to solve a variety of problems, such as scheduling, staffing, and logistics. Additionally, the course can help Business Analysts learn about the different types of optimization problems that can be solved using MiniZinc, and how to use MiniZinc to solve these problems.
Systems Analyst
Systems Analysts use data analysis and modeling techniques to help businesses design and implement new systems. This course may be useful for Systems Analysts because it can help them develop the skills needed to build optimization models that can be used to solve a variety of problems, such as system design, resource allocation, and performance optimization. Additionally, the course can help Systems Analysts learn about the different types of optimization problems that can be solved using MiniZinc, and how to use MiniZinc to solve these problems.
Management Consultant
Management Consultants use their expertise to help businesses solve problems and improve their performance. This course may be useful for Management Consultants because it can help them develop the skills needed to build optimization models that can be used to solve a variety of problems, such as scheduling, staffing, and logistics. Additionally, the course can help Management Consultants learn about the different types of optimization problems that can be solved using MiniZinc, and how to use MiniZinc to solve these problems.
Consultant
Consultants use their expertise to help businesses solve problems and improve their performance. This course may be useful for Consultants because it can help them develop the skills needed to build optimization models that can be used to solve a variety of problems, such as scheduling, staffing, and logistics. Additionally, the course can help Consultants learn about the different types of optimization problems that can be solved using MiniZinc, and how to use MiniZinc to solve these problems.
Quantitative Analyst
Quantitative Analysts use data analysis and modeling techniques to help businesses make investment decisions. This course may be useful for Quantitative Analysts because it can help them develop the skills needed to build optimization models that can be used to solve a variety of problems, such as portfolio optimization and risk management. Additionally, the course can help Quantitative Analysts learn about the different types of optimization problems that can be solved using MiniZinc, and how to use MiniZinc to solve these problems.
Financial Analyst
Financial Analysts use data analysis and modeling techniques to help businesses make investment decisions. This course may be useful for Financial Analysts because it can help them develop the skills needed to build optimization models that can be used to solve a variety of problems, such as portfolio optimization and risk management. Additionally, the course can help Financial Analysts learn about the different types of optimization problems that can be solved using MiniZinc, and how to use MiniZinc to solve these problems.
Product Manager
Product Managers are responsible for the development and launch of new products. This course may be useful for Product Managers because it can help them develop the skills needed to build optimization models that can be used to solve a variety of problems, such as product design, pricing, and marketing. Additionally, the course can help Product Managers learn about the different types of optimization problems that can be solved using MiniZinc, and how to use MiniZinc to solve these problems.
Activity-Based Costing Modeling Specialist
Activity-Based Costing Modeling Specialists apply the principles of activity-based costing (ABC) to develop and manage cost models that help businesses understand their costs and make better decisions. This course may be useful for Activity-Based Costing Modeling Specialists because it can help them develop the skills needed to create accurate and reliable cost models. Additionally, the course can help Activity-Based Costing Modeling Specialists learn about the different types of optimization problems that can be solved using ABC, and how to use MiniZinc to solve these problems.

Reading list

We've selected 12 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 离散优化建模基础篇 Basic Modeling for Discrete Optimization.
A classic and highly regarded textbook in the field, this book covers a broad range of topics in discrete optimization, including graph theory, network flow, integer programming, and combinatorial optimization. It provides a comprehensive treatment of fundamental concepts and advanced techniques, making it a valuable resource for students and researchers alike.
A practical guide to modeling and solving optimization problems across various domains and industries, this book covers fundamental concepts and advanced techniques such as linear programming, mixed-integer programming, and dynamic programming. It serves as a valuable reference for readers seeking a deeper understanding of optimization modeling and solution.
此书以清晰的语言和结构严谨的理论体系,介绍了组合优化中各类重要算法及其性能分析。
Dedicated to one of the most famous optimization problems, this book offers a comprehensive study of the traveling salesman problem, including its history, variations, and solution techniques. It provides valuable insights into the problem's complexity and the challenges involved in finding optimal solutions.
An advanced textbook that explores optimization techniques from a vector space perspective, with a focus on linear and nonlinear programming. provides a solid theoretical foundation for understanding the mathematical principles underlying optimization algorithms and their applications.
这本书全面介绍了约束编程。它涵盖了约束编程的基础知识、建模技术和求解算法。对于初学者来说,这本书是学习约束编程的绝佳资源。
Provides a comprehensive introduction to computational complexity theory, a fundamental area of computer science that explores the inherent difficulty of computational problems. It covers key concepts such as Turing machines, complexity classes, and NP-completeness, providing a solid foundation for understanding the computational limits of optimization problems.
这本书介绍了数学规划问题的建模和求解方法。它涵盖了各种数学规划问题的建模技术和求解算法。对于初学者来说,这本书是学习数学规划问题的绝佳资源。
此书是图论领域的经典教材,全面介绍了图论基本概念、理论和算法。
这本简短的中文读物以通俗易懂的语言介绍了常见的逻辑谬误和推理错误,有助于读者提高批判性思维能力,在面对具有挑战性的优化问题时,能够更清晰地分析和解决问题。

Share

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

Similar courses

Here are nine courses similar to 离散优化建模基础篇 Basic Modeling for Discrete Optimization.
离散优化建模高阶篇 Advanced Modeling for Discrete Optimization
Most relevant
离散优化算法篇 Solving Algorithms for Discrete Optimization
Most relevant
高级数据结构与算法
Most relevant
大学历史与文化
Most relevant
抗菌素管理: 管理抗生素耐药性
Most relevant
数据结构基础
Most relevant
宇宙之旅:展现生命 (Journey of the Universe: The Unfolding of Life)
Most relevant
Climate Change: Carbon Capture and Storage (Chinese)
Most relevant
Thomas Berry的世界观:地球社区的繁荣 (The Worldview of Thomas Berry:...
Most relevant
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