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 [2]. 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]  J. Köbler,et al.  The Graph Isomorphism Problem: Its Structural Complexity , 1993 .

[2]  Erkki Mäkinen,et al.  How to draw a hypergraph , 1990, Int. J. Comput. Math..

[3]  Olivier Danvy,et al.  Syntactic accidents in program analysis: on the impact of the CPS transformation , 2000, ICFP '00.

[4]  Thomas A. Henzinger,et al.  Reactive Modules , 1996, Proceedings 11th Annual IEEE Symposium on Logic in Computer Science.

[5]  Rajeev Alur,et al.  Heuristics for Hierarchical Partitioning with Application to Model Checking , 2000 .

[6]  Edward J. Delp,et al.  An iterative growing and pruning algorithm for classification tree design , 1989, Conference Proceedings., IEEE International Conference on Systems, Man and Cybernetics.

[7]  Jirí Srba,et al.  Matching Modulo Associativity and Idempotency Is NP-Complete , 2000, MFCS.

[8]  Doron A. Peled,et al.  Using partial-order methods in the formal validation of industrial concurrent programs , 1996, ISSTA '96.

[9]  Rajeev Alur,et al.  MOCHA: Exploiting Modularity in Model Checking , 2000, CAV 2000.

[10]  Thomas A. Henzinger,et al.  MOCHA: Modularity in Model Checking , 1998, CAV.

[11]  Philippe Flajolet,et al.  A Calculus for the Random Generation of Labelled Combinatorial Structures , 1994, Theor. Comput. Sci..

[12]  Rajeev Alur,et al.  \next" Heuristic for On-the--y Model Checking , 1999 .

[13]  Peter Norvig,et al.  Artificial Intelligence: A Modern Approach , 1995 .

[14]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[15]  David S. Johnson,et al.  Some Simplified NP-Complete Graph Problems , 1976, Theor. Comput. Sci..

[16]  Ivan Damgård,et al.  Multiparty Computation from Threshold Homomorphic Encryption , 2000, EUROCRYPT.

[17]  Seif Haridi,et al.  Distributed Algorithms , 1992, Lecture Notes in Computer Science.

[18]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[19]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[20]  David Harel,et al.  On visual formalisms , 1988, CACM.

[21]  Thomas Hune,et al.  Modeling a Language for Embedded Systems in Timed Automata , 2000 .

[22]  Naveed A. Sherwani,et al.  Algorithms for VLSI Physical Design Automation , 1999, Springer US.

[23]  Edward J. Delp,et al.  An Iterative Growing and Pruning Algorithm for Classification Tree Design , 1991, IEEE Trans. Pattern Anal. Mach. Intell..

[24]  Luca Aceto,et al.  2-Nested Simulation Is Not Finitely Equationally Axiomatizable , 2000, STACS.

[25]  Rance Cleaveland,et al.  The concurrency workbench: a semantics-based tool for the verification of concurrent systems , 1993, TOPL.

[26]  Glynn Winskel,et al.  Language, Semantics, and Methods for Cryptographic Protocols , 2000 .

[27]  Vinodchandran Variyam A Note on NP \ coNP=poly , 2000 .

[28]  Rajeev Alur,et al.  "Next" Heuristic for On-the-Fly Model Checking , 1999, CONCUR.

[29]  강문설 [서평]「The Unified Modeling Language User Guide」 , 1999 .

[30]  Jirí Srba Complexity of Weak Bisimilarity and Regularity for BPA and BPP , 2000, EXPRESS.

[31]  Edmund M. Clarke,et al.  Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic , 1981, Logic of Programs.

[32]  Gerard J. Holzmann,et al.  The Model Checker SPIN , 1997, IEEE Trans. Software Eng..

[33]  허윤정,et al.  Holzmann의 ˝The Model Checker SPIN˝에 대하여 , 1998 .

[34]  Thomas A. Henzinger,et al.  jMocha: a model checking tool that exploits design structure , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.