In this online course we’ll implement (in Python) together efficient programs for a problem needed by delivery companies all over the world millions times per day — the travelling salesman problem. The goal in this problem is to visit all the given places as quickly as possible. How to find an optimal solution to this problem quickly? We still don’t have provably efficient algorithms for this difficult computational problem and this is the essence of the P versus NP problem, the most important open question in Computer Science. Still, we’ll implement several solutions for real world instances of the travelling salesman problem.
提供方
Delivery Problem
加州大学圣地亚哥分校課程信息
提供方

加州大学圣地亚哥分校
UC San Diego is an academic powerhouse and economic engine, recognized as one of the top 10 public universities by U.S. News and World Report. Innovation is central to who we are and what we do. Here, students learn that knowledge isn't just acquired in the classroom—life is their laboratory.
授課大綱 - 您將從這門課程中學到什麼
Traveling Salesman Problem
We start this module with the definition of mathematical model of the delivery problem — the classical traveling salesman problem (usually abbreviated as TSP). We'll then review just a few of its many applications: from straightforward ones (delivering goods, planning a trip) to less obvious ones (data storage and compression, genome assembly). After that, we will together take the first steps in implementing programs for TSP.
Exact Algorithms
We'll see two general techniques applied to the traveling salesman problem. The first one, branch and bound, is a classical approach in combinatorial optimization that is used for various problems. It can be seen as an improvement of the brute force search: we try to construct a permutation piece by piece, but at each step we check whether it still makes sense to continue constructing the permutation (if it doesn't, we just cut off the current branch). The second one, dynamic programming, is arguably the most popular algorithmic technique. It solves a problem by going through a collection of smaller subproblems.
Approximation Algorithms
As we've seen in the previous modules, solving the traveling salesman problem exactly is hard. In fact, we don't even expect an efficient solution in the nearest future. For this reason, it makes sense to ask: is it possible to find efficiently a solution that is probably suboptimal, but at the same time is close to optimal? It turns out that the answer is yes! We'll learn two algorithms. The first one guarantees to find quickly a solution which is at most twice longer than the optimal one. The second algorithms does not have such guarantees, but it is known to work pretty well in practice.
審閱
- 5 stars76.75%
- 4 stars17.92%
- 3 stars2.80%
- 2 stars2.24%
- 1 star0.28%
來自DELIVERY PROBLEM的熱門評論
I liked it! Interesting material and challenging assignments! I am going to miss these professors a lot. Thanks for everything you geniuses from HSE!
This series is great. I am confident to tutor my son in CS now.
Thanks UCSD and HSE
perfect course! very easy and interesting to follow. Pseudo-Algorithms were very useful and helped a lot to understand the concepts.
Great way to end a really detailed and engaging specialization that introduces anyone with a minimum background in Python to Algorithms.
常見問題
我什么时候能够访问课程视频和作业?
我购买证书后会得到什么?
有助学金吗?
還有其他問題嗎?請訪問 學生幫助中心。