You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Homework_6/homework.tex
+14-12Lines changed: 14 additions & 12 deletions
Original file line number
Diff line number
Diff line change
@@ -111,10 +111,10 @@ \subsection*{1. Define the 0-1 knapsack problem.}
111
111
όπου \(x_{j}\) είναι μία δυαδική μεταβλητή που δηλώνει αν έχουμε τοποθετήσει το \(j\)-οστό αντικείμενο στο σακίδιο.
112
112
113
113
\[ x_{j} =
114
-
\begin{cases}
115
-
1 & \text{αν το j-οστό αντικείμενο τοποθετηθεί στο σακίδιο} \\
114
+
\begin{cases}
115
+
1 & \text{αν το j-οστό αντικείμενο τοποθετηθεί στο σακίδιο} \\
116
116
0 & \text{αν το j-οστό αντικείμενο ΔΕΝ τοποθετηθεί στο σακίδιο}
117
-
\end{cases}
117
+
\end{cases}
118
118
\]
119
119
\\\\
120
120
Χβτγ κάνουμε τις εξής παραδοχές: \\
@@ -139,9 +139,11 @@ \subsection*{2. Give a dynamic programming solution to the 0-1 knapsack problem.
139
139
140
140
Μία εναλλακτική τεχνική για την επίλυση του 0-1 Knapsack problem είναι ο δυναμικός προγραμματισμός. \\\\
141
141
142
-
Ο δυναμικός προγραμματισμός χρησιμοποιείται για τηνεπίλυση προβλημάτων βελτιστοποίησης. Πρόκειται για μία μέθοδο επίλυσης προβλημάτων μέσω του συνδυασμού των λύσεων κάποιων υποπροβημάτων. Εφαρμόζεται όταν τα διάφορα υποπροβλήματα επκαλύπτονται. Ο δυναμικός προγραμματισμός (σε αντίθεση με άλλες τεχνικές, όπως το "διαίρει και κυρίευε") επιλύει το κάθε υποπρόβλημα μόνο μία φορά και το αποθηκεύει σε ένα πίνακα, έτσι ώστε να μη χρειαστεί να υπολογίσει ξανά τη λύση του ίδιου υποπροβλήματος. \\\\
142
+
Ο δυναμικός προγραμματισμός χρησιμοποιείται για την
143
+
επίλυση προβλημάτων βελτιστοποίησης. Πρόκειται για μία μέθοδο επίλυσης προβλημάτων μέσω του συνδυασμού των λύσεων κάποιων υποπροβημάτων. Εφαρμόζεται όταν τα διάφορα υποπροβλήματα επκαλύπτονται. Ο δυναμικός προγραμματισμός (σε αντίθεση με άλλες τεχνικές, όπως το "διαίρει και κυρίευε") επιλύει το κάθε υποπρόβλημα μόνο μία φορά και το αποθηκεύει σε ένα πίνακα, έτσι ώστε να μη χρειαστεί να υπολογίσει ξανά τη λύση του ίδιου υποπροβλήματος. \\\\
143
144
144
-
Θεωρούμε το υποπρόβλημα 0-1 Knapsack που αποτελείται από τα αντικείμενα 1, 2, ..., m και τη χωρητικότητα c, όπου \(1 \leq m \leq n\) και \(0 \leq c \leq C\). Το πρόβλημα διασπάται σε n υποπροβλήματα. Το m αυξάνεται, παίρνοντας τιμές από το 1έως το n και σε κάθε υποπρόβλημα m, υπολογίζεται η τιμή \(f_{m}(c)\) καθώς το
145
+
Θεωρούμε το υποπρόβλημα 0-1 Knapsack που αποτελείται από τα αντικείμενα 1, 2, ..., m και τη χωρητικότητα c, όπου \(1 \leq m \leq n\) και \(0 \leq c \leq C\). Το πρόβλημα διασπάται σε n υποπροβλήματα. Το m αυξάνεται, παίρνοντας τιμές από το 1
146
+
έως το n και σε κάθε υποπρόβλημα m, υπολογίζεται η τιμή \(f_{m}(c)\) καθώς το
145
147
c μεγαλώνει από το 0 έως το C. \\\\
146
148
147
149
Η βέλτιστη λύση για αυτό το στιγμιότυπο είναι:
@@ -154,10 +156,10 @@ \subsection*{2. Give a dynamic programming solution to the 0-1 knapsack problem.
154
156
και ισχύει ότι
155
157
156
158
\[ f_{m}(c) =
157
-
\begin{cases}
158
-
f_{m-1}(c) & \text{ για } c = 0,...,w_{m}-1 \\
159
+
\begin{cases}
160
+
f_{m-1}(c) & \text{ για } c = 0,...,w_{m}-1 \\
159
161
\max\left( f_{m-1}(c), f_{m-1}(c-w_{m}) + p_{j} \right) & \text{ για } c = w_{m},...,C
160
-
\end{cases}
162
+
\end{cases}
161
163
\]
162
164
163
165
Στη συνέχεια παραθέτουμε αλγόριθμο που επιλύει το 0-1 Knapsack: \\\\
@@ -206,7 +208,7 @@ \subsection*{3. Give real world applications of knapsack problem.}
206
208
\subsection*{4. Define the Subset sum problem and give a dynamic programming solution for
207
209
it. Write down the difference between the subset sum and the knapsack problem.}
208
210
209
-
Το \(\textbf{Subset sum problem}\) είναι ένα πρόβλημα απόφασης στην υπολογιτική.... και την κρυπτογραφία. Υπάρχουν πολλές εκδοχές για αυτό το πρόβλημα. Το Subset sum problem αναζητά το υποσύνολο από ένα σύνολο ακεραίων αριθμών, το οποίο αν αθροίσουμε τους αριθμούς του, το αποτέλεσμα που θα προκύψει να είναι 0. Το πρόβλημα αυτο NP-complete. Είναι εύκολο αν κάποιος μας δώσει την απάντηση σε ένα τέτοιο πρόβλημα να αποφανθούμε αν είναι valid ή όχι, αλλά είναι δύσκολο να τη βρούμε μόνοι μας. \\\\
211
+
Το \(\textbf{Subset sum problem}\) είναι ένα πρόβλημα απόφασης στη θεωρία πολυπλοκότητας και την κρυπτογραφία. Υπάρχουν πολλές εκδοχές για αυτό το πρόβλημα. Το Subset sum problem αναζητά το υποσύνολο από ένα σύνολο ακεραίων αριθμών, το οποίο αν αθροίσουμε τους αριθμούς του, το αποτέλεσμα που θα προκύψει να είναι 0. Το πρόβλημα αυτο NP-complete. Είναι εύκολο αν κάποιος μας δώσει την απάντηση σε ένα τέτοιο πρόβλημα να αποφανθούμε αν είναι valid ή όχι, αλλά είναι δύσκολο να τη βρούμε μόνοι μας. \\\\
210
212
211
213
Το Subset sum problem ή αλλιώς Value Independent Knapsack Problem ή Stickstacking Problem μπορεί να θεωρηθεί στιγμιότυπο του 0-1 Knapsack problem. Πρέπει να επιλέξουμε ένα υποσύνολο βαρών, τέτοιο ώστε το άθροισμά τους να είναι το μεγαλύτερο δυνατό και ταυτόχρονα να μην υπερβαίνει τη χωρητικότητα του σακιδίου. \\\\
212
214
@@ -227,10 +229,10 @@ \subsection*{4. Define the Subset sum problem and give a dynamic programming sol
227
229
με
228
230
229
231
\[ x_{j} =
230
-
\begin{cases}
231
-
1 & \text{αν το j-οστό αντικείμενο τοποθετηθεί στο σακίδιο} \\
232
+
\begin{cases}
233
+
1 & \text{αν το j-οστό αντικείμενο τοποθετηθεί στο σακίδιο} \\
232
234
0 & \text{αν το j-οστό αντικείμενο ΔΕΝ τοποθετηθεί στο σακίδιο}
0 commit comments