source: liacs/nc/laser-pulse-shaping/report.tex@ 54

Last change on this file since 54 was 49, checked in by Rick van der Zwet, 15 years ago

Final result report

File size: 5.4 KB
RevLine 
[45]1%
2% $Id: report.tex 571 2008-04-20 17:31:04Z rick $
3%
4
5\documentclass[12pt,a4paper]{article}
6
7\usepackage{listings}
8
9\frenchspacing
10\usepackage[english,dutch]{babel}
11\selectlanguage{dutch}
12\usepackage{graphicx}
13\usepackage{url}
14\usepackage{multicol}
15\usepackage{fancybox}
16\usepackage{amssymb,amsmath}
17\usepackage{float}
18\usepackage{color}
[46]19\usepackage{subfig}
[49]20\usepackage{marvosym}
[45]21\floatstyle{ruled}
22\newfloat{result}{thp}{lop}
23\floatname{result}{Result}
24
[49]25\input{highlight.sty}
26
[48]27\title{Laser Pulse Shaping problem\\
[45]28\large{Practical Assignments Natural Computing, 2009}}
29\author{Rick van der Zwet\\
30 \texttt{<hvdzwet@liacs.nl>}}
31\date{\today}
32
33
34\begin{document}
35\newcommand{\wekacmd}[1]{\begin{quote}\small{\texttt{#1}}\end{quote}}
36\newcommand{\unixcmd}[1]{\begin{quote}\small{\texttt{#1}}\end{quote}}
37
38
39\maketitle
40
41\section{Introduction}
[48]42The report is focused on the so-called \emph{laser pulse shaping problem}.
[49]43Today's lasers are also used within the range of atoms or molecule research.
[48]44Using small pulses it is able to align and alter the movement of the atoms.
[45]45
[48]46The problem lies in the fact the atoms cannot be controlled by any type of
47laser pulse. There are many parameters which could all be set to 'shape' the
48laser pulse the way it can move the atoms.
[45]49
[49]50To turn and tweak all the 'knobs' at the same time there will be \emph{Particle
51Swarm Optimizer (PSO)} used to explore the search space. The \emph{PSO} is
52basically a whole bunch of individual agents which all try to find an optimum
53into the search space. During this search they get input about other potential
54bests from the whole swarm (broadcast style) and the neighborhood
55(observation) and using this values they determine their new location.
56
[48]57\section{Problem description}
[49]58A laser pulse going through a crystal produces light at the octave of its
59frequency spectrum. The total energy of the radiated light is proportional to
60the integrated squared intensity of the primary pulse. Explicitly, the
61time-dependent profile of the laser field in our simulations is given by:
62\begin{equation}
63\label{eq:simulation}
64E(t) = \int_{-\infty}^\infty A(\omega)exp(i\phi(\omega))exp(i{\omega}t) d\omega,
65\end{equation}
66
67where $A(\omega)$ is a Gaussian window function describing the contribution of
68different frequencies to the pulse and $\phi(\omega)$, the phase function,
69equips these frequencies with different complex phases.
70
[48]71To determine the best solution a fitness function is needed, which could be
72found in the shape of equation~\ref{eq:fitness}
[45]73\begin{equation}
[49]74\label{eq:fitness}
75SHG = \int_0^T E^4(t)dt \longrightarrow maximization
[45]76\end{equation}
77
[49]78Note that $0 < SHG < 1$
[45]79\section{Statistics}
80
81\section{Approach}
[49]82The Wikipedia page 'Particle swarm
83optimization'~\footnote{http://en.wikipedia.org/wiki/Particle\_swarm\_optimization}
84contained a reference implementation used to implement the algorithm. The nice
85part about the algorithm is its flexibility in tuning. As within the \emph{PSO}
86there are many 'knobs' which could be tweaked as well, like likeliness of
87heading for the global optimum, neighborhood optimum and local optimum.
[45]88
89\section{Implementation}
90The code is written in
91\emph{Octave}\footnote{http://www.gnu.org/software/octave/} which is the
92open-source 'variant' of \emph{MATLAB}\copyright
93\footnote{http://www.mathworks.com/products/matlab/}. There are small minor
94differences between them, but all code is made compatible to to run on both
[46]95systems. The code is to be found in Appendix~\ref{app:code}.
[45]96
97As work is done remotely, the following commands are used:
98\unixcmd{matlab-bin -nojvm -nodesktop -nosplash -nodisplay < \%\%PROGRAM\%\%}
[46]99\unixcmd{octave -q \%\%PROGRAM\%\%}
[45]100
[49]101The flock is represented into a 3d block. A slice of that block contains a
102local swarm, a column in slice is a individual particle.
103
[45]104\section{Results}
[49]105The program is run against a parameter set of 80. The algorithm is allowed to run
106for 10 minutes with a maximum of 1000 iterations. If there are no improvements
107after 5 iterations then it will bail out as well.
[45]108
[49]109The algorithm is kind of 'social' e.g. it will favor the neighborhood and the
110global optimum more than it's own local optimum. Also its active, meaning it
111changes direction fast the moment the optimum is found somewhere else.
[46]112
[49]113Size of the local swarms is 50, each with 10 agents.
114
115After running 5 times, the best fitness found was $0.0000045481$. Improvement is
116almost only shown in the first 100 iterations see figure~\ref{fig:pso-fitness},
117afterwards it quickly stalls.
118Trying with a smaller number more and less show the same result as seen in
119figure~\ref{fig:pso-small}
120
[46]121\begin{figure}[htp]
122 \begin{center}
[49]123 \subfloat[80]{\label{fig:pso-fitness}\includegraphics[scale=0.4]{pso-fitness.eps}}
124 \subfloat[10]{\label{fig:pso-small}\includegraphics[scale=0.4]{pso-fitness-10.eps}}
[46]125 \end{center}
126 \caption{Fitness throughout the iterations}
127 \label{fig:fitness}
128\end{figure}
129
[49]130Changing various flags like walkspeed $wander$ or changing the socialness of
131the agents does not prove to change much in the algoritm result.
132
[45]133\section{Conclusions}
[49]134Giving the lack of external results of other algorithms in large scale setups
135(80 parameters) its hard to say whether this is a good or worse preforming
136algorithm.
[46]137
[49]138For furher research within the algorithm there are many knobs to tweak as well.
139One could think of implementing a algorithm around this setup as well.
140
[45]141\section{Appendix 1}
[46]142\label{app:code}
[49]143\include{pso.m}
144\include{SHGa.m}
145\include{SHG.m}
[45]146\end{document}
Note: See TracBrowser for help on using the repository browser.