Transcript Slide 1
TM, DTM, NP, NPC, BB(n)
C(L, t), reducibility
Advanced Algorithms
By Me Dr. Mustafa Sakalli
March, 19, 2012.
• Halting Problem
• Superpolynomial time algorithms
• Easy and hard problems
• Some interesting problems
Shortest vs. longest simple paths
Euler tour vs. hamiltonian cycle
2-CNF satisfiability vs. 3-CNF satisfiability
• The classes P and NP and NP-completeness
Class P, Polynomial-time algorithms: problems that are solvable
in polynomial time. On inputs of size n, the worst-case running
time is O(nk) for some constant k.
Class NP: those problems that are "verifiable" in polynomial
time.
Class NPC: those problems that are in NP and are as "hard"
as any problem in NP.
Introduction
• Computational problems for which
– fast algorithms have never been found,
– but neither have such algorithms been proved to be unattainable.
• Examples:
– The primality-testing problem, for which the best-known algorithm on the brink
of polynomial time, and
– The integer-factoring problem, for which the known algorithms in a more
primitive condition.
• Many such problems, not just a list of seemingly difficult computational
problems, in fact bound together by strong structural ties. Called the NPcomplete problems:
• The traveling salesman problem (‘TSP’): Given n points in the plane
(‘cities’), and a distance D. Queston: Is there a tour that visits all n of the
cities, returns to its starting point, and has total length D?
• Graph coloring: Given a graph G and an integer K. Can the vertices be
properly colored in K of colors? Kn such possibilities, n the number of the
vertices.
• Independent set: Given a graph G and an integer K. Is there a V(G)
containing an independent set of K vertices?
Introduction
• Bin packing: Given a finite set S of positive integers, and an
integer N (the number of bins). Does there
• exist a partition of S into N or fewer subsets such that the
sum of the integers in each subset is K? In
• other words, ‘pack’ the integers of S into at most N bins with
the capacity K?
• These are hard problems, but there can be easy instances, ie
if the graph G happens to have no edges at all, or a very few
of them, then it will be very easy to figure out a possible
coloring, or determine the presence of an independent set of
K vertices.
• Suppose a manufacturer gives a warranty of the worst case
performance for independent set, nK …ie 1000n8 …
Adjacency matrix dimension n, the element number would be
n2, hence the input size B=n1/2. B bits. Time T=BK/2 , which is
polynomial if K would have been fixed. But our focus is all the
instances of the independent set problem.
Some properties of the NPcomplete problems
• The problems computationally very difficult, for any of
which no polynomial time algorithms have been found.
Which means If a fast algorithm could be found for one of
which then there would be fast algorithms for all of them.
• But not any proof given yet indicating that polynomial
time algorithms for these problems do not exist. Similarly,
if it could be proved that no fast algorithm exists for one
of the NP-complete problems, then there could not be a
fast algorithm for any other of those problems.
• "The question of the existence or nonexistence of
polynomial-time algorithms for the NP-complete problems
probably rates as the principal unsolved problem that
faces theoretical computer science today.“ Page: 105.
• Our next task will be to develop the formal
machinery that will permit us to give
precise definitions of all of the concepts
that are needed. In the remainder of this
section we will discuss the additional ideas
informally, and then in section 5.2 we’ll
state them quite precisely.
Decision problems vs. optimization problems
Optimization problems, find the feasible solution with the best value.
Decision problems, verifying the membership with the answer of "yes" or "no"
•
Casting an optimization problem into a related decision problem
– by imposing a bound on the value of it, to be optimized.
– complexity of optimization problem is equal to complexity of related
decision problem.
– Shortest path: does there exist a path from vertex u to v of length at most
k?
Reductions
A procedure that transforms any instance α of decision problem A into
some instance β of decision problem B with the characteristics:
1 The transformation takes polynomial time.
2 The answers are the same. That is, the answer for α is "yes" if and
only if the answer for β is also "yes."
A string of an Instance: for a particular problem
Algorithm for the reduction, Polynomial-time reduction algorithm:
Idea behind a decision and optimization problems
• Many of the problems can be phrased as decision
problems or as optimization problems.
• A decision problem is one that asks only for a yes-or-no
answer:
– Can this graph be 5-colored?
– Is there a tour of length 15 miles?
– Is there a set of 67 independent vertices?
• An optimization problem is one that asks the value that
provides on of the feasible solution.
– What is the smallest number of colors with which G can be
colored?
– What is the length of the shortest tour of these cities?
– What is the size of the largest independent set of vertices in G?
• Usually if we find a fast algorithm for a decision problem
then with just a little more work we will be able to merge it,
to solve the corresponding optimization problem.
Idea behind a decision and optimization problems
• Example: suppose we have an algorithm that solves the
decision problem for graph coloring, and what we want is
the solution of the optimization problem (the chromatic
number).
• A G of 100 vertices, Q: Can the graph be 50-colored?
• If so, then the 1 cr 50. Split the range by 2 for every
run, and keep on asking the question? Yes for second half,
and no for the first half.
• After O(log n) steps we will have found the cr. Hence if
there is a fast way to do the decision problem then there is
a fast way to do the optimization problem. The converse is
true or obvious. Linear Optimization, Simplex, Ellipsoidal
so on.
• Our Attention is on Decision Problems.
What is a language and the class
P, and class NP?
•
Decision problem asking: Question: If a given word (the input string) does or does not
belong to a certain language. The language is the totality of words for which the
answer is ‘Y.’
•
The graph 3-coloring language. Question: Does the vertex adjacency matrix of a
graph represent, if it is 3-colorable. A 3-colorability computation is therefore nothing
but an attempt to discover whether a given word belongs to the dictionary.
•
•
What is the class P?
We say that a decision problem belongs to the class P if there is an algorithm A and a
number c such that for every instance I of the problem the algorithm A will produce a
solution in time O(Bc),
Briefly, P is the set of easy decision problems. Examples: Determining
•
–
–
–
–
–
–
Relative primality of given two integers.
Divisibility of an integer by another.
K=2 colorablity of a G.
A flow of value greater than K in a network.
K - connectedness of a G.If a G be disconnected by the removal of K or fewer edges.
A matching of K – or more edges in a bipartite G.
What is a language and the class
P, and class NP?
• What is the class P?
• We say that a decision problem belongs to the class P if
there is an algorithm A and a number c such that for
every instance I of the problem the algorithm A will
produce a solution in time O(Bc),
• Briefly, P is the set of easy decision problems. Examples:
Determining
–
–
–
–
–
Relative primality of given two integers.
Divisibility of an integer by another.
K=2 colorablity of a G.
A flow of value greater than K in a network.
K - connectedness of a G.If a G be disconnected by the removal
of K or fewer edges.
– A matching of K – or more edges in a bipartite G.
• NP is a class of Decision Problems for which it is easy to check the
correctness of a claimed answer. Not addressing to find a solution, but
only verifying that an alleged solution is correct.
• A decision problem Q belongs to NP if there is an algorithm A that does
the following:
– Associated with each word of the language Q (i.e.,with each instance I for
which the answer is ‘Yes’) there is a certificate C(I) such that when the pair
(I,C(I)) are input to algorithm A it recognizes that I belongs to the language Q.
– If I is some word that does not belong to the language Q then there is no
choice of certificate C(I) that will cause A to recognize I as a member of Q.
– Algorithm A operates in polynomial time. Verifiable
• An analogy of the distinction between the classes of P and NP.
– Reading through a difficult proof of some mathematical theorem, and
verifying its correctness, which is much easier than going through the
invention of the idea as it happened.
– Some proofs are extremely time consuming even to check (the proof of the 4color theorem!), and some computational problems are not even known to
belong to NP, let alone to P.
• The problems in class P are the problems easy to find a solution, and
those in NP are the problems where it’s easy to check a solution that
may have been very tedious to find.
Consider the graph coloring problem to be the decision problem Q.
Certainly the graph coloring problem is not known to be in P. However, in
NP.
• A hard method of constructing certificates that proves it.
• Suppose G is some graph K-colorable.
• The certificate of G is a list of the colors assigned to each vertex in some
proper K-coloring of the vertices.
• How to produce that list?
• Not easy to construct a certificate. One needs to solve a hard problem for
every entry of G. DP memoization?.
• Then checking the correctness of an alleged answer is
– either show that the color of each vertex is assigned a proper color of Kcoloring,
• or go to hard path to provide a certificate, and only check first that every
vertex has only one color (as listed) and check that no more than K
colors have been used altogether, and finally check that every edge e of
G is terminated by two different colors. All checking takes a polynomial
time, and hence the graph coloring problem belongs to NP.
For the tsp, suppose we produce a certificate that contains a tour, whose
total length is K.
• The checking algorithm A would then verify that the tour really does visit
all of the cities and really does have total length K. without seeking all
possible K solutions through each of the vertices. Polynomial.
• The TSP, therefore, also belongs to NP.
• How could a problem fail to belong to NP?’
• Try this decision problem: an instance I of a G with n cities and a positive
number K.
• The question is ‘Is it true that there is not a tour of all of these cities
whose total length is less than K?’ This is a kind of a negation of the
tsp.
• Does the negated TSP belong to NP? If so, there must be an algorithm A
and a way of making a certificate C(I) for each instance I so that absence
of such a tour can be verified. Any certificate or even any algorithm to
generate C is known yet. Therefore, not known if this negation of the
tsp belongs to NP.
• Problems belong to NP but not immediately obvious? Pratt’s
algorithm is a method of producing a certificate with a quick
check that a given integer is prime.
• The decision problem ‘Given n, is it prime?’ is thereby
revealed to belong to NP, although that fact wasn’t obvious at
a glance.
• 1903 a speaker announced in a math convention that 267 - 1 =
multiplication of two long prime numbers. Listeners must
work this one out, polynomial checking A the claimed result,
and determining yes or no.
• But in fact if one needs work very hard to find these
numbers.
• Verifying compositeness of n, Certification C(n), r 1, s 1, n
= rs.
• Checking algorithm for a pair of primes, verify that
– r 1, s 1
– n = rs.
The hard part is to convince an audience that "a certain integer n is a prime
number”.
• The rules: Allowed to do any immense amount of calculation beforehand,
and the
• results can be listed on a certificate C(n) that accompanies the integer n.
However, the audience, will need to do only a polynomial amount of
computation in order to convince themselves that n is prime. Or accept
the fact.
A primality-checking algorithm A with the following properties:
1. A ( n, C(n)): Inputs to A are the integer n and a certain certificate C(n).
2. If n is prime then A for the given inputs (n, C(n)) results on the output ‘n is
prime.’
3. If n is not prime then for every possible certificate C(n) the action of A on
the inputs (n, C(n)) results in the output ‘primality of n is not verified.’
4. Algorithm A runs in polynomial time.
Now the question is, does such a procedure exist for primality verification?
The answer is affirmative. Every prime number has a succinct certificate
1975, Pratt. This has a great importance for the developments of NPC.
• The next lemma is a kind of converse to ‘Fermat’s little theorem’.
Fermat’s little theorem.
• Lemma. Let p be a positive integer. Suppose
there is an integer x such that xp−1 = 1 (mod p)
and such that for all divisors d of (p − 1), d < (p −
1), we have xd 1 (mod p). Then p is prime.
• Proof: gcd(x, p) = 1, and suppose g = gcd(x, p).
Then x = gg', p = gg''.
• Since xp−1 = 1(mod p) we have xp−1 = 1+tp and
(gg')(p−1) − tgg'' = 1. The left side is a multiple of
g. The right side is not, unless g = 1.
Fermat’s little theorem.
•
•
•
•
•
•
•
•
•
Lemma. Let p be a positive integer. Suppose there is an integer x such that xp−1 = 1
(mod p) and such that for all divisors d of (p − 1), d < (p − 1), we have xd 1 (mod p).
Then p is prime.
Proof: p | np − n
Case: Let p | n, then, obviously, p | np − n, and we are done.
Case p ¬| n.
Consider n, 2n, 3n, . . . , (p − 1)n
By the Division Algorithm we have
n = p k1 + r1,
p | n - r1,
…,
(p-1)n = p k(p-1) + r(p-1),
p | (p-1)n - r(p-1),
•
•
0<r(p-1)p-1
r(p-1)0, since otherwise p | i n, therefore p | i, or p | n,
•
•
•
Let a, b, c, d, and p be integers such that
p | (a − b) and p | (c − d).
Then p | (ac − bd).
•
•
•
p | [(p − 1)! np−1 − (p − 1)!].
p | (p − 1)! (np−1 − 1).
p ¬| (p − 1)!, then p | (np−1 − 1).
For the tsp, suppose we produce a certificate that contains a tour, whose total length is K.
•
The checking algorithm A would then verify that the tour really does visit all of the cities and really does
have total length K. without seeking all possible K solutions through each of vertices.
•
•
•
•
The TSP, therefore, also belongs to NP.
How could a problem fail to belong to NP?’
Try this decision problem: an instance I of a G with n cities and a positive number K.
The question is ‘Is it true that there is not a tour of all of these cities whose total length is less than K?’
This is a kind of a negation of the tsp.
•
Does the negated TSP belong to NP? If so, there must be an algorithm A and a way of making a
certificate C(I) for each instance I so that absence of such a tour can be verified. Any certificate or even
any algorithm to generate C is known yet. Therefore, not known if this negation of the tsp belongs to
NP.
•
Problems belong to NP but not immediately obvious? Pratt’s algorithm is a method of producing a
certificate with a quick check that a given integer is prime.
The decision problem ‘Given n, is it prime?’ is thereby revealed to belong to NP, although that fact wasn’t
obvious at a glance.
•
•
•
•
•
•
•
•
•
•
It is very clear that PNP. Indeed if Q P is some decision problem then we can verify membership in the
language Q with the empty certificate. That is, we don’t even need a certificate in order to do a quick
calculation that checks membership in the language because the problem itself can be quickly solved.
It seems natural to suppose that NP is larger than P. That is, one might presume that there are problems
whose solutions can be quickly checked with the aid of a certificate even though they can’t be quickly
found
in the first place.
No example of such a problem has ever been produced (and proved), nor has it been proved that no
such problem exists. The question of whether or not P=NP is the one that we cited earlier as being
perhaps
the most important open question in the subject area today.
It is fairly obvious that the class P is called ‘the class P’ because ‘P’ is the first letter of ‘Polynomial
Time.’ But what does ‘NP’ stand for? Stay tuned. The answer will appear in section 5.2.
• Whereevery I travel this world, epics lyrics.
Uncountable SET-not enumerable
• A set is uncountable if its cardinal number is larger than that of the set of
all cardinal numbers.
• Its characterization iff any holds..
– No injective correspondence (f) from X to the set of natural numbers.
– X is nonempty and there is surjective function from the set of natural
numbers to X.
– The cardinality of X is neither finite nor equal to the cardinality of natural
numbers!!
– The cardinality of X is strictly grater than cardinality of natural number.
• If cardinality of subset of a set Y is infinite, than set Y is uncountable.
• Cantor’s diagonal argument.
• Uncountable sets
– R, the cardinality of R (c or 2N0, ]1 - beth-one) is called cardinality of the
continuum. ]2 beth-two cardinality of more uncountable numbers.
– Cantor set that is an uncountable subset of R and has Hausdorff dimension
number between 0 and 1. (Fact: Any subset of R of Hausdorff dimension
greater than 0 must be uncountable).
– Earlier Cantor poses question if ]1 = N1 (aleph1), cardinality of ordinal
numbers,
– First in the list of Hilbert’s 23 questions, 1900.
Schubfachprinzip drawer principle
• n pigeons > m nests. 10 to 9, at least one nest
must be shared. At least one box must contain
no fewer than ceiling(n/m), and at least one box
must contain no more than floor(n/m).
• Collision probability with a uniform probability of
1/m is equal to
• 1-{m(m-1)..(m-n+1)}/mn
• If the cardinality of set A is greater than those of
set B, then there is NO injection from A to B.
Numbers that cannot be counted cannot be computed, but
infinite c programs can be counted.
• static void Main() 1/7..
• { Console.Write("0.");
while (true) Console.Write("142857");
• }
• Pi
• …
Cantor’s Diagonal Argument
Let T be a set of consisting all infinite sequences, and its
permutations of S=f(i).
• Characteristic function of sequence is a function f(i)=1.
• If X has characteristic function f, then its complement is 1f(i).
Sequence S is countable since possible to associate only
one number n of N for every element of the sequence S.
And T is countable..
• s1 = {1…..0 ….}, f1(i) mapping f(i)
• s2 = {……., ….}, f2(i)
• s3 =
• ..
• Thus new s is not in {s1, s2, s3, ...}.
This contradicts the assumption that the list has contained
all the sequences.
Cantor’s Diagonal Argument
• All the possible countable numbers must be
included in the set, but always possible to obtain
another s0=cmplt{diag(T)}=cmplt(fn(n))=cmplt(sn,n),
which is s0 T. Cmplt referes complement of.
• Therefore T is uncountable, since if S0. included in,
there will be another one which cannot be placed
in one-to-one correspondence with the set of N.
• There is no bijection between N and T, but T may
be subcountable.
• Although both sets are infinite in conclusion there
are more infinite sequences of real numbers than
that could be mapped with natural numbers.
Cantor’s Diagonal Argument
• Some function will not yield bijection
condition, f(t)=0.t, check if t=1000.. And its
cmpt(t).. Two different sequences
corresponds to one number. But possible to
modify function and avoid this situation that
takes us to.. I am not sure how to prove, but
it says that R and T have the same
cardinality which is called generalized
cardinality of continuum which is also given
as cardinality between |S| and |P(s)|.
Cardinality between integers and reals is
called continuum hypothesis.
Inconsistency of notions.
• P(S) is the Power of a set, defined as all the subsets of S. Cantor’s
theorem states that cardinality of P(S) is larger then those of S.
• Suppose f is a function from S to P(S),
• T={s S: sf(s)}, second statement is from Cantor’s
diagonalization. Either s is in T (by the definition, from the same
definition f(s)T, then |T|+|f(s)||P(s)|) or if s is not in T, which is a
violation of the definition, but also and |T|+|s||P(s)|.
• Inconsistency of “set of all sets that do not contain themsleves in the
set”.
• If S were the set of all sets, then P(S) would be bigger than {S and a
subset of S}.
• Similar to Russell's Paradox, based on an unrestricted
comprehension scheme, is contradictory.
• Russell’s Paradox if let D = {x| x not in x}.
Then D in D iff D not in D, a contradiction.
• For example, the conventional proof of the unsolvability of the
halting problem is essentially a diagonal argument of Cantors arg.
• Also, diagonalization was originally used to show the existence of
arbitrarily hard complexity classes and played a key role in early
attempts to prove P does not equal NP. In 2008, diagonalization was
used to "slam the door" on Laplace's demon.1
Russell's paradox
• The set M is the set of all sets that do not contain themselves as
members. Does M contain itself?
• If it does, it is not a member of M according to the definition. If it does not,
then it has to be a member of M, again according to the definition of M.
Therefore, both of the statements "M is a member of M " and "M is not a
member of M " lead to contradictions.
For example:
• "A is an element of M if and only if A is not an element of A".
• M = {s S| sf(s)}, or M = {x|xx}.
• 1) List of all lists that do not contain themselves.
If the "List of all lists that do not contain themselves" contains itself, then it
does not belong to itself and should be removed. However, if it does not
list itself, then it should be added to itself.
2) Barber paradox
The paradox considers a town with a male barber who shaves all and only
those men who do not shave themselves.
Function x x < 2 is the set of all numbers less
than 2.
Set membership is via application: e member-of S iff
S(e) is true.
Since (Function x x < 2)(1) is true, 1 is in this
"set".
Now consider P = "the set of all sets that do not
contain themselves as members"!:
P = Function x Not(x)(x) (Note, it may make
sense to have a set with itself as member: the set
{{{{...}}}}, infinitely receding, has itself as a
member; this only happens in so-called non-wellfounded set theory).
Now, is P P? Namely is P a member of itself? This is
written:
(function x not(x x)) (function x not(x x)) --if this
were viewed as a D program, it would loop
forever:
Compute Not((Function x Not(x x))(Function x
Not(x x))))
Now, notice we have P is a member of itself if and
only if it isn't, a contradiction!
The computational realization of the paradox is that
the predicate cannot compute to true or false, so
its not a sensible logical statement.
To avoid this problem, Russell developed his theory
of types.
Avoiding Russell's paradox: type theory
and axiomatic set theory
• Old classic set of self-referential paradoxical statements causing
ambiguities that are neither true nor false could be avoided.
• In mathematical terms. the set of all sets that are members of the
themselves, permitting self-referential sets, allowing the set of all
sets that contain themselves as a member.
• But the set of all sets that do not contain themselves as a member?
are they a member of themselves.
• To avoid paradox, Russell with Whitehead propose a type theory, in
which sentences were arranged hierarchically.
• This definition avoids the paradox: the definition of R must now
define R as a set of type k set containing all sets of type k − 1 and
below that do not contain themselves as members. Since R is a type
k set, it cannot contain itself, since it cannot contain any type k sets.
This avoids the possibility of having to talk about “the set of all sets
that are not members of themselves”, because the two parts of the
sentence are of different types - that is, at different levels.
Avoiding Russell's paradox: type theory
and axiomatic set theory
• This definition avoids the paradox: the definition of R
must now define R as a set of type k set containing all
sets of type k − 1 and below that do not contain
themselves as members. Since R is a type k set, it
cannot contain itself, since it cannot contain any type k
sets. This avoids the possibility of having to talk about
“the set of all sets that are not members of themselves”,
because the two parts of the sentence are of different
types - that is, at different levels.
• Another approach to avoid such types of paradoxes was
an axiomatic set theory, proposed by Ernst Zermelo.
This theory determines what operations were allowed
and when.
Some Logics used in
axiomatizations of mathematics
• A logic usually refers to a set of rules about constructing
valid sentences. Here are a few logics. Propositional
logic concerns sentences such as (p ¬q) (¬p r)
where p, q, r are boolean variables. Recall that the SAT
problem consists of determining the satisfiability of such
sentences. In first order logic, the symbols allowed are
relation and function symbols as well as quantification
symbols and . For instance, the statement xS(x) x
is a first order sentence in which x is quantified
universally, S() is a unary relation symbol and is a
binary relation. Finally, second order logic allows
sentences in which one is allowed quantification over
structures, i.e., functions and relations. An example of a
second order sentence is SxS(x) x, where S is a
unary relation symbol.
Corollary: There are uncountably
many subsets of N. D:\godel.html
• Hence one must accept that not possible to comprehend
the list of comprehensible sequences.
• The same applies to "sequences which God can
comprehend". Thus omniscience has some limits.
Godel showed that a formal system that is both complete and
consistent could not be created since he proved that any
formal system which is complete cannot be prevented from
including self-referential statements. The way that happens
is through something called models - a formal system is only
valid if there is a model which fits its system of rules. If a
system is capable of being represented by a model which is
complete, then it is also capable of being represented by a
model which encodes self-referential statements, and thus
comes the self referential paradox.
Alan Turing and others were interested in with a mechanical
perfect complete computing device. If such a system exists,
then one can use a computer program with the rules of that
system to enumerate every true statement - or can write a
program which can take any statement as input, and tell
whether or not that statement is true. REDUCTION.
Which was something not possible as proved by Godel. But
Turing and others found an easier way to prove its
impossibility: the halting problem.
The halting problem considers a simple question: Write a
program which looks at any arbitrary computer programs,
and determines whether or not any other prg will eventually
stop when it is run for some input.
Computing system S(p,i), which computes a function with a
pair of inputs that are a program p, and an input i for that
program of p, then, we are writing a program P which will
take a pair (Sj(q,i), j) as an input, and gives an answer of
TRUE if S(q,i) eventually halts.
By feeding the program itself we drive it into a never ending
status which means halting problem cannot return an answer
which means it will never return a solution, therefore problem
is unsolvable. Contradiction that can be also justified with
Cantor’s digitalization, that is also Godel’s incompleteness.
P() = S(i, i)+ 1, if S(i, i)={0, 1} P={1,0}.
Question a program that is going to generate P, cannot
generate P, therefore S is incomplete.
• S is a collection of the objects that are members of the set S.
• fs(i) is a function which takes input iN, and returns “True 1 or
False 0" (decision) for values that are/aren't members of the
set, respectively.
Define a function g which just asks, what does fs return if you
give it ‘sS’ as an input?
• 1) If fs(s) returns true, then g(s) returns True; if fs(s) returns
False, then g(s) also returns False (declining f’s wrong
decision, since sS).
• 2) Think reverse scenario. sS, If fs(s) returns True, then g(s)
must return False.
• 1- g(s) is then a confirmation function for the set of all sets
that do contain themselves as members.
• 2- g(s) is also a confirmation function for the set of all sets
that donot contain themselves as members.
• Is g a member of itself? There are two different valid
functions fitting to the definition of g - one which contains
itself, and the other which doesn't contain itself: a flip of g: g'.
• Is g a member of itself? There are two different valid
functions fitting to the definition of g - one which contains
itself, one which doesn't. but just a flip of g: g'.
• g‘(s) is the function for the set of all sets that do not
contain themselves as members. if g'(s) returns true, s
does not contain itself as member of S, that is s S.
• Suppose s=g’, flipping regions.
• Inconsistency of g'. (Russel’s paradox): if g'(g') returns
true, then g' is a member of itself, which is wrong, so
g'(g') should have been false. And if g'(g') returns false,
then that means that g' is not a member of itself, which
means that g'(g') should have returned true.
• We say that the elements of a set can be counted if they can
be listed in a single sequence. N, neg or positive wouldn’t
matter.
• Cantor’s D.
• Anything that can be computed according to a finite list of
rules, can be computed by one of TM. Consistent
• Briefly, a Turing machine can be thought of as a black box,
which performs a calculation of some kind on an input
number. If the calculation reaches a conclusion, or halts
then an output number is returned.
• One of the consequences of Turing's theory is that there is a
Universal (GENERIC) Turing machine, in other words one
which can simulate all possible Turing machines. This
means that we can think of the Turing machines as
countable and listed T1, T2,... by a Universal Machine
through a sort of alphabetical listing. Turing used this to
describe his own version of Gödel's Theorem: that there is
no mechanical procedure for telling whether a Turing
machine will halt on a given input: the Halting Problem.
• The set of functions is uncountable, the set of turing machines
(programs) is countable, therefore there are more functions than
programs. By the diagonal argument Turing proves that the
existence of a TM that decides the halting problem is contradictory.
• Let's represent the result of using the nth Turing machine, Tn on the
input i as Tn(i). Suppose that there was a rule or procedure for
deciding whether or not Tn(i) halts for all values of n and i.
• But then by a similar diagonalising procedure, we can define a new
Turing machine, say D, which will halt for all inputs and return the
following output for input i:
• 0 if Ti(i) does not halt.
• Ti(i)+1 if Ti(i) does halt.
• But this machine D must be one of those machines, in other words it
must be Td for some d. However, we just defined it to give a different
answer from Td with input d. Contradiction.
• The extra sophistication here over the original diagonalising
argument lies in all the listing done is itself computable and any
machine Tn may or may not halt in carrying out its computations.
None of this enters into Cantor's original diagonal argument.
Computable sequences
• A sequence f(i) is computable if there is a program (Machine) for
given input i computes f(i).
• Gödel proved his Completeness Theorem, namely that a
formula is provable from the axioms iff it is valid.
• Godel's First InCompleteness Theorem. Any adequate
axiomatizable theory is incomplete. In particular the sentence
"This sentence is not provable" is true but not provable in the
theory. Enumerate
• Godel's Second Incompleteness Theorem. In any consistent
axiomatizable theory (axiomatizable means the axioms can be
computably generated) which can encode sequences of numbers
(and thus the syntactic notions of "formula", "sentence", "proof") the
consistency of the system is not provable in the system.
• The Liar Paradox. "Truth" for English sentences is not definable in
English. Proof. Suppose it is. Then so is its complement "False".
Let s be the sentence "This sentence is false" .
Since the phrase "This sentence" refers to s, we have
s iff "This sentence is false" iff "s is false" iff not s.
A contradiction to the statement. “Everything I say is a lie, I am lying”
What can be computable in principle
•
•
•
•
•
Alonzo Church defined the Lambda calculus,
Kurt Gödel defined Recursive functions,
Stephen Kleene defined Formal systems,
Markov defined, Markov algorithms,
Emil Post and Alan Turing defined abstract machines now known as
Post machines and Turing machines.
• Church Turing thesis. Anything computable with these computational
methodologies is computable by a Turing machine.
• Earlier 1900, David Hilbert believed that all of mathematics could be
precisely axiomatized. Once this LIST was completed, there would
be an “effective procedure”, i.e., an algorithm that would accept any
precise mathematical statement as input, and, after a finite number
of steps, it would reach to decision whether the statement was true
or false. YES or NO statement.
• Hilbert was introducing what is called now a decision procedure for
all of mathematics.
Satisfiable and Valid Structures
• “Hilbert considered the validity problem for first-order logic”. First-order
logic is a mathematical language in which most mathematical
statements can be formulated. This is a special case of decision
problem.
• Every statement in first-order logic has a precise meaning in every
appropriate logical structure, i.e., it is true or false in each such
structure. Those statements that are true in every appropriate structure
are called valid. Those statements that are true in some structure are
called satisfiable.
• Notice that a formula, Φ, is valid iff its negation, ¬Φ, is not satisfiable.
• Hilbert calls First Order Logic as entscheidungsproblem.
• In a textbook, Principles of Mathematical Logic by Hilbert and
Ackermann, the authors wrote, “The Entscheidungsproblem is solved
when we know a procedure that allows for any given logical expression
to decide by finitely many operations its validity or satisfiability. SAT or
3SAT.. Etc..
• Axioms and Inference rules.
• 1930, Gödel’s presents a complete axiomatization of first-order logic,
based on the Principia Mathematica by Whitehead and Russell
• He proves in his Completeness Theorem, that a formula is provable
from the axioms iff it is valid.
• In particular, since the axioms are easily recognizable, and rules of
inference very simple, there is a mechanical procedure that can LIST
out all proofs.
• Each line in a proof is either an axiom, or a inference following from the
previous lines by one of the simple rules.
• For any given string of characters, we can tell if it is a proof.
• Thus we can systematically list all strings of characters and check
whether each one is a proof. If so, then we can add the proof's last line
to our list of theorems.
•
In this way, we can list out all theorems, i.e., exactly all the valid
formulas of first-order logic, can be listed out by a simple mechanical
procedure.
• More precisely, the set of valid formulas is the
range of a computable function. In modern
terminology we say that the set of valid formulas of
first-order logic is recursively enumerable (r.e.).
• “Yes, Φ is valid.” However, if Φ were not valid then
we might never find this fact out. The list of all the
non-valid formulas, or the list of all satisfiable
formulas.
• Gödel’s Incompleteness Theorem: there is no
complete and computable axiomatization of the
first-order theory of the natural numbers. That is,
there is no reasonable list of axioms from which we
can prove exactly all true statements of number
theory (Gödel 1931).
• Church and Turing independently prove that the
entscheidungsproblem is unsolvable. Turing’s
unsolvability of halting problem.
Application of halting: Goldbach’ s
conjecture
• Conjecture: (even n) (n2), can be
represented with two prime numbers p and q as
n=p+q.
• That could be disproven via counterexample by
simulating an n-state TM, such that quits (halts-if
the result is TRUE) if finds a counterexample, an
even n (p+q), {p, q}primes. Then the
conjecture will be disproven.
• If the result is FALSE, then the conjecture is
proven. That means halting algorithm for this
problem must not halt.
• FSM, Busy Beaver. Next week.