edu.duke.cs.banjo.learner.components
Class ProposerRandomLocalMove

java.lang.Object
  extended byedu.duke.cs.banjo.learner.components.Proposer
      extended byedu.duke.cs.banjo.learner.components.ProposerRandomLocalMove
All Implemented Interfaces:
ProposerI

public class ProposerRandomLocalMove
extends Proposer

Proposes a single potential BayesNetChange based on the current network configuration.

Details:
Computes a single bayesNetChange by randomly selecting
- first the changeType (add/delete/reverse)
- second a node
Note that the change is subject to the restrictions imposed by mandatory, disallowed edges, etc.

Change History:
Created on Sep 17, 2004

12/20/2004 hjs Added a wrapper for supplying a list of changes, so this class can be used within a global search (but conceivably also for future "hybrid" proposers)

8/26/2005 (v1.0.1) hjs Add conditions to check proposed changes against maxParentCount
4/15/2008 (v2.2) hjs Add additional condition for selecting reversals.

Author:
Jurgen Sladeczek (hjs)
For the latest info, please visit www.cs.duke.edu.

Nested Class Summary
protected  class ProposerRandomLocalMove.EdgesAsArraySelector
           
protected  class ProposerRandomLocalMove.EdgesAsMatrixSelector
           
 
Nested classes inherited from class edu.duke.cs.banjo.learner.components.Proposer
Proposer.AllowEdgeReversalSelector, Proposer.EdgeSelector, Proposer.OmitEdgeReversalSelector, Proposer.StructureSelector
 
Field Summary
protected  int bayesNetChangeSelectLimit
           
(package private)  int markovLagZero
           
 
Fields inherited from class edu.duke.cs.banjo.learner.components.Proposer
bayesNetChange, bayesNetManager, changeList, changeTypeCount, edgeSelector, maxMarkovLag, maxParentCount, minMarkovLag, processData, proposedChangeTypeTracker, rnd, structureSelector, varCount
 
Constructor Summary
ProposerRandomLocalMove(BayesNetManagerI _initialBayesNet, Settings _processData)
           
 
Method Summary
 BayesNetChangeI suggestBayesNetChange(BayesNetManagerI _bayesNetManager)
           
 java.util.List suggestBayesNetChanges(BayesNetManagerI _bayesNetManager)
           
 
Methods inherited from class edu.duke.cs.banjo.learner.components.Proposer
provideCollectedStatistics, updateProcessData
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

bayesNetChangeSelectLimit

protected final int bayesNetChangeSelectLimit

markovLagZero

final int markovLagZero
See Also:
Constant Field Values
Constructor Detail

ProposerRandomLocalMove

public ProposerRandomLocalMove(BayesNetManagerI _initialBayesNet,
                               Settings _processData)
                        throws java.lang.Exception
Method Detail

suggestBayesNetChanges

public java.util.List suggestBayesNetChanges(BayesNetManagerI _bayesNetManager)
                                      throws java.lang.Exception
Returns:
Returns a list of BayesNetChanges based on the proposer algorithm.
Throws:
java.lang.Exception

suggestBayesNetChange

public BayesNetChangeI suggestBayesNetChange(BayesNetManagerI _bayesNetManager)
                                      throws java.lang.Exception
Specified by:
suggestBayesNetChange in interface ProposerI
Specified by:
suggestBayesNetChange in class Proposer
Throws:
java.lang.Exception