/
CSE 105  theory of computation CSE 105  theory of computation

CSE 105 theory of computation - PowerPoint Presentation

natalia-silvester
natalia-silvester . @natalia-silvester
Follow
349 views
Uploaded On 2018-09-30

CSE 105 theory of computation - PPT Presentation

Fall 2017 httpcsewebucsdedu classesfa17cse105a Todays learning goals Sipser Ch 41 Explain what it means for a problem to be decidable Justify the use of encoding Give examples of decidable problems ID: 683025

decidable dfa input check dfa decidable check input decidability proving state reject problems string encoding accept empty proof wts

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "CSE 105 theory of computation" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

CSE 105 theory of computation

Fall 2017

http://cseweb.ucsd.edu/

classes/fa17/cse105-a/Slide2

Today's learning goals Sipser Ch 4.1

Explain what it means for a problem to be decidable.

Justify the use of encoding.

Give examples of decidable problems.

Use counting arguments to prove the existence of unrecognizable (undecidable) languages.Slide3

At start of CSE 105…

Pick a model of computation

Study what problems it can solve

Prove its limits

Classification

: is input of type A or not?

Decision problem

{ w | w is of type A}

PRIME = { 2, 3, 5, 7, … }

SORTED = { <1,3>, <-1, 8, 17> …}

Decision problems are coded by sets of stringsSlide4

Encoding input for TMs

Sipser p. 159

By definition, TM inputs are

strings

To define TM M:

"On input w …

..

..

For inputs that aren't strings,

we have to

encode the object

(represent it as a string) first

Notation:

<O>

is the

string

that represents

(encodes)

the object O

<O

1

, …, O

n

> is the

single

string that represents the tuple of objects O

1

, …, O

nSlide5

Encoding inputs

Payoff

: problems we care about can be reframed as languages of strings

e.g. "Recognize whether a string is a palindrome."

{ w | w in {0,1}* and w = w

R

}e.g. "Check whether a string is accepted by a DFA."

{ <B,w> | B is a DFA over Σ, w in Σ*, and w is in L(B) }

e.g. "Check whether the language of a PDA is infinite."

{ <A> | A is a PDA and L(A) is infinite}Slide6

Encoding inputs

Payoff

: problems we care about can be reframed as languages of strings

e.g. "Recognize whether a string is a palindrome."

{ w | w in {0,1}* and w = w

R

}

This set is regular and decidable.

This set is regular and not decidable

This set is nonregular and decidable

This set is nonregular and not decidable.

None of the aboveSlide7

Computational problems

A computational problem is

decidable

iff the language encoding the problem instances is decidable Slide8

Computational problems

Sample computational problems and their encodings:

A

DFA

"Check whether a string is accepted by a DFA."

{ <B,w> | B is a DFA over Σ, w in Σ*, and w is in L(B) }

E

DFA

"Check whether the language of a DFA is empty."{ <A> | A is a DFA over Σ, L(A) is empty }

EQDFA "Check whether the languages of two DFA are equal."

{ <A, B> | A and B are DFA over Σ, L(A) = L(B)}..Slide9

Computational problems

Sample computational problems and their encodings:

A

DFA

"Check whether a string is accepted by a DFA."

{ <B,w> | B is a DFA over Σ, w in Σ*, and w is in L(B) }

E

DFA

"Check whether the language of a DFA is empty."{ <A> | A is a DFA over Σ, L(A) is empty }

EQDFA "Check whether the languages of two DFA are equal."

{ <A, B> | A and B are DFA over Σ, L(A) = L(B)}FACT: all of these problems are decidable!Slide10

Proving decidability

Claim:

A

DFA

is decidable

Proof:

WTS that { <B,w> | B is a DFA over Σ, w in Σ*, and w is in L(B) } is decidable. Step 1: construction

How would you check if w is in L(B)?Slide11

Proving decidability

<A, 1> is not in A

DFA

<A, 01> is not in A

DFA

<B, 1> is not in A

DFA

<B, 01> is not in A

DFA

More than one of the above

A

BSlide12

Proving decidability

Define TM M

1

by: M

1

= "On input <B,w>

Check whether input is a valid encoding of a DFA and input string for that DFA. If not, reject.

Simulate running B on w

(by keeping track of states in B, transition function of B, etc.)

When the simulation ends, by finishing to process all of w, check current state of B: if it is final,

accept; if it is not, reject."Slide13

Proving decidability

Step 1: construction

Define TM M

1

by M

1

= "On input <B,w>Check input is a valid encoding of a DFA and input string for that DFA. If not, reject.Simulate running B on w

(by keeping track of states in B, transition function of B, etc.)

When the simulation ends, by finishing to process all of w, check current state of B: if it is final,

accept

; if it is not, reject."

Step 2: correctness proofWTS (1) L(M

1) = ADFA and (2) M1 is a decider.Slide14

