DOC PREVIEW
Duke CPS 296.1 - Computational problems, algorithms, runtime, hardness

This preview shows page 1-2-3-4-5-6 out of 18 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

CPS 296.1Set Cover (a computational problem)Visualizing Set CoverUsing glpsol to solve set cover instancesAlgorithms and runtimeA simpler problem: sorting (see associated spreadsheet)Polynomial timeTwo algorithms for a problemLinear programming and (mixed) integer programmingReductionsNP (“nondeterministic polynomial time”)P vs. NPNP-hardnessReductions:Independent SetReducing independent set to set coverWeighted bipartite matchingWeighted bipartite matching…CPS 296.1Computational problems, algorithms, runtime, hardness(a ridiculously brief introduction to theoretical computer science)Vincent ConitzerSet Cover (a computational problem)•We are given:–A finite set S = {1, …, n}–A collection of subsets of S: S1, S2, …, Sm•We are asked:–Find a subset T of {1, …, m} such that Uj in TSj= S–Minimize |T|•Decision variant of the problem: –we are additionally given a target size k, and–asked whether a T of size at most k will suffice•One instance of the set cover problem:S = {1, …, 6}, S1 = {1,2,4}, S2 = {3,4,5}, S3 = {1,3,6}, S4 = {2,3,5}, S5 = {4,5,6}, S6 = {1,3}Visualizing Set Cover•S = {1, …, 6}, S1 = {1,2,4}, S2 = {3,4,5}, S3 = {1,3,6}, S4 = {2,3,5}, S5 = {4,5,6}, S6 = {1,3}136 542Using glpsol to solve set cover instances•How do we model set cover as an integer program?•See examplesAlgorithms and runtime•We saw:–the runtime of glpsol on set cover instances increases rapidly as the instances’ sizes increase–if we drop the integrality constraint, can scale to larger instances•Questions:–Using glpsol on our integer program formulation is but one algorithm – maybe other algorithms are faster?•different formulation; different optimization package (e.g., CPLEX); simply going through all the combinations one by one; …–What is “fast enough”? –Do (mixed) integer programs always take more time to solve than linear programs?–Do set cover instances fundamentally take a long time to solve?A simpler problem: sorting (see associated spreadsheet)•Given a list of numbers, sort them•(Really) dumb algorithm: Randomly perturb the numbers. See if they happen to be ordered. If not, randomly perturb the whole list again, etc.•Reasonably smart algorithm: Find the smallest number. List it first. Continue on to the next number, etc.•Smart algorithm (MergeSort):–It is easy to merge two lists of numbers, each of which is already sorted, into a single sorted list–So: divide the list into two equal parts, sort each part with some method, then merge the two sorted lists into a single sorted list–… actually, to sort each of the parts, we can again use MergeSort! (The algorithm “calls itself” as a subroutine. This idea is called r ecursion.) Etc.Polynomial time•Let |x| be the size of problem instance x (e.g., the size of the file in the .lp language)•Let a be an algorithm for the problem•Suppose that for any x, runtime(a,x) < cf(|x|) for some constant c and function fThen we say algorithm a’s runtime is O(f|x|)•a is a polynomial-time algorithm if it is O(f(|x|)) for some polynomial function f•P is the class of all problems that have at least one polynomial-time algorithm•Many people consider an algorithm efficient if and only if it is polynomial-timeTwo algorithms for a problemn = |x|runtime2n22nrun of algorithm 1run of algorithm 2Algorithm 1 is O(n2)(a polynomial-time algorithm)Algorithm 2 is not O(nk) for any constant k(not a polynomial-time algorithm)The problem is in PLinear programming and (mixed) integer programming•LP and (M)IP are also computational problems•LP is in P–Ironically, the most commonly used LP algorithms are not polynomial-time (but “usually” polynomial time)•(M)IP is not known to be in P–Most people consider this unlikelyReductions•Sometimes you can reformulate problem A in terms of problem B (i.e., reduce A to B)–E.g., we have seen how to formulate several problems as linear programs or integer programs•In this case problem A is at most as hard as problem B–Since LP is in P, all problems that we can formulate using LP are in P–Caveat: only true if the linear program itself can be created in polynomial time!NP (“nondeterministic polynomial time”)•Recall: decision problems require a yes or no answer•NP: the class of all decision problems such that if the answer is yes, there is a simple proof of that•E.g., “does there exist a set cover of size k?”•If yes, then just show which subsets to choose!•Technically:–The proof must have polynomial length–The correctness of the proof must be verifiable in polynomial timeP vs. NP•Open problem: is it true that P=NP?•The most important open problem in theoretical computer science (maybe in mathematics?)•$1,000,000 Clay Mathematics Institute Prize•Most people believe P is not NP•If P were equal to NP…–Current cryptographic techniques can be broken in polynomial time–Computers can probably solve many difficult mathematical problems…•… including the other Clay Mathematics Institute Prizes! NP-hardness•A problem is NP-hard if the following is true:–Suppose that it is in P–Then P=NP•So, trying to find a polynomial-time algorithm for it is like trying to prove P=NP•Set cover is NP-hard•Typical way to prove problem Q is NP-hard:–Take a known NP-hard problem Q’–Reduce it to your problem Q •(in polynomial time)•E.g., (M)IP is NP-hard, because we have already reduced set cover to it–(M)IP is more general than set cover, so it can’t be easier•A problem is NP-complete if it is 1) in NP, and 2) NP-hardReductions:To show problem Q is easy:QProblem known to be easy (e.g., LP)reduceTo show problem Q is (NP-)hard:QProblem known to be (NP-)hard(e.g., set cover, (M)IP)reduceABSOLUTELY NOT A PROOF OF NP-HARDNESS:QMIPreduceIndependent Set•In the below graph, does there exist a subset of vertices, of size 4, such that there is no edge between members of the subset?•General problem (decision variant): given a graph and a number k, are there k vertices with no edges between them?•NP-completeReducing independent set to set cover•In set cover instance (decision variant), –let S = {1,2,3,4,5,6,7,8,9} (set of edges), –for each vertex let there be a subset with the vertex’s adjacent edges: {1,4}, {1,2,5}, {2,3}, {4,6,7}, {3,6,8,9}, {9}, {5,7,8}–target size = #vertices - k = 7 - 4 = 3•Claim: answer to both instances is the same (why??)•So which of the two problems


View Full Document

Duke CPS 296.1 - Computational problems, algorithms, runtime, hardness

Documents in this Course
Lecture

Lecture

18 pages

Lecture

Lecture

6 pages

Lecture

Lecture

13 pages

Lecture

Lecture

5 pages

Load more
Download Computational problems, algorithms, runtime, hardness
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Computational problems, algorithms, runtime, hardness and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Computational problems, algorithms, runtime, hardness 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?