1. Scrieți o MT care să decidă $ L_1 = \{ 0^{2^n} \mid n \ge 0 \}$ Mașina funcționează astfel: - merge de la stânga la dreapta marcând cu X zerouri din doi în doi - dacă a găsit un singur 0 acceptă - dacă a găsit un număr impar de 0 respinge - întoarce capul de citire pe primul simbol și repetă procesul Toate celulele goale ar trebui interpretate ca tranziții către $ q_{reject}$. ^ ^ 0 ^ X ^ # ^ | **init** | (check, #, R) | | | | **check** | (skip, X, R) | (check, X, R) | ($ q_{accept}$, #, R) | | **skip** | (mark, 0, R) | (skip, X, R) | (rewind, #, L) | | **mark** | (skip, X, R) | (mark, X, R) | | | **rewind** | (rewind, 0, L) | (rewind, X, L) | (init, #, R) | 2. Scrieți o MT care să decidă: $ L_2 = \{ a^nb^mc^nd^m \mid n, m \ge 0 \}$ Următorul tabel descrie o mașină care întâi marchează a-uri și c-uri în perechi, apoi trece la a marca b-uri și d-uri. Toate celule goale ar trebui interpretate ca tranziții către $ q_{reject}$. ^ ^ a ^ b ^ c ^ d ^ A ^ B ^ C ^ D ^ # ^ | **find_a** | (find_c, A, R) | (find_d, B, R) | | | | | (check_no_cs, C, R) | | ($ q_{accept}$, #, R) | | **find_b** | | (find_d, B, R) | | | | | (check_no_ds, C, R) | (check_no_ds, D, R) | | | **find_c** | (find_c, a, R) | (find_c, b, R) | (rewind_a, C, L) | | | | | | | | **find_d** | | | | (rewind_b, D, L) | | | (find_d, C, R) | (find_d, D, R) | | | **rewind_a** | (rewind_a, a, L) | (rewind_a, b, L) | | | (find_a, A, R) | | (rewind_a, C, L) | | | | **rewind_b** | | (rewind_b, b, L) | | | | (find_b, B, R) | (rewind_b, C, L) | | | | **check_no_cs** | | | | | | | (check_no_cs, C, R) | | ($ q_{accept}$, #, R) | | **check_no_ds** | | | | | | | (check_no_ds, C, R) | (check_no_ds, D, R) | ($ q_{accept}$, #, R) |