Abstract
Systems for automated design optimization of complex real-world objects can, in principle, be constructed by combining domain-independent numerical codes with existing domain-specific analysis and simulation models. Unfortunately, existing ``legacy'' analysis models are frequently unsuitable for use in automated design. They may crash for large classes of input, be numerically unstable or locally non-smooth, or be highly sensitive to control parameters. Direct modification of legacy codes to correct these problems is often rendered infeasible by the high cost of re-validating the modified code. This paper describes an approach to incorporating knowledge-based handling of failures into design optimization systems that does not require code modification, yet allows for fine-grained control of model execution. We have constructed a toolkit for the development of robust design optimization systems that builds ``intelligent intercessors'' into existing analysis models. These intercessors are compiled from high-level rules to code that is inserted between discretely callable components of the design system. Intercessors serve to detect failures; take corrective action when possible; and transfer control to an appropriate destination when corrective actions fail. We show that this approach is effective in improving analysis model robustness and design optimization performance in the domain of conceptual design of jet engine nozzles.