Undergraduate Course: Algorithms in Practice (INFR10028)
|School||School of Informatics
||College||College of Science and Engineering
|Credit level (Normal year taken)||SCQF Level 10 (Year 4 Undergraduate)
||Availability||Not available to visiting students
|Summary||Algorithms (and data structures) are fundamental to all computing. Any given problem will have many possible algorithms unless it is computationally unsolvable. It is therefore important to have criteria for choosing between competing algorithms. Various technical tools (e.g., runtime analysis) are covered in the third year pre-requisite course. However there remains the difficulty of what can be done with problems that do not seem to have algorithms that can be guaranteed to be efficient for all inputs. This course will focus on a few areas and discuss techniques for addressing such problems as well as pragmatic considerations in choosing algorithms. In addition students will have the opportunity to extend their knowledge of algorithms in the area of Computational Geometry. The course overall is practically based but theory informed.
* Informal introduction to efficiency concerns, optimisation problems and related decision problems, intractability, NP-completeness.
* Theoretical and practical concerns: Linear Programming as a case study, comparison with Integer Programming techniques. Rephrasing practical problems as instances of Linear Programming and Iinteger Programming.
* Computational Geometry. Topics such as:
o Half plane intersection, relation to linear programming.
o Smallest enclosing disc of points in the plane.
o Voronoi diagrams and brief discusion of applications (e.g., in physics, astronomy, robotics); appropriate data structures (e.g., doubly connected edge lists).
o Delaunay triangulations, study of what constitutes a "good" triangulation.
* Approximation algorithms for "hard" problems covering heuristics and performance guarantees. Topics such as:
o Notions of approximation: relative error, approximation schemes.
o The vertex cover problem.
o The travelling salesman problem: with and without the triangle inequality.
o The set covering problem.
o The subset sum problem.
* Survey of various techniques, e.g., Markov chains.
Relevant QAA Computing Curriculum Sections: Data Structures and Algorithms.
Entry Requirements (not applicable to Visiting Students)
|| Students MUST have passed:
Algorithms and Data Structures (INFR09006)
||Other requirements|| Successful completion of Year 3 of an Informatics Single or Combined Honours Degree, or equivalent by permission of the School.
Course Delivery Information
|Not being delivered|
| 1 - Discuss the obstacles to efficient exact solutions to certain problems.
2 - Given a problem related to those covered in the course assess its likely algorithmic difficulty.
3 - Given a proposed algorithm for a problem assess its suitability in terms of correctness and efficiency.
4 - Discuss notions of approximation for optimisation problems.
5 - Develop and justify appropriate algorithms for problems related to ones discussed in the course..
| * T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein: Introduction to Algorithms (2nd Edition). MIT Press, 2002|
* H. Edelsbrunner, Algorithms in Combinatorial Geometry, EATCS Monographs in Computer Science, Springer, 1987.
* F.P. Preparata and M.I. Shamos, Computational Geometry-an introduction, Springer, 1985.
* Vijay Vazirani, Approximation Algorithms, Springer 2001.
|Course organiser||Dr Amos Storkey
Tel: (0131 6)51 1208
|Course secretary||Miss Kate Weston
Tel: (0131 6)50 2692