Class Flop

java.lang.Object
edu.cmu.tetrad.algcomparison.algorithm.AbstractBootstrapAlgorithm
edu.cmu.tetrad.algcomparison.algorithm.oracle.cpdag.Flop
All Implemented Interfaces:
Algorithm, ReturnsBootstrapGraphs, TakesCovarianceMatrix, HasParameters, TetradSerializable, Serializable

FLOP (Fast Learning of Order and Parents).

Wienobst, M., Henckel, L., & Weichwald, S. (2026). Embracing Discrete Search: A Reasonable Approach to Causal Structure Learning. International Conference on Learning Representations.

Version:
$Id: $Id
Author:
josephramsey
See Also:
  • Constructor Details

    • Flop

      public Flop()
      Constructs a new FLOP algorithm.
  • Method Details

    • getComparisonGraph

      public Graph getComparisonGraph(Graph graph)
      Returns that graph that the result should be compared to.

      Returns the true graph if there is one.

      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 short, one-line description of this algorithm. This will be printed in the report.

      Returns the description of the algorithm.

      Specified by:
      getDescription in interface Algorithm
      Returns:
      This description.
    • getDataType

      public DataType getDataType()
      Returns the data type that the search requires, whether continuous, discrete, or mixed.

      Returns the data type of the algorithm.

      Specified by:
      getDataType in interface Algorithm
      Returns:
      This type.
    • getParameters

      public List<String> getParameters()
      Returns the list of parameter names that are used. These are looked up in ParamMap, so if they're not

      Returns the parameters for the algorithm.

      Specified by:
      getParameters in interface HasParameters
      Returns:
      Returns the list of parameter names that are used. These are looked up in ParamMap, so if they're not already defined they'll need to be defined there.