Soft Constraint Satisfaction