====== Reduceri ======
Reducerile sunt o unealtă folositoare pentru a demonstra (ne)decidabilitatea/acceptabilitatea unor probleme. Vom folosi în mod predominant reducerile pentru a demonstra prin absurd că o problemă nouă $ f$ nu este decidabilă, atfel:
* presupunem că $ f$ e decidabilă, deci există o mașină $ M_f$ care o decide
* alegem o problemă //cunoscută// $ g$ despre care știm deja (dintr-o demonstrație anterioară de la curs/laborator) că este //nedecidabilă//. Un exemplu bun este problema terminării.
* găsim o //transformare computabilă// $ T: \Sigma^* \rightarrow \Sigma^*$ pentru care propoziția $ \forall w \in \Sigma^*, g(w) = TRUE \iff f(T(w)) = TRUE$ este adevărată
* putem deci să construim mașina $ M_g$ care pentru orice input $ w$ simulează $ M_T$, apoi $ M_f$; rezultatul fiind că $ g$ e decidabilă
* în urma contradicției, concluzionăm că presupunerea e greșită, deci $ f$ nu e decidabilă.
===== Exerciții =====
În continuare, aveti un {{:aa:lab:cheatsheet.pdf|}} pentru a va ajuta la rezolvări.
1. Demonstrați, folosind reduceri, că următoarele probleme sunt nedecidabile:
* $ f_{111}(M) = TRUE \iff M[111] \rightarrow TRUE$
* $ f_{p}(M) = TRUE \iff \forall w, M \text{ decide dacă w e palindrom} $
* $ f_{rev}(M) = TRUE \iff \forall w, M \text{ computează inversul lui w}$
* $ f_{own}(M) = TRUE \iff M[enc(M)] \rightarrow TRUE$
* $ f_{finite}(M) = TRUE \iff M \text{ se oprește pentru un număr finit de cuvinte}$
* $ f_{set}(A, M) = TRUE \iff \forall w \in A, M[w] \text{ halts}$
* $ f_{x}(M) = TRUE \iff \exists w, M[w] \text{ scrie un x pe bandă la un moment dat}$
* $ f_{eq}(M_1, M_2) = TRUE \iff \forall w, M_1[w] \equiv M_2[w]$; i.e. mașinile au același comportament (fie acceptă, fie resping, fie computează aceeași valoare, fie nu se termină) pentru orice cuvânt.
În continuare, problemele $ f_{all}$ și $ f_{any}$ sunt cunoscute ca nedecidabile:
* $ f_{all}(M) = 1 \iff \forall w, M[w] \rightarrow TRUE$
* $ f_{any}(M) = 1 \iff \exists w, M[w] \rightarrow TRUE$
2. Construiți următoarele reduceri:
* $ f_{all} \le_m f_{eq}$
* $ f_{any} \le_m f_{eq}$
* $ f_{p} \le_m f_{eq}$
* $ f_{own} \le_m f_{eq}$
Dacă $ t_{1}$ şi $ t_{2}$ sunt două funcţii computabile $ \Rightarrow t = t_{1} \circ t_{2} $ este computabilă.
3. Demonstrați că relația $ \le_m$ e reflexivă și tranzitivă.
Soluțiile acestui laborator se găsesc [[aa:lab:sol:3|aici]]