Klasse SolutionSpace<T>

java.lang.Object
org.deidentifier.arx.framework.lattice.SolutionSpace<T>
Bekannte direkte Unterklassen:
SolutionSpaceIntArray, SolutionSpaceLong

public abstract class SolutionSpace<T> extends Object
A class representing the solution space
  • Felddetails

    • lattice

      protected final de.linearbits.jhpl.Lattice<Integer,Integer> lattice
      The backing JHPL lattice
    • data

      protected com.carrotsearch.hppc.ObjectObjectOpenHashMap<Object,Object> data
      Information loss
    • lowerBound

      protected com.carrotsearch.hppc.ObjectObjectOpenHashMap<Object,InformationLoss<?>> lowerBound
      Information loss
    • utility

      protected com.carrotsearch.hppc.ObjectObjectOpenHashMap<Object,InformationLoss<?>> utility
      Information loss
  • Konstruktordetails

    • SolutionSpace

      protected SolutionSpace(ARXLattice lattice, ARXConfiguration config)
      For de-serialization
      Parameter:
      lattice -
      config -
    • SolutionSpace

      protected SolutionSpace(int[] minLevels, int[] maxLevels)
      Creates a new instance
      Parameter:
      minLevels -
      maxLevels -
  • Methodendetails

    • create

      public static SolutionSpace<?> create(ARXLattice lattice, ARXConfiguration config)
      Creates a new solution space
      Parameter:
      lattice -
      config -
    • create

      public static SolutionSpace<?> create(int[] hierarchiesMinLevels, int[] hierarchiesMaxLevels)
      Creates a new solution space
      Parameter:
      hierarchiesMinLevels -
      hierarchiesMaxLevels -
      Gibt zurück:
    • getBottom

      public abstract Transformation<T> getBottom()
      Returns the bottom transformation
      Gibt zurück:
    • getLevel

      public int getLevel(int[] transformation)
      Returns the level of the given transformation
      Parameter:
      transformation -
      Gibt zurück:
    • getMaterializedTransformations

      public abstract ObjectIterator<T> getMaterializedTransformations()
      Returns all materialized transformations
      Gibt zurück:
    • getPropertyAnonymous

      public de.linearbits.jhpl.PredictiveProperty getPropertyAnonymous()
      Returns a property
      Gibt zurück:
    • getPropertyChecked

      public de.linearbits.jhpl.PredictiveProperty getPropertyChecked()
      Returns a property
      Gibt zurück:
    • getPropertyExpanded

      public de.linearbits.jhpl.PredictiveProperty getPropertyExpanded()
      Property for expanded transformation
      Gibt zurück:
    • getPropertyForceSnapshot

      public de.linearbits.jhpl.PredictiveProperty getPropertyForceSnapshot()
      Returns a property
      Gibt zurück:
    • getPropertyInsufficientUtility

      public de.linearbits.jhpl.PredictiveProperty getPropertyInsufficientUtility()
      Returns a property
      Gibt zurück:
    • getPropertyKAnonymous

      public de.linearbits.jhpl.PredictiveProperty getPropertyKAnonymous()
      Returns a property
      Gibt zurück:
    • getPropertyNotAnonymous

      public de.linearbits.jhpl.PredictiveProperty getPropertyNotAnonymous()
      Returns a property
      Gibt zurück:
    • getPropertyNotKAnonymous

      public de.linearbits.jhpl.PredictiveProperty getPropertyNotKAnonymous()
      Returns a property
      Gibt zurück:
    • getPropertySuccessorsPruned

      public de.linearbits.jhpl.PredictiveProperty getPropertySuccessorsPruned()
      Returns a property
      Gibt zurück:
    • getPropertyVisited

      public de.linearbits.jhpl.PredictiveProperty getPropertyVisited()
      Returns a property
      Gibt zurück:
    • getSize

      public abstract BigInteger getSize()
      Returns the overall number of transformations in the solution space
      Gibt zurück:
    • getTop

      public abstract Transformation<T> getTop()
      Returns the top-transformation
      Gibt zurück:
    • getTransformation

      public abstract Transformation<T> getTransformation(int[] transformation)
      Returns a wrapper object with access to all properties about the transformation
      Parameter:
      transformation -
      Gibt zurück:
    • getTransformation

      public abstract Transformation<T> getTransformation(Object _identifier)
      Returns the transformation with the given identifier
      Parameter:
      _identifier -
      Gibt zurück:
    • getUtility

      public abstract InformationLoss<?> getUtility(Object _identifier)
      Returns the utility of the transformation with the given identifier
      Parameter:
      identifier -
      Gibt zurück:
    • hasProperty

      public abstract boolean hasProperty(int[] transformation, de.linearbits.jhpl.PredictiveProperty property)
      Returns whether a node has a given property
      Parameter:
      transformation -
      property -
      Gibt zurück:
    • isDirectParentChild

      public boolean isDirectParentChild(int[] parent, int[] child)
      Determines whether a direct parent-child relationship exists.
      Parameter:
      parent -
      child -
      Gibt zurück:
    • isParentChildOrEqual

      public boolean isParentChildOrEqual(int[] parent, int[] child)
      Determines whether a parent-child relationship exists, or both are equal
      Parameter:
      parent -
      child -
      Gibt zurück:
    • setAnonymityPropertyPredictable

      public void setAnonymityPropertyPredictable(boolean predictable)
      Makes the anonymity property predictable
      Parameter:
      predictable -
    • unsafeGetAllTransformations

      public abstract ObjectIterator<T> unsafeGetAllTransformations()
      Returns all transformations in the solution space
      Gibt zurück:
    • unsafeGetLevel

      public abstract ObjectIterator<T> unsafeGetLevel(int level)
      Returns *all* nodes on the given level. This is an unsafe operation that only performs well for "small" spaces.
      Parameter:
      level -
      Gibt zurück:
    • fromJHPL

      protected int fromJHPL(int level)
      Internal method that adds the offset
      Parameter:
      level -
      Gibt zurück:
    • fromJHPL

      protected int[] fromJHPL(int[] transformation)
      Internal method that adds the offsets
      Parameter:
      transformation -
      Gibt zurück:
    • getData

      protected abstract Object getData(T id)
      Returns data
      Parameter:
      id -
      Gibt zurück:
    • getInformationLoss

      protected abstract InformationLoss<?> getInformationLoss(T identifier)
      Returns the information loss
      Parameter:
      identifier -
      Gibt zurück:
    • getLowerBound

      protected abstract InformationLoss<?> getLowerBound(T identifier)
      Returns the lower bound
      Parameter:
      identifier -
      Gibt zurück:
    • reverse

      protected int[] reverse(int[] input)
      Reverses the given array
      Parameter:
      input -
      Gibt zurück:
    • setData

      protected abstract void setData(T id, Object object)
      Sets data
      Parameter:
      id -
      object -
    • setInformationLoss

      protected abstract void setInformationLoss(int[] transformation, InformationLoss<?> loss)
      Sets the information loss
      Parameter:
      transformation -
      loss -
    • setInformationLoss

      protected abstract void setInformationLoss(T identifier, InformationLoss<?> loss)
      Sets the information loss
      Parameter:
      identifier -
      loss -
    • setLowerBound

      protected abstract void setLowerBound(T identifier, InformationLoss<?> loss)
      Sets the lower bound
      Parameter:
      identifier -
      loss -
    • setMonotonicity

      protected void setMonotonicity(ARXConfiguration config)
      Sets the monotonicity of the anonymity property
      Parameter:
      config -
    • toJHPL

      protected int toJHPL(int level)
      Internal method that subtracts the offset
      Parameter:
      level -
      Gibt zurück:
    • toJHPL

      protected int[] toJHPL(int[] transformation)
      Internal method that subtracts the offsets
      Parameter:
      transformation -
      Gibt zurück: