À propos de ce cours
4.8
45 notes
6 avis
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. While designing these solutions, we will rely heavily on the material learned in the courses of the specialization: proof techniques, combinatorics, probability, graph theory. We’ll see several examples of using discrete mathematics ideas to get more and more efficient solutions....
Globe

Cours en ligne à 100 %

Commencez dès maintenant et apprenez aux horaires qui vous conviennent.
Calendar

Dates limites flexibles

Réinitialisez les dates limites selon votre disponibilité.
Beginner Level

Niveau débutant

Clock

Approx. 7 hours to complete

Recommandé : 3 weeks of study, 2–5 hours/week...
Comment Dots

English

Sous-titres : English...
Globe

Cours en ligne à 100 %

Commencez dès maintenant et apprenez aux horaires qui vous conviennent.
Calendar

Dates limites flexibles

Réinitialisez les dates limites selon votre disponibilité.
Beginner Level

Niveau débutant

Clock

Approx. 7 hours to complete

Recommandé : 3 weeks of study, 2–5 hours/week...
Comment Dots

English

Sous-titres : English...

Programme du cours : ce que vous apprendrez dans ce cours

Week
1
Clock
4 heures pour terminer

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....
Reading
4 vidéos (Total 43 min), 1 lecture, 4 quiz
Video4 vidéos
Shortest Common Superstring Problem10 min
Brute Force Search11 min
Nearest Neighbor8 min
Reading1 lecture
Additional Materials10 min
Quiz4 exercices pour s'entraîner
Cycle Weight20 min
Brute Force Algorithm2 min
Average Weight30 min
Nearest Neighbors2 min
Week
2
Clock
4 heures pour terminer

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....
Reading
4 vidéos (Total 49 min), 2 quiz
Video4 vidéos
Dynamic Programming: Main Ideas9 min
Dynamic Programming: Representing Subsets10 min
Dynamic Programming: Code13 min
Quiz2 exercices pour s'entraîner
Branch and Bound min
Dynamic Programming min
Week
3
Clock
4 heures pour terminer

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....
Reading
2 vidéos (Total 20 min), 1 quiz
Video2 vidéos
Local Search8 min
Quiz1 exercice pour s'entraîner
2-Approximation2 min
4.8

Meilleurs avis

par ASJul 25th 2018

This final course in 5 course specialization is relatively easy one, although the last problem takes little bit time to solve. Provides good introduction to difficult to learn Delivery problem.

par ESJun 19th 2018

perfect course! very easy and interesting to follow. Pseudo-Algorithms were very useful and helped a lot to understand the concepts.

Enseignant

Alexander S. Kulikov

Visiting Professor
Department of Computer Science and Engineering

À propos de University of California San Diego

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....

À propos de National Research University Higher School of Economics

National Research University - Higher School of Economics (HSE) is one of the top research universities in Russia. Established in 1992 to promote new research and teaching in economics and related disciplines, it now offers programs at all levels of university education across an extraordinary range of fields of study including business, sociology, cultural studies, philosophy, political science, international relations, law, Asian studies, media and communications, IT, mathematics, engineering, and more. Learn more on www.hse.ru...

À propos de la Spécialisation Introduction to Discrete Mathematics for Computer Science

Discrete Math is needed to see mathematical structures in the object you work with, and understand their properties. This ability is important for software engineers, data scientists, security and financial analysts (it is not a coincidence that math puzzles are often used for interviews). We cover the basic notions and results (combinatorics, graphs, probability, number theory) that are universally needed. To deliver techniques and ideas in discrete mathematics to the learner we extensively use interactive puzzles specially created for this specialization. To bring the learners experience closer to IT-applications we incorporate programming examples, problems and projects in our courses....
Introduction to Discrete Mathematics for Computer Science

Foire Aux Questions

  • Once you enroll for a Certificate, you’ll have access to all videos, quizzes, and programming assignments (if applicable). Peer review assignments can only be submitted and reviewed once your session has begun. If you choose to explore the course without purchasing, you may not be able to access certain assignments.

  • When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile. If you only want to read and view the course content, you can audit the course for free.

D'autres questions ? Visitez le Centre d'Aide pour les Etudiants.