First work3 code version and report initialization
This commit is contained in:
Binary file not shown.
@@ -0,0 +1,93 @@
|
||||
%
|
||||
% 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}
|
||||
Reference in New Issue
Block a user