def init_example(self): # example from http://www.eecs.harvard.edu/cs286r/courses/fall09/papers/stable-improvement-cycles.pdf x = School('X') y = School('Y') z = School('Z') s1 = Student('1') s2 = Student('2') s3 = Student('3') self.schools = [x, y, z] self.students = [s1, s2, s3] x.init_preference(self.students, {0: [s1], 1: [s2, s3]}) y.init_preference(self.students, {0: [s2], 1: [s1, s3]}) z.init_preference(self.students, {0: [s3], 1: [s1, s2]}) s1.init_preference(self.schools, [y, x, z]) s2.init_preference(self.schools, [z, y, x]) s3.init_preference(self.schools, [y, z, x]) self.calculate_permutations() return {s1: x, s2: z, s3: y}
def init_example(self, schools_list): # example from http://www.eecs.harvard.edu/cs286r/courses/fall09/papers/stable-improvement-cycles.pdf x = School('X') y = School('Y') z = School('Z') s1 = Student('1') s2 = Student('2') s3 = Student('3') self.schools = [x, y, z] self.students = [s1, s2, s3] x.init_preference(self.students, { 0: [s1], 1: [s2, s3] }) y.init_preference(self.students, { 0: [s2], 1: [s1, s3] }) z.init_preference(self.students, { 0: [s3], 1: [s1, s2] }) for i in range(len(self.students)): std = self.students[i] schools = [self.schools[pos] for pos in schools_list[i]] # print(std, schools) std.init_preference(self.schools, schools) # s1.init_preference(self.schools, [y, x, z]) # s2.init_preference(self.schools, [z, y, x]) # s3.init_preference(self.schools, [y, z, x]) self.calculate_permutations()