org.rdtdm.rule.space
Class SearchSpace

java.lang.Object
  |
  +--org.rdtdm.helpers.graph.Graph
        |
        +--org.rdtdm.rule.space.SearchSpace

public class SearchSpace
extends Graph

SearchSpace stellt den Graphen f?r die Hierarchie zwischen den Regelschemata bzgl. der Theta-Supsumption dar.



Copyright (c) 2001 by Dirk Münstermann
All Rights Reserved

Version:
$Revision: 1.1 $ ($Date: 2001/10/03 15:00:33 $)
Changelog:
 $Log: SearchSpace.java,v $
 Revision 1.1  2001/10/03 15:00:33  dirk
 init

 


Author:
Dirk Münstermann

Field Summary
private  RuleModels rules
           
 
Fields inherited from class org.rdtdm.helpers.graph.Graph
 
Constructor Summary
SearchSpace(java.util.ArrayList ruleschemas)
          Initialisiert einen Suchraum durch eine Menge von Regelschemata.
SearchSpace(RuleModels ruleschemas)
          Initialisiert einen Suchraum durch Regelmodelles
 
Method Summary
 void addRootRuleSchema()
           
 boolean checkConclsSubs(Literal concl)
           
 boolean checkRuleSchemas()
          Liefert true, wenn alle ?bergebenen Regelschema die gleiche Konklusion aufweisen.
 boolean checkRuleSchemas(RuleSchema rs)
          Returns true iff all rule schemas have the same conclusion.
 void createGraph()
          Erzeugt den Suchraum bzgl. der Thetasubsumption zwischen Regelschemata.
 boolean existsRootRuleSchema()
           
 java.util.Collection getNodes(int litcount)
           
 RuleModels getRules()
          Liefert die interne Variable rules zurueck.
protected  java.lang.Integer[] getSortedKeys(java.util.Hashtable table)
          Generate a sorted array of keys for the hashtable.
protected  java.util.Hashtable getSortedNodes()
          Generate a hashtable with the number of literals as key and a collection of rule schemas as values.
protected  boolean insertChildNodeIfSpecial(RSNode parent, RSNode probablechild)
           
protected  void insertChildNodesIfSpecial(RSNode parent, java.util.Collection probablechilds)
           
 void insertNode(Node parent, Node child, java.util.Collection subs)
           
 void setRules(RuleModels rules)
          Setzt die interne Variable rules.
protected  void testAndInsertChildNodes(java.util.Collection parents, java.util.Collection probablechilds)
           
 
Methods inherited from class org.rdtdm.helpers.graph.Graph
addEdge, addEdges, addNode, bfs, contains, dfs, getEdge, getEdges, getEdges, getLeaves, getNodes, getNodesNextLevel, getRoot, printEdges, printGraph, printNodeAndChilds, printNodeAndChildsOLD, printNodes, setEdges, setNodesAction, setNodesVisited, setRoot
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

rules

private RuleModels rules
Constructor Detail

SearchSpace

public SearchSpace(java.util.ArrayList ruleschemas)
Initialisiert einen Suchraum durch eine Menge von Regelschemata.

Parameters:
ruleschemas - Eine Liste von Regelschemata.


SearchSpace

public SearchSpace(RuleModels ruleschemas)
Initialisiert einen Suchraum durch Regelmodelles

Parameters:
ruleschemas - Regelmodelle

Method Detail

setRules

public void setRules(RuleModels rules)
Setzt die interne Variable rules.

Parameters:
rules - Regelmodelle


getRules

public RuleModels getRules()
Liefert die interne Variable rules zurueck.

Returns:
Regelmodelle


checkConclsSubs

public boolean checkConclsSubs(Literal concl)

checkRuleSchemas

public boolean checkRuleSchemas()
Liefert true, wenn alle ?bergebenen Regelschema die gleiche Konklusion aufweisen.

Returns:
true, bei gleicher Konklusion, sonst false.


checkRuleSchemas

public boolean checkRuleSchemas(RuleSchema rs)
Returns true iff all rule schemas have the same conclusion.

Returns:
true, iff all rule schemas have the same conclusion, else false.


addRootRuleSchema

public void addRootRuleSchema()

existsRootRuleSchema

public boolean existsRootRuleSchema()

getNodes

public java.util.Collection getNodes(int litcount)

insertNode

public void insertNode(Node parent,
                       Node child,
                       java.util.Collection subs)

createGraph

public void createGraph()
Erzeugt den Suchraum bzgl. der Thetasubsumption zwischen Regelschemata.
  1. Sortieren der Regelschema nach der Anzahl der Literale und Erzeugung von Knoten f?r jedes Regelschema
  2. Setzen der Wurzel
  3. Verkn?pfung der Knoten untereinander


testAndInsertChildNodes

protected void testAndInsertChildNodes(java.util.Collection parents,
                                       java.util.Collection probablechilds)

insertChildNodesIfSpecial

protected void insertChildNodesIfSpecial(RSNode parent,
                                         java.util.Collection probablechilds)

insertChildNodeIfSpecial

protected boolean insertChildNodeIfSpecial(RSNode parent,
                                           RSNode probablechild)

getSortedNodes

protected java.util.Hashtable getSortedNodes()
Generate a hashtable with the number of literals as key and a collection of rule schemas as values.

Returns:
a hashtable


getSortedKeys

protected java.lang.Integer[] getSortedKeys(java.util.Hashtable table)
Generate a sorted array of keys for the hashtable.

Parameters:
table - the hashtable of (key,value)= (number of literals of a rs, the collection of rs)
Returns:
a sorted array of the keys