This is an old revision of the document!


Laborator AA

Masina Turing

Key concepts:

  1. computation (the output of the tape) and acceptance (acceptare);
  2. mechanical description of an algorithm
  1. (Answers online - discussion) A Turing Machine consists of:
    • an alphabet $ \Sigma$
    • a set of states $ K$
    • an initial state $ q_0$
    • a transition function $ \delta : K \times \Sigma \rightarrow K \times \Sigma \times \{L,H,R\}$
    • a set of final states $ F \subseteq K$

Which of the following components of an assembly language would best correspond to the above? $ K,\Sigma, \delta, q_0, F$

  • the processor
  • the memory
  • registers
  • assembly instructions
  1. (Answers online) What does the following TM do? (bitwise complement)
  2. (Answers online) Write a TM which accepts only if the input is a binary encoding of a even natural number.
  3. (Answers online) Write a TM which adds 5 to a number encoded in binary on the tape. The machine will always accept.
  4. (Answers online) Check if a symbol is present on the tape.
  5. (Discussion) How would the following algorithm be represented as a Turing Machine:
Algorithm(vector V, integer M) {
   integer s = 0
   for-each x in V
      s += x
   if (x > 1000)
   then  return 1
   else  return 0
}

Helpful questions:

  • how should the tape be organised?
  • when should the machine accept?
  • how would foreach x in V be implemented?
  • how would s += x be implemented?
  • how would if (x > 1000) then … else … be implemented ?

Homework:

  • Write a TM which verifies if a string has the same number of ones and zeroes. Give hints - live (what should the machine do?)
  • write a TM which accepts a given regular expression
  • write a TM which reverses a given binary string (always accepts)

Turing Machines and Solvability

  • Exercitii simple cu MT
  • Exercitii cu MTU si conceptul de simulare

Von Newmann Model

  • Algoritmi

Decidabilitate

  • Ce este o problema de decizie?
  • Problema si rezolvare;
  • Lista de probleme care (pot/nu pot) fi rezolvate;
  • Reduceri
  • Further work: coRE, complement, dovetailing

Notatii asimptotice

  • Implementari care sa ilustreze faptul ca constanta conteaza/nuconteaza
  • Implementari care sa ilustreze faptul ca log n » n » n2 »> n3
  • Grafice (in ?!)
  • Exercitii clasice

Recurente

  • Cativa algoritmi si recurentele lor
  • Exercitii clasice

NP completitudine

  • Implementare care sa ilustreze exponentiala (backtracking); legatura cu MTN.
  • Reduceri pentru SAT solvere
  • Exercitii clasice cu reduceri

TDA-uri

  • Conceptul de operator vs cel de functie (exercitiu in C, exercitiu in Haskell, pe Liste)
  • Exercitii clasice