HW2: A small proof section added
This commit is contained in:
parent
3305a0ef71
commit
9052eb0740
Binary file not shown.
@ -140,7 +140,7 @@
|
||||
Η τάξη αυτή προσφέρει δυνατότητες χρονομέτρησης μίας ή και πολλαπλών κλήσεων αθροίζοντας τους χρόνους.
|
||||
\end{itemize}
|
||||
\par
|
||||
Όλοι οι παραπάνω τύποι είναι templates, και βρίσκονται στα αντίστοιχα headers (.hpp) αντί στα αρχεία .cpp.
|
||||
Όλοι οι παραπάνω τύποι είναι templates, και βρίσκονται στα αντίστοιχα headers (.hpp) αντί για αρχεία .cpp.
|
||||
Η συνάρτηση \textit{main()} που υλοποιεί τον αλγόριθμο, αλλά και αυτή που καλεί τα unit tests, μαζί με τον validator και το command line interface βρίσκονται στο αρχείο main.cpp.
|
||||
|
||||
\subsection{Model version}
|
||||
@ -232,7 +232,7 @@
|
||||
Θα περίμενε λοιπόν κάποιος να υπάρχει ένας τρόπος να αποφευχθεί η μεταφορά δεδομένων που θα παραμείνουν.
|
||||
Πράγματι, όπως αποδεικνύεται και στο παράρτημα \ref{appendix:ExchangeOpt}, αν έχουμε δύο \textbf{ταξινομημένες} ακολουθίες που η μία θα κρατήσει τα μέγιστα $L_i$ και η άλλη θα κρατήσει τα ελάχιστα $S_i$, τότε τα δεδομένα που θα καταλήξουν να χρειάζονται ανταλλαγή \textbf{για την κάθε ακολουθία} βρίσκονται στο υποσύνολο επικάλυψης:
|
||||
\[
|
||||
E = \{l_i, l_{i+1}, ... , l_j\}, i \le j: \quad L_{min} \le l_x \le S_{max},\quad \forall l_x \in E
|
||||
E = \{l_x\}_{x=i}^j: \quad L_{min} \le l_x \le S_{max}
|
||||
\]
|
||||
Δηλαδή στο κομμάτι της ακολουθίας με τα στοιχεία που είναι \textbf{\textit{μεγαλύτερα από το μικρότερο αυτής που κρατάει τα μεγάλα $L_{min}$ και μικρότερα από το μεγαλύτερο αυτής που κρατάει τα μικρά $S_{max}$}}.
|
||||
Αν το σύνολο επικάλυψης $E_1, E_2$ των ακολουθιών:
|
||||
@ -367,11 +367,40 @@ Exch. Optimi-zation } & N1P2 - q=20 & \st{191 ms} &\st{72.5 ms}&\st{4.76 ms}&
|
||||
Ο αναγνώστης παρ' όλα αυτά μπορεί να βρει \href{\selfref}{εδώ} μια \textit{μελλοντική έκδοση} της αναφοράς η οποία όταν εκτελεστούν τα scripts θα συμπεριλαμβάνει τις μετρήσεις αυτές. \label{ft:measurements}
|
||||
}
|
||||
|
||||
|
||||
\newpage
|
||||
\appendix
|
||||
\section{Παράρτημα}
|
||||
\subsection{Υπολογισμός συνόλου ανταλλαγής ταξινομημένων ακολουθιών}
|
||||
\label{appendix:ExchangeOpt}
|
||||
|
||||
Έστω ...
|
||||
|
||||
Έστω $L, S$ δύο ταξινομημένες ακολουθίες μεγέθους $N$, μία αύξουσα και μία φθίνουσα.
|
||||
\[
|
||||
L=\{l_i\}_{i=1}^N, S=\{s_i\}_{i=1}^N, \quad l_i, s_i \in \mathbf{R}
|
||||
\]
|
||||
Έστω $f$ συνάρτηση η οποία παίρνει δύο ταξινομημένες ακολουθίες \( L = \{l_i\}_{i=1}^N \) και \( S = \{s_i\}_{i=1}^N \), και επιστρέφει δύο ακολουθίες \( L' = \{l'_i\}_{i=1}^N \) και \( S' = \{s'_i\}_{i=1}^N \):
|
||||
\[
|
||||
f \colon (\mathbf{R}^N, \mathbf{R}^N) \to (\mathbf{R}^N, \mathbf{R}^N), \qquad
|
||||
f(L, S) = (L', S') = \left(\{\max(l_i, s_i)\}_{i=1}^N, \{\min(l_i, s_i)\}_{i=1}^N\right).
|
||||
\]
|
||||
Όπου, η \( L' \) περιέχει τα μεγαλύτερα στοιχεία από τη σύγκριση στοιχείο με στοιχείο \( l_i \) και \( s_i \), ενώ η \( S' \) περιέχει τα μικρότερα.
|
||||
Αν $l_{min}$ το μικρότερο στοιχείο της $L$ και $s_{max}$ το μεγαλύτερο στοιχείο της $S$, τότε:
|
||||
\[
|
||||
\begin{aligned}
|
||||
\exists E_L=\{e_i\}_{i=1}^m \subseteq L: e_i > s_{max} \ge s_i \forall i \\
|
||||
\exists E_S=\{s_i\}_{i=1}^m \subseteq S: s_i < l_{min} \le e_1 \forall i
|
||||
\end{aligned}
|
||||
\]
|
||||
Άρα:
|
||||
\[
|
||||
f(E_L, S_L) = \left(\{\max(e_i, s_i)\}_{i=1}^m, \{\min(e_i, s_i)\}_{i=1}^m\right) = \left(\{e_i\}_{i=1}^m, \{s_i\}_{i=1}^m\right) = (E_L, E_S)
|
||||
\]
|
||||
Επομένως υπάρχουν τα υποσύνολα $E_L\subseteq L, E_S\subseteq S$, τα οποία δεν επηρεάζονται από τη συνάρτηση $f$, και άρα δεν ανταλλάσουν τα στοιχεία μεταξύ τους.
|
||||
Έτσι τα υποσύνολα τα οποία αλλάζουν στοιχεία είναι:
|
||||
\[
|
||||
\begin{aligned}
|
||||
L_{ex} = L \setminus E_L = \{l_{min}, \dots, s_{max}\}, l_{min} \le s_{max}\\
|
||||
S_{ex} = S \setminus E_S = \{l_{min}, \dots, s_{max}\}, l_{min} \le s_{max}
|
||||
\end{aligned}
|
||||
\]
|
||||
\end{document}
|
||||
|
Loading…
x
Reference in New Issue
Block a user