Hi!
This is the personal website of Hendrik Fichtenberger. I collect various bits and pieces that I wrote, developed or like on this page.
Research
I'm a computer scientist, and my interests lie in designing and analyzing algorithms for large data. My research originates in theoretical computer science, and I've worked on sublinear clustering and graph algorithms. However, I also enjoy to implement neat algorithms, and some of our papers have actually been implemented by my coauthors and me.
My ORCID iD is
0000000332465323
.

Property Testing of Graphs and the Role of Neighborhood Distributions, Ph.D. thesis.
official version

Explicit Upper Bounds on the Minimum Size of Planar Graphs That Satisfy a Given Distribution of kDisks, Master's thesis.
selfarchived version
Publications

H. Fichtenberger, S. Lattanzi, A. NorouziFard and O. Svensson
“Consistent kClustering for General Metrics,”
to appear in 32nd Symposium on Discrete Algorithms (SODA),
2021.

A. Czumaj, H. Fichtenberger, P. Peng and C. Sohler,
“Testable Properties in General Graphs and Random Order Streaming,”
in 24th International Conference on Randomization and Computation (RANDOM),
2020, pp. 16:116:20.
conference version
arXiv version
slides

H. Fichtenberger, M. Gao and P. Peng,
“Sampling Arbitrary Subgraphs Exactly Uniformly in Sublinear Time,”
in 47th International Colloquium on Automata, Languages and Programming (ICALP),
2020, pp. 45:145:13.
conference version
arXiv version
slides

H. Fichtenberger, A. Krivošija and A. Rey,
“Testing Stability Properties in Graphical Hedonic Games,”
in 17th International Conference on Autonomous Agents and Multiagent Systems (AAMAS),
2019, pp. 882890.
conference version
arXiv version

H. Fichtenberger, P. Peng and C. Sohler,
“Every Testable (Infinite) Property of BoundedDegree Graphs Contains an Infinite Hyperfinite Subproperty,”
in 30th Symposium on Discrete Algorithms (SODA),
2019, pp. 714–726.
conference version
conference slides
extended slides

H. Fichtenberger and D. Rohde,
“A TheoryBased Evaluation of Nearest Neighbor Models Put Into Practice,”
in 32nd Conference on Neural Information Processing Systems (NeurIPS, formerly NIPS),
2018, pp. 6743–6754.
conference version
full version
source code

H. Fichtenberger and Y. Vasudev,
“A TwoSided Error Distributed Property Tester For Conductance,”
in 43rd International Symposium on Mathematical Foundations of Computer Science (MFCS),
2018, pp. 19:1–19:15.
conference version
slides

H. Fichtenberger, R. Levi, Y. Vasudev, and M. Wötzel,
“A Sublinear Tester for Outerplanarity (and Other Forbidden Minors) With OneSided Error,”
in 45th International Colloquium on Automata, Languages, and Programming (ICALP),
2018, pp. 52:1–52:14.
conference version
full version
slides
poster

H. Fichtenberger, P. Peng, and C. Sohler,
“On ConstantSize Graphs That Preserve the Local Structure of HighGirth Graphs,”
in 19th International Workshop on Randomization and Computation (RANDOM),
2015, pp. 786–799.
conference version
slides

D. Siedhoff, H. Fichtenberger, P. Libuschewski, F. Weichert, C. Sohler, and H. Müller,
“Signal/Background Classification of Time Series for Biological Virus Detection,”
in 36th Annual German Pattern Recognition Symposium (GCPR),
2014, pp. 388–398.
conference version
selfarchived version

H. Fichtenberger, M. Gillé, M. Schmidt, C. Schwiegelshohn, and C. Sohler,
“BICO: BIRCH Meets Coresets for kMeans Clustering,”
in 21st Annual European Symposium on Algorithms (ESA),
2013, pp. 481–492.
conference version
selfarchived version
slides
source code
Projects
Some projects are available on GitHub.
BICO: kmeans coresets and clusterings in streams
Clustering is a method to group objects that are similar with respect to some property (e.g., color). BICO is a streaming algorithm to compute kmeans clusterings, more precisely, to compute kmeans coresets. This implementation is the experimental part's core of our paper on this topic. It is suited for production use and provides better solutions in less time than many other algorithms. You can download the C++ sources here. There also exists a Java implementation for MOA and an adaption of the C++ implementation for the R package stream. See this project's website for more information.
CluE: a clustering library
There exist many clustering algorithms for various objectives. CluE is a C++ library that implements several clustering algorithms. It was funded by DFG. See the website of this project for more information.
PROBI: probabilistic kmedian in streams
From the perspective of edit distance, kmeans and kmedian objectives look almost the same. However, algorithmically, the two problems are tackled quite differently. PROBI is an algorithm for kmedian for regular and probabilistic inputs. This is a proof of concept implementation. You can download the C++ sources here. See this project's website for more information.
FIBS: job scheduler using files to communicate
Sometimes when you perform the same experiment ten or a hundred times, you realize that a single machine won't do anymore. However, you're still at an early stage and you don't want to migrate to a computing cluster right now (maybe you should, but…). There might be a bunch of computers around that don't need any reservation or scripting of workload managers, but there's nothing that connects them but a shared folder somewhere in the local network or in the cloud.
FIBS is a Python script that reads a simple job file, distributes jobs to available workers, takes care of running the jobs and collects the results – all by just using the shared folder. It's probably not what you want to use at a large scale, but it's simple and easy to set up. The source code is on GitHub.
Inkscape Export Overlays: export slides with overlays
Inkscape is a very cool, free and opensource vector graphics editor. I use it to draw posters and slides. When creating slides with overlays (stepbystep animations), there are typically a lot of layers that need to be activated or deactivated in order to export specific overlays. This extension, which is forked from the inkscapeexportlayers extension by Jesús Espino and Xavier Julian, adds the ability to mark layers as active for a range of overlays and export all overlays automatically at once to, e.g., PDF or PDF+LaTeX. The source code is on GitHub.