Student thesis topics
I describe below some topics on which you can work with me for your MS
project or thesis, or your PhD dissertation. I will first mention some
common skills that you require to work on these, and the types of
skills you will learn. I will also mention why you should probably do
a thesis, rather than a project.
Pre-requisite skills:
- C/C++ programming knowledge: All the topics have a
significant programming component. Most of my current software is
written in C, and you may need to understand them in order to work on
topics which continue my previous work. I plan to migrate to C++ for
newer software, and so you should be able to do this too.
- Mathematics background: All the topics require at
least a moderate amount of Mathematics background. Even in the
simplest case, you will need to implement numerical methods, for which
familiarity with Mathematics and its terminology is required. I will
mention the specific requirements along with each topic.
- A yearning for learning: You should be interested in
maximizing your learning, rather than in minimizing your effort! You
should also be interested in doing good quality work.
Skills that you will acquire:
- Software development: You will get experience in writing
a significant piece of software. Furthermore, some of
these software will probably have users outside FSU, and so you will
get exposure to user support, creating a user-friendly interface, etc.
- Mathematics: All the projects have some mathematical
component to them, and so you will learn something new.
- Research skills: There is a creative aspect to research
that is hard to teach in a classroom. Working on these research topics
will expose you to real research. You will also read journal articles,
interact with other researchers, etc.
- Algorithm analysis: Most of the topics will require some
non-trivial analysis of new algorithms, and so you will acquire this
skill.
- Written communication: I will ask you to submit short
reports of your current activities regularly, in order to give you
practice in professional writing. You will also probably need to write
an article for a conference or a journal publication, apart from your
thesis or project report.
- Oral presentations: I will ask you to give frequent oral
presentations, and perhaps occasionally have others too attend and
give suggestions, so that you develop confidence in your oral
presentation skills.
Miscellaneous matter
- Time frame: I expect that a project or a thesis will
take around a year (two regular semesters and a summer). However, you
should aim to finish your thesis about half a semester before you
graduate, in order to give enough time for formalities. Of course,
this is just an estimate, and assumes that you put in sufficient
effort of sufficient quality.
- Why do a thesis?: All the topics I mention are really
research topics suited to a thesis. A project will just emphasize the
software development component a little more. So the effort required
will be around the same. You might as well have a thesis on your
resume. Furthermore, if you do good work, then I may send you to a
conference, to give a presentation perhaps. This will be a
professionally enriching experience for you. A thesis may also help
you in this tight job market.
- Funding: You can discuss this with me, in case you plan
to do a thesis. However, I have limited funds and want to be careful
about spending it, and so will want to observe your work for a
sufficient period of time before giving any commitment.
Topics
- Parallelization of Monte Carlo linear algebra algorithms
- Level: Master's thesis, PhD
- Description: Monte Carlo is particularly suited to
parallel and distributed computing, since it is "embarrassingly
parallel". However, when the state space is very large, one may need
to resort to domain decomposition techniques that destroy this
embarrassingly parallel nature. We need to develop parallel algorithms
that are still latency tolerant, and so will be suitable for a
distributed heterogeneous cluster. This will be an inter-disciplinary
collaboration, involving the development of better Monte Carlo
techniques, combining Monte Carlo with conventional techniques, and
parallelization. We will concentrate on parallelization and software
development, while the others concentrate on the other aspects.
- Mathematics pre-requisites: Familiarity with linear
algebra: Matrices, matrix-vector multiplication, solving a linear
system, and, ideally, eigenvalues too. Some knowledge of probability
too will be required.
- References:http://www.sciencedirect.com/science?_ob=ArticleURL&_udi=B6V0T-3VFBH8Y-24&_user=130899&_coverDate=08%2F01%2F1998&_rdoc=4&_fmt=full&_orig=browse&_srch=%23toc%235655%231998%23999529997%2344885!&_cdi=5655&_sort=d&_acct=C000010879&_version=1&_urlVersion=0&_userid=130899&md5=23637667713a15cdb56c22e2c9ccfac2. We will not use this technique, but it will give you an idea of the field. Read the parallelization part in particular.
- Problem solving environment of quasi-Monte Carlo integration
- Level: Master's thesis/project, PhD
- Description: At the Master's level, you will implement
existing and new parallelization techniques for low discrepancy
(quasi-random) sequences, and make the current software I have more
user friendly and portable. You will also need to read the literature,
and for a thesis, suggest improvements to existing techniques. At a
PhD level, you will extend this to a problem solving environment for
Monte Carlo integration by including automatic variance reduction
techniques, error estimation, and GUI. You may also specialize it to
specific applications, such as derivative pricing in finance. This
work will involve interaction with other researchers in QRN
generation.
- Mathematics pre-requisites: Knowledge of integration,
some probability.
- References: http://www.cs.fsu.edu/~asriniva/papers/mcqmc.ps
- Monte Carlo techniques for graph partitioning
- Level: Master's thesis/project
- Description: Graph partitioning has applications in
parallel computing to minimize communication cost, in VLSI design,
etc. The spectral method for graph partitioning uses an eigenvector to
partition the graph. It lost favor over the past several years,
because it is very slow, though the quality of the partitioning is
good. However, it is still be used as a part of multi-level
methods. We want to make the spectral method faster using Monte Carlo
techniques. We will also test a different "normalized Laplacian",
instead of the conventional one. We will compare our schemes against
two popular graph partitioning packages.
- Mathematics pre-requisites: Familiarity with linear
algebra: Matrices, matrix-vector multiplication, solving a linear
system, and eigenvalues. Some elementary knowledge of probability too
may required.
- Experimental study of selection algorithms
- Level: Master's thesis/project
- Description: Randomized selection algorithms generally
outperform deterministic schemes. In a certain financial risk
application, we need to select the n th largest element of
a large set of numbers quickly, where n is often the highest 1% or
5%. I have suggested an algorithm that is very effective for
such selection from the tails. However, we need to analyze it better and
determine suitable parameters to optimize its performance, implement
several algorithms, and compare them exhaustively. We may also study
parallel selection.
- Mathematics pre-requisites: Algorithm analysis, and ideally
some elementary probability.
- Determining large components of matrix vector products
- Level: Master's thesis/project
- Description: Large components of matrix-vector
products have important applications in certain financial risk
problems, and in information retrieval. I derived a linear algebra
bound that proved very useful in the finance application, and improved
it using computational geometry techniques. I would like you to
implement other ideas that I have, and come up with your own too. I
would also like to test the effectiveness of these techniques in
information retrieval, and perhaps pattern recognition. (I have not
tried them in these two applications, and so you would need to do a
literature search to find out the current state of the art.)
Applications of some Monte Carlo techniques too would be needed.
- Mathematics pre-requisites: Familiarity with linear
algebra: Matrices, and matrix-vector multiplication. Some knowledge of
probability and algorithm analysis too will be required.
- Parallel Monte Carlo techniques in finance
- Level: Master's project
- Description: We will apply parallel pseudo and
quasi-random number generation techniques, and different automatic and
application specific variance reduction techniques to finance
problems, such as option pricing. Your work will be primarily
implementation and experimentation, and so I suggest it only as a
Master's project, and not as a thesis. But some publication (either
conference or journal) should still come out of it.
- Mathematics pre-requisites: Some probability and
differential equations would be ideal, though not required.