edu.indiana.iucbrf.cbrsystem
Class DomainlessSystem

java.lang.Object
  extended by edu.indiana.iucbrf.cbrsystem.CBRSystem
      extended by edu.indiana.iucbrf.cbrsystem.DomainlessSystem
All Implemented Interfaces:
java.io.Serializable

public class DomainlessSystem
extends CBRSystem

A DomainlessSystem is a special kind of CBRSystem, designed specifically to be run on multiple domains. The designer must specify the components of a DomainlessSystem just as would be done for a CBRSystem. If any components of a DomainlessSystem make assumptions about the domain on which they act, then the designer must take care to test the DomainlessSystem only on compatible domains.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class edu.indiana.iucbrf.cbrsystem.CBRSystem
adaptation, baseFilename, CB, currentContext, debugMode, DEFAULT_BASE_FILENAME, domain, episodeSummaryPanel, guiMode, maintenance, performanceMonitor, retrieval, title
 
Constructor Summary
protected DomainlessSystem()
           
  DomainlessSystem(java.lang.String performanceMonitorType, java.lang.String caseBaseType)
          Creates new DomainlessSystem
 
Method Summary
 void generateCB(int numCases)
          Generate a case base for the system, for use in the current domain.
 void setDomain(Domain domain)
          Set the currently active domain for this DomainlessSystem.
static void setProblemSpaces(java.util.ArrayList domainList, ProblemGenerator problemSpace)
          This is a convenience method for testing multiple domains.
 java.util.ArrayList testDomains(java.util.ArrayList domainList, SystemTest tester, boolean doMaintenance, int CBsize, java.util.ArrayList savedCBs)
          Test this system on a list of domains, according to a SystemTest instance.
 
Methods inherited from class edu.indiana.iucbrf.cbrsystem.CBRSystem
close, finalize, getAdaptation, getBaseFilename, getCB, getContext, getDebugMode, getDomain, getGUIMode, getMaintenance, getPerformanceMonitor, getRetrieval, getTitle, loadCBFromFile, loadPerformanceMonitorFromFile, saveCBToFile, savePerformanceMonitorToFile, saveSystemToFile, setAdaptation, setBaseFilename, setCB, setContext, setDebugMode, setGUIMode, setMaintenance, setPerformanceMonitor, setRetrieval, setTitle, solve, solve
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DomainlessSystem

protected DomainlessSystem()

DomainlessSystem

public DomainlessSystem(java.lang.String performanceMonitorType,
                        java.lang.String caseBaseType)
Creates new DomainlessSystem

Parameters:
performanceMonitorType - A String indicating the class name of the performance monitor type used by the system.
caseBaseType - A String indicating the class name of the case base type used by the system.
Method Detail

testDomains

public java.util.ArrayList testDomains(java.util.ArrayList domainList,
                                       SystemTest tester,
                                       boolean doMaintenance,
                                       int CBsize,
                                       java.util.ArrayList savedCBs)
Test this system on a list of domains, according to a SystemTest instance. The maintenance component of the system can be turned on or off. The case bases generated and used for each domain can optionally be saved.

Note that each domain in domainList must have a problemSpace specified, so that a case base can be populated for each domain. For domains in which this is not the case, DomainlessSystem.setProblemSpaces() can do this conveniently.

Parameters:
domainList - The list of domains on which to test the system.
tester - The test to run on each domain.
doMaintenance - Set to true to do the maintenance specified for this system; false otherwise.
CBsize - Indicates the desired size of the case bases to be generated for each domain.
savedCBs - If the cases bases used for each domain are to be saved, send an ArrayList here in which to save them; otherwise send null.
Returns:
An ArrayList of PerformanceMonitor instances, describing the results of the tests.

setProblemSpaces

public static void setProblemSpaces(java.util.ArrayList domainList,
                                    ProblemGenerator problemSpace)
This is a convenience method for testing multiple domains. It sets the problem space for each domain in a list to a provided problem space (copied and set for each particular domain). It may be useful since DomainlessSystem.testDomains() requires that domains have a problemSpace specified (in order to generate a CaseBase), and some domain generators do not automatically specify a problemSpace.

Parameters:
domainList - The list of domains on which to set assign the given problemSpace.
problemSpace - The problem space to be copied and adjusted for each domain in domainList.

setDomain

public void setDomain(Domain domain)
Set the currently active domain for this DomainlessSystem.

Overrides:
setDomain in class CBRSystem

generateCB

public void generateCB(int numCases)
Generate a case base for the system, for use in the current domain.