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 [2024/10/31 20:08]
stefan.sterea [Exerciții]
aa:lab:3 [2025/10/27 13:59] (current)
andreidarlau04 [Exercitii]
Line 1: Line 1:
-====== ​Reduceri ​======+====== ​Analiza Amortizata 2 ======
  
-Reducerile sunt o unealtă folositoare pentru a demonstra ​(ne)decidabilitatea/​acceptabilitatea unor problemeVom folosi în mod predominant reducerile pentru a demonstra prin absurd că problemă nouă $ f$ nu este decidabilăatfel:+Vom continua cu analiza amortizata inceputa in laboratorul precedent cu un ArrayList cu urmatoarele proprietati:​ 
 +  * isi dubleaza capacitatea cand este plin (ex: avem 4 elemente intr-un ArrayList cu capacitate 4La adaugarea celui de-al 5-lea element, capacitatea va deveni 8 - necesita ​copiere de 4 elementapoi inserarea celui de-al 5-lea element). 
 +  * isi injumatateste capacitatea cand este un sfert plin (exavem 5 elemente intr-un ArrayList de capacitate 16. La urmatoarea stergere, capacitatea va deveni 8 - necesita stergerea elementului 5, apoi copierea celor 4 elemente ramase).
  
-  * 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 =====+==== Exercitii ​==== 
 +  - Aflati costul amortizat al operatiilor de inserare si stergere prin metoda agregatelor. 
 +  - Aflati costul amortizat pentru k operatii de inserare si p operatii de stergere. 
 +  - Aflati costul amortizat al operatiei de stergere prin: 
 +    - metoda bancherului 
 +    - metoda potentialelor 
 +  - Bonus: Aflati costul amortizat al operatiei de inserare prin:  
 +    - metoda bancherului 
 +    - metoda potentialelor
  
-<​note>​ +===== Algebraic Data Types (ADT) =====
-În continuare, aveti un {{:​aa:​lab:​cheatsheet.pdf|}} pentru a va ajuta la rezolvări. +
-</​note>​+
  
-1. Demonstrați,​ folosind reduceri, că următoarele probleme sunt nedecidabile:+Consideram urmatorul ADT:
  
-  ​* $ f_{111}(M) ​TRUE \iff  M[111] \rightarrow TRUE$+   Void : List 
 +   ​Cons : E x List -> List 
 +==== Exercitii ==== 
 +  - Implementati ADT-ul in C. 
 +  - Definiti axiome pentru size, add, append, reverse. 
 +  - Implementati axiomele definite in C.
  
-  * $ 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. 
- 
-<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: 
- 
-  * $ f_{all} \le_m f_{eq}$ 
- 
-  * $ f_{any} \le_m f_{eq}$ 
- 
-  * $ f_{p} \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ă. 
- 
-<note tip> 
-Soluțiile acestui laborator se găsesc [[aa:​lab:​sol:​3|aici]] 
-</​note>​ 
  
 +<note tip>​Solutiile laboratorului se afla [[aa:​lab:​sol:​3|aici]].</​note>​