Asymptotic Experiments with Data Structures: Bipartite Graph Matchings and Covers
We consider instances of bipartite graphs and a number of asymptotic performance experiments in three projects: (1) top movie lists, given databases of movies and viewers, (2) maximum matchings, and (3) minimum set covers. Experiments are designed to measure the asymptotic runtime performance of abstract data types (ADTs) in three programming languages: Java, R, and C++. The outcomes of these experiments may be surprising. In project (1), the best ADT in R consistently outperforms all ADTs in public domain Java libraries, including the library from Google. The largest movie list has 2^20 titles. In project (2), the Ford-Fulkerson algorithm implementation in R significantly outperforms Java. The hardest instance has 88452 rows and 729 columns. In project (3), a stochastic version of a greedy algorithm in R can significantly outperform a state-of-the-art stochastic solver in C++ on instances with num_rows ≥ 300 and num_columns ≥ 3000.
READ FULL TEXT