SAVY


This work was the result of my capstone with Professors Andrew McGregor and Ramesh Sitaraman.

Note: visualizations open in separate windows.

Abstract

SAVY is a stream algorithm visualization environment. It comes pre-loaded with three stream algorithm implementations that allow for experimentation. The hope is that through experimentation SAVY will allow stream algorithm designers to produce better algorithms. The interactive nature of SAVY also makes it a good environment for introducing students to the concept of stream algorithms by allowing them to follow the execution as the data "passes by". Since many stream algorithms are also approximation algorithms SAVY provides the absolute answer for comparison with the approximate answer. (Where an algorithm that provides the absolute answer is known)

Algorithms

SAVY provides an implementation of the following algorithms:

  • The Count-Min sketch as presented by Graham Cormode and S. Muthukrishnan
  • A Sparse Spanner algorithm as presented by Michael Elkin
  • A Maximum Matching approximation algorithm as presented by Andrew McGregor
  • Usage

    SAVY allows users to enter their own data and observe how each algorithm reacts (for example during worst case vs common case analysis). Users can also choose to allow the software to generate random data so that users can view the execution of the algorithms over time with little set-up. For more information on SAVY see the Capstone Writeup

    Extendibility

    SAVY exposes an API to allow users to add their own algorithms to the environment.If you are interested in developing your own visualizations for SAVY please see the user manual located in Appendix B of the capstone writeup and available by itself here.

    Download

    SAVY is distributed as an applet, an application, and as source code. While all are available for free the generic "do not use for evil" restriction applies. To embed as an applet use source='spring11.AppletWrapper'. To run as an application simply run the .jar file.

  • Applet/Application
  • Source Code