Document

advertisement
dKS, Spring 2009
1
Some practical information
• Lecturers: Kristoffer Arnsfelt Hansen and Peter Bro Miltersen.
• Homepage: www.daimi.au.dk/dKS
• Kompendium will be available in GAD after easter.
• Three compulsory assignments, hand in to your teaching assistant
at the tutorial on time.
• Tutorials start second week of quarter. Due to easter, second week
of term starts April 15th.
• Exam is oral, without preparation.
2
“Optimization” – a summary!
Mixed Integer Linear Programming
Exponential time (hard).
…
TSP
…
Polynomial time (easy)
Linear Programming
Min Cost Flow
= reduction
Max Flow
Maximum matching
Shortest paths
3
NP-completeness
…
TSP
Exponential time (hard).
Mixed Integer Linear Programming
Polynomial time (easy)
Linear Programming
Min Cost Flow
= reduction
Max Flow
Maximum matching
Shortest paths
4
Rigorous Formalization
“Problems”
Languages
“Efficient Algorithms”
Turing Machines, P
“Search Problems”
NP
“Reductions”
Polynomial Reductions
“Universal Search Problems”
NPC
5
Problems: Languages
• A language L is a subset of {0,1}*.
• A language models a decision problem:
Members of L are the yes-instances, nonmembers are the no-instances.
• This is the only kind of problem our theory shall
be concerned with!
6
Restriction: Inputs Boolean Strings
• Strings over an arbitrary alphabet can be
represented as Boolean Strings (Ex: ascii,
unicode).
• In reality, computers may only hold Boolean
strings (their memory image is a bit string).
• Arbitrary real numbers may not be represented
but this is intentional!
7
Models of Computation
• Model 1: Our computer holds exact real numbers. The size of the
input is the number of real numbers in the input. The time complexity
of an algorithm is the number of arithmetic operations performed.
• Model 2: Our computer holds bits and bytes. The size of the input is
the number of bits in the input. The time complexity of an algorithm
is the number of bit-operations performed.
• We know an efficient algorithm for linear programming in Model 2
but not model 1.
• The NP-completeness theory is intended to capture Model 2
and not Model 1.
8
How to encode max flow instance?
java MaxFlow 6#0|16|13|0|0|0#0|0|10|12|0|0
#0|4|0|0|14|0#0|0|9|0|0|20
#0|0|0|7|0|4|#0|0|0|0|0|0
9
Restriction: All inputs “legal”.
• Any string should be either a yes-string or
a no-string.
• It would be nice to also have “malformed”
strings.
• However, we shall just lump the
malformed strings with the no-strings.
10
Restriction: Output yes or no
• Suppose we want to consider computing a
function, f: {0,1}* ! {0,1}*.
• Stand-in for f:
Lf = {<x, b(j), y> | f(x)j = y}
11
Restriction: functions
• OPT: Given description of F, f find x 2 F
maximizing f(x).
• There may be several optimal solutions.
OPT does not seem to be captured easily by a
function.
• Stand-in for OPT:
LOPT = { < desc(F), desc(f), b(), b() >
| some x 2 F has f(x) ¸  /  }
12
13
LOPT vs. OPT
• LOPT may be easy to solve even though
OPT is hard to solve, so LOPT is not a
perfect stand-in.
• However, if LOPT has no efficient solution,
then OPT has no efficient solution, so LOPT
can still be used to argue that OPT is hard.
14
Algorithms: Turing Machines
15
Turing Machines
• A Turing machine consists of an infinite tape,
divided into cells, each holding a symbol from
alphabet  that includes 0,1,#.
• A tape head is at any point in time positioned at
a cell.
• A finite control reads the symbol at the head,
updates the symbol at the head and the position
of the head.
16
Finite Control
• Finite set of states Q. The control is in exactly
one of the state. Three special states: start,
accept, reject.
• Transition function:
17
Running the machine on an input
• The input string is placed on the tape (surrounded by
blanks) and the head positioned to the immediate left of
the input. The initial state of the finite control is start.
• If the finite control eventually goes to accept state, the
input is accepted (“the machine outputs yes”).
• If the finite control eventually goes to reject state, the
input is rejected (“the machine outputs no”).
• The machine is said to decide a language L if it accepts
all members of L and rejects all members of {0,1}*-L.
18
Some Turing Machine Applets
http://math.hws.edu/TMCM/java/labs/xTuringMachineLab.html
http://www.igs.net/~tril/tm/tm.html
http://web.bvu.edu/faculty/schweller/Turing/Turing.html
19
If you want to make
rigorous the notion of an
“efficient algorithm” why
do you choose such a
hopelessly inefficient
device ??!?
20
Church-Turing Thesis
Any decision problem that can be solved
by some mechanical procedure, can be
solved by a Turing machine.
21
Polynomial Church-Turing thesis
A decision problem can be solved in
polynomial time by using a reasonable
sequential model of computation if and
only if it can be solved in polynomial time
by a Turing machine.
22
The complexity class P
• P := the class of decision problems (languages) decided
by a Turing machine so that for some polynomial p and
all x, the machine terminates after at most p(|x|) steps on
input x.
• By the Polynomial Church-Turing Thesis, P is “robust”
with respect to changes of the machine model.
• Is P also robust with respect to changes of the
representation of decision problems as languages?
23
Download