- the aim is to study some numerical optimization algorithm or problem in more detail in groups of 1-2 students (the task requires programming skills). This could involve examining the computation times of different methods, how much memory they take, how big problems can be solved in real time (under a second) etc.
- it is possible to continue the project as an independent project work (MS-E2108) or bachelor's thesis if the topic is wide enough
- replaces the second part of the course related to the numerical methods
- replaces the assignments and the exam questions related to numerical methods
- 1st step: come to talk about your idea for assignment on lectures, send email or come visit the office (room number)
- 2nd step: Return / present the first working plan at latest (update): the scope of the assignment, what will be studied, what methods will be used etc. At this point the algorithm descriptions should be ready from some research to guarantee that the task can be done to the end without any large problems.
- help will be given through email or come visit if there is any questions or problems
- 3rd step: Computation and coding has been done and you are ready to write the report. If you think there is a need to check the format of the report, you may email the structure of the report by email or come and ask if it is ok
- 4th step: Return the report, desirable before (update). Grading and comments, small changes. The zipped codes are returned as email attachment.
- approximately 5-10 pages
- short description of the problem and the methods and implementation (what pc was used, how much memory, what operating system etc.)
- main focus is in comparing the methods, computation times on different sized problems, good figures and tables
- short conclusion and references
- This course is not about practising writing report, so don't waste too much time on it
- find suitable algorithm or program some parts of an algorithm with more efficient code (e.g. taking into account special structure of the problem)
- compare your algorithm with ready ones (in matlab or what ever you use), use different sized problems (the limit may be due to memory or computation time), test your code with larger problems
- generating meaningful (large) optimization problems can be difficult
Examples of topics
- solving linear equations Ax=b in special cases (Matlab's sparse matrices, tridiagonal, block diagonal etc. matrices)
- solving nonlinear equations F(x)=0
- solving convex problem with interior point methods (see CVX), can you exploit some special structures in computing matricse?
- solving nonlinear constrained optimization with SQP when the matrices have some special structure (e.g. nonlinear terms only with respect to some variables)
- application of interior point method in portfolio optimization (see 1 or 2: paper 1, slides)
- solving QP problems
- solving linear LP problem with interior point method
- optimization in real time
- solving your favorite optimization problem/application
- network problem with convex/nonlinear costs
- graph problems
- testing exact and inexact line search methods
- comparing BFGS and conjugate gradient methods