Class TabuSearch

All Implemented Interfaces:
Serializable, OptionHandler, RevisionHandler, TechnicalInformationHandler

public class TabuSearch extends HillClimber implements TechnicalInformationHandler
This Bayes Network learning algorithm uses tabu search for finding a well scoring Bayes network structure. Tabu search is hill climbing till an optimum is reached. The following step is the least worst possible step. The last X steps are kept in a list and none of the steps in this so called tabu list is considered in taking the next step. The best network found in this traversal is returned.

For more information see:

R.R. Bouckaert (1995). Bayesian Belief Networks: from Construction to Inference. Utrecht, Netherlands.

BibTeX:

 @phdthesis{Bouckaert1995,
    address = {Utrecht, Netherlands},
    author = {R.R. Bouckaert},
    institution = {University of Utrecht},
    title = {Bayesian Belief Networks: from Construction to Inference},
    year = {1995}
 }
 

Valid options are:

 -L <integer>
  Tabu list length
 
 -U <integer>
  Number of runs
 
 -P <nr of parents>
  Maximum number of parents
 
 -R
  Use arc reversal operation.
  (default false)
 
 -P <nr of parents>
  Maximum number of parents
 
 -R
  Use arc reversal operation.
  (default false)
 
 -N
  Initial structure is empty (instead of Naive Bayes)
 
 -mbc
  Applies a Markov Blanket correction to the network structure, 
  after a network structure is learned. This ensures that all 
  nodes in the network are part of the Markov blanket of the 
  classifier node.
 
 -S [BAYES|MDL|ENTROPY|AIC|CROSS_CLASSIC|CROSS_BAYES]
  Score type (BAYES, BDeu, MDL, ENTROPY and AIC)
 
Version:
$Revision: 10154 $
Author:
Remco Bouckaert (rrb@xm.co.nz)
See Also:
  • Constructor Details

    • TabuSearch

      public TabuSearch()
  • Method Details

    • getTechnicalInformation

      public TechnicalInformation getTechnicalInformation()
      Returns an instance of a TechnicalInformation object, containing detailed information about the technical background of this class, e.g., paper reference or book this class is based on.
      Specified by:
      getTechnicalInformation in interface TechnicalInformationHandler
      Returns:
      the technical information about this class
    • getRuns

      public int getRuns()
      Returns:
      number of runs
    • setRuns

      public void setRuns(int nRuns)
      Sets the number of runs
      Parameters:
      nRuns - The number of runs to set
    • getTabuList

      public int getTabuList()
      Returns:
      the Tabu List length
    • setTabuList

      public void setTabuList(int nTabuList)
      Sets the Tabu List length.
      Parameters:
      nTabuList - The nTabuList to set
    • listOptions

      public Enumeration<Option> listOptions()
      Returns an enumeration describing the available options.
      Specified by:
      listOptions in interface OptionHandler
      Overrides:
      listOptions in class HillClimber
      Returns:
      an enumeration of all the available options.
    • setOptions

      public void setOptions(String[] options) throws Exception
      Parses a given list of options.

      Valid options are:

       -L <integer>
        Tabu list length
       
       -U <integer>
        Number of runs
       
       -P <nr of parents>
        Maximum number of parents
       
       -R
        Use arc reversal operation.
        (default false)
       
       -P <nr of parents>
        Maximum number of parents
       
       -R
        Use arc reversal operation.
        (default false)
       
       -N
        Initial structure is empty (instead of Naive Bayes)
       
       -mbc
        Applies a Markov Blanket correction to the network structure, 
        after a network structure is learned. This ensures that all 
        nodes in the network are part of the Markov blanket of the 
        classifier node.
       
       -S [BAYES|MDL|ENTROPY|AIC|CROSS_CLASSIC|CROSS_BAYES]
        Score type (BAYES, BDeu, MDL, ENTROPY and AIC)
       
      Specified by:
      setOptions in interface OptionHandler
      Overrides:
      setOptions in class HillClimber
      Parameters:
      options - the list of options as an array of strings
      Throws:
      Exception - if an option is not supported
    • getOptions

      public String[] getOptions()
      Gets the current settings of the search algorithm.
      Specified by:
      getOptions in interface OptionHandler
      Overrides:
      getOptions in class HillClimber
      Returns:
      an array of strings suitable for passing to setOptions
    • globalInfo

      public String globalInfo()
      This will return a string describing the classifier.
      Overrides:
      globalInfo in class HillClimber
      Returns:
      The string.
    • runsTipText

      public String runsTipText()
      Returns:
      a string to describe the Runs option.
    • tabuListTipText

      public String tabuListTipText()
      Returns:
      a string to describe the TabuList option.
    • getRevision

      public String getRevision()
      Returns the revision string.
      Specified by:
      getRevision in interface RevisionHandler
      Overrides:
      getRevision in class HillClimber
      Returns:
      the revision