Every computer program is based on an algorithm, which is a detailed description of each of the steps that the program has to execute . Not all algorithms are equally good at solving a computational problem. Some take more steps (and thus need more resources—such as time—to execute, which in turn influences the electricity needed for the computer), some take fewer steps, some “leak” more information about the underlying data set, some “leak” less. Both the resource consumption and the privacy protection of confidential data are key issues for our society. This research project thus has two goals: to design algorithms that are as efficient as possible and algorithms that leak as little sensitive information as possible.
More specifically, the algorithms that we design and analyze are based on so-called combinatorial inputs such as tables of numbers, networks, and feature vectors of objects. Depending on the input, the goal is to compute various statistics over the numbers, analyze properties of the network, or group the feature vectors by “similarity” into sets, called clusters. Algorithms that perform the latter task are called clustering algorithms and the sensitive information they protect is usually the value of each individual feature vector. For an example of a network application consider a social network, where nodes correspond to humans and connections correspond to relationships between humans. In this case, what is considered “private” information that should be protected might include which connections exist in a given network, or even which nodes exist. Under this “privacy condition”, an algorithm might need to count how many highly connected subnetworks of between five and twenty nodes exist in the graph.
This project designs two types of algorithms: first, algorithms where the data set is static, and second, algorithms where the data set changes over time. The focus is mostly on the latter setting, which creates additional challenges. For instance, prior answers might become wrong and new answers need to be output, but computing these new answers requires additional computation. Moreover, outputting new answers might also disclose more information about the input.