**7.2. Advanced updating for successive Z values**

We draw on the relationships of Section 4.2 to create the instructions for updating C(Z) to reduce the amount of computation required on successive iterations of the Inner Loop.

We adopt the following notation of Section 4.2, re-expressed in terms of the C(Z) algorithm: s2(1), s2(2), …, s2(v<sup>2</sup> )identifies the successive s indexes that occur each time a new (smaller) value of Znext is identified in Case (2) of the Inner Loop, beginning with the initialized value s2(1) = 1. Similarly, s3(1), s3(2), …, s3(v<sup>3</sup> )identifies the s indexes of successive edges e(s) that are added in Case (3), beginning with the initialized value s3(1) = 1. (In the re-organized Case (2) for Z = Zo in Section 7.1, the value Znext may be reduced twice for a given edge e(s) and we only consider the last (smaller) Znext value produced for e(s).) The sequence Z(1), Z(2), …, Z(v<sup>2</sup> ) with the initialization Z(1) = Large, denotes the corresponding candidate values for Znext generated in Case (2). We therefore have Z(1) > Z(2) > … > Z(v<sup>2</sup> ), where the final Znext is given by Znext = Z(v<sup>2</sup> ).

Assume the algorithm for Z = Zo has been inserted before the start of the Outer Loop, as indicated in Section 7.1.

MinCostB(i), MinCostC(i), i∈ N (writing over any previous copy). Let Copy = True if such a

If Copy = False, execute the Preliminary Loop. Otherwise, if Copy = True, instead of executing the Preliminary Loop read the copies of the saved arrays into the active form of these arrays,

The complete C(Z) Algorithm that incorporates all of these changes is shown in the Appendix

The new classes of tree-based clustering algorithms represented by C(W), C(Y) and in the most general case by C(Z), afford the possibility to generate clusters with a range of different characteristics as the parameters W, Y and Z are varied. The fact that the key parameter can be varied adaptively to generate all cluster collections in its class without duplication invites empirical studies to identify parameter ranges that are effective for particular types of clustering applications.

The C(Z) Algorithm can be made still more general by changing the implicit definition of MinCostC(i) for i = i′ and i″ by defining MinCostA(k), for k = k′ and k″, to be any convex

Future work to exploit the properties of these algorithms can include an investigation of the choice of the parameter α (and hence β = 1 – α) in Algorithm C(Z) to similarly determine

This research was supported in part by the Key Laboratory of International Education Cooperation of Guangdong University of Technology and by the Fundamental Research

We identify the form of the C(Z) algorithm that results by incorporating all of the accelerated

these MinCost values in a more complex way than in the current form of Case (3).

ranges that are effective for particular types of clustering applications.

) = {e = (i,j) ∈ N<sup>k</sup>

) that are adjacent to node i in G. However, this requires updating

}⊂ E (hence (N<sup>k</sup>

) and defining MinCostB(i) to be any convex combi-

do not need to be maintained unless they are of

,E(N<sup>k</sup>

)) is the

) and Copy = False. (The Inner Loop immediately follows this

array.)

149

A Class of Parametric Tree-Based Clustering Methods http://dx.doi.org/10.5772/intechopen.76406

copy is made. (As remarked earlier, it is not necessary to keep track of the E<sup>k</sup>

*Added Modification for the Preliminary Loop*

combination of the costs of edges in the set E(N<sup>k</sup>

Funds for the Central Universities (No3102017zy059).

**A.1. Algorithm C(Z) with accelerated updates**

updates of Section 7. As before, the sets E<sup>k</sup>

subgraph of G spanned by the nodes of N<sup>k</sup>

nation of the edges of E(N<sup>k</sup>

**Acknowledgements**

**A. Appendix**

followed by setting s = s2(v<sup>2</sup>

modification.)

for convenience.

**8. Conclusions**

*Modification of Initialization(B) for Z = Zo only*:

Add v<sup>2</sup> = v<sup>3</sup> = 1; s2(1) = s3(1) = 1 and Z(1) = Large.

*Modification of the Inner Loop for all Z*:

In Case (2) when Znext is updated (reduced): set v<sup>2</sup> = v<sup>2</sup> + 1; s2(v<sup>2</sup> ) = s, and Z(v<sup>2</sup> ) = Znext.

In Case (3) upon adding e(s): set v<sup>3</sup> = v<sup>3</sup> + 1; s3(v<sup>3</sup> ) = s.

*Modification After the Inner Loop for all Z*:

Following the instructions Z = Znext, and sLast = sEnd:If v<sup>2</sup> = 1, terminate.

*Modification Before the Inner Loop for Z > Zo*:

Insert a Preliminary Loop before the Inner Loop for Z > Zo as follows:

(After Initialization(A) and Initialization(B))

#### **Preliminary Loop**

Set v\* = Max(v: s3(v) < s2(v<sup>2</sup> )); v<sup>3</sup> = v\* + 1; s3(v<sup>3</sup> ) = s2(v<sup>2</sup> ); v<sup>2</sup> : = v<sup>2</sup> –1.

v = 1

While v < v3

v: = v + 1

s = s3(v)

Insert the prelude to Case (1) followed by Case (3) (excluding the modification above that adds v3 = v<sup>3</sup> + 1; s3(v<sup>3</sup> ) = s)

EndWhile<sup>2</sup>

Set s = s3(v<sup>3</sup> )
