Class ScreenedRemainderSets

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, java.lang.Iterable<java.util.Collection<ASPRule>>, java.util.Collection<java.util.Collection<ASPRule>>, java.util.Set<java.util.Collection<ASPRule>>

    public class ScreenedRemainderSets
    extends RemainderSets<ASPRule>
    This class represents the set of Screened Consistent Remainder Sets as defined in [1]. A screened remainder set X of P regarding a set of sentences R \subseteq P is a set X s.t. (1) R \subseteq X \subseteq P, (2) X is consistent and (3) there is no proper superset X' of X in P that is also consistent. [1] Kruempelmann, Patrick und Gabriele Kern-Isberner: Belief Base Change Operations for Answer Set Programming. In: Cerro, Luis Farinas, Andreas Herzig und Jerome Mengin (Herausgeber): Proceedings of the 13th European conference on Logics in Artificial Intelligence, Band 7519, Seiten 294-306, Toulouse, France, 2012. Springer Berlin Heidelberg.
    Author:
    Sebastian Homann
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      ScreenedRemainderSets​(Program p, Program r, ASPSolver solver)
      Creates a new set of screened remainder sets of program p that all contain the screened rules r.
    • Method Summary

      Modifier and Type Method Description
      java.util.Collection<Program> asPrograms()
      Returns this set of remainder sets as a collection of programs where each program contains exactly the rules of one remainder set.
      private java.util.Set<Program> calculateRemainderSetCandidates​(Program p)
      Recursively calculates consistent subsets of p.
      Program getScreen()
      Returns the screened rules that are contained in every remainder set.
      Program getSourceBeliefBase()
      Returns the original program p for which this set represents the set of remainder sets.
      private boolean isConsistent​(Program p)  
      private boolean isProperSubset​(Program p, Program q)
      Returns true iff program p is a proper (strict) subset of program q
      static void main​(java.lang.String[] args)
      Simple test case taken from [1]
      • Methods inherited from class java.util.HashSet

        add, clear, clone, contains, isEmpty, iterator, remove, size, spliterator
      • Methods inherited from class java.util.AbstractSet

        equals, hashCode, removeAll
      • Methods inherited from class java.util.AbstractCollection

        addAll, containsAll, retainAll, toArray, toArray, toString
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Collection

        parallelStream, removeIf, stream, toArray
      • Methods inherited from interface java.lang.Iterable

        forEach
      • Methods inherited from interface java.util.Set

        addAll, containsAll, equals, hashCode, removeAll, retainAll, toArray, toArray
    • Constructor Detail

      • ScreenedRemainderSets

        public ScreenedRemainderSets​(Program p,
                                     Program r,
                                     ASPSolver solver)
        Creates a new set of screened remainder sets of program p that all contain the screened rules r. An asp-solver is used to calculate the consistency of remainder set candidates.
        Parameters:
        p - an asp-program for which the screened remainder sets are calculated
        r - an asp-program representing the set of rules, that have to be contained in every remainder set. Has to be a subset of p
        solver - an asp-solver
    • Method Detail

      • getSourceBeliefBase

        public Program getSourceBeliefBase()
        Returns the original program p for which this set represents the set of remainder sets.
        Specified by:
        getSourceBeliefBase in class RemainderSets<ASPRule>
        Returns:
        an elp program.
      • getScreen

        public Program getScreen()
        Returns the screened rules that are contained in every remainder set.
        Returns:
        an elp program.
      • isProperSubset

        private boolean isProperSubset​(Program p,
                                       Program q)
        Returns true iff program p is a proper (strict) subset of program q
        Parameters:
        p - a program
        q - another program
        Returns:
        true iff program p is a proper (strict) subset of program q
      • calculateRemainderSetCandidates

        private java.util.Set<Program> calculateRemainderSetCandidates​(Program p)
        Recursively calculates consistent subsets of p. This is slightly faster than bruteforce calculating all possible combinations, as consistent subsets are pruned.
        Parameters:
        p - a program
        Returns:
        consistent subsets of p
      • isConsistent

        private boolean isConsistent​(Program p)
      • asPrograms

        public java.util.Collection<Program> asPrograms()
        Returns this set of remainder sets as a collection of programs where each program contains exactly the rules of one remainder set.
        Returns:
        a collection of programs.
      • main

        public static void main​(java.lang.String[] args)
                         throws ParseException
        Simple test case taken from [1]
        Parameters:
        args - some arguments
        Throws:
        ParseException - if parsing failed