Using multi-objective search and machine learning to infer rules constraining product configurations