Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
aa:lab:3 [2023/10/21 11:48]
ioana.dabelea rezolvare pr2
aa:lab:3 [2024/10/31 20:08] (current)
stefan.sterea [Exerciții]
Line 1: Line 1:
-====== Reduceri ​Turing ​====== +====== Reduceri ====== 
-/* + 
-<​hidden>​ +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:
-<note important>​ +
-Solutii: https://​drive.google.com/​file/​d/​1RUCQaVsHkMbFLBojUJ7ok5gy5Mq6-ce8/​view?​usp=sharing +
-</​note>​ +
-</​hidden>​ +
-*/ +
-Reducerile ​Turing ​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   * presupunem că $ f$ e decidabilă,​ deci există o mașină $ M_f$ care o decide
Line 24: Line 18:
  
   * $ f_{111}(M) = TRUE \iff  M[111] \rightarrow TRUE$   * $ f_{111}(M) = TRUE \iff  M[111] \rightarrow TRUE$
-<​hidden>​ 
-O să încercăm să arătăm că $ f_{h} \le_m f_{111}$. 
- 
-Trebuie să găsim o transformare t care primeşte inputul lui Halting Problem şi întoarce un input pentru $ f_{111}$: ​ 
-$ M, w \to t \to M^*$ 
- 
-După ce am găsit asta,  mai ramane de demonstrat doar: $ f_{h}(M, w) = TRUE \iff f_{111}(M^*) = TRUE$ 
- 
-$ M^*(x):$ 
-<​code>​ 
-   run M[w] 
-   ​return x == 111 
-</​code>​ 
- 
-Demonstraţii:​ 
-  - $ f_{h}(M, w) = TRUE \Rightarrow M[w] \text{se termină} \Rightarrow \text{vom returna x == 111} \Rightarrow \text{când x este 111}, M^* \text{va tranziţiona în Y} => M^*[111] \rightarrow TRUE \Rightarrow f_{111}(M^*) = TRUE$ 
-  - $ f_{111}(M^*) = TRUE \Rightarrow M^*[111] \rightarrow TRUE \Rightarrow \text{am ajuns la return} \Rightarrow \text{run M[w] din }M^* \text{nu a ciclat} \Rightarrow \text{M[w] s-a oprit} \Rightarrow f_{h}(M, w) = TRUE$ 
- 
-Din cele 2 direcţii ale demonstraţiei $\Rightarrow f_{h} \le_m f_{111}$. 
-</​hidden>​ 
  
   * $ f_{p}(M) = TRUE \iff \forall w, M \text{ decide dacă w e palindrom} $   * $ f_{p}(M) = TRUE \iff \forall w, M \text{ decide dacă w e palindrom} $
-<​hidden>​ 
-O să încercăm să arătăm că $ f_{h} \le_m f_{p}$. 
- 
-Trebuie să găsim o transformare t care primeşte inputul lui Halting Problem şi întoarce un input pentru $ f_{p}$: ​ 
-$ M, w \to t \to M^*$ 
- 
-$ M^*(x):$ 
-<​code>​ 
-   run M[w] 
-   check if x is palindrome 
-</​code>​ 
  
-Demonstraţii:​ 
-  - $ f_{h}(M, w) = TRUE \Rightarrow M[w] \text{se termină} \Rightarrow \text{o sa verificăm dacă x este palindrom} \Rightarrow \text{când x este palindrom}, M^* \text{va tranziţiona în Y}  \Rightarrow f_{p}(M^*) = TRUE$ 
-  - $ f_{p}(M^*) = TRUE \Rightarrow M^*[x] \text{decide daca x este palindrom } \forall x \Rightarrow \text{am ajuns la return} \Rightarrow \text{run M[w] din }M^* \text{nu a ciclat} \Rightarrow \text{M[w] s-a oprit} \Rightarrow f_{h}(M, w) = TRUE$ 
- 
-Din cele 2 direcţii ale demonstraţiei $\Rightarrow f_{h} \le_m f_{p}$. 
-</​hidden>​ 
   * $ f_{rev}(M) = TRUE \iff \forall w, M \text{ computează inversul lui w}$   * $ f_{rev}(M) = TRUE \iff \forall w, M \text{ computează inversul lui w}$
 +
   * $ f_{own}(M) = TRUE \iff M[enc(M)] \rightarrow TRUE$   * $ 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_{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_{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_{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 ciclează) pentru orice cuvânt. 
  
 +  * $ 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.
 +
 +<note tip>
 +Î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$
 +</​note>​
 2. Construiți următoarele reduceri: 2. Construiți următoarele reduceri:
  
   * $ f_{all} \le_m f_{eq}$   * $ f_{all} \le_m f_{eq}$
 +
   * $ f_{any} \le_m f_{eq}$   * $ f_{any} \le_m f_{eq}$
 +
   * $ f_{p} \le_m f_{eq}$   * $ f_{p} \le_m f_{eq}$
 +
   * $ f_{own} \le_m  f_{eq}$   * $ f_{own} \le_m  f_{eq}$
 +
 +<note tip>
 +Dacă $ t_{1}$ şi $ t_{2}$ sunt două funcţii computabile $ \Rightarrow t = t_{1} \circ t_{2} $ este computabilă.
 +</​note>​
  
 3. Demonstrați că relația $ \le_m$ e reflexivă și tranzitivă. 3. Demonstrați că relația $ \le_m$ e reflexivă și tranzitivă.
 +
 +<note tip>
 +Soluțiile acestui laborator se găsesc [[aa:​lab:​sol:​3|aici]]
 +</​note>​
 +