Heuristics for Hierarchical Partitioning with Application to Model Checking
Given a collection of connected components, it is often desired to cluster together parts of strong correspondence, yielding a hierarchical structure. We address the automation of this process and apply heuristics to battle the combinatorial and computational complexity.
We define a cost function that captures the quality of a structure relative to the connections and favors shallow structures with a low degree of branching. Finding a structure with minimal cost is NP-complete. We present a greedy polynomial-time algorithm that approximates good solutions incrementally by local evaluation of a heuristic function. We argue for a heuristic function based on four criteria: the number of enclosed connections, the number of components, the number of touched connections and the depth of the structure.
We report on an application in the context of formal verification, where our algorithm serves as a preprocessor for a temporal scaling technique, called “Next” heuristic . The latter is applicable in reachability analysis and is included in a recent version of the Mocha model checking tool. We demonstrate performance and benefits of our method and use an asynchronous parity computer and an opinion poll protocol as case studies.
- 1.Rajeev Alur, Luca de Alfaro, Radu Grosu, Thomas A. Henzinger, Minsu Kang, Rupak Majumdar, Freddy Y.C. Mang, Christoph Meyer-Kirsch, and Bow-Yaw Wang. Mocha: A model checking tool that exploits design structure. Proceedings of 23rd International Conference on Software Engineering, 2001. See http://www.cis.upenn.edu/mocha/.
- 2.Rajeev Alur and Bow-Yaw Wang. “Next” Heuristic for On-the-fly Model Checking. In Proceedings of the Tenth International Conference on Concurrency Theory (CONCUR’99), LNCS 1664, pages 98–113. Springer-Verlag, 1999.Google Scholar
- 3.Grady Booch, James Rumbaugh, and Ivar Jacobson. The Unified Modeling Language User Guide. Addison-Wesley, 1998.Google Scholar
- 4.Edmund M. Clarke, Jr. and E. Allen Emerson. Synthesis of synchronization skeletons from branching time temporal logic. Lecture Notes Comp. Sci., 131:52–71, 1982.Google Scholar
- 5.Rance Cleaveland, Joachim Parrow, and Bernhard Steffen. The Concurrency Workbench: A Semantics Based Tool for the Verification of Concurrent Systems. ACM Transactions on Programming Languages and Systems, 15(1):36–72, January 1993.Google Scholar
- 6.Philippe Flajolet. A problem in Statistical Classification Theory, 1997. http://pauillac.inria.fr/algo/libraries/autocomb/schroeder-html/.
- 7.Phillippe Flajolet. Mathematical Methods in the Analysis of Algorithms and Data Structures. Lecture Notes for A Graduate Course on Computation Theory, Udine (Italy), Fall 1984. In Egon Börger, editor, Trends in Theoretical Computer Science, pages 225–304. Computer Science Press, 1988.Google Scholar
- 8.Saul B. Gelfand, C. S. Ravishankar, and Edward J. Delp. An iterative growing and pruning algorithm for classification tree design. IEEE Transactions on Pattern Analysis and Machine Intelligence, PAMI-13(2):163–174, February 1991.Google Scholar
- 10.David Harel. Statecharts: A visual formalism for complex systems. Science of Computer Programming, 1987.Google Scholar
- 11.Gerard J. Holzmann. The model checker spin. IEEE Trans. on Software Engineering, 23(5):279–295, May 1997. Special issue on Formal Methods in Software Practice.Google Scholar
- 12.M. Oliver Möller and Rajeev Alur. Heuristics for hierarchical partitioning with application to model checking. Research Series RS-00-21, BRICS, Department of Computer Science, University of Aarhus, August 2000. 30 pp, available online at http://www.brics.dk/RS/00/21/.
- 13.Ernst Schröder. Vier combinatorische probleme. Zentralblatt. f. Math. Phys., 15:361–376, 1870.Google Scholar
- 15.Lance Tokuda and Don Batory. Evolving Object-Oriented Designs with Refactorings. In Proceedings of ASE-99: The 14th IEEE Conference on Automated Software Engineering. IEEE CS Press, October 1999.Google Scholar