Proving decidability

Claim:

E

DFA

is decidable

Proof:

WTS that { <A> | A is a DFA over Σ, L(A) is empty } is decidable. Slide15

Proving decidability

Claim:

E

DFA

is decidable

Proof:

WTS that { <A> | A is a DFA over Σ, L(A) is empty } is decidable.

e.g.< > is in E

DFA

; < > is not in E

DFA

TM deciding EDFA should accept and should rejectSlide16

Proving decidability

Claim:

E

DFA

is decidable

Proof:

WTS that { <A> | A is a DFA over Σ, L(A) is empty } is decidable. Idea: give high-level descriptionStep 1: construction

What condition distinguishes between DFA that accept *some* string and those that don't accept *any*?Slide17

Proving decidability

Claim:

E

DFA

is decidable

Proof:

WTS that { <A> | A is a DFA over Σ, L(A) is empty } is decidable. Idea: give high-level descriptionStep 1: construction

What condition distinguishes between DFA that accept *some* string and those that don't accept *any*?

Breadth first search in transition diagram to look for path from start state to an accepting stateSlide18

Proving decidability

Claim:

E

DFA

is decidable

Proof:

WTS that { <A> | A is a DFA over Σ, L(A) is empty } is decidable. Idea: give high-level descriptionStep 1: construction

Define TM M

2

by: M

2 = "On input <A>: Check whether input is a valid encoding of a DFA; if not, reject.Mark the start state of A.

Repeat until no new states get marked:Loop over states of A and mark any unmarked state that has an incoming edge from a marked state.

If no final state of A is marked, accept; otherwise, reject.Slide19

Proving decidability

Step 1: construction

Define TM M

2

by: M

2

= "On input <A>: Check whether input is a valid encoding of a DFA; if not, reject.Mark the state state of A.

Repeat until no new states get marked:

Loop over states of A and mark any unmarked state that has an

incoming

edge from a marked state.If no final state of A is marked,

accept; otherwise, reject.Step 2: correctness proofWTS (1)

L(M2) = EDFA and (2) M2 is a decider.Slide20

Proving decidability

Claim:

EQ

DFA

is decidable

Proof:

WTS that { <A, B> | A, B are DFA over Σ, L(A) = L(B) } is decidable. Idea: give high-level descriptionStep 1: construction

Will we be able to simulate A and B?

What does set equality mean?

Can we use our previous work?Slide21

Proving decidability

Claim:

EQ

DFA

is decidable

Proof:

WTS that { <A, B> | A, B are DFA over Σ, L(A) = L(B) } is decidable. Idea: give high-level descriptionStep 1: construction

Will we be able to simulate A and B?

What does set equality mean?

Can we use our previous work?Slide22

Proving decidability

Claim:

EQ

DFA

is decidable

Proof:

WTS that { <A, B> | A, B are DFA over Σ, L(A) = L(B) } is decidable. Idea: give high-level descriptionStep 1: construction

Very high-level

:

Build new DFA recognizing symmetric difference of L(A), L(B). Check if this set is empty.Slide23

Proving decidability

Claim:

EQ

DFA

is decidable

Proof:

WTS that { <A, B> | A, B are DFA over Σ, L(A) = L(B) } is decidable. Idea: give high-level descriptionStep 1: construction

Define TM M

3

by: M

3 = "On input <A,B>: Check whether input is valid encoding of pair of DFAs; if not, reject.Construct a new DFA, D, from A,B

using algorithms for complementing, taking unions of regular languages such that L(D) = symmetric difference of L(A) and L(B). Run machine M2 on <D>.

If it accepts, accept; if it rejects, reject."Slide24

Proving decidability

Step 1: construction

Define TM M

3

by: M

3

= "On input <A,B>: Check whether input is valid encoding of pair of DFAs; if not, reject.Construct a new DFA, D, from A,B

using algorithms for complementing, taking unions of regular languages

such that L(D) = symmetric difference of L(A) and L(B).

Run machine M

2 on <D>.If it accepts, accept; if it rejects, reject."

Step 2: correctness proofWTS (1) L(M3) = EQ

DFA and (2) M3 is a decider.Slide25

Techniques Sipser 4.1

Subroutines

: can use decision procedures of decidable problems as subroutines in other algorithms

A

DFA

E

DFAEQDFAConstructions

: can use algorithms for constructions as subroutines in other algorithms

Converting DFA to DFA recognizing complement (or Kleene star).

Converting two DFA/NFA to one recognizing union (or intersection, concatenation).

Converting NFA to equivalent DFA.Converting regular expression to equivalent NFA.Converting DFA to equivalent regular expression.Slide26

Undecidable?

There are many ways to prove that a problem

is

decidable.

How do we find (and prove) that a problem

is not decidable?