Download Module 13 • Studying the internal structure of REC, the

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Document related concepts

Pattern recognition wikipedia, lookup

Lateral computing wikipedia, lookup

Pattern language wikipedia, lookup

Knapsack problem wikipedia, lookup

Computational electromagnetics wikipedia, lookup

Mirror symmetry (string theory) wikipedia, lookup

Travelling salesman problem wikipedia, lookup

Perturbation theory wikipedia, lookup

String (computer science) wikipedia, lookup

Mathematical optimization wikipedia, lookup

Inverse problem wikipedia, lookup

Multiple-criteria decision analysis wikipedia, lookup

Theoretical computer science wikipedia, lookup

Halting problem wikipedia, lookup

Computational complexity theory wikipedia, lookup

Transcript
Module 13
• Studying the internal structure of REC, the
set of solvable problems
– Complexity theory overview
– Automata theory preview
• Motivating Problem
– string searching
1
Studying REC
Complexity Theory
Automata Theory
2
Current picture of all languages *
All Languages
REC RE-REC
Solvable
Half
Solvable
All languages - RE
Not even half solvable
Which language class should be studied further?
3
Complexity Theory *
REC RE - All languages
REC
- RE
• In complexity theory, we differentiate problems
by how hard a problem is to solve
– Remember, all problems in REC are solvable
• Which problem is harder and why?
– Max:
• Input: list of n numbers
• Task: return largest of the n numbers
– Element
• Input: list of n numbers
• Task: return any of the n numbers
4
Resource Usage *
• How do we formally measure the hardness
of a problem?
– We measure the resources required to solve
input instances of the problem
• Typical resources are?
• Need a notion of size of an input instance
– Obviously larger input instances require more resources to
solve
5
Poly Language
Class *
Poly
REC RE - All languages
REC
- RE
Rest of REC
Informal Definition: A problem L1 is easier than problem L2
if problem L1 can be solved in less time than problem L2.
Poly: the set of problems which can be solved in polynomial time
(typically referred to as P, not Poly)
Major goal: Identify whether or not a problem belongs to Poly
6
Working with Poly *
Poly
Rest of REC
• How do you prove a problem L is in Poly?
• How do you prove a problem L is not in
Poly?
– We are not very good at this.
– For a large class of interesting problems, we
have techniques (polynomial-time answerpreserving input transformations) that show a
problem L probably is not in Poly, but few
which prove it.
7
Examples *
• Shortest Path Problem
• Input
– Graph G
– nodes s and t
• Task
– Find length of shortest
path from s to t in G
Poly
Rest of REC
• Longest Path Problem
• Input
– Graph G
– nodes s and t
• Task
– Find length of longest
path from s to t in G
Which problem is provably solvable in polynomial time?
8
Automata Theory
REC RE - All languages
REC
- RE
• In automata theory, we will define new models of
computation which we call automata
– Finite State Automata (FSA)
– Pushdown Automata (PDA)
• Key concept
– FSA’s and PDA’s are restricted models of computation
• FSA’s and PDA’s cannot solve all the problems that C++
programs can
– We then identify which problems can be solved using
FSA’s and PDA’s
9
New language
classes *
REC RE - All languages
REC
- RE
• REC is the set of solvable languages when we
start with a general model of computation like
C++ programs
• We want to identify which problems in REC can
be solved when using these restricted automata
Solvable Solvable
by FSA’s by
and PDA’s PDA’s
Rest of REC
10
Recap *
• Complexity Theory
– Studies structure of the set of solvable problems
– Method: analyze resources (processing time) used to
solve a problem
• Automata Theory
– Studies structure of the set of solvable problems
– Method: define automata with restricted capabilities
and resources and see what they can solve (and what
they cannot solve)
– This theory also has important implications in the
development of programming languages and compilers
11
Motivating Problem
String Searching
12
String Searching
• Input
– String x
– String y
• Tasks
– Return location of y in
string x
– Does string y occur in
string x?
• Can you identify
applications of this
type of problem in real
life?
• Try and develop a
solution to this
problem.
13
String Searching II
• Input
– String x
– pattern y
• Pattern
– [anything].html
– $EN4$$
• Tasks
• Do you see
applications for this in
– Return location of y in
string x
real life?
– Does pattern y occur in • Try and develop a
string x?
solution to this
problem.
14
String Searching
• We will show an easy way to solve these
string searching problems
• In particular, we will show that we can
solve these problems in the following
manner
– write down the pattern
– the computer automatically turns this into a
program which performs the actual string
search
15