A Taxonomy of Algorithms used in the ACM Programming Competition

10
A Taxonomy of Algorithms used in the ACM Programming Competition Douglas Hobson Supervisor: A.J. Ebden

description

A Taxonomy of Algorithms used in the ACM Programming Competition. Douglas Hobson Supervisor: A.J. Ebden. Project Specification. The hypothesis is that the problems each year in the ACM Programming Competition have been drawn from the same set of algorithms - PowerPoint PPT Presentation

Transcript of A Taxonomy of Algorithms used in the ACM Programming Competition

Page 1: A Taxonomy of Algorithms used in the ACM Programming Competition

A Taxonomy of Algorithms used in the ACM Programming Competition

Douglas HobsonSupervisor: A.J. Ebden

Page 2: A Taxonomy of Algorithms used in the ACM Programming Competition

Project Specification The hypothesis is that the problems

each year in the ACM Programming Competition have been drawn from the same set of algorithms

I will attempt derive all of or part of this set of algorithms

Solve as many of the problems as possible

Derive a classification of the algorithms.

Page 3: A Taxonomy of Algorithms used in the ACM Programming Competition

Background Every year students from RU take part in the ACM

Programming Competition

Page 4: A Taxonomy of Algorithms used in the ACM Programming Competition

Resources

“Algorithmics: The Spirit of Computing” by David Harel

Top Coder - practice and technique, algorithms etc

USACO – more of the same ACM Digital Library

Page 5: A Taxonomy of Algorithms used in the ACM Programming Competition

Local and International ACM Programming Competition websites

Both have many problem sets and statistics about the competition

They have the problem sets that I will be looking at

Page 6: A Taxonomy of Algorithms used in the ACM Programming Competition

Proposed Timeline

Analyse all ACM problems from the last 6 years. This will be done to try and find patterns and similarities among the problems

1 month

Start formulating and verifying algorithms.This will be done in conjunction with other steps 1 month

Program solutions to selected problems in C, C++ or Java in order to validate/verify the algorithm type/suitability of algorithm

4 months

Analyse results of programming attempts 2-3 weeks

Write up the project 1 month

Page 7: A Taxonomy of Algorithms used in the ACM Programming Competition

Sample Problem

Page 8: A Taxonomy of Algorithms used in the ACM Programming Competition

Deliverables

List of algorithms appearing in the ACM Programming Competition

Their frequency of appearance Level of difficulty: for humans and

machines.

Page 9: A Taxonomy of Algorithms used in the ACM Programming Competition

Possible Extensions Tutorial could be developed on how to

approach the ACM Programming Competition

Method of ranking algorithms for their level of difficulty for humans

Analyse and formulate algorithms from the board game Go.

Classification of all algorithms, not just ACM – AI, chess, video games, sorting, searching etc.

Page 10: A Taxonomy of Algorithms used in the ACM Programming Competition

Are there any questions?

Any comments or suggestions are also welcome