Algorithm Traces. The input is the M preferences (with row i giving the preference order for m_i) and the W preferences (with row i giving the preference order for w_i). The output is the matching computed with respect to M - so the i-th entry is the W that m_i is matched to. The trace is the list proposals with the result given. The pair in brackets [i, j] indicates that at the time of the proposal w_i is matched with m_j. (A -1 is used to indicate w_i is unmatched.) The trace is from one partcular implementation of the Gale-Shapley algorithm - you may get different proposals, but you should get the same overall result. The specific implementation uses a Stack for ordering the unmatched W's. ==================================== Input: [2, 0, 1] [2, 0, 1] [2, 1, 0] [2, 0, 1] [0, 2, 1] [2, 0, 1] Output: [0, 1, 2] Trace 2 proposes to 2 [2,-1] Accepted 1 proposes to 2 [2,2] Rejected 1 proposes to 0 [0,-1] Accepted 0 proposes to 2 [2,2] Rejected 0 proposes to 0 [0,1] Accepted 1 proposes to 1 [1,-1] Accepted ========================================== Input: [3, 1, 0, 2] [3, 0, 1, 2] [3, 1, 2, 0] [0, 3, 2, 1] [3, 0, 2, 1] [3, 1, 2, 0] [0, 1, 3, 2] [3, 0, 2, 1] Output: [3, 1, 2, 0] Trace: 3 proposes to 0 [0,-1] Accepted 2 proposes to 3 [3,-1] Accepted 1 proposes to 3 [3,2] Rejected 1 proposes to 0 [0,3] Rejected 1 proposes to 1 [1,-1] Accepted 0 proposes to 3 [3,2] Accepted 2 proposes to 1 [1,1] Rejected 2 proposes to 2 [2,-1] Accepted ============================================= Input: [1, 3, 0, 2] [3, 0, 2, 1] [2, 3, 1, 0] [2, 0, 3, 1] [1, 2, 0, 3] [0, 3, 2, 1] [1, 2, 3, 0] [0, 1, 2, 3] Output: [1, 3, 2, 0] Trace: 3 proposes to 2 [2,-1] Accepted 2 proposes to 2 [2,3] Accepted 3 proposes to 0 [0,-1] Accepted 1 proposes to 3 [3,-1] Accepted 0 proposes to 1 [1,-1] Accepted ============================================= Input: [4, 2, 0, 1, 3] [0, 1, 4, 2, 3] [4, 0, 1, 3, 2] [1, 4, 3, 0, 2] [0, 1, 3, 4, 2] [2, 3, 4, 0, 1] [2, 4, 0, 3, 1] [1, 4, 2, 3, 0] [3, 0, 1, 4, 2] [0, 3, 1, 2, 4] Output: [4, 2, 0, 3, 1] Trace 4 proposes to 0 [0,-1] Accepted 3 proposes to 1 [1,-1] Accepted 2 proposes to 4 [4,-1] Accepted 1 proposes to 0 [0,4] Rejected 1 proposes to 1 [1,3] Rejected 1 proposes to 4 [4,2] Accepted 2 proposes to 0 [0,4] Accepted 4 proposes to 1 [1,3] Accepted 3 proposes to 4 [4,1] Accepted 1 proposes to 2 [2,-1] Accepted 0 proposes to 4 [4,3] Accepted 3 proposes to 3 [3,-1] Accepted