94 lines
6.1 KiB
TeX
94 lines
6.1 KiB
TeX
%
|
||
% 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}
|