Decision problem P is language P ⊂ Σ*
Decidable: P is recursive Semidecidable: P is recursively enumerable Undecidable: otherwise
Decidable problem:
Semidecidable problem:
Decision problem is decidable if:
The halting problem: given deterministic Turing machine and a word, does the machine halt when started with the word as input? It's undecidable, as the language H = { (M, x) | M reaches halting state on input x } is not recursive.
Rice's theorem: every non-trivial property of recursively enumerable languages is undecidable. A property of class K is trivial if it holds for all or no k ∈ K.
Given n pairs of words (w1, v1)…(wn, vn), are there indices i1…ik st $w_{i_{1}}…w_{i_{k}} = v_{i_{1}}…v_{i_{k}}$?
Modified: is there a way to make the first words the same?
The PCP is undecidable, as evidenced by Joerg spending 2 hours in a lecture trying to make us decide it.
Stuff that's undecidable:
A decision P ⊂ Σ* is:
Examples of semidecidable: halting problem, PCP, non-empty intersection of context-free languages, ambiguity of context-free grammars
Examples of undecidable:
Wtf is this definition. TODO: find a better definition.
The highest exponent is what matters. e.g. n3 is in O(n3) but also in O(n5) List of big Os:
Let f,g : N → N. Nondeterministic Turing machine (M) runs in time f if for every input (w), every computation of M reaches a halting state after at most f(|w|) steps.
A Turing machine has time complexity O(g) if there exists f ∈ O(g) st the machine runs in time f.
Nondeterministic Turing machine is in polynomial time if it has time complexity O(nk) for some k.
NP are languages accepted by nondeterministic polynomial time Turing machines.
P is class of languages accepted by deterministic polynomial time Turing machines.
P ⊂ NP, but nobody knows if P = NP.
A problem is in NP if: