def optimist(self, pt): self.__check_input_params() profiles = self.profiles assignments = AlternativesAssignments([]) for action_perfs in pt: cat_rank = 0 for i, profile in enumerate(profiles): outr = self.__outrank(action_perfs, self.criteria, self.bpt[profile], self.lbda) if outr != "-": cat_rank += 1 cat_id = self.categories[cat_rank] id = action_perfs.id alt_affect = AlternativeAssignment(id, cat_id) assignments.append(alt_affect) return assignments
def pessimist(self, pt): self.__check_input_params() profiles = self.profiles[:] profiles.reverse() assignments = AlternativesAssignments([]) for action_perfs in pt: cat_rank = len(profiles) for i, profile in enumerate(profiles): s_ab = self.credibility(action_perfs, self.bpt[profile], profile) if not eq(s_ab, self.lbda) and s_ab < self.lbda: cat_rank -= 1 cat_id = self.categories[cat_rank] id = action_perfs.id alt_affect = AlternativeAssignment(id, cat_id) assignments.append(alt_affect) return assignments