계산복잡도 수업 내용 정리


*Def

-FA(finite automata): FA are finite collections of states(Q) with transition rules that take you from one state to another.

-apb(alphabet):apb is any finite set of symbols

-str over apb:apb에 속한 원소들의 lists(juxtapositions)

-apb^*, the set of all strs over apb with empty string eps

-eps:empty string

-L(over apb)(language):a subset of apb^*

-DFA(deterministic finite automata): FA(5, Q,Σ,δ,q0,F)

with input apb(Σ), start states(q0), final states(F⊆Q), 이때 transition function δ은 domain이 (state, symbol), extend하면 (state, string)까지도 됨

-L(A):the set of all strs s.t. δ(q0,str) is in final states for some DFA A

-L is regular if L=L(A) for some DFA A.

-NFA(Nondeterministic finite automata):FA(5, Q,Σ,δ,q0,F) with δ(q,a) is a set of states

특히 NFA에서는 a string w is accepted if δ(q0,w) contains at least one final state.

-TM(Turing machine):(7, Q,Σ,Γ,δ,q0,Β,F), Γ:tape apb set(읽고 쓰기가 가능, 쓸대는 Σ에 없는 것도 사용 가능, Σ<Γ)

(input의 양옆에는 blank로 채워서 들어가는 infinite tape)

(δ(state,tape symbol)=(변경 후 state, 변경 후 tape symbol, head이동방향))

(algorithm이 없는 language를 보이기 위해서 TM다룸, C program보다 simple하면서도 powerful함)

-ㅏ:TM에 input 한개 계산

-ㅏ*:TM에 input 모두 계산

-L(TM):the set of all strs w s.t. q0wㅏ* in final

-L=L(TM)이면 L을 recursively enumerable languages라 한다.

-Algorithm:=TM s.t. 어느 input이어도 halt할지 안할지 guaranteed된 TM을 가리킨다.

-L=L(TM) with algorithm TM이면 L을 recursive language라 한다.

-CFG(Context-free grammar): CFG(4, V,Σ,R,S)

with V:variables, Σ:terminals, R:rules(variable넣으면 variable과 terminal의 조합으로 이루어진 string이 output인 rule), S(in V):start variable

-L(CFG):the set of all strs w s.t. Sㅏ*w(즉 start variable S로부터 시작해서 나올 수 잇는 모든 strings with only terminals)



*Thm

the reverse of a regular language is also regular

Equivalence of DFA and NFA using subset construction

(NFA, DFA모두 the same language를 갖게 만들 수 있고, NFA가 state개수가 exponentially 적게 가능하지만, 구현가능 한 것은 DFA뿐)

가능한 L over {0,1}의 개수는 uncountable(임의의 language는 infinitely binary seq로 만들 수 있고, infinitely binary seq의 개수는 uncountable이므로)

Language가 program보다 많다는 것을 가리킴, 즉 There are languages with no membership algorithm(w in L인지 아닌지 판단하는 것을 membership algorithm), 이러한 류의 증명 방식을 Hungarian Arguments라 한다. 가능한 총 개수가 더 많음을 보여서 무언가 존재하는지 안존재하는 지 보이는 방식을(존재성은 알지만 particular language를 제시하는 데에 어려움(with no membership algorithm인 language를 건설하기 어렵다)

DFA->TM(DFA꺼 그대로 하고 방향도 R만 쓰고 tape write안하면 됨)

모든 Data type은 integer로 변환 가능

Binary strings to Integer는 Binary sting마다 앞에 1 붙여서 순서매기면 된다. 101->1101 =  13번쨰 integer, 0101->10101 = 21번째 integer

GIF는 ASCII string으로 구성, ASCII string을 binary string으로 바꾸고 integer로 바꾸면 됨, 따라서 i번째 image라는 걸 생각 가능



*Example

(Non-regular language)

L={0^n1^n|n>=1}, a^i means a가 i개 병렬나열

L={0^n1^n|n>=1}={01,0011,000111,...}, finite state을 가지는 DFA로는 얻을 수 없다. 따라서 non-regular

TM으로는 가능


L={01*0}={00,010,0110,...}을 TM으로 묘사하기

 

(Mortality of matrices)S:given finitely generated submonoid of nxn matrices from MT(nxn)(Z)

Determine whether there exists a seq of matrices M1,M2,...,Mk in S s.t. M1M2...Mk = 0(link1)(link2)(link3)(link4)



===========================================================

CFG이후의 내용 쭉 읽어서 PDA까지도 이해하기

수업내용 이해하기

undeciable관련해서 이해하기


'수학 > 기본' 카테고리의 다른 글

수학정리(Integral Transformation)  (0) 2018.03.18
수학정리(Special Functions)  (0) 2016.02.29
수학정리(Probability, Statistics)  (0) 2016.02.29
수학정리(풀 문제들)  (0) 2016.02.29
수학정리(Applications, weighted graph)  (0) 2016.02.29

+ Recent posts