CS 454 Theory of Computation

rucksackbulgeΤεχνίτη Νοημοσύνη και Ρομποτική

1 Δεκ 2013 (πριν από 3 χρόνια και 6 μήνες)

98 εμφανίσεις


CS 454 Theory of Computation






Sonoma State University, Fall 2011

Instructor: B. (Ravi) Ravikumar

Office: 116 I Darwin Hall

Original slides by Vahid and Givargis, Mani Srivastava and others

Extensive editing by Ravikumar


Lecture 1


Goals:



overview & logistics (45 minutes)



Quiz 0 (15 minutes)



Quiz 0 discussion (30 minutes)



chapter 0 (if any time left)


What is theory of computation?


Theory of computation deals with computational models


what they can and can’t do.


Computational models: instead of defining it, we will give
some examples.



Cellular automaton



L
-
system



Boolean circuit with restrictions

Course overview




finite automata



DFA, NFA, regular expressions



proof of equivalence, algorithms for conversions



what can’t be done by FA?



DFA minimization




context
-
free languages



grammar, pushdown automaton



equivalence



what can’t be done by
cfg’s
?



Turing machines



computability



variations of Turing machines



reductions,
unsolvability



other computational models




Complexity Theory



time complexity



NP
-
completeness




Other topics



applications (e.g. cellular automata, compilers etc.)



cryptography, interactive proof systems



biologically inspired models of computation



Chapter 0



Sets



Set operations and set relations



union, intersection, complement



member, subset, equality



Venn diagrams


Problem:


Show that (A U B) C = (A C)U (B C)


Proof:


Let x be in LHS set. Then, x is in both A U B and is in
C. i.e., x is A and C, or x is in B and C. I.e., x is in A C
or in B C. This means,

x is in (A C)U (B C). Converse is similar.









Sequences and
tuples

A sequence is a list of objects where order is important.
Thus, <1, 2, 4, 10> is a sequence that is different than <2,
1, 4, 10>.


A finite sequence of length k is called a k
-
tuple
. Thus, the
above sequence is a 4
-
tuple.




Power
-
set of a set A is the set of all its subsets.

Ex: A = {1, 2} P(A) = {{1}, {2}, {1,2},
f
}




Cartesian product



A X B = {<
i,j
> |
i

is in A and j is in B }


Example: A = {a, b, c}, B = { 1, 2}


A X B = {(a,1), (a,2), (b,1), (b,2), (c,1), (c,2)}


A X A X … X A is often denoted by
A
k
.


Functions and relations



A relation from set A to set B is a subset of A X B.



A function (from A to B) is a relation R in which for
every
i
, there is a unique j such that <
i,j
> is in R.



onto



one
-
one



bijective

function

Some special relations:



equivalence relation



partial
-
order relation


Graphs:



Definition



Example


Strings and languages



Boolean logic



quantifiers


Summary of mathematical terms

Definitions, theorems and proofs



Definitions:
A definition is the way to describe an object
in a way that its characteristics are completely captured in
the description.




Assertions:
Mathematical statement expresses some
property of a set of defined objects. Assertions may or may
not be true.




Proof:
is a convincing logical argument that a statement
is true. The proofs are required to follow rigid rules and
are not allowed any room for uncertainties or ambiguities.




Theorem:
is a proven assertion of some importance.


Rules for carrying out proof


Usually assertions are compound statements that are
connected using Boolean connectives and quantifiers. You
can use theorems of Boolean logic in the proof.




For example, if the assertion is P or Q,

you can show it as follows: Suppose P is not true. Then, Q
must be true.




Similarly, to show P


Q, you assume P is true. From
this, show Q is true. To show that P
<
-
>

Q, you should
show P


Q and Q


P.

Example:




Every positive integer is either a prime, or is a product
of two integers both of which are strictly smaller than
itself.


Is this a definition? Is it an assertion?



Example:




Every positive integer is either a prime, or is a product
of two integers both of which are strictly smaller than
itself.


It is an assertion. Is it a true assertion?


Example:




Every positive integer is either a prime, or is a product
of two integers both of which are strictly smaller than
itself.



Yes, it is a true assertion.



How to prove this assertion?


Example:




Every positive integer is either a prime, or is a product
of two integers both of which are strictly smaller than
itself.



Yes, it is a true assertion.



How to prove this assertion?



This requires knowing the definition of a prime number.

Prime number: A number x is prime if it has exactly two
divisors, namely 1 and x.


Most of the theorems assert properties of a collection of
objects. If the collection is finite, usually it is easy: you
show it for every member one by one. Need for proof
really arises when the assertion is of the form : “Every
object in a set X has some property Y.” where X is an
infinite set.


Now you can’t prove it one by one!




Proof techniques: (not an exhaustive list!)



proof by construction



proof by contradiction



proof by induction

Proof by construction:


Definition: A
k
-
regular

graph is a graph in which every
node has degree k.


Theorem: For each even number n greater than 2, there
exists a 3
-
regular graph with n nodes.


The construction below needs no further explanation.


Proof by contradiction:



Theorem:
is not rational, i.e., it can’t be written as a
ratio of two integers.


Proof is presented in page 22.


Exercise:
Use the same idea to show that is not
rational.

2
3
Proof by induction.


Example 1:

Formula for mortgage calculation.



Page 24 of text.


Example 2:
Show that the set of all binary strings of
length n can be arranged in a way that every adjacent
string differs in exactly one bit position, and further the
first and the last string also differ in exactly one position.


For n = 2, one such is 00, 01, 11, 10.



Assertion: Every integer is a sum of squares of two integers.

This is not true. To
disprove

it, it is enough to find one integer
(counter
-
example)

that can’t be written as sum of two squares.

Consider 3. Suppose x
2

+ y
2

= 3 for some integers x and y. This
means, x
2

is either 0, 1 or 2. (Why not any other number?)

case 1: x
2

is 0. Thus y
2

is 3. But from previous slide, we know that
there is no integer y such that y
2

= 3.

Case 2: x
2

is 1. Thus y
2

is 2. But from previous slide, we know that
there is no integer y such that y
2

= 2.

Case 3: x
2

is 2. But from previous slide, we know that there is no
integer x such that x
2

= 2. End of proof.