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()