The Roles of Adaptation in Case-Based Design

Many design tasks have search spaces that are vague and evaluation criteria that are subjective. We present a model of design that can solve such problems using a method of plausible design adaptation. In our approach, adaptation transformations are used to modify the components and structure of a design and constraints on the design problem. This adaptation process plays multiple roles in design: 1) It is used as part of case-based reasoning to modify previous design cases. 2) It accommodates constraints that arrive late in the design process by adapting previous decisions rather than by retracting them. 3) It resolves impasses in the design process by weakening preference constraints. This model of design has been implemented in a computer program called JULIA that designs the presentation and menu of a meal to satisfy multiple, interacting constraints.