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 workof 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