public class ARXConfiguration
extends java.lang.Object
implements java.io.Serializable, java.lang.Cloneable
| Modifier and Type | Class and Description |
|---|---|
static class |
ARXConfiguration.AnonymizationAlgorithm
The algorithms supported by ARX
|
static class |
ARXConfiguration.ARXConfigurationInternal
Class for internal use that provides access to more parameters and functionality.
|
static class |
ARXConfiguration.Monotonicity
Monotonicity.
|
static class |
ARXConfiguration.SearchStepSemantics
The semantics of heuristic search steps.
|
| Modifier and Type | Field and Description |
|---|---|
static int |
REQUIREMENT_COUNTER
Do the criteria require a counter per equivalence class.
|
static int |
REQUIREMENT_DISTRIBUTION
Do the criteria require distributions of sensitive values in the equivalence classes.
|
static int |
REQUIREMENT_SECONDARY_COUNTER
Do the criteria require a second counter.
|
| Modifier and Type | Method and Description |
|---|---|
ARXConfiguration |
addPrivacyModel(PrivacyCriterion c)
Adds a privacy model to the configuration.
|
ARXConfiguration |
clone()
Clones this config.
|
static ARXConfiguration |
create()
Creates a new configuration without tuple suppression.
|
static ARXConfiguration |
create(double suppressionLimit)
Creates a new configuration that allows the given percentage of outliers and
thus implements tuple suppression.
|
static ARXConfiguration |
create(double suppressionLimit,
Metric<?> metric)
Creates a new configuration that allows the given percentage of outliers and
thus implements tuple suppression.
|
static ARXConfiguration |
create(Metric<?> metric)
Creates a new configuration that allows to define the metric for measuring information loss.
|
ARXConfiguration.AnonymizationAlgorithm |
getAlgorithm()
Returns the anonymization algorithm selected
|
double |
getAttributeWeight(java.lang.String attribute)
Returns the weight for the given attribute.
|
java.util.Map<java.lang.String,java.lang.Double> |
getAttributeWeights()
Returns all configured attribute weights.
|
ARXCostBenefitConfiguration |
getCostBenefitConfiguration()
Returns the cost/benefit configuration
|
double |
getDPSearchBudget()
Returns the privacy budget to use for the data-dependent
differential privacy search algorithm.
|
double |
getGeneticAlgorithmCrossoverFraction()
Returns the fraction of individuals crossed over
|
boolean |
getGeneticAlgorithmDeterministic()
Deterministic execution
|
double |
getGeneticAlgorithmEliteFraction()
Returns the size of the elite group
|
double |
getGeneticAlgorithmImmigrationFraction()
Returns the fraction to immigrate
|
int |
getGeneticAlgorithmImmigrationInterval()
Returns the immigration interval
|
int |
getGeneticAlgorithmIterations()
Returns the genetic algorithm iterations
|
double |
getGeneticAlgorithmMutationProbability()
Returns the mutation probability
|
double |
getGeneticAlgorithmProductionFraction()
Returns the production fraction
|
int |
getGeneticAlgorithmSubpopulationSize()
Returns the size of the sub-population
|
int |
getHeuristicSearchStepLimit(ARXConfiguration.SearchStepSemantics requestedSearchStepSemantics,
int numQIs)
The heuristic search algorithm will terminate after the returned number of steps.
|
int |
getHeuristicSearchThreshold()
When the size of the solution space exceeds the returned number of transformations,
ARX will use a heuristic search strategy.
|
int |
getHeuristicSearchTimeLimit()
The heuristic search algorithm will terminate after the returned number of milliseconds.
|
double |
getMaxOutliers()
Deprecated.
|
ARXConfiguration.Monotonicity |
getMonotonicityOfPrivacy()
Returns whether the privacy model is monotonic
|
ARXConfiguration.Monotonicity |
getMonotonicityOfUtility()
Returns whether the utility measure is monotonic
|
<T extends PrivacyCriterion> |
getPrivacyModel(java.lang.Class<T> clazz)
Returns an instance of the class, if any.
|
java.util.Set<PrivacyCriterion> |
getPrivacyModels()
Returns all privacy models.
|
<T extends PrivacyCriterion> |
getPrivacyModels(java.lang.Class<T> clazz)
Returns all privacy models which are instances of the given class.
|
Metric<?> |
getQualityModel()
Returns the quality model to be used for optimizing output data.
|
double |
getRiskThresholdJournalist()
Return journalist risk threshold, 1 if there is none
|
double |
getRiskThresholdMarketer()
Return marketer risk threshold, 1 if there is none
|
double |
getRiskThresholdProsecutor()
Return prosecutor risk threshold, 1 if there is none
|
double |
getSuppressionLimit()
Returns the suppression limit
|
boolean |
isAttributeTypeSuppressed(AttributeType type)
Returns whether values of the given attribute type will be replaced by the suppression
string in suppressed tuples.
|
boolean |
isPracticalMonotonicity()
Is practical monotonicity assumed.
|
boolean |
isPrivacyModelSpecified(java.lang.Class<? extends PrivacyCriterion> clazz)
Returns whether the configuration contains a privacy model which is an instance of the given class.
|
boolean |
isSuppressionAlwaysEnabled()
Returns whether suppression is applied to the output of anonymous as well as non-anonymous transformations.
|
boolean |
isUseHeuristicSearchForSampleBasedCriteria()
Is optimality guaranteed for sample-based criteria?
|
<T extends PrivacyCriterion> |
removeCriterion(PrivacyCriterion arg)
Removes the given criterion.
|
java.util.List<ElementData> |
render()
Renders this object
|
void |
setAlgorithm(ARXConfiguration.AnonymizationAlgorithm algorithm)
Sets the algorithm to use
|
void |
setAttributeTypeSuppressed(AttributeType type,
boolean enabled)
Defines values of which attribute type are to be replaced by the suppression string in suppressed tuples.
|
void |
setAttributeWeight(java.lang.String attribute,
double weight)
Sets the weight for the given attribute.
|
void |
setAttributeWeight(java.lang.String attribute,
java.lang.Double weight)
Sets the weight for the given attribute.
|
ARXConfiguration |
setCostBenefitConfiguration(ARXCostBenefitConfiguration config)
Sets the cost/benefit configuration
|
void |
setDPSearchBudget(double budget)
Sets the privacy budget to use for the data-dependent
differential privacy search algorithm.
|
void |
setGeneticAlgorithmCrossoverFraction(double geneticAlgorithmCrossoverFraction)
Sets the fraction of individuals crossed over
|
void |
setGeneticAlgorithmDeterministic(boolean geneticAlgorithmDeterministic)
Deterministic execution
|
void |
setGeneticAlgorithmEliteFraction(double geneticAlgorithmEliteFraction)
Sets the size of the elite group
|
void |
setGeneticAlgorithmImmigrationFraction(double geneticAlgorithmImmigrationFraction)
Sets the fraction to immigrate
|
void |
setGeneticAlgorithmImmigrationInterval(int geneticAlgorithmImmigrationInterval)
Sets the immigration interval
|
void |
setGeneticAlgorithmIterations(int geneticAlgorithmIterations)
Sets the genetic algorithm iterations
|
void |
setGeneticAlgorithmMutationProbability(double geneticAlgorithmMutationProbability)
Sets the mutation probability
|
void |
setGeneticAlgorithmProductionFraction(double geneticAlgorithmProductionFraction)
Sets the production fraction
|
void |
setGeneticAlgorithmSubpopulationSize(int geneticAlgorithmSubpopulationSize)
Setter
|
void |
setHeuristicSearchStepLimit(int numberOfTransformations)
The heuristic search algorithm will terminate after the given number of transformations
have been checked.
|
void |
setHeuristicSearchStepLimit(int numberOfTransformations,
ARXConfiguration.SearchStepSemantics searchStepSemantics)
Sets the semantics of heuristic search steps.
|
void |
setHeuristicSearchThreshold(int numberOfTransformations)
When the size of the solution space exceeds the given number of transformations,
ARX will use a heuristic search strategy.
|
void |
setHeuristicSearchTimeLimit(int timeInMillis)
The heuristic search algorithm will terminate after the given number of milliseconds.
|
void |
setMaxOutliers(double max)
Deprecated.
|
void |
setPracticalMonotonicity(boolean assumeMonotonicity)
Set, if practical monotonicity assumed.
|
void |
setQualityModel(Metric<?> model)
Sets the quality model to be used for optimizing output data.
|
void |
setSuppressionAlwaysEnabled(boolean enabled)
Sets whether suppression is applied to the output of anonymous as well as non-anonymous transformations.
|
void |
setSuppressionLimit(double limit)
Sets the suppression limit.
|
void |
setUseHeuristicSearchForSampleBasedCriteria(boolean value)
Do we guarantee optimality for sample-based criteria?
|
public static final int REQUIREMENT_COUNTER
public static final int REQUIREMENT_DISTRIBUTION
public static final int REQUIREMENT_SECONDARY_COUNTER
public static ARXConfiguration create()
public static ARXConfiguration create(double suppressionLimit)
suppressionLimit - public static ARXConfiguration create(double suppressionLimit, Metric<?> metric)
suppressionLimit - metric - public static ARXConfiguration create(Metric<?> metric)
metric - public ARXConfiguration addPrivacyModel(PrivacyCriterion c)
c - public ARXConfiguration clone()
clone in class java.lang.Objectpublic ARXConfiguration.AnonymizationAlgorithm getAlgorithm()
public double getAttributeWeight(java.lang.String attribute)
attribute - public java.util.Map<java.lang.String,java.lang.Double> getAttributeWeights()
public ARXCostBenefitConfiguration getCostBenefitConfiguration()
public double getDPSearchBudget()
public double getGeneticAlgorithmCrossoverFraction()
public boolean getGeneticAlgorithmDeterministic()
public double getGeneticAlgorithmEliteFraction()
public double getGeneticAlgorithmImmigrationFraction()
public int getGeneticAlgorithmImmigrationInterval()
public int getGeneticAlgorithmIterations()
public double getGeneticAlgorithmMutationProbability()
public double getGeneticAlgorithmProductionFraction()
public int getGeneticAlgorithmSubpopulationSize()
public int getHeuristicSearchStepLimit(ARXConfiguration.SearchStepSemantics requestedSearchStepSemantics, int numQIs)
Integer.MAX_VALUE, i.e. no limit.requestedSearchStepSemantics - the semantics of the number of search steps to be returnednumQIs - the number of QIspublic int getHeuristicSearchThreshold()
public int getHeuristicSearchTimeLimit()
@Deprecated public double getMaxOutliers()
getSuppressionLimit() instead.public ARXConfiguration.Monotonicity getMonotonicityOfPrivacy()
public ARXConfiguration.Monotonicity getMonotonicityOfUtility()
public <T extends PrivacyCriterion> T getPrivacyModel(java.lang.Class<T> clazz)
T - clazz - public java.util.Set<PrivacyCriterion> getPrivacyModels()
public <T extends PrivacyCriterion> java.util.Set<T> getPrivacyModels(java.lang.Class<T> clazz)
T - clazz - public Metric<?> getQualityModel()
public double getRiskThresholdJournalist()
public double getRiskThresholdMarketer()
public double getRiskThresholdProsecutor()
public double getSuppressionLimit()
public boolean isAttributeTypeSuppressed(AttributeType type)
type - public boolean isPracticalMonotonicity()
public boolean isPrivacyModelSpecified(java.lang.Class<? extends PrivacyCriterion> clazz)
clazz - public boolean isSuppressionAlwaysEnabled()
true, suppression will be applied to the output of non-anonymous
transformations to make them anonymous (if possible). Default is true.public boolean isUseHeuristicSearchForSampleBasedCriteria()
public <T extends PrivacyCriterion> boolean removeCriterion(PrivacyCriterion arg)
T - arg - public java.util.List<ElementData> render()
public void setAlgorithm(ARXConfiguration.AnonymizationAlgorithm algorithm)
algorithm - public void setAttributeTypeSuppressed(AttributeType type, boolean enabled)
type - the attribute typeenabled - whether suppression should be performed or notpublic void setAttributeWeight(java.lang.String attribute,
double weight)
attribute - weight - public void setAttributeWeight(java.lang.String attribute,
java.lang.Double weight)
attribute - weight - public ARXConfiguration setCostBenefitConfiguration(ARXCostBenefitConfiguration config)
config - public void setDPSearchBudget(double budget)
budget - public void setGeneticAlgorithmCrossoverFraction(double geneticAlgorithmCrossoverFraction)
geneticAlgorithmCrossoverPercent - public void setGeneticAlgorithmDeterministic(boolean geneticAlgorithmDeterministic)
geneticAlgorithmDeterministic - public void setGeneticAlgorithmEliteFraction(double geneticAlgorithmEliteFraction)
geneticAlgorithmElitePercent - public void setGeneticAlgorithmImmigrationFraction(double geneticAlgorithmImmigrationFraction)
geneticAlgorithmImmigrationFraction - public void setGeneticAlgorithmImmigrationInterval(int geneticAlgorithmImmigrationInterval)
geneticAlgorithmImmigrationInterval - public void setGeneticAlgorithmIterations(int geneticAlgorithmIterations)
geneticAlgorithmIterations - public void setGeneticAlgorithmMutationProbability(double geneticAlgorithmMutationProbability)
geneticAlgorithmMutationProbability - public void setGeneticAlgorithmProductionFraction(double geneticAlgorithmProductionFraction)
geneticAlgorithmImmigrationInterval - public void setGeneticAlgorithmSubpopulationSize(int geneticAlgorithmSubpopulationSize)
geneticAlgorithmSubpopulationSize - public void setHeuristicSearchStepLimit(int numberOfTransformations)
Integer.MAX_VALUE, i.e. no limit. ARX supports different
search step semantics. The standards semantics (implemented by this method) is that this parameter
restricts the number of transformations from the solution space that are searched during anonymization.numberOfTransformations - public void setHeuristicSearchStepLimit(int numberOfTransformations,
ARXConfiguration.SearchStepSemantics searchStepSemantics)
EXPANSIONS is set, then the limit of the number of heuristic checks
will be calculated by multiplying the heuristic search step limit with the number of QIs.searchStepSemantics - public void setHeuristicSearchThreshold(int numberOfTransformations)
numberOfTransformations - public void setHeuristicSearchTimeLimit(int timeInMillis)
timeInMillis - @Deprecated public void setMaxOutliers(double max)
setSuppressionLimit() instead.max - public void setPracticalMonotonicity(boolean assumeMonotonicity)
assumeMonotonicity - public void setQualityModel(Metric<?> model)
model - public void setSuppressionAlwaysEnabled(boolean enabled)
true, suppression will be applied to the output of non-anonymous
transformations to make them anonymous (if possible). Default is true.enabled - public void setSuppressionLimit(double limit)
limit - public void setUseHeuristicSearchForSampleBasedCriteria(boolean value)