Class MeekRulesCpdag

java.lang.Object
edu.cmu.tetrad.search.MeekRulesCpdag
All Implemented Interfaces:
ImpliedOrientation

public class MeekRulesCpdag extends Object implements ImpliedOrientation
Implements Meek's complete orientation rule set for PC (Chris Meek (1995), "Causal inference and causal explanation with background Knowledge"), modified for Conservative PC to check noncolliders against recorded noncolliders before orienting.

For now, the fourth rule is always performed.

Author:
Joseph Ramsey
  • Constructor Details

    • MeekRulesCpdag

      public MeekRulesCpdag()
      Constructs the MeekRules with no logging.
  • Method Details

    • orientImplied

      public Set<Node> orientImplied(Graph graph)
      Description copied from interface: ImpliedOrientation
      Adds implied orientations.
      Specified by:
      orientImplied in interface ImpliedOrientation
      Returns:
      Affected nodes.
    • setKnowledge

      public void setKnowledge(Knowledge Knowledge)
      Description copied from interface: ImpliedOrientation
      Sets knowledge.
      Specified by:
      setKnowledge in interface ImpliedOrientation
    • orientUsingMeekRulesLocally

      public void orientUsingMeekRulesLocally(Knowledge Knowledge, Graph graph)
    • meekR1Locally

      public boolean meekR1Locally(Graph graph, Knowledge Knowledge)
    • meekR2

      public boolean meekR2(Graph graph, Knowledge Knowledge)
    • meekR3

      public boolean meekR3(Graph graph, Knowledge Knowledge)
      Meek's rule R3. If a--b, a--c, a--d, c-->b, d-->b, then orient a-->b.
    • meekR4

      public boolean meekR4(Graph graph, Knowledge Knowledge)
    • isAggressivelyPreventCycles

      public boolean isAggressivelyPreventCycles()
    • setAggressivelyPreventCycles

      public void setAggressivelyPreventCycles(boolean aggressivelyPreventCycles)