Algorithms and OOD (CSC 207 2014F) : EBoards

CSC207.01 2014F, Class 47: Pause for Breath


Overview

Preliminaries

Admin

Upcoming Work

Extra Credit

Academic

Peer Support

Questions

General project approaches

Here's a sample ten-team round-robin schedule. Based on algorithm taken from Wikipedia page on round-robin tournaments, although generated using a slightly different pattern.

Day 1: T0 vs. T9, T1 vs. T8, T2 vs. T7, T3 vs. T6, T4 vs. T5
Day 2: T0 vs. T8, T9 vs. T7, T1 vs. T6, T2 vs. T5, T3 vs. T4
Day 3: T0 vs. T7, T8 vs. T6, T9 vs. T5, T1 vs. T4, T2 vs. T3
Day 4: T0 vs. T6, T7 vs. T5, T8 vs. T4, T9 vs. T3, T1 vs. T2
Day 5: T0 vs. T5, T6 vs. T4, T7 vs. T3, T8 vs. T2, T9 vs. T1
Day 6: T0 vs. T4, T5 vs. T3, T6 vs. T2, T7 vs. T1, T8 vs. T9
Day 7: T0 vs. T3, T4 vs. T2, T5 vs. T1, T6 vs. T4, T7 vs. T8
Day 8: T0 vs. T2, T3 vs. T1, T4 vs. T9, T5 vs. T3, T6 vs. T7
Day 9: T0 vs. T1, T2 vs. T9, T3 vs. T8, T4 vs. T2, T5 vs. T6

Two sets of this is a full schedule. (In the first set, we treat the left member of each pairing as the home team; in the second we treat the right member of each pairing as the home team.)

What can we do to make this meet the other criteria?

Reaching this stage

Where to go next?

If I were implementing the project, I'd probably begin with a really simple approach: I would just randomly assign everything, have a program "assess" the schedule and print out in what ways the schedule failed, and then think about how I'd adjust the schedule by hand. I'd expect to learn some things doing so.

But I tend to think ahead, so I expect that my algorithm would look something like the following.

But I'd learn things along the way, so the process might change significantly. I might also find that steps four and seven take too long, and would then start to think about potential improvements.

Time to work on projects and ask additional questions

If you can't get it to work for all ten teams, see if it works for four and then six and then ....