Partition Refinement
Total Page:16
File Type:pdf, Size:1020Kb
Partition Refinement: a meaningful technique for Graphs ∗ Qinna Wang [email protected] ABSTRACT final partition is the ordering elements. Note the complex- The partition refinement is a meaningful technique for ity of Quick Sort which is really considerable. Therefore, a applications in graphs. Currently, the applications in aim similar conceptual technique is then generated for develop- of the graph problems like chordal graphs [7], permutation ing algorithms, which is the partition refinement. graphs [6] and modular decomposition [3] focus on increasing the efficiency. In those propositions, the partition refinement In the domain of the graph, the partition refinement is de- plays an important role for the resolutions. Therefore, we veloped to split a class of partition vertices into disjoint sub- describe this efficient technique which overcomes the con- classes according to the adjacencies between vertices. In this straints such as the unreasonable complexity and ambigu- way, the underlying information of graphs is able to mined ous understanding of certain applications that are used for and particular graph problems can be resolved. For example, graph problems in this paper. Through the illustration with there are several proposed partition refinement applications various examples, we will show how efficient the algorithm for twin vertex calculation [6], chordal graphs recognition [7] become according to the partition refinement. and permutation graphs recognition [6]. For the valuable contributions of the partition refinement, Keywords we introduce it in this paper which is organized as: in section graph theory, partition refinement 2, we present the partition refinement in detail; in section 3, we describe several classical partition refinement appli- 1. INTRODUCTION cations based on the ordering of elements; we then list the The graph theory has been developed for several decades. categories of the partition refinement applications according Since the first graph theory paper [1] was written by Leon- to different citations in section 4; we finally provide the dis- hard Euler on the Seven Bridges of Konigsberg and pub- cussion on the partition refinement and give a conclusion of lished in 1736, the graph theory has been used for resolving this paper. multiple problems in different domains such as computation science, for example, [5] has shown that the hyper graph 2. THE PARTITION REFINEMENT partition is considerable for parallel scientific computing. Explicitly, all applications referred to the partition refine- ment can be described in a general framework which is shown Generally, a good graph algorithm should be efficient and in this section. simple to understand while it is used to resolve complicated problems. The focus of this paper is the partition refinement which is a meaningful technique to simplify and optimize the 2.1 definition and notation applications in several domains such as in graphs. Firstly, we introduce the basic definitions and notations re- lated with the partition refinement. In traditional, pivots are used to split the classes. The most classical algorithm with respect to the pivot rule is Quick Sort which is used for sorting integers. In this case, the definition 1. The partition P of a set E is the collec- tion of disjoint subsets fχ1; χ2; :::; χkg where [16i6kχi = E. ∗ENS Lyon, Laboratoire de l'information du Paral- We call the subset collection as classes. lAl'lisme,69364~ Lyon cedex, France definition 2. The set S intersects strictly with the 0 0 0 0 set S if and only if S \S 6= ; and S * S . Note that S ⊆ S is possible when the set S intersects strictly with the set S0. definition 3. The refined partition P0 = refine(P;S) where P = fχ1; χ2; :::; χkg and S is the subset of E, is ob- tainned by replacing the classes χi with χia and χib where χia = χi \ S and χib = χi n S. definition 4. The partition P is stable for the subset Therefore, the procedure of InitPartition (P) is impor- S, if and only if any class χi doesn't intersect strictly with tant. Note that some applications arrives their strategy the set S. i.e,P = refine(P;S). only by executing InitPartition (P) one time such as twin vertex calculation. definition 5. In case of an ordering partition P = • ClassPivot (E) is a procedure to produce the subset S according to the pivot p which is implied by the ele- fχ1; χ2; :::; χkg, elements in each class χi are ordered. ment E. It is related with the strategy of the applica- tion. Hence, there are two versions of the procedure definition 6. The ordering partition Q is compatible ClassPivot: only one pivot p is used for the procedure with another ordering partition P if and only if Q P which refine(P;S) or several pivots are used for refine(P;S). means that for each class χ in Q there exists another class For the first version of ClassPivot, the operation of γ in P and χ ⊆ γ and the order of elements in χ respects refine(P;S) is executed several times. However, the for the order in γ. refine(P;S) is only run one time. Therefore, we con- sider that the first version of ClassPivot saves the space for pivots. We then introduce the data structure in the partition refine- ment: the double chain list L(E) is used to store the element We then discuss the procedure of ClassPivot according its in the set E = fx1; x2; :::; xkg. Each element x has a pointer two versions: to its partition class χ and each class χ has two pointers to its minimal and maximal elements in L(E). Hence, the Input: an element E in Pivots insetting and deleting operations are easy to realize in the Output: the stable partition for the subsets S which are partition refinement algorithms. Therefore, the partition re- generated by E T finement which deletes the class χa = χ S and inserts it to for each element x 2 E do the right of the class χ has reasonable computational time p (x; E) with the pointer structure. Further, marque the ordering of S PivotSet(p) the list L(E) which is related with the ordering of the par- refine(P;S) tition classes and the compatibility of the classes. Hence, end the partition refinement is useful for applications concern- Algorithm 2: ClassP ivot(E) ing with the ordering of elements. 2.2 the partition refinement Input: an element E in Pivots Secondly, we show the total algorithm of the partition refine- Output: the stable partition for the subset S which is ment. In order to well understand it, we present a general generated by E algorithm at the beginning. Then we describe its basic pro- begin cedures with explications. At end, we provide the algorithm S ; of the partition refinement in global view. for each element x 2 E do p (x; E) Input: the partition P = fχ1; χ2; :::; χkg S S [ PivotSet(p) 0 0 0 0 end Output: the refined partition P = fχ1; χ2; :::; χmg begin refine(P;S) pivots = ; end while the InitPartition (P) doesn't stop the loop do Algorithm 3: ClassPivot (E) InitPartition (P) while the Pivots 6= ; do select an element E from the Pivots In the procedure ClassP ivot(E), p is the pivot to produce ClassPivot (E) the subset S where S ⊆ E and one element x 2 E is used to produce an unique pivot p. end end Now, we observe the Algorithm 2 and Algorithm 3: the end Algorithm 2 executes the operation refine(P;S) with one Algorithm 1: a general algorithm for the partition refine- subset S. Distinct from it, the other Algorithm 3 runs the ment operation refine(P;S) with several subsets S. The second version of ClassPivot (E) is used to minimize the determined Now, we illustrate the general algorithm which is shown in determined automate. Algorithm 1. Next, we present the key algorithm refine(P;S) which is used to refine the current partition with the set S. • InitPartition (P) is essential for the total algorithm. It is used to start the following procedures and indi- cates the end of the total algorithm. One of its im- • The operation refine(P;S) is to split the partition class T portant contribution is used to add the known pivots χ into the class χa and χb, where χa=χ S and χb = into P ivots. Additionally, the InitPartition (P) can χnS. Then we insert the new class χa next to the be considered as the beginning of the recursive process. partition class χ, where the current class χ = χb. Note Input: the partition P = fχ1; χ2; ...χkg for the set E and subset S, where the class χi intersect strictly with S 0 0 0 0 Output: the partition P = fχ1; χ2; ...χmg,which is stable for S for each class χ do T χa=χ S if χa 6= ; and χnS 6= ; then remove χa from χ if InsertRight(χ, χa; p) then insert χa to the right of χ end else insert χa to the left of χ end Input: a partition P = fχ ; χ ; :::; χ g for the set E AddPivot(χ, χ ) 1 2 k a Output: the refined partition P0 = fχ0 ; χ0 ; :::; χ0 g end 1 2 m begin end Pivots ; Algorithm 4: refine(P;S) while the InitPartition (P) doesn't stop the loop do InitPartition (P) while Pivots 6= ; do that the class χa implies the ordering of the list L(E) select an element E from the Pivots and the position of the new class χa depends on the ClassPivot (E) strategy of applications. for each element x 2 E do p (x; E) • InsertRight(χ, χa; p) is used to determine whether in- S PivotSet(p) sert the class χa in the right of χ.