Throughout the course, we will be using a single case study to support the material presented in class. It is important to realize that the design skills you are learning cannot be learned in a vacuum. Notice that design is only meaningful when considered in the context of a set of requirements and performance criteria by which a solution can be validated.
The purpose of Amida is to help a group of N people prioritize among a set of N choices.
Example: A group of people would like to go to the movies, yet each person has a different movie that they would like to see. How can one choose fairly among the set of different choices to create a prioritized list of the choices? |
The process starts by forming an Amida board. A series of M rounds then proceeds. During each round, each player adds a horizontal edge (based on a set of rules) to the Amida board. Thus, after M rounds, there are a total of M*N horizontal edges on the board. We first describe how a round proceeds, then we explain the final decision process.
First, we need to create an Amida board containing N vertical lines, labeled 1 to N. In the example below, five people are deciding (Alice, Bob, Charlie, Debby, Eric) the order by which a set of movies should be seen. (the movie that each person, respectively, wants to see is: The Terminator, Fried Green Tomatoes, Notting Hill, The Ring, The Long Kiss Good Night). These movies will ultimately each be represented, left-to-right, by the N vertical lines.
In each round, each person is able to add a horizontal edge between two neighboring vertical lines (for example, one could add a horizontal edge between line 2 and 3, but not between vertical line 2 and vertical line 4). For example, starting from the empty board above, Alice adds an edge between 2 and 3:
Each person in turn can add another horizontal edge as long as the edge is not directly adjacent (left or right) to an existing edge. For example, the following red edge between 3 and 4 is invalid, because it is directly adjacent to the existing 2,3 edge; for this assignment, I want to restrict users from adding edges that are within five pixels vertically from each other.
A round consists of all players adding horizontal edges to the Amida board under the constraints described above: (a) NeighboringLines [edges can only be added between neighboring vertical lines]; and (b) NonAdjacency [edges can not be added directly left of, or right of, an existing edge within five pixels. To complete this first round, let's add four more edges (one each for Bob, Charlie, Debby, and Eric):
Note that the board is disconnected because there is no edge (yet) between vertical lines 1 and 2.
Once all M rounds have completed, the players write their choices (from left to right) at the top of the vertical lines. Assuming three rounds (i.e., M is 3), the following is a possible final result:
Now, we can create an ordering of the people's choices by the following process. Imagine a ball rolling down a vertical line. Whenever the ball meets a horizontal edge, the ball must proceed along the horizontal edge until it hits the vertical line, at which point it returns to moving vertically down the new line. Let's follow the progress of a ball from The Terminator.
If you repeat the process for Bob, Charlie, Debby, and Eric, you get the following board:
Thus, the group has agreed to see the following movies, in the following order: Notting Hill (Charlie's choice), The Terminator (Alice's choice), Fried Green Tomatoes (Bob's choice), The Long Kiss Good Night (Eric's choice), The Ring (Debby's choice).