Shortest Paths Revisited, NP-Complete Problems and What To Do About Them

Start Date: 07/05/2020

Course Type: Common Course

Course Link:

About Course

The primary topics in this part of the specialization are: shortest paths (Bellman-Ford, Floyd-Warshall, Johnson), NP-completeness and what it means for the algorithm designer, and strategies for coping with computationally intractable problems (analysis of heuristics, local search).

Coursera Plus banner featuring three learners and university partner logos

Course Introduction

Shortest Paths Revisited, NP-Complete Problems and What To Do About Them This is the third course in the NP-completion course. It will be easier when you have completed the first course. In this course, you will learn how to use shortest paths in order to reach your goal. You will also learn what to do about problems that appear too difficult. In the meantime, you will build on your skills of solving the difficult problems and will use the tools that you will need to complete the remaining courses in this specialization.Module 1 Module 2 Module 3 Module 4 Security Administration In this introductory course, you will learn security concepts and how these are implemented in the operating system. You will also learn about network security and how network access is secured. You will learn about basic data encryption and decryption algorithms and how these are used in practice. You will also learn about the basics of user accounts and common users, common file systems, common user classes, and basic Unix methods for managing users and groups. At the end of this course, you will be able to: • Deal with common users, groups, and users • Understand common file systems and how they are secured • Write basic programs in the Unix programming language • Understand Unix methods for managing users and groups • Write basic programs in the C programming language This course is intended for the Bachelor student, who is interested in how to secure their network

Course Tag

Data Structure Algorithms Np-Completeness Dynamic Programming

Related Wiki Topic

