CREATOR 

 
Main Page 

Architecture 

Case Representation 

Memory Structure 

Problem Elaboration  

Case Retrieval

Case Retrieval
 
Case retrieval comprises two steps: selection of the starting cases, and exploration of the graph of cases. Selection of the starting cases make use of the FS taxonomy to identify all the cases with at least a common FS with the target problem. Then the cases are ordered by the number of FSs in common with the problem. The second step is the exploration of the graph of cases, using the cases from phase one as starting entries. In this step, three sets of cases are retrieved in each iteration. One set for each adaptation strategy.

 The retrieval process comprises the following steps:

    1. Select all cases with at least one FSs in common with the new problem, these are the Starting Cases.
    2. Rank the Starting Cases by the number of FSs in common with the new problem.
    3. Select the case from the Starting Cases with higher number of FSs in common with the new problem.
    4. While it is necessary to have more cases for generation of alternatives in the adaptation process
      a) Retrieve cases for Mutation.
      b) Retrieve cases for Composition.
      c) Retrieve cases for Analogy.
      d) If there are no more cases available then Select another best case from the Starting Cases.

Retrieving Cases for Mutation

In the mutation strategy for adaptation the focus is on the similarity between the case and the target problem. This similarity is based on the functional specifications. Starting from the most similar case, the retrieval algorithm uses the graph of cases to select the cases linked to the start case that have fewer differences from it. Selected cases are retrieved and ranked. In the next iterations the retrieved cases are the starting cases, and the best case is selected. Then all cases linked to the selected case are retrieved and ranked. The new set of selected cases is added to the cases retrieved in the previous iteration, excluding the selected case (the one that was expanded). 

The algorithm for retrieving cases for Mutation is:

    1. Select the best case from the cases retrieved in the previous iteration.
    2. Remove it from the retrieved cases.
    3. Retrieve all the cases with a link to the Selected Case.
    4. Rank the cases based on the differences with the Selected Case.
    5. Append the cases to the Retrieved Cases.

Retrieving Cases for Composition

The composition strategy for adaptation is based on the concept of complementarity between cases. Cases retrieved are gathered in sets of cases, so that they can complement each other in a way that by using splitting and merging operations, a useful solution has a chance to be generated. Based on this concept no single cases are retrieved, but sets of cases, each one with a score based on complementarity. 

The retrieval algorithm is:

    1. Select the best case from the Cases Retrieved for Composition in the previous iteration.
    2. Remove it from the Cases Retrieved for Composition.
    3. Retrieve all the cases with a link to the Selected Case.
    4. Rank the cases based on the number of FSs in common with the Problem.
    5. Remove the cases with no common FSs.
    6. Append the cases to the Cases Retrieved for Composition and sort the resulting list.
    7. Create sets of cases.
    8. Rank the sets.
Retrieving Cases for Analogy

Analogy as we use it, is an adaptation strategy that maps the case’s FSs to the Problem’s FSs. The result of mapping is a correspondence between two FSs (one from the Problem and the other from the Case). 

 In order to make the retrieval of useful cases for analogy, it is necessary to preview the mapping between a case and the target problem. This prevision is done using the FS taxonomy, to give a score to a case. This score is the sum of the taxonomical distances of each Problem’s FS to the nearest Case’s FS. The taxonomical distance between each Problem and Case’s FS is given by one divided by the number of nodes in the taxonomy between the two FSs.

 The retrieval algorithm for Analogy is:

    1. Select the best case from the Cases Retrieved for Analogy in the previous iteration.
    2. Remove it from the Cases Retrieved for Analogy.
    3. Retrieve all the cases with a link to the Selected Case.
    4. Rank the cases based on the sum of the taxonomical distances to the Problem.
    5. Append the cases to the Cases Retrieved for Analogy and sorts the resulting list.