Class Independence

java.lang.Object
org.tweetyproject.arg.dung.independence.Independence

public class Independence extends Object
This class implements methods for computing conditional independence of sets of arguments in abstract argumentation Rienstra, Tjitze, et al. "Independence and D-separation in Abstract Argumentation." Proceedings of the International Conference on Principles of Knowledge Representation and Reasoning. Vol. 17. No. 1. 2020.
Author:
Lars Bengel
  • Constructor Details

    • Independence

      public Independence()
  • Method Details

    • isIndependent

      public static boolean isIndependent(DungTheory theory, Collection<Argument> argsA, Collection<Argument> argsB, Collection<Argument> argsC, boolean pruneOutAttacks)
      compute whether args and argsB are independent given argsC in the given AF argsA, argsB and argsC are disjoint
      Parameters:
      theory - a dung theory
      argsA - a set of arguments
      argsB - a set of arguments
      argsC - a set of arguments
      pruneOutAttacks - a flag indicating if attacks from arguments that are always out should be pruned. default=false
      Returns:
      true iff argsA and argsB are independent given argsC in theory
    • isIndependent

      public static boolean isIndependent(DungTheory theory, Collection<Argument> argsA, Collection<Argument> argsB, Collection<Argument> argsC)
      compute whether args and argsB are independent given argsC in the given AF argsA, argsB and argsC are disjoint
      Parameters:
      theory - a dung theory
      argsA - a set of arguments
      argsB - a set of arguments
      argsC - a set of arguments
      Returns:
      true iff argsA and argsB are independent given argsC in theory
    • isIndependentGiven

      public static Collection<Collection<Argument>> isIndependentGiven(DungTheory theory, Collection<Argument> argsA, Collection<Argument> argsB, boolean pruneOutAttacks)
      compute the smallest set of arguments which needs to be observed so that argsA and argsB are independent in the given AF argsA and argsB are disjoint
      Parameters:
      theory - a dung theory
      argsA - a set of arguments
      argsB - a set of arguments
      pruneOutAttacks - a flag indicating if attacks from arguments that are always out should be pruned. default=false
      Returns:
      the smallest set of arguments which we need to observe so that argsA and argsB are independent
    • isIndependentGiven

      public static Collection<Collection<Argument>> isIndependentGiven(DungTheory theory, Collection<Argument> argsA, Collection<Argument> argsB)
      compute the smallest set of arguments which needs to be observed so that argsA and argsB are independent in the given AF argsA and argsB are disjoint
      Parameters:
      theory - a dung theory
      argsA - a set of arguments
      argsB - a set of arguments
      Returns:
      the smallest set of arguments which we need to observe so that argsA and argsB are independent
    • computeDGraph

      public static SimpleGraph<Argument> computeDGraph(DungTheory theory)
      transform the given AF into a DAG (D-graph) by adding new meta argument for each strongly connected component
      Parameters:
      theory - a dung theory
      Returns:
      the d-graph of the given AF
    • pruneDGraph

      public static SimpleGraph<Argument> pruneDGraph(SimpleGraph<Argument> dGraph, Collection<Argument> argsA, Collection<Argument> argsB, Collection<Argument> argsC)
      prune the given DAG by removing all leaf nodes, which are not in any of the given sets and removing all outgoing edges from nodes in argsC
      Parameters:
      dGraph - a DAG
      argsA - a set of arguments
      argsB - a set of arguments
      argsC - a set of arguments
      Returns:
      the pruned DAG