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.mplotting an example of L(a) functiontestPlotBudgetAlloc.mplotting two examples of budget allocation schemes and the corresponding BPL/FPL/TPL.testCalcBPL.mrunningcalcPLbyLP,calcPLbyThm,calcPLbyPreCompandcalcPLbyFunc, and outputing the results and runtime. Note that, the results are not BPL/FPL but L(a).testFindSup.mrunningfindSupand comparing the result with step-by-step calculation.
allocEspByQuantifyAllocating privacy budget by quantification.allocEspByUpperBoundAllocating privacy budget by upper bound.
calcPLbyLPCalculating L(a) by Linear programming. inputmethodcan be set as 'gurobi' or 'cplex', or 'matlab'.calcPLbyThmCalculating L(a) by Theorem 4.calcPLbyPreCompCalculating L(a) by precomputation. inputsEspMatrix,qManddMcan be obtained bypreCompQDMatrix.calcPLbyFuncCalculating L(a) by binary search. inputsaArrMax,qArrMaxanddArrMaxcan be obtained bygenLFunc.
findSupCalculating the suppremum of a DP mechanism M^t whose privacy budget is constant at each time t. inputsqM,dM,QDplusIndcan be obtained bypreCompQDMatrix.
preCompQDMatrixPrecomputingEspMatrix,qM,dMandQDplusInd.genLFuncPrecomputing L(a) function, i.e.,aArrMax,qArrMaxanddArrMax.
Yang Cao
