Concurrent Data Structures for Tree Search Algorithms

  • Bertrand Le Cun
  • Catherine Roucairol


Exact and approximate parallel methods for solving difficult discrete optimization problems typically work on irregular data structures. Many of these problems are solved by tree search strategies and demand suitable concurrent data structures. In this article, we discuss the data structure used for implementating parallel Best First Branch and Bound and parallel A* algorithm.

Therefore, we study first the method called Partial Locking which allows concurrent access on tree data structure on shared memory machines. We also present an improvement of this method which reduces the number of mutual exclusion primitives and thus reduces the implementation overhead.

Parallel Best First Branch and Bound needs suitable Parallel Priority Queues. We show the usefulness of our Partial Locking method to many of them (Skew-Heap, Splay-Trees, Funnel-Tree, Funnel-Table). We give results on our Parallel Best First Branch and Bound for the Quadratic Assignment Problem, and the Travelling Salesman problem.

We also present a new parallel implementation of the heuristic state space search A* algorithm. We show the efficiency of a new concurrent double criteria data structure called treap, instead of usual priority queues (heaps), with the partial locking method. Results on the 15 puzzles are presented, which were obtained on a virtual shared memory machine: the KSR1.


Shared Memory Travelling Salesman Problem Hash Table Priority Queue Quadratic Assignment Problem 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    Aragon (C.) et R (G. S.). — Randomized search trees. FOCS 30, 1989, pp. 540–545.Google Scholar
  2. [2]
    Bitwas (J.) et Browne (J.). — Simultaneous update of priority structures. IEEE international conference on parallel computing,1987, pp. 124–131.Google Scholar
  3. [3]
    Brown (M.). — Implementation and analysis of binomial queue algorithmms. SIAM Comput., vol. 7, 1978, pp. 298–319.zbMATHGoogle Scholar
  4. [4]
    Calhoun (J.) et Ford (R.). — Concurrency control mechanisms and the serializability of concurrent tree algorithms In: of the 3rd ACM SIGACTSIGMOD Symposium on Principles of Database Systems. — Waterloo Ontario, Avr. 1984. Debut de la theorie sur la serializability.Google Scholar
  5. [5]
    Cun (B. L.), Mans (B.) et Roucairol (C.). — Opérations concurrentes et files de priorité. — RR n 1548, INRIA-Rocquencourt, 1991.Google Scholar
  6. [6]
    Cun (B. L.), Mans (B.) et Roucairol (C.). — Comparison of concurrent priority queues for branch and bound Algorithms. — RR n° 92–65, MASI Universite Pierre et Marie Curie, 1992.Google Scholar
  7. [7]
    Cung (V.-D.) et Le_Cun (B.). — An efficient implementation of parallel a*.In: Lecture Notes in Computer Science, Parallel and Distributed computing: Theory and Practice, Canada-France Conference on Parallel Computing,pp. 153–168.Google Scholar
  8. [8]
    Cung (V.-D.) et Roucairol (C.). — Parcours parallèle de graphes d’états par des algorithmes de la famille A* en Intelligence Artificielle. — RR n° 1900, INRIA, Avr. 1993. In French.Google Scholar
  9. [9]
    Das (S.) et Horng (W.-B.). — Managing a parallel heap efficiently. In: Proc. PARLE’91-Parallel Architectures and Languages Europe,pp. 270–288.Google Scholar
  10. [10]
    Deo (N.). — Data structures for parallel computation on shared-memory machine.In: SuperComputing,pp. 341–345.Google Scholar
  11. [11]
    Deo (N.) et Prasad (S.). — Parallel heap: An optimal parallel priority queue. Journal of Supercomputing, vol. 6, n° 1, Mars 1992, pp. 87–98.Google Scholar
  12. [12]
    Ellis (C.). — Concurrent search and insertion in 2–3 trees. Acta Informatica, vol. 14, 1980, pp. 63–86.zbMATHCrossRefGoogle Scholar
  13. [13]
    Ellis (C.). — Concurrent search and insertion in avl trees. IEEE Trans. on Cumputers,vol. C-29, n° 9, Sept. 1981, pp. 811–817.Google Scholar
  14. [14]
    Elshafei (A.). — Hospital layout as a quadratic assignment problem. Operational Research Quarterly, vol. 28, 1977, pp. 167–179.zbMATHCrossRefGoogle Scholar
  15. [15]
    Fredman (M.), Sedgewick (R.), Sleator (D.) et Tarjan (R.). — The pairing heap: A new form of self-adjusting heap. Algorithmica, vol. 1, 1986, pp. 111–129.MathSciNetzbMATHCrossRefGoogle Scholar
  16. [16]
    Grama (A. Y.) et Kumar (V.). — A survey of parallel search algorithms for discrete optimization problems. — Personnal communication, 1993.Google Scholar
  17. [17]
    Huang (Q.). — An evaluation of concurrent priority queue algorithms. In: Third IEEE Symposium on Parallel and Distributed Processing,pp. 518–525.Google Scholar
  18. [18]
    Jones (D.). — An empirical comparaison of priority queue and event set implementation. Comm. ACM,vol. 29, n° 320, Avr. 1986, pp. 191–194.Google Scholar
  19. [19]
    Jones (D.). — Concurrent operations on priority queues. ACM, vol. 32, n 1, Jan. 1989, pp. 132–137.Google Scholar
  20. [20]
    Knuth (D.). — The Art of Programming: Sorting and Searching. — Addison-Wesley, 1973volume 3.Google Scholar
  21. [21]
    Koopmans (T.) et Beckman (M.). — Assignment problems and the location of economic activities. Econometrica, vol. 25, 1957, pp. 53–76.zbMATHGoogle Scholar
  22. [22]
    Korf (R. E.). — Depth-first iterative-deepening: An optimal admissible tree search. Artificial Intelligence,no27, 1985, pp. 97–109.Google Scholar
  23. [23]
    Kumar (V.), Ramesh (K.) et Rao (V. N.). — Parallel best-first search of state-space graphs: A summary of results. The AAAI Conference, 1987, pp. 122–127.Google Scholar
  24. [24]
    Kung (H.) et Lehman (P.). — Concurrent manipulation of binary search trees. ACM trans. on Database Systems,vol. 5, n° 3, 1980, pp. 354–382.Google Scholar
  25. [25]
    Lehman (P.) et Yao (S.). — Efficient locking for concurrent operation on b-tree. ACM trans. on Database Systems,vol. 6, n° 4, Déc. 1981, pp. 650670.Google Scholar
  26. [26]
    Mans (B.) et Roucairol (C.). — Concurrency in Priority Queues for Branch and Bound algorithms. — Rapport technique r 1311, INRIA, 1990.Google Scholar
  27. [27]
    Mans (B.) et Roucairol (C.). — Performances des Algorithmes Branch-andBound Parallèles h Stratégie Meilleur d’Abord. — RR n° 1716, Domaine de Voluceau, BP 105, 78153 Le Chesnay Cedex, INRIA-Rocquencourt, 1992.Google Scholar
  28. [28]
    Mautor (T.) et Roucairol (C.). — A new exact algorithm for the solution of quadratic assignment problems. Discrete Applied Mathematics, vol. to appear, 1993. — MASI-RR-92–09 - Université de Paris 6, 4 place Jussieu, 75252 Paris Cédex 05.Google Scholar
  29. [29]
    McCreight (E. M.). — Priority search trees. SIAM J Computing, vol. 14, n° 2, Mai 1985, pp. 257–276.Google Scholar
  30. [30]
    Nau (D. S.), Kumar (V.) et Kanal (L.). — General branch and bound, and its relation to a* and ao*. Artificial Intelligence, vol. 23, 1984, pp. 29–58.MathSciNetzbMATHCrossRefGoogle Scholar
  31. [31]
    Nilsson (N. J.). — Principles of Artificial Intelligence. — Tioga Publishing Co., 1980.Google Scholar
  32. [32]
    Nugent (C.), Vollmann (T.) et Ruml (J.). — An experimental comparison of techniques for the assignment of facilities to locations. Operations Research, vol. 16, 1968, pp. 150–173.CrossRefGoogle Scholar
  33. [33]
    Pearl (J.). — Heuristics. — Addison-Wesley, 1984.Google Scholar
  34. [34]
    Rao (V.) et Kumar (V.). — Concurrent insertions and deletions in a priority queue. IEEE proceedings of International Conference on Parallel Processing,1988, pp. 207–211.Google Scholar
  35. [35]
    Rao (V. N.), Kumar (V.) et Ramesh (K.). — Parallel Heuristic Search on Shared Memory Multiprocessors: Preliminary Results. — Rapport technique n° AI85–45, Artificial Intelligence Laboratory, The University of Texas at Austin, Juin 1987.Google Scholar
  36. [36]
    Stasko (J.) et Vitter (J.). — Pairing Heap: Experiments and Analysis. — Rapport technique n° 600, I.N.R.I.A., Fév. 1987.Google Scholar
  37. [37]
    Tarjan (R.) et Sleator (D.). — Self-adjusting binary search trees. Journal of ACM,vol. 32, n° 3, 1985, pp. 652–686.Google Scholar
  38. [38]
    Williams (J.). — Algorithm 232: Heapsort. CACM,vol. 7, 1964, pp. 347348.Google Scholar

Copyright information

© Springer Science+Business Media Dordrecht 1995

Authors and Affiliations

  • Bertrand Le Cun
    • 1
  • Catherine Roucairol
    • 2
  1. 1.INRIA-Rocquencourt, Laboratoire PRiSMLe Chesnay CedexFrance
  2. 2.Laboratoire PRiSMUniversité de VersaillesVersaillesFrance

Personalised recommendations