Article Example
Karp's 21 NP-complete problems In computational complexity theory, Karp's 21 NP-complete problems are a set of computational problems which are NP-complete. In his 1972 paper, "Reducibility Among Combinatorial Problems", Richard Karp used Stephen Cook's 1971 theorem that the boolean satisfiability problem is NP-complete (also called the Cook-Levin theorem) to show that there is a polynomial time many-one reduction from the boolean satisfiability problem to each of 21 combinatorial and graph theoretical computational problems, thereby showing that they are all NP-complete. This was one of the first demonstrations that many natural computational problems occurring throughout computer science are computationally intractable, and it drove interest in the study of NP-completeness and the P versus NP problem.
Co-NP-complete Each Co-NP-complete problem is the complement of an NP-complete problem. There are some problems in both NP and co-NP, for example all problems in P or integer factorization; however, it is not known if the sets are equal, although inequality is thought more likely. See co-NP and NP-complete for more details.
What To Do About Them What to Do About Them is a 1992 EP by Boston indie rock band Swirlies. It was Swirlies' first release for Taang! Records and documents the band's early material recorded in 1991 and 1992. The album is mostly made up of songs selected from the their three previous 7" records, as well as previously unreleased material.
Co-NP-complete In complexity theory, computational problems that are co-NP-complete are those that are the hardest problems in co-NP, in the sense that any problem in co-NP can be reformulated as a special case of any co-NP complete problem with only polynomial overhead. If P is different from co-NP, then all of the co-NP complete problems are not solvable in polynomial time. If there exists a way to solve a co-NP-complete problem quickly, then that algorithm can be used to solve all co-NP problems quickly.
NP-completeness The easiest way to prove that some new problem is NP-complete is first to prove that it is in NP, and then to reduce some known NP-complete problem to it. Therefore, it is useful to know a variety of NP-complete problems. The list below contains some well-known problems that are NP-complete when expressed as decision problems.
Karp's 21 NP-complete problems Karp's 21 problems are shown below, many with their original names. The nesting indicates the direction of the reductions used. For example, Knapsack was shown to be NP-complete by reducing Exact cover to Knapsack.
NP-completeness Cook–Levin theorem states that the Boolean satisfiability problem is NP-complete (a simpler, but still highly technical proof of this is available). In 1972, Richard Karp proved that several other problems were also NP-complete (see Karp's 21 NP-complete problems); thus there is a class of NP-complete problems (besides the Boolean satisfiability problem). Since the original results, thousands of other problems have been shown to be NP-complete by reductions from other problems previously shown to be NP-complete; many of these problems are collected in Garey and Johnson's 1979 book "".
List of NP-complete problems This is a list of some of the more commonly known problems that are NP-complete when expressed as decision problems. As there are hundreds of such problems known, this list is in no way comprehensive. Many problems of this type can be found in .
NP (complexity) An important notion in this context is the set of NP-complete decision problems, which is a subset of NP and might be informally described as the "hardest" problems in NP. If there is a polynomial-time algorithm for even "one" of them, then there is a polynomial-time algorithm for "all" the problems in NP. Because of this, and because dedicated research has failed to find a polynomial algorithm for any NP-complete problem, once a problem has been proven to be NP-complete this is widely regarded as a sign that a polynomial algorithm for this problem is unlikely to exist.
What To Do About Them Swirlies recorded the songs on "What to Do About Them" in multiple sessions on three different recording formats: Three songs were taken from the group's "Didn't Understand" single, recorded on 8-track reel-to-reel in guitarist Damon Tutunjian's Mission Hill apartment with drum parts recorded at M.I.T. by WMBR DJ John McGhee. Two more songs were recorded at Fort Apache Studios by sound engineer Tim O'Heir and mixed at Q Division Studios by Rich Costey, with whom the band would continue to work for over a decade. The album's other songs were created on a 4-track cassette recorder by Tutunjian at home.
NP-completeness While a method for computing the solutions to NP-complete problems using a reasonable amount of time remains undiscovered, computer scientists and programmers still frequently encounter NP-complete problems. NP-complete problems are often addressed by using heuristic methods and approximation algorithms.
What To Do About Them The band sequenced the songs on "What To Do About Them" in a way that created an arc in fidelity—from studio to 8-track to 4-track to 8-track to studio, and so on—and linked songs with field recordings and non-sequiturial soundbites as transitions. The song "Tall Ships" opens the record by sampling a pack of feral dogs howling. "Her Life of Artistic Freedom" is a home recording of solo guitar and voice set to the beat of a skipping record. On vinyl releases, the song played out into a locked groove that ended the side of the record. The lo-fi track "Cousteau" is framed by bits of dialogue and magnetic tape noises, ending in a warbled demo recording of the band's song "Jeremy Parker," a studio version of which would appear on the next Swirlies release, "Blonder Tongue Audio Baton".
P versus NP problem It was shown by Ladner that if P ≠ NP then there exist problems in NP that are neither in P nor NP-complete. Such problems are called NP-intermediate problems. The graph isomorphism problem, the discrete logarithm problem and the integer factorization problem are examples of problems believed to be NP-intermediate. They are some of the very few NP problems not known to be in P or to be NP-complete.
P-complete Some NP-problems are not known to be either NP-complete or in P. These problems (e.g. factoring) are suspected to be difficult. Similarly there are problems in P that are not known to be either P-complete or NC, but are thought to be difficult to parallelize. Examples include the decision problem forms of finding the greatest common divisor of two numbers, and determining what answer the extended Euclidean algorithm would return when given two numbers.
P versus NP problem To attack the P = NP question, the concept of NP-completeness is very useful. NP-complete problems are a set of problems to each of which any other NP-problem can be reduced in polynomial time, and whose solution may still be verified in polynomial time. That is, any NP problem can be transformed into any of the NP-complete problems. Informally, an NP-complete problem is an NP problem that is at least as "tough" as any other problem in NP.
NP (complexity) The complexity class P is contained in NP, but NP contains many important problems, the hardest of which are called NP-complete problems, whose solutions are sufficient to deal with any other NP problem in polynomial time. The most important open question in complexity theory, the P versus NP ("P=NP") problem, asks whether polynomial time algorithms actually exist for solving NP-complete, and by corollary, all NP problems. It is widely believed that this is not the case.
Shortest path problem The travelling salesman problem is the problem of finding the shortest path that goes through every vertex exactly once, and returns to the start. Unlike the shortest path problem, which can be solved in polynomial time in graphs without negative cycles, the travelling salesman problem is NP-complete and, as such, is believed not to be efficiently solvable for large sets of data (see P = NP problem). The problem of finding the longest path in a graph is also NP-complete.
P versus NP problem The first natural problem proven to be NP-complete was the Boolean satisfiability problem. As noted above, this is the Cook–Levin theorem; its proof that satisfiability is NP-complete contains technical details about Turing machines as they relate to the definition of NP. However, after this problem was proved to be NP-complete, proof by reduction provided a simpler way to show that many other problems are also NP-complete, including the subset sum problem discussed earlier. Thus, a vast class of seemingly unrelated problems are all reducible to one another, and are in a sense "the same problem".
NP-equivalent In computational complexity theory, the complexity class NP-equivalent is the set of function problems that are both NP-easy and NP-hard. NP-equivalent is the analogue of NP-complete for function problems.
Co-NP-complete A decision problem "C" is co-NP-complete if it is in co-NP and if every problem in co-NP is polynomial-time many-one reducible to it. This means that for every Co-NP problem "L", there exists a polynomial time algorithm which can transform any instance of "L" into an instance of "C" with the same truth value. As a consequence, if we had a polynomial time algorithm for "C", we could solve all co-NP problems in polynomial time.