I. Introduction
Many real-world optimization problems are assignment problems whereby resources are assigned a set of tasks to perform. In such problems, the objective function can be productivity, speed, robustness, etc, or a combination thereof. The optimization can be further subjected to hard or soft constraints. If the resources are human beings, there are un-verbalized and/or un-formulated and/or subjective criteria and constraints such as implicit knowledge and preferences specific to each of the participants that are not taken into account in the objective function. For example, in a factory scheduling application where workers are assigned jobs to minimize production time under such constraints as changeover times or machine compatibility, some workers may have special knowledge about the factory or may prefer to work on certain machines they like or know better; such factors are not taken into account in the objective function but may be crucial to worker efficiency, worker satisfaction and overall productivity.