Class FgesOrienter

java.lang.Object
edu.cmu.tetrad.search.utils.FgesOrienter
All Implemented Interfaces:
IGraphSearch, DagScorer

public final class FgesOrienter extends Object implements IGraphSearch, DagScorer
This Orients a given undirected graph such that the edges in the graph are a superset of the edges in the oriented graph, using FGES method.
Version:
$Id: $Id
Author:
AJ Sedgewick, 5/2015
See Also:
  • Constructor Details

    • FgesOrienter

      public FgesOrienter(DataSet dataSet)
      The data set must either be all continuous or all discrete.
      Parameters:
      dataSet - a DataSet object
  • Method Details

    • orient

      public void orient(Graph graph)

      orient.

      Parameters:
      graph - a Graph object
    • isFaithfulnessAssumed

      public boolean isFaithfulnessAssumed()

      isFaithfulnessAssumed.

      Returns:
      true if it is assumed that all path pairs with one length 1 path do not cancelAll.
    • setFaithfulnessAssumed

      public void setFaithfulnessAssumed(boolean faithfulness)
      Set to true if it is assumed that all path pairs with one length 1 path do not cancelAll.
      Parameters:
      faithfulness - a boolean
    • search

      public Graph search()
      Greedy equivalence search: Start from the empty graph, add edges till model is significant. Then start deleting edges till a minimum is achieved.
      Specified by:
      search in interface IGraphSearch
      Returns:
      the resulting CPDAG.
    • getKnowledge

      public Knowledge getKnowledge()

      Getter for the field knowledge.

      Returns:
      the background knowledge.
    • setKnowledge

      public void setKnowledge(Knowledge knowledge)
      Sets the background knowledge.
      Parameters:
      knowledge - the knowledge object, specifying forbidden and required edges.
    • setStructurePrior

      public void setStructurePrior(double structurePrior)
      For BDeu score for discrete search; see Chickering (2002).
      Parameters:
      structurePrior - a double
    • setSamplePrior

      public void setSamplePrior(double samplePrior)
      For BDeu score for discrete search; see Chickering (2002).
      Parameters:
      samplePrior - a double
    • getElapsedTime

      public long getElapsedTime()

      Getter for the field elapsedTime.

      Returns:
      a long
    • getPenaltyDiscount

      public double getPenaltyDiscount()
      For BIC score, a multiplier on the penalty term. For continuous searches.
      Returns:
      a double
    • setPenaltyDiscount

      public void setPenaltyDiscount(double penaltyDiscount)
      For BIC score, a multiplier on the penalty term. For continuous searches.
      Parameters:
      penaltyDiscount - a double
    • setTrueGraph

      public void setTrueGraph(Graph trueGraph)
      If the true graph is set, askterisks will be printed in log output for the true edges.
      Parameters:
      trueGraph - a Graph object
    • getScore

      public double getScore(Graph dag)

      getScore.

      Parameters:
      dag - a Graph object
      Returns:
      the score of the given DAG, up to a constant.
    • getDiscreteScore

      public DiscreteScore getDiscreteScore()

      getDiscreteScore.

      Returns:
      the discrete scoring function being used. By default, BDeu.
    • setDiscreteScore

      public void setDiscreteScore(DiscreteScore DiscreteScore)
      Sets the discrete scoring function to use.
      Parameters:
      DiscreteScore - a DiscreteScore object
    • isLog

      public boolean isLog()
      True iff log output should be produced.
      Returns:
      a boolean
    • setLog

      public void setLog(boolean log)
      Sets whether log output should be produced. Set to false a faster search.
      Parameters:
      log - a boolean
    • getExternalGraph

      public Graph getExternalGraph()

      Getter for the field externalGraph.

      Returns:
      the initial graph for the search. The search is initialized to this graph and proceeds from there.
    • setExternalGraph

      public void setExternalGraph(Graph externalGraph)
      Sets the initial graph.
      Parameters:
      externalGraph - a Graph object
    • setVerbose

      public void setVerbose(boolean verbose)
      Sets whether verbose output should be produced.
      Parameters:
      verbose - a boolean
    • getOut

      public PrintStream getOut()

      Getter for the field out.

      Returns:
      the output stream that output (except for log output) should be sent to.
    • setOut

      public void setOut(PrintStream out)
      Sets the output stream that output (except for log output) should be sent to. By detault System.out.
      Parameters:
      out - a PrintStream object
    • getAdjacencies

      public Graph getAdjacencies()

      Getter for the field adjacencies.

      Returns:
      the set of preset adjacenies for the algorithm; edges not in this adjacencies graph will not be added.
    • setAdjacencies

      public void setAdjacencies(Graph adjacencies)
      Sets the set of preset adjacenies for the algorithm; edges not in this adjacencies graph will not be added.
      Parameters:
      adjacencies - a Graph object
    • getDepth

      public int getDepth()

      Getter for the field depth.

      Returns:
      the depth for the forward reevaluation step.
    • setDepth

      public void setDepth(int depth)
      -1 for unlimited depth, otherwise a number >= 0. In the forward reevaluation step, subsets of neighbors up to depth in size are considered. Limiting depth can speed up the algorithm.
      Parameters:
      depth - a int
    • scoreDag

      public double scoreDag(Graph dag)

      scoreDag.

      Scores the given DAG, up to a constant.

      Specified by:
      scoreDag in interface DagScorer
      Parameters:
      dag - a Graph object
      Returns:
      a double