Computing with sets of tuples (n-ary relations) is often required in programming, while being a major cause of performance degradation as the size of sets increases.We present a new data structure dedicated to the manipulation of large sets of tuples, dubbed sharing tree. The main idea to reduce memory consumption is to share some sub-tuples of the set represented by a sharing tree: Prefixes are represented only once, and suffixes are additionally shared whenever possible.A sharing tree is a rooted acyclic graph ( N , V, v a l , S Z L C C ) such that N = No + . . . + Nk , IC 2 0, is a finite set called the set of nodes (the nodes are organized in layers, N , is the set of nodes of layer 2); ual : N + V + {T, i } is the valuation function; succ : N + p ( N ) gives the successors of a node; and the following rules are confirmed: VO 5 z < k , V n E N,,succ(n) C N,,,: each node has all its successors on the next layer; (nz): two equal nodes in the same layer do not have the same sons; Vn E N,Vsl&sz E succ(n),sl # s2 + vaZ(sl) # ual(sz): a node does not have equal sons; #No = 1 and Vn E N , v a l ( n ) = T n t No: the first layer No contains only one element (called the root), the only one with value T; vaZ(n) = 1 + succ(n) = 0 and succ(n) = 0 + (vaZ(n) = I V val(n) = T). The elements of ST = ( N , V , v a l , s u c c ) are the tuples of values on all the different paths starting from the root node r E No: €lem(ST) = Set(r) andThe organization in layers and the first condition enable some improvements in the algorithms by allowing direct access to any projection of the set, while the overhead required by the structure of layers is small, for sharing trees representing large sets of tuples have usually much more nodes than layers. The second condition ensures some s u f i x mergzng of tuples that share equal ends, while the third condition ensures the prefix mergzng of tuples that share equal beginnings. Note that tuples of different lengths can be represented in the same sharing tree.We developped algorithms for common sets operations: membership, insertion, equality, union, intersection, ... that have theoretical complexities proportional to the sizes of the sharing trees given as arguments, which are usually much smaller than the sizes of the represented sets.As future work we plan to investigate the use of sharing trees as the main data structure to record tables of relational databases.1068-0314/95$4.00 0 1995 IEEE
Computing all the reachable states of synchronized automata is important in the mechanical verification of concurrent programs. It is however a hard task because this set of states typically grows ezponentialy in the number of automata involved. We present a new approach that yields interesting ezperimental results, both in memory requirements and computation times. It uses a new data structure, the sharingkree, which allows to store large sets of states in a compact way. Moreover, we have designed algorithms that use global operations and caching on the data structure itself.0-8186-6902-0/95 $4.00 0 1995 IEEE
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.