Informally, our goal is to maximize each object's net happiness, which is computed by subtracting its membership score of the class it is not assigned to from its membership score of the class it is assigned to.
at the same time, we want to avoid assigning similar objects to different classes.