Search Algorithms β€” By Type

This page lists all algorithms whose wrappers implement
edu.cmu.tetrad.algcomparison.algorithm.Algorithm in Tetrad 7.6.9.

Descriptions are based on the corresponding classes in
edu.cmu.tetrad.search.

This catalog provides a comprehensive overview of all structure-learning algorithms available in Tetrad, with links to full per-algorithm documentation.

If you are new to Tetrad or want a curated subset of recommended methods, start with
πŸ‘‰ Search Algorithms β€” Short List

Note: Many per-algorithm pages are still being added as part of an ongoing documentation update.


Legend β€” Algorithm Categories

Badge

Category

Description

πŸ”

Constraint-based

Uses conditional independence (CI) tests

πŸ“

Score-based

Optimizes a score such as BIC, BDeu, GIC

πŸŒ€

Hybrid

Combines score-based and CI-test stages

Extra Structural Badges

Badge

Meaning

Description

🧩

Latent-capable

Can output PAGs; handles latent confounding and selection bias

πŸ”

Time-series / lagged

Supports lagged variables (PCMCI, time-lag FGES/PC)

🎨

Non-Gaussian / ICA

Uses ICA, skewness, or higher-order moments

🧠

Multi-dataset

For multi-sample or cross-subject analyses

πŸ“¦

Resampling / stability

Ensemble, bootstrap, or stability methods

πŸ§ͺ

Experimental

Research / nonstandard algorithms

πŸ”§

Orientation-only

Orient edges from a fixed skeleton


πŸ” Constraint-Based Algorithms (CPDAG / PAG)

Use conditional independence tests to prune adjacencies and orient edges.

Algorithm

Description

Pc β€” PC πŸ”

Classic constraint-based CPDAG search (CI-test–driven).

Pc-Max β€” PC-Max πŸ”

PC variant maximizing p-value for collider orientation.

CPC β€” CPC πŸ”

Conservative collider rule reducing false orientations.

Pcd β€” PCD ♻️

PC variant robust to deterministic relations.

PcMb PC-MB πŸ”

Local Markov blanket discovery via PC-style logic.

Fas β€” FAS πŸ”

Fast Adjacency Search (the adjacency phase of PC).

Fci β€” FCI πŸ”πŸ§©

Full PAG search with latent confounding & selection bias.

Rfci β€” RFCI πŸ”πŸ§©

Fast approximation to FCI (reduced complexity).

FciIod β€” FCI-IOD πŸ”πŸ§©πŸ§ 

FCI variant for multi-dataset / partially overlapping variable sets.

Pcmci β€” PCMCI πŸ”πŸ”

CI-based causal discovery for time-series data.

Ccd β€” CCD πŸ”

Cyclic Causal Discovery (allows feedback loops).


πŸ“ Score-Based Algorithms (CPDAG)

Optimize a score (BIC, GIC, BDeu, IS-BIC, etc.) over DAGs or equivalence classes.

Algorithm

Description

Fges β€” FGES πŸ“

Fast greedy equivalence search; highly scalable.

FgesMb β€” FGES-MB πŸ“

FGES variant specialized for Markov blankets.

Boss β€” BOSS πŸ“

Best Order Score Search over variable orderings.

RestrictedBoss β€” Restricted BOSS πŸ“

BOSS with parent/tier restrictions for speed.

Grasp β€” GRaSP πŸ“

Greedy Relaxations of Sparsest Permutation.

LV-Heuristic β€” LV-Heuristic πŸͺΆ

Heuristic PAG from BOSS DAG; lightweight alternative to FCI/FCIT.

Sp β€” SP πŸ“

Sparsest Permutation; exact but only for very small models.

Images πŸ§©πŸ§ πŸ“ β€” IMaGES

Multi-sample FGES with cross-sample consistency.

IMaGESBoss πŸ§©πŸ§ πŸ“ β€” IMaGES

Multi-sample BOSS with cross-sample consistency.


πŸŒ€ Hybrid Algorithms (Score + FCI)

Start with a CPDAG from a score-based method, then apply FCI-style pruning/orientation to obtain a PAG.

Algorithm

Description

Gfci β€” GFCI πŸŒ€πŸ§©

FGES β†’ FCI refinement yielding a PAG.

GraspFci β€” GRaSP-FCI πŸŒ€πŸ§©

GRaSP β†’ FCI refinement.

BossFci β€” BOSS-FCI πŸŒ€πŸ§©

BOSS β†’ FCI refinement.

SpFci β€” SP-FCI πŸŒ€πŸ§©

Sparsest Permutation β†’ FCI refinement.

Fcit β€” FCIT πŸŒ€πŸ§©

Score-guided selective testing; efficient, legal-PAG output.


🎨 Non-Gaussian, Moment-Based, and Orientation Algorithms

Use ICA, skewness, or higher-order moments to orient edges or to supplement a skeleton.

Algorithm

Description

DirectLingam β€” Direct LiNGAM 🎨

Direct LiNGAM for linear non-Gaussian models.

IcaLingam β€” ICA LiNGAM 🎨

ICA-based LiNGAM (classic).

IcaLingD β€” ICA LiNG-D 🎨

Cyclic LiNGAM (Lacerda et al.).

Fask β€” FASK 🎨

FAS skeleton + skewness-based orientation.

FaskVote β€” FASK-Vote πŸŽ¨πŸ“¦

Voting ensemble of FASK.

Pairwise β€” Pairwise 🎨

Pairwise-skewness orientation.


Nonlinear & Distribution-Shift Algorithms

Handle nonlinear functions, distribution shifts, or cyclic behavior.

Algorithm

Description

Cam β€” CAM

Causal Additive Model (nonlinear additive noise SEMs).

Dagma β€” DAGMA πŸ“

Continuous DAG optimization with smooth acyclicity constraint.

Cdnod β€” CD-NOD

Causal discovery under distributional changes.


πŸ“¦ Stability / Resampling / Ensemble Wrappers

Run algorithms repeatedly under resampling or varying penalties.

Algorithm

Description

StabilitySelection β€” Stability Selection πŸ“¦

Stability selection for edges across resampling.

StARS β€” StARS πŸ“¦

Stability Approach to Regularization Selection.

PagSamplingRfci β€” PAG Sampling RFCI πŸ”πŸ§©πŸ“¦

RFCI on resampled/generated PAGs.

RfciBsc β€” RFCI-BSC πŸ”πŸ§©πŸ“¦

RFCI with bootstrap/stability selection.


πŸ§ͺ Specialized / Utility Algorithms

Special-purpose, experimental, or workflow-specific methods.

Algorithm

Description

DM DM πŸ§ͺ

Detect–Mimic (intermediate-latent preprocessing).

Cstar CStaR πŸ§ͺ

Bounds on causal effects via edge-orientation patterns.

SingleGraphAlg Single Graph Alg πŸ§ͺ

Wrapper for running Tetrad on a fixed imported graph.


Latent Clustering (Measurement Block Discovery)

These algorithms discover measurement clustersβ€”groups of indicators that behave as if they share a single latent parent.
See Latent Clusters for details.

Algorithm

Description

TSC

Trek Separation Clusters using rank constraints.

FOFC

First-Order Factor Clustering via pure tetrads.

FTFC

Fast Tetrad-Factor Clustering using sextads.

GFFC

Generalized Factor Finding Clustering (2Γ—2 β†’ 3Γ—3 β†’ …).

BPC

Build Pure Clusters (global purification & merging).

Once clusters are obtained, they can be treated as measurement blocks. These blocks may be supplied to algorithms that support:

  • Blocks-Test-TS β€” a trek-separation conditional independence test over blocks;

  • Blocks-BIC β€” a block-aware score.

In this mode, any algorithm that accepts a test and/or a score (PC, FGES, BOSS, GFCI, etc.) can be run on the latent layer: each cluster becomes a latent node, and Blocks-Test-TS / Blocks-BIC handle independence and scoring among the latent variables.


Latent Structure / Measurement-Model Construction

Building on cluster discovery and block-based search, these algorithms explicitly construct latent variables or full measurement models before running structural search on the latent layer.

Algorithm

Description

Factor Analysis 🧩

Classical SEM-style factor analysis (measurement model).

Mimbuild Bollen 🧩

MIM builder using Bollen-style BlockSpec constraints.

Mimbuild PCA 🧩

PCA-based measurement model from pure clusters.