Class BfciBryan

java.lang.Object
edu.cmu.tetrad.algcomparison.algorithm.AbstractBootstrapAlgorithm
edu.cmu.tetrad.algcomparison.algorithm.oracle.pag.BfciBryan
All Implemented Interfaces:
Algorithm, LatentStructureAlgorithm, ReturnsBootstrapGraphs, TakesCovarianceMatrix, AcceptsKnowledge, HasParameters, TakesIndependenceWrapper, TakesScoreWrapper, TetradSerializable, Serializable

BFCI-Bryan: BOSS followed by the from-scratch, sepset-map-as-state formulation of the gated StarFCI extra-edge-removal step, with sepset RE-SELECTION (a gate-rejected separating set does not retire the pair; the next separating set is tried) and NO saturating step. Experimental arm for comparison against BFCI; see BfciBryan for the algorithm and its disclosed costs.
Version:
$Id: $Id

Backward compatibility only. The I-map gate developed here was merged into StarFci on 2026-11-08, where it is option 1 of the three-way correctness choice; with the gate off this class was option 3. Its registration annotations are commented out, so it does not appear in the algorithm chooser; new work should use Bfci with the fcitCorrectness option. This class is retained under its original name so that sessions saved by earlier versions, which refer to it by this class name, continue to load; such a session re-runs through BFCI with the equivalent option.

Author:
bryanandrews, josephramsey
See Also:
  • Constructor Details

    • BfciBryan

      public BfciBryan()
      No-arg constructor. Used for reflection; do not delete.
    • BfciBryan

      public BfciBryan(IndependenceWrapper test, ScoreWrapper score)
      Constructs a new BFCI-Bryan algorithm using the given test and score.
      Parameters:
      test - the independence test to use
      score - the score to use
  • Method Details

    • runSearch

      public Graph runSearch(DataModel dataModel, Parameters parameters) throws InterruptedException
      Runs the search algorithm using the given dataset and parameters and returns the resulting graph.
      Parameters:
      dataModel - the data model to run the search on
      parameters - the parameters used for the search algorithm
      Returns:
      the graph resulting from the search algorithm
      Throws:
      InterruptedException
    • getComparisonGraph

      public Graph getComparisonGraph(Graph graph)
      Retrieves the comparison graph generated by applying the DAG-to-PAG transformation to the given true directed graph.
      Specified by:
      getComparisonGraph in interface Algorithm
      Parameters:
      graph - The true directed graph, if there is one.
      Returns:
      The comparison graph.
    • getDescription

      public String getDescription()
      Returns a description of the algorithm using the description of its independence test and score.
      Specified by:
      getDescription in interface Algorithm
      Returns:
      The description of the algorithm.
    • getDataType

      public DataType getDataType()
      Retrieves the data type that the search requires.
      Specified by:
      getDataType in interface Algorithm
      Returns:
      the data type required by the search algorithm
    • getParameters

      public List<String> getParameters()
      Retrieves the list of parameters used for the algorithm.
      Specified by:
      getParameters in interface HasParameters
      Returns:
      the list of parameters
    • getKnowledge

      public Knowledge getKnowledge()
      Retrieves the knowledge associated with the algorithm.
      Specified by:
      getKnowledge in interface AcceptsKnowledge
      Returns:
      the knowledge
    • setKnowledge

      public void setKnowledge(Knowledge knowledge)
      Sets the knowledge associated with the algorithm.
      Specified by:
      setKnowledge in interface AcceptsKnowledge
      Parameters:
      knowledge - a knowledge object
    • getIndependenceWrapper

      public IndependenceWrapper getIndependenceWrapper()
      Returns the IndependenceWrapper associated with this algorithm.
      Specified by:
      getIndependenceWrapper in interface TakesIndependenceWrapper
      Returns:
      the IndependenceWrapper object
    • setIndependenceWrapper

      public void setIndependenceWrapper(IndependenceWrapper test)
      Sets the IndependenceWrapper object for this algorithm.
      Specified by:
      setIndependenceWrapper in interface TakesIndependenceWrapper
      Parameters:
      test - the IndependenceWrapper object to set
    • getScoreWrapper

      public ScoreWrapper getScoreWrapper()
      Retrieves the ScoreWrapper associated with this algorithm.
      Specified by:
      getScoreWrapper in interface TakesScoreWrapper
      Returns:
      The ScoreWrapper object.
    • setScoreWrapper

      public void setScoreWrapper(ScoreWrapper score)
      Sets the score wrapper for this algorithm.
      Specified by:
      setScoreWrapper in interface TakesScoreWrapper
      Parameters:
      score - the score wrapper to set
    • setExcludeSelectionBias

      public void setExcludeSelectionBias(boolean excludeSelectionBias)
      Sets whether selection bias should be excluded in the comparison graph.
      Parameters:
      excludeSelectionBias - True to exclude selection bias, false otherwise.