A Virtual Laboratory for Study of Algorithms

Empirical studies of algorithms are highly useful in both instruction and research. This paper describes a software application that facilitates experimentation with algorithms. The application is a virtual laboratory that allows the user to run an algorithm on randomly generated instances of a problem and immediately view a chart that summarizes the results. The application was developed for the PARTITION problem, but its design is sufficiently general to be easily adapted to a wide range of decision and optimization problems. The instance generator and the decision algorithm are essentially plug-ins. The application can easily accommodate any instance generator with two parameters, such as the number of nodes and number of edges for a graph, or the number of clauses and width of clauses for a boolean expression. The decision algorithm can also be replaced with an optimization algorithm, which returns a numeric value instead of a Boolean result. We anticipate that the virtual algorithms laboratory will be useful for both instruction and research. It can be adapted to present common instructional lessons such as comparison of search and sort algorithms. It can also be used for the analysis and development of improved algorithms for hard problems such as PARTITION, CLIQUE, and SATISFIABILITY.

[1]  Brian Hayes,et al.  The Easiest Hard Problem , 2002, American Scientist.

[2]  Harry B. Hunt,et al.  Power indices and easier hard problems , 2005, Mathematical systems theory.