Example Revisited

  • We consider again the task of parametric design.

  • A more efficient method is named propose & revise and depends on the following inferences:
    • propose – derives an initial design based on the requirements;
    • C-test – as before;
    • revise – tries to improve an incorrect design based on the feedback of the C-test step.

  • In other words, instead of proposing a complete design which is then repaired, we can also incrementally develop a design and repair it at each step where a constraint violation occurs.

Example Revisited

Example Revisited

  • A parameter which should receive a value in the next propose step is nondeterministically selected:
    • The selection process does not make further assumptions about knowledge that could guide this second selection step
    • The implicit assumption is that this selection does not a
      affect the performance of the problem solving process and the quality of its result
    • These are very strong assumptions because to improve performance, heuristic methods are definitely needed
    • At any time there is either precisely one applicable propose rule or one user input to derive the value of the selected parameter
    • A parameter should not depend on itself (no recursive derivation rules)

Example Revisited

  • revise is decomposed into:
    • select-violation - nondeterministically selects a constraint violation from those detected by C-test; implicit assumption is that this selection does not influence the performance of the problem solving method and the quality of the result; strong assumption again
    • derive-fixes - computes the set of all possible fix combinations that could possibly resolve the selected constraint violation; each combination must be finite
    • select-fix - selects a fix combination, guided by a cost-function
    • apply-fix - applies a fix combination

Example Revisited

  • Test – propose & revise does not require an explicit R-test, the method assumes that:
    • propose derives only desired designs;
    • revise delivers designs that are desired or that requirement violations that it does not x must be accepted.

  • Selection – does not contain such a process concerning user preferences:
    • It assumes that the propose step and the revise step deliver acceptable (or optimal) solutions or that the functionality of the task is reduced to finding an arbitrary solution.