Skip to content

Commit

Permalink
fix: RNA
Browse files Browse the repository at this point in the history
Ricontrollata sezione RNA Secondary Structure Problem e corretti
alcuni errori nelle formule e migliorata l'impaginazione.
  • Loading branch information
ncvescera committed Aug 10, 2023
1 parent f9c43a3 commit d375d84
Showing 1 changed file with 31 additions and 32 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ \chapter{RNA Secondary Stucture Problem}
Il processo di accoppiamento delle basi è dettato dalla regola di
\emph{Watson-Crick} e segue il seguente schema:

\[
A - U \ \ \ \text{ e } \ \ \ C - G \ \ \ \text{ (l'ordine non conta)}
\]
\begin{center}
$A-U$ \ \ \ e \ \ \ $C-G$ \ \ \ (l'ordine non conta)
\end{center}


\begin{figure}[H]
Expand All @@ -41,10 +41,10 @@ \section{Descrizione del Problema}

\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\item
\item \label{ss:1}
\textbf{No sharp turns}: la fine di ogni coppia è separata da almeno 4
basi, quindi se $(i,j) \in S$ allora $i < j - 4$
\item
\item \label{ss:2}
Gli elementi di una qualsiasi coppia $S$ consistono di $\{A, U\}$
o $\{C, G\}$ (in qualsiasi ordine).
\item
Expand All @@ -57,7 +57,7 @@ \section{Descrizione del Problema}
\end{enumerate}

\begin{figure}[H]
\includegraphics[width=15cm, keepaspectratio]{capitoli/programmazione_dinamica/imgs/rna2.png}
\includegraphics[width=\textwidth, keepaspectratio]{capitoli/programmazione_dinamica/imgs/rna2.png}
\centering
\caption{La figura $(a)$ rappresenta un esempio di Sharp Turn, mentre la
figura $(b)$ mostra una Crossing Condition dove il filo blu non dovrebbe
Expand Down Expand Up @@ -91,37 +91,33 @@ \section{Funzionamento}
\item $j$ non appartiene ad una coppia
\item $j$ si accoppia con $t$ per qualche $t \leq j - 4$
\end{enumerate}

Per il primo caso basta cercare la soluzione per $OPT(j - 1)$.\\
Nel secondo caso, se teniamo conto della \textbf{Non Crossing
Condition}, possiamo isolare due nuovi sotto-problemi: uno sulle basi
$b_1 b_2 \ldots b_{t-1}$ e l'altro sulle basi
$b_{t+1} \ldots b_{j-1}$.

\begin{itemize}
\item
Per il primo caso basta cercare la soluzione per $OPT(j - 1)$
Il primo si risolve con $OPT(t-1)$
\item
Nel secondo caso, se teniamo conto della \textbf{Non Crossing
Condition}, possiamo isolare due nuovi sotto-problemi: uno sulle basi
$b_1 b_2 \ldots b_{t-1}$ e l'altro sulle basi
$b_{t+1} \ldots b_{j-1}$.

\begin{itemize}
\item
Il primo si risolve con $OPT(t-1)$
\item
Il secondo, dato che non inizia con indice $1$, non è nella lista
dei nostri sotto-problemi. A causa di ciò risulta necessario
aggiungere una variabile.
\end{itemize}
Il secondo, dato che non inizia con indice $1$, non è nella lista
dei nostri sotto-problemi. A causa di ciò risulta necessario
aggiungere una variabile.
\end{itemize}


\begin{figure}[H]
\centering
\includegraphics[width=15cm, keepaspectratio]{capitoli/programmazione_dinamica/imgs/rna3.png}
\includegraphics[width=\textwidth, keepaspectratio]{capitoli/programmazione_dinamica/imgs/rna3.png}
\centering
\end{figure}


Basandoci sui ragionamenti precedenti, possiamo scrivere
una ricorsione di successo, ovvero:\\

sia $OPT(i,j)$ = massimo numero di coppie nella
sia $OPT(i,j)$ il massimo numero di coppie nella
struttura secondaria $b_i b_{i+1} \ldots b_j$, grazie alla \textbf{non
Sharp turn Condition} possiamo inizializzare gli elementi con
$i \geq j -4$ a $0$. Ora avremmo sempre le stesse condizioni
Expand All @@ -139,11 +135,11 @@ \section{Funzionamento}

Riassumendo, distinguiamo 3 diversi casi:
\begin{enumerate}
\item if $i \ge j -4$:\\
\item se $i \ge j -4$:\\
$OPT(i,j) = 0$ dalla \textbf{no-Sharp Turns condition}
\item $b_j$ non viene accoppiata:\\ $OPT(i,j) = OPT(i,j-1)$
\item $b_j$ si accoppia con $b_t$ per una qualche $i \le t < j -4$:\\
$OPT(i,j) = 1 + max_t{OPT(i, t-1) + OPT(t+1, j-1)}$
$OPT(i,j) = 1 + \max_t(OPT(i, t-1) + OPT(t+1, j-1))$
\end{enumerate}


Expand All @@ -152,8 +148,8 @@ \section{Funzionamento}
\begin{myblockquote}
$OPT(i, j) = \max(OPT(i, j-1), \max_t(1+OPT(i, t-1)+OPT(t+1, j-1)))$,\\
dove il massimo è calcolato su $t$ tale che $b_t$ e
$b_j$ siano una coppia di basi consentita (sotto le condizioni (1) e
(2) dalla definizione di struttura secondaria).
$b_j$ siano una coppia di basi consentita (sotto le condizioni (\ref{ss:1}) e
(\ref{ss:2}) dalla definizione di struttura secondaria).
\end{myblockquote}


Expand Down Expand Up @@ -181,18 +177,21 @@ \section{Funzionamento}
\subsection{Costo}

Ci sono $O(n^2)$ sotto-problemi da risolvere e ognuno richiede tempo
$O(n)$, quindi il running time complessivo è di $O(n^3)$.
\\
\\
Costo computazionale: $O(n^3)$ time e $O(n^2)$ space
$O(n)$, quindi il running time complessivo è di $O(n^3)$.\\

Costo computazionale:
\begin{itemize}
\item \textbf{Tempo:} $O(n^3)$
\item \textbf{Spazio:} $O(n^2)$
\end{itemize}

\section{Riepilogo}

\begin{itemize}
\item
Trovare il modo di accoppiare le basi di RNA con delle regole
\item
$OPT[i,j] = max\{ max_{i \le t \le j-5} \{ 1 + OPT[i, t-1] + OPT[t+1, j-1] \}, OPT[i, j-1] \}$
$OPT[i,j] = \max(\max_{i \le t \le j-5}(1 + OPT[i, t-1] + OPT[t+1, j-1]), OPT[i, j-1])$
\item
Spazio = matrice riempita per diagonali $\rightarrow$ \textbf{SPAZIO
=} $O(n^2)$
Expand Down

0 comments on commit d375d84

Please sign in to comment.