https://github.com/brahms2013/TPL/releases
Quantifying Differential Privacy under Temporal Correlations (ICDE17) https://ieeexplore.ieee.org/document/7930028/
https://arxiv.org/abs/1610.07543
@inproceedings{cao2017quantifying,
title={Quantifying differential privacy under temporal correlations},
author={Cao, Yang and Yoshikawa, Masatoshi and Xiao, Yonghui and Xiong, Li},
booktitle={Data Engineering (ICDE), 2017 IEEE 33rd International Conference on},
pages={821--832},
year={2017},
organization={IEEE}
}
Quantifying Differential Privacy in Continuous Data Release under Temporal Correlations (Invited for TKDE special issue on "Best of ICDE 2017") https://ieeexplore.ieee.org/document/8333800
https://arxiv.org/abs/1711.11436
@article{cao2018quantifying,
title={Quantifying Differential Privacy in Continuous Data Release under Temporal Correlations},
author={Cao, Yang and Yoshikawa, Masatoshi and Xiao, Yonghui and Xiong, Li},
journal={IEEE Transactions on Knowledge and Data Engineering},
year={2018},
publisher={IEEE}
}
ConTPL: Controlling Temporal Privacy Leakage in Differentially Private Continuous Data Release (VLDB18 demo) https://dl.acm.org/citation.cfm?id=3275604
http://www.vldb.org/pvldb/vol11/p2090-cao.pdf
@article{cao2018ConTPL,
title={ConTPL: Controlling Temporal Privacy Leakage in Differentially Private Continuous Data Release},
author={Yang Cao, Li Xiong, Masatoshi Yoshikawa, Yonghui Xiao, Si Zhang},
journal={PVLDB 11(12)},
year={2018},
pages={2090--2093}
}
Licensed under Apache License, Version 2.0.
- Matlab2017b.
- CPLEX (optional)
- Gurobi (optional)
Note: the code is tested on OSX 10.13.
Function calcPLbyLP_cplex
needs IBM CPLEX. Function calcPLbyLP_gu
needs Gurobi.
You can find (free) academics version of CPLEX or Gruobi.
Alternatively, you can use Matlab linear program solver rather than CPLEX or Gurobi by invoking calcPLbyLP(TM, a, 'matlab')
. Tip: you can take a sleep if using Matlab linear program solver for n>30 :P
Our proposed quantification algorithms calcPLbyThm
, calcPLbyPreComp
and calcPLbyFunc
are much faster.
- Download CPLEX [academic version] 12.7 (https://developer.ibm.com/docloud/blog/2016/11/24/cos-12-7-ai/) (I use this version) or free trial version (the free trial period is 90 days). Here are the descriptions on the differences between these versions.
- Install CPLEX.
- Setting up CPLEX for Matlab, refer to here.
Function "VChooseK" (VChooseK.c, VChooseK.m) is credited to this project: https://www.mathworks.com/matlabcentral/fileexchange/26190-vchoosek
Since I ran the code on OSX 10.13, I compiled it to "VChooseK.mexmaci64". If you are using Windows or other OS, you may want to re-compile and replace it.
testPlotLFunc.m
plotting an example of L(a) functiontestPlotBudgetAlloc.m
plotting two examples of budget allocation schemes and the corresponding BPL/FPL/TPL.testCalcBPL.m
runningcalcPLbyLP
,calcPLbyThm
,calcPLbyPreComp
andcalcPLbyFunc
, and outputing the results and runtime. Note that, the results are not BPL/FPL but L(a).testFindSup.m
runningfindSup
and comparing the result with step-by-step calculation.
allocEspByQuantify
Allocating privacy budget by quantification.allocEspByUpperBound
Allocating privacy budget by upper bound.
calcPLbyLP
Calculating L(a) by Linear programming. inputmethod
can be set as 'gurobi' or 'cplex', or 'matlab'.calcPLbyThm
Calculating L(a) by Theorem 4.calcPLbyPreComp
Calculating L(a) by precomputation. inputsEspMatrix
,qM
anddM
can be obtained bypreCompQDMatrix
.calcPLbyFunc
Calculating L(a) by binary search. inputsaArrMax
,qArrMax
anddArrMax
can be obtained bygenLFunc
.
findSup
Calculating the suppremum of a DP mechanism M^t whose privacy budget is constant at each time t. inputsqM
,dM
,QDplusInd
can be obtained bypreCompQDMatrix
.
preCompQDMatrix
PrecomputingEspMatrix
,qM
,dM
andQDplusInd
.genLFunc
Precomputing L(a) function, i.e.,aArrMax
,qArrMax
anddArrMax
.
Yang Cao