|
- %
- % Optimization Techniques Work 3 report
- %
- % authors:
- % Χρήστος Χουτουρίδης ΑΕΜ 8997
- % cchoutou@ece.auth.gr
-
-
- \documentclass[a4paper, 11pt]{AUTHReport}
-
- % Document configuration
- \AuthorName{Χρήστος Χουτουρίδης}
- \AuthorAEM{8997}
- \AuthorMail{cchoutou@ece.auth.gr}
-
- %\CoAuthorName{CoAuthor Name}
- %\CoAuthorAEM{AEM}
- %\CoAuthorMail{CoAuthor Mail}
-
- % \WorkGroup{Ομάδα Χ}
-
- \DocTitle{3η Εργαστηριακή Άσκηση}
- \DocSubTitle{Μέθοδος Μέγιστης Καθόδου με Προβολή}
-
- \Department{Τμήμα ΗΜΜΥ. Τομέας Ηλεκτρονικής}
- \ClassName{Τεχνικές Βελτιστοποίησης}
-
- \InstructorName{Γ. Ροβιθάκης}
- \InstructorMail{rovithak@auth.gr}
-
- \CoInstructorName{Θ. Αφορόζη}
- \CoInstructorMail{taforozi@ece.auth.gr}
-
- \CurrentDate{\today}
-
-
- \usepackage{enumitem}
- \usepackage{tabularx}
- \usepackage{array}
- \usepackage{amssymb}
- \usepackage{amsfonts}
- \usepackage{amsmath}
- \usepackage{commath}
-
- \usepackage{float}
-
-
- \begin{document}
-
- \InsertTitle
-
- %\tableofcontents
-
- \sloppy
-
- \section{Εισαγωγή}
- Η παρούσα εργασία αφορά το πρόβλημα της ελαχιστοποίησης μιας δοσμένης συνάρτησης πολλών μεταβλητών $f: \mathbb{R}^n \rightarrow \mathbb{R}$ χωρίς περιορισμούς.
- Για το σκοπό αυτό κάνουμε χρήση τριών μεθόδων.
- Της μεθόδου μέγιστης καθόδου (Steepest Descent), της μεθόδου Newton, και της Levenberg-Marquardt.
- Ακόμα για κάθε μία από αυτές θα υλοποιήσουμε τρεις διαφορετικές τεχνικές υπολογισμού βήματος.
-
- \section{Παραδοτέα}
- Τα παραδοτέα της εργασίας αποτελούνται από:
- \begin{itemize}
- \item Την παρούσα αναφορά.
- \item Τον κατάλογο \textbf{scripts/}, που περιέχει τον κώδικα της MATLAB.
- \item Το \href{https://git.hoo2.net/hoo2/OptimizationTechniques/src/branch/master/Work%203}{σύνδεσμο} με το αποθετήριο που περιέχει όλο το project με τον κώδικα της MATLAB, της αναφοράς και τα παραδοτέα.
- \end{itemize}
-
- \section{Προγραμματιστική προσέγγιση}
- Για τον προγραμματισμό και εκτέλεση των μεθόδων της παρούσας εργασίας έγινε χρήση της MATLAB.
- Στον κατάλογο \textbf{scripts}, περιέχονται όλες οι μέθοδοι και οι τεχνικές υπολογισμού βημάτων με τη μορφή συναρτήσεων καθώς και scripts που τις καλούν.
- Για κάθε μία μέθοδο (ένα θέμα της εργασίας), υπάρχει το αντίστοιχο script που περιέχει τους υπολογισμούς, τις κλήσεις των μεθόδων και τη δημιουργία των διαγραμμάτων.
- Για το πρώτο θέμα το αρχείο Script\_1\_Plots.m για το δεύτερο το Script\_2\_Steepest\_descent.m και ούτω καθεξής.
- Στην παρούσα εργασία η υλοποίηση του κώδικα ακολουθεί την τεχνική της προηγούμενης εργασίας και “ομαδοποιεί” αρκετές λειτουργίες.
- Πιο συγκεκριμένα.
-
- \subsection{Symbolic expression functions}
- Μία ακόμη προγραμματιστική τεχνική που ακολουθήθηκε είναι η χρήση \textbf{symbolic expression} για την αναπαράσταση των διαφορετικών αντικειμενικών συναρτήσεων.
- Ο λόγος που επιλέχθηκε είναι η \textbf{δυνατότητα εξαγωγής ενός symbolic expression που αναπαριστά την κλίση $\nabla f$ και τον Εσσιανό $\nabla^2f$ μιας συνάρτησης} από την MATLAB, κάνοντας χρήση των εντολών \textit{gradient()} και \textit{hessian()}.
- Αν αντίθετα χρησιμοποιούσαμε απλές συναρτήσεις, πολυώνυμα ή lambdas για την αναπαράσταση των αντικειμενικών συναρτήσεων, τότε για τον υπολογισμό της κλίσης και του Εσσιανού θα έπρεπε:
- \begin{itemize}
- \item Είτε να υπολογίζαμε αριθμητικά τις παραγώγους gradient και hessian μέσα στις μεθόδους, κάτι που θα εισήγαγε \textit{\textbf{αχρείαστο αριθμητικό σφάλμα}}.
- \item Είτε να κάναμε χρήση δύο επιπλέων συναρτήσεων (ή πολυωνύμων) για την αναπαράσταση τους, κάτι που ουσιαστικά θα δημιουργούσε \textit{\textbf{πλεονασμό πληροφορίας εισόδου}} και άρα μεγαλύτερη πιθανότητα να κάνουμε λάθος.
- \end{itemize}
- Η αναπαράσταση όμως με χρήση symbolic expression είναι πιο “βαριά” όταν χρειάζεται να υπολογίσουμε την τιμή μιας συνάρτησης σε κάποιο σημείο (subs(expr, number)).
- Αυτό είναι κάτι που χρειάζεται εκτενώς στον κώδικά μας.
- Για το λόγο αυτό, ενώ η συνάρτηση δίνεται ως symbolic expression, μέσω αυτής υπολογίζονται αυτόματα η κλίση, ο Εσσιανός αλλά και οι “κανονικές” συναρτήσεις MATLAB που τις υλοποιούν.
- Έτσι έχουμε την ακριβή αναπαράσταση της κλίσης και του Εσσιανού ως συναρτήσεις χωρίς να πληρώνουμε το κόστος της subs().
-
-
-
- \end{document}
|