entrypoint.asciidoc 2.22 KB
Newer Older
Albert Hofkamp's avatar
Albert Hofkamp committed
1
2
3
4
5
6
7
8
9
10
11
12
//////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2020, 2022 Contributors to the Eclipse Foundation
//
// See the NOTICE file(s) distributed with this work for additional
// information regarding copyright ownership.
//
// This program and the accompanying materials are made available
// under the terms of the MIT License which is available at
// https://opensource.org/licenses/MIT
//
// SPDX-License-Identifier: MIT
//////////////////////////////////////////////////////////////////////////////
Albert Hofkamp's avatar
Albert Hofkamp committed
13

Albert Hofkamp's avatar
Albert Hofkamp committed
14
15
16
include::_part_attributes.asciidoc[]

[[dsm-entrypoint]]
17
== Code organization
Albert Hofkamp's avatar
Albert Hofkamp committed
18

19
For a user, the entry point is the `DsmClustering.flowBasedMarkovClustering` method which takes the following parameters:
Albert Hofkamp's avatar
Albert Hofkamp committed
20

Albert Hofkamp's avatar
Albert Hofkamp committed
21
22
23
24
indexterm:[DSM library,Markov clustering parameters]

.Markov clustering function parameters
[[clustering-function-parameter-table]]
Albert Hofkamp's avatar
Albert Hofkamp committed
25
26
27
28
29
30
31
[cols="1,1,1,4", opts="header"]
|===
| Parameter | Algorithmic name | Empirical useful range | Description

| `RealMatrix adjacencies`
| -
| -
Albert Hofkamp's avatar
Albert Hofkamp committed
32
| Adjacency matrix between the nodes, non-negative element `(r,c)` denotes the weight of the connection from node `r` to node `c`.
Albert Hofkamp's avatar
Albert Hofkamp committed
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66

| `Label[] labels`
| -
| -
| Labels of the nodes.

| `double evap`
| μ
| Between `1.5` and `3.5`
| Influence factor of distance between nodes.

| `int stepCount`
| α
| Normally `2`
| Number of steps taken each iteration in the Markov clustering.

| `double inflation`
| β
| Between `1.5` and `3.5`
| Speed factor of deciding clusters.

| `double epsilon`
| ε
| -
| Convergence limit.

| `BusDetectionAlgorithms busDetectionAlgorithm`
| -
| -
| The bus detection algorithm to apply.

| `double busInclusion`
| -
| -
67
68
| Tuning factor for selecting bus nodes.
Interpretation depends on the chosen bus detection algorithm.
Albert Hofkamp's avatar
Albert Hofkamp committed
69
70
|===

Albert Hofkamp's avatar
Albert Hofkamp committed
71
The function computes how to group the nodes into a bus and hierarchical clusters by shuffling the nodes into a different order.
Albert Hofkamp's avatar
Albert Hofkamp committed
72

Albert Hofkamp's avatar
Albert Hofkamp committed
73
The result is a `Dsm` instance, which contains how the original nodes were shuffled to obtain the result, a shuffled version of the provided adjacency matrix and labels, and a tree describing the nested clustering hierarchy, with the `getShuffledBase` and `getShuffledSize` methods providing the node offset and length of each group in the shuffled version.