Method for representing network objects in a GUI
Patent Information
- Application Number
- CN202210180208.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-02-28
- Filing Date
- 2022-02-25
- Publication Date
- 2026-10-09
- Estimated Expiration
- 2042-02-25
Smart Images

Figure CN114968190B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of graphical user interfaces (GUIs). In particular, this invention relates to a method for representing network objects in a GUI. Background Technology
[0002] A graphical user interface (GUI) is a form of user interface that allows users to interact with electronic devices through graphical icons and indicators rather than a text-based interface. In the field of human-computer interaction, designing the visual composition and temporal behavior of a GUI is a crucial component of software application design. The aim is to improve the efficiency and usability of the underlying logic design of the stored program, while actions in a GUI are typically performed through direct manipulation of graphical elements.
[0003] Specifically, the term GUI typically refers to the visual graphical interface features of an application. Users can interact with information by manipulating visual widgets, which allow for interactions appropriate to the data types they hold. Choosing well-designed widgets is crucial to supporting the operations needed to achieve the user's goals.
[0004] In the field of computer network infrastructure management, it is crucial to use GUIs to simplify the representation of the large number of connections and data exchanges involved at the user level. In particular, for monitoring and protecting large modern OT / IOT / IT computer networks, a fundamental prerequisite is to ensure good network visibility; in other words, there needs to be clear visibility of all computers / devices present in the network and all communications occurring between them.
[0005] One type of GUI used to ensure proper network visibility is a network graph, where each computer or device in the network is represented as a node, and communication between them is represented as links connecting the nodes. In a network graph, for all components to have clear visualization, nodes need to be arranged in a way that is well-spaced, where nodes directly connected by links should be placed close to each other, and the positions of other nodes should not substantially change if a new node or link appears in a new iteration.
[0006] A known method for calculating node positions to accommodate these characteristics is to use pseudo-physical simulation. Each node is treated as a point particle with a given mass (m) and generates a pseudo-gravitational repulsive force acting on all other nodes. Each link is treated as a spring with a given elastic coefficient, attracting the connected nodes. At an initial time t0, nodes are assigned arbitrary initial positions. Then, considering Newton's laws of motion for the gravitational and elastic forces applied to each node, the position of the node at time t1 = t0 + dt is calculated. Once a new position is obtained, the position at t2 = t1 + dt is repeated, and so on, for each new iteration. If dt is sufficiently small, and if a stable numerical scheme is used for the physical simulation, the node positions will converge to a relatively stable state after several iterations, which typically depends on the number of nodes.
[0007] A naive approach to evaluating gravity is to iterate over all other nodes (j) for each node (i), calculating the force generated on node (i) by each of the other nodes (j). In other words, the node (i) for which the force is calculated is considered the receiver, receiving the forces generated on it by all the other nodes acting as sources. This approach has a time complexity of O(N). 2 (N is the number of nodes), and this method cannot be applied to practical situations because it requires too many resources in each iteration as N increases. In addition, each force calculation requires evaluating powers, square roots, and trigonometric functions, making the computational cost very high. Therefore, it is important to minimize the number of force evaluations required.
[0008] Another approach to meet these requirements is the Barnes-Hut method, which allows the complexity to be reduced to O(N*Log(N)). The core idea of this method remains iteration over each receiver, but several sources are combined as a single source. In this way, for each group of sources assembled together, gravity is evaluated once, rather than once for each node in the group.
[0009] The Barnes-Hut method reduces complexity by eliminating iterations on each source and replacing them with iterations on a set of sources. In this way, several sufficiently close source masses can be considered as a single mass, thus reducing the number of force evaluations required. However, each source, or mass, can be interpreted as both a source and a receiver, so the total computation requires performing double-nested iterations, consuming significant computational resources.
[0010] Therefore, it is desirable to represent network objects and connections in a way that is understandable from the user's perspective. In particular, it is desirable to provide a graphical GUI representation of networks that involves minimal computational resources. Brief Description of the Invention
[0011] The object of this invention is to provide a method for representing objects and their network connections that minimizes the aforementioned drawbacks. In particular, it is desirable to have a method that can represent the entire network using very few computational resources in each iteration.
[0012] Therefore, according to the present invention, a method for representing network objects in a GUI according to the appended claims is described. Attached Figure Description
[0013] These and further features and advantages of the invention will become apparent from the disclosure of preferred embodiments, illustrated in the accompanying drawings by way of non-limiting example, wherein: - Figure 1 A quadtree according to a first example of the present invention is shown; - Figure 2 A quadtree according to a second example of the invention is shown. Detailed Implementation
[0014] This invention relates to a method for representing network objects in a GUI.
[0015] The method according to the invention can find useful applications in any type of physical infrastructure or automated system, particularly in industrial automation systems, such as industrial processes for manufacturing, industrial processes for power generation, infrastructure for distributing fluids (water, oil, and natural gas), infrastructure for power generation and / or power transmission, and infrastructure for transportation management. Furthermore, it has useful applications in all technological environments, including information technology (IT), operational technology (OT), and the Internet of Things (IoT).
[0016] Consider the overall calculation of gravity acting on a set of n masses, where each mass can be interpreted as a source and a receiver. For standard... In this method, the mass itself can be considered the receiver, and all other masses are sources of force exerted on the receiver. Therefore, the entire calculation requires performing double-nested iterations.
[0017] According to the method of the present invention, when evaluating forces, iteration at each node is eliminated, and the source and receiver are considered together, thereby reducing complexity. In this way, several sufficiently close source masses can be considered as a single mass, thus reducing the number of force evaluations required. Simultaneously, several sufficiently close receiver masses can be considered as a single mass, further reducing the number of force evaluations required.
[0018] The method will be described below with two simple examples; of course, it can be extended to any kind of complexity.
[0019] Figure 1 A first example of processing according to the method of the present invention is shown, which includes five nodes numbered from 1 to 5. These nodes represent corresponding objects in the network.
[0020] Considering The method, considering five nodes, requires taking into account all four other nodes for each node, resulting in the complexity of twenty force assessments.
[0021] Considering the Barnes-Hut method, analyzing each of the five nodes and grouping the source quality, node 1 requires three force assessments (a group of nodes 2, 3, and 4, and node 5), node 2 requires three force assessments (a group of nodes 1, 3, and 4, and node 5), node 3 requires three force assessments (a group of nodes 1 and 2, node 4, and node 5), node 4 requires three force assessments (a group of nodes 1 and 2, node 3, and node 5), and node 5 requires two force assessments (a group of nodes 1 and 2, and a group of nodes 1 and 2). This results in a complexity of 16 force assessments.
[0022] The method for representing network objects in a GUI according to the present invention allows for further reduction of complexity to just ten force evaluations.
[0023] The method involves first assigning all objects in the network as corresponding nodes in a two-dimensional space. Figure 1 This allocation is shown and will be described in more detail below.
[0024] The assignment process involves a computerized data processing unit defining random initial positions for all nodes, assigning each node corresponding coordinates on the x and y axes in two-dimensional space. Subsequently, the computerized data processing unit encloses all nodes within a single base square, such as... Figure 1 As shown at the edge.
[0025] The computerized data processing unit again approximates the single base square by dividing it into multiple first-level squares. These multiple first-level squares consist of four squares of the same size. In particular, the first-level squares are nested within the base squares, such that they represent offspring of the same square.
[0026] Subsequently, the allocation involves a computerized data processing unit subdividing each of the primary squares into multiple secondary (2) squares. nd -level) grid, where subdivision is performed on a first-level grid with two or more nodes. Such multiple second-level grids consist of four grids of the same size.
[0027] To simplify representation and identification, the following symbols will be used. Each sub-square is defined by a number based on its position relative to the parent square, where symbol 1 defines the square in the upper left position, symbol 2 defines the square in the upper right position, symbol 3 defines the square in the lower right position, and symbol 4 defines the square in the lower left position. Furthermore, the symbol for the parent square will remain unchanged at each level. Therefore, the first-level squares are identified using symbols 1, 2, 3, and 4, proceeding clockwise from the upper left first-level square to the lower left.
[0028] By considering the symbols described above, squares 2 and 4 will no longer be subdivided, since square 2 contains only a single node, numbered 5, and square 4 contains no nodes. Instead, as described, each of squares 1 and 3 will be subdivided into four more second-level squares of the same size. Specifically, the second-level squares are nested within their respective first-level squares, such that they represent offspring of the same square. Thus, for the first-level square with symbol 1, the second-level squares are identified by symbols 1-1, 1-2, 1-3, and 1-4, and for the first-level square with symbol 3, the second-level squares are identified by symbols 3-1, 3-2, 3-3, and 3-4, again starting from the upper-left second-level square and proceeding clockwise to the lower-left. These nodes enclosed in the second-level square with symbol 1-1, i.e., nodes numbered 1 and 2, and those enclosed in the second-level square with symbol 3-4, i.e., nodes numbered 3 and 4, are further subdivided.
[0029] By iteratively subdividing, each of the (n)th level squares is subdivided into multiple (n+1)th level squares, and the iteration continues until the (n)th level square is provided with two or more nodes.
[0030] Preferably, the multiple (n+1)th level squares are also composed of four level squares of the same size. In particular, the (n+1)th level squares are nested within corresponding (n)th level squares, such that they represent offspring of the same level square, which in turn comprises four level squares of the same size nested within corresponding (n-1)th level squares, such that they represent offspring of the same level square, and so on.
[0031] exist Figure 1 In the illustrated embodiment, the iteration involves only further subdivision of the second-level squares denoted as 1-1 and 3-4, which are the only second-level squares with two nodes. Therefore, as described, squares 1-1 and 3-4 will be subdivided into four tertiary squares of the same size. Specifically, the tertiary squares are nested within their respective second-level squares, such that they represent offspring of the same square. Thus, for the second-level square denoted as 1-1, the tertiary squares are identified by the symbols 1-1-1, 1-1-2, 1-1-3, and 1-1-4; and for the second-level square denoted as 3-4, the tertiary squares are identified by the symbols 3-4-1, 3-4-2, 3-4-3, and 3-4-4. Again, starting from the tertiary square in the upper left corner, the process proceeds clockwise towards the lower left corner. The node is enclosed in a tertiary square marked 1-1-2, which is node number 2; in a tertiary square marked 1-1-4, which is node number 1; in a tertiary square marked 3-4-3, which is node number 4; and in a tertiary square marked 3-4-4, which is node number 3.
[0032] Thus, as Figure 1 As shown, the assignment defines a quadtree representing all nodes from 1 to 5 of a network object. In particular, the defined quadtree is not a complete quadtree because not all parent squares have exactly four nested child squares; as explained, the nesting depends on the contained nodes.
[0033] After allocation, the method includes evaluating the gravity of the nodes.
[0034] The evaluation process involves a computerized data processing unit selecting one of the squares as the source square, starting from the highest level. Subsequently, the evaluation involves another computerized data processing unit selecting one of the squares as the receiver square, also starting from the highest level. Specifically, all squares are evaluated iteratively at the same level.
[0035] To simplify the following description, source cells will be indicated by S, followed by their symbols in the aforementioned quadtree, while receiving cells will be indicated by R, followed by their symbols in the aforementioned quadtree.
[0036] Therefore, without considering individual base squares, source and receiver squares are selected from the first-level squares, as described above, selecting all possible combinations of source and receiver squares at the first level. In this example, selections begin with S1 and R1, then with S2-R1, S3-R1, S4-R1 and S1-R2, S2-R2, S3-R3, etc., up to S4-R4.
[0037] After selection, a computerized data processing unit performs an evaluation based on one or more predetermined criteria to determine whether the source and receiving squares are too far apart.
[0038] Distance is evaluated based on one or more predetermined criteria. Considering the generated quadtree, it is necessary to define one or more criteria to understand when the cell containing the source and the cell containing the receiver are sufficiently far apart so that the collapsing of the source and receiver can be well approximated in the result.
[0039] The predetermined criteria include an evaluation of overlap, where squares are considered close together if they overlap. Additionally, the predetermined criteria include an evaluation of edges, where squares are considered close together if they share at least one common edge. Furthermore, the predetermined criteria include an evaluation of vertices, where squares are considered close together if they share at least one common vertex. Depending on the required level of precision, these criteria can be considered in combination, i.e., all criteria can be considered, or one or more criteria can be considered individually. Furthermore, other criteria not described herein can be considered.
[0040] In this example, the above criteria will be considered together.
[0041] The result of the distance assessment between the source and receiver triggers subsequent calculations or sub-selections. Specifically, if the source and receiver squares are assessed as far apart, or if they are assessed as close together but neither has nested lower-level squares, the computerized data processing unit performs subsequent calculations on the forces acting on the receiver square from the source square. Conversely, if the source and receiver squares are assessed as close together, the computerized data processing unit performs sub-selections on lower-level squares, either as the source square or as the receiver square, with the sub-selection iteratively applied to all squares at the same level.
[0042] Sub-selection and selection can be performed randomly or based on one or more selection criteria. Selection criteria may include: if both the source and receiver squares have lower-level square nesting and are at different levels, then the higher-level square between the source and receiver squares is selected as the lower-level square. Another criterion may include: if the other square has no lower-level square nesting, then the square with lower-level square nesting between the source and receiver squares is selected as the lower-level square. Furthermore, a criterion may include: if both the source and receiver squares have nested lower-level squares and are at the same level, then the square between the source and receiver squares containing fewer nodes is selected as the lower-level square. Finally, a criterion may include: if both the source and receiver squares have nested lower-level squares and contain the same number of nodes, then the receiver square is selected as the lower-level square. These selection criteria can be considered collectively (i.e., all selection criteria are considered) or individually (i.e., one or more selection criteria are considered). Additionally, further selection criteria not described herein may be considered.
[0043] In this embodiment, the above selection criteria will be considered together.
[0044] In the following text, regarding Figure 1 All iterations of the example in the example are summarized. 1. s=1, R=1 -> Not far: Sub-select receiver as=1, R=1-1->Not far: Sub-selection source is = 1-1, R = 1-1 -> Not far: Sub-select receiver 1. s = 1 - 1, R = 1 - 1 - 1 -> Empty: Skip 2. s = 1 - 1, R = 1 - 1 - 2 -> Not far: Sub-selection source as = 1-1-1, R = 1-1-2 -> Empty: Skip bs = 1-1-2, R = 1-1-2 -> Same, no offspring: Skip cs = 1-1-3, R = 1-1-2 -> Empty: Skip ds = 1-1-4, R = 1-1-2 -> No offspring: computational power 3. s = 1 - 1, R = 1 - 1 - 3 -> Empty: Skip 4. s = 1 - 1, R = 1 - 1 - 4 -> Not far: Sub-selection source as = 1-1-1, R = 1-1-4 -> Empty: Skip bs = 1-1-2, R = 1-1-4 –> No offspring: Computational power cs = 1-1-3, R = 1-1-4 -> Empty: Skip ds=1-1-4, R=1-1-4 -> Same, no offspring: skip ii.s = 1-2, R = 1-1 -> Empty: Skip iii.s = 1-3, R = 1-1 -> Empty: Skip iv.s=1-4, R=1-1->Empty: Skip bs=1, R=1-2->Empty: Skip cs=1, R=1-3->Empty: Skip ds=1, R=1-4->Empty: Skip 2. s=2, R=1 -> Not far: Sub-select receiver as=2,R=1-1->Far: Calculation Force bs=2, R=1-2->Empty: Skip cs=2, R=1-3->Empty: Skip ds=2, R=1-4->Empty: Skip 3. s=3, R=1 -> Not far: Sub-select receiver as=3,R=1-1->Far: Calculation Power bs=3, R=1-2->Empty: Skip cs=3, R=1-3->Empty: Skip ds=3, R=1-4->Empty: Skip 4. s = 4, R = 1 -> Empty: Skip 5. s=1, R=2 -> Not far: Sub-selection source as=1-1,R=2->Far: Calculation Power bs = 1 - 2, R = 2 -> Empty: Skip cs=1-3, R=2->Empty: Skip ds=1-4, R=2->Empty: Skip 6. s=2, R=2 -> Same, no offspring: Skip 7. s=3, R=2 -> Not far: Sub-selection source as = 3 - 1, R = 2 -> Empty: Skip bs = 3 - 2, R = 2 -> Empty: Skip cs=3-3, R=2->Empty: Skip dS = 3 - 4, R = 2 -> Far: Calculation power 8. s = 4, R = 2 -> Empty: Skip 9. s=1, R=3 -> Not far: Sub-select receiver as=1, R=3-1->Empty: Skip bs=1, R=3-2->Empty: Skip cs=1, R=3-3->Empty: Skip ds=1, R=3-4->Far: Calculation power 10. S=2, R=3 -> Nearly selected receiver as=2, R=3-1->Empty: Skip bs=2, R=3-2->Empty: Skip cs=2, R=3-3->Empty: Skip ds=2, R=3-4->Far: Calculation power 11. S=3, R=3 -> Not far: Sub-select receiver as=3, R=3-1->Empty: Skip bs=3, R=3-2->Empty: Skip cs=3, R=3-3->Empty: Skip ds=3, R=3.4-> Not far: Sub-selection source is = 3 - 1, R = 3.4 -> Empty: Skip ii.s=3-2, R=3.4->Empty: Skip iii.s=3-3, R=3.4->Empty: Skip iv. S = 3-4, R = 3.4 -> Not far: Sub-select receiver 1. s = 3 - 4, R = 3.4 - 1 -> Empty: Skip 2.s = 3 - 4, R = 3.4 - 2 -> Empty: Skip 3.s = 3 - 4, R = 3.4 - 3 -> Not far: Sub-selection source as = 3-4-1, R = 3.4-3 -> Empty: Skip bs = 3-4-2, R = 3.4-3 -> Empty: Skip cs=3-4-3, R=3.4-3 -> Same, no offspring: skip dS = 3-4-4, R = 3.4-3 -> No offspring: computational power 4. s = 3 - 4, R = 3.4 - 4 -> Not far: Sub-selection source as = 3-4-1, R = 3.4-4 -> Empty: Skip bs = 3-4-2, R = 3.4-4 -> Empty: Skip cS = 3-4-3, R = 3.4-4 -> No offspring: Computational power ds=3-4-4, R=3.4-4 -> Same, no offspring: skip 12. s = 4, R = 3 -> Empty: Skip 13. s = 1, R = 4 -> Empty: Skip 14. s=2, R=4 -> Empty: Skip 15. s=3, R=4 -> Empty: Skip 16. s=4, R=4 -> Empty: Skip
[0045] As expected, the number of force assessments is ten: [s=1-1-4, R=1-1-2], [s=1-1-2, R=1-1-4], [s=2, R=1-1], [s=3, R=1-1], [s=1-1, R=2], [s=3-4, R=2], [s=1, R=3-4], [s=2, R=3-4], [s=3-4-4, R=3.4-3], [s=3-4-3, R=3.4-4].
[0046] At the end of all iterations and calculations, each sub-square contains the forces generated on it. Therefore, the evaluation also includes the computerized data processing unit distributing the forces acting on each of the receiving squares to all nodes in the corresponding receiving square that define the gravitational forces of all nodes.
[0047] To extract the force at each node, simply start from the lowest-level sub-square containing that node and proceed upwards, adding a force to the node at each step. Therefore, the allocation includes defining the gravitational force at each node as the force acting on the corresponding receiving square multiplied by the node's mass. Specifically, starting from the lowest-level receiving square and ascending to the highest-level parent receiving square, the gravitational force at each node is defined as the sum of the forces acting on each corresponding receiving square from the lowest to the highest level multiplied by the node's mass.
[0048] Preferably, the force acting on each receiving square is the two components of the force generated along the x and y axes in two-dimensional space, calculated as follows: Fgx=G Ms*(xs-xr) / d^3 Fgy=G Ms*(ys-yr) / d^3 in: -M S It is the source quality. -xs and ys are the coordinates of the source centroid. -xr and yr are the coordinates of the receiver's centroid. -d represents the distance between the source centroid and the receiver centroid. -G is the predetermined gravitational constant.
[0049] Next, the objects are positioned as graphs in the GUI based on the previously calculated gravitational forces of the nodes. The positioning process mainly involves defining initial positions for all nodes and evaluating how these initial positions evolve when the nodes are subjected to some force, such as the calculated gravitational force. Therefore, starting from the initial positions, the nodes will move, and the graph will gradually reach a convergence state where the nodes will remain in essentially the same position.
[0050] Gravity (repulsion) keeps nodes well separated from each other, but more forces can be considered, such as link force, central force, and damping force. Link force brings connected nodes closer together, central force ensures that the graphics remain in the center of the GUI window and do not move around it, and damping force prevents oscillations.
[0051] In this regard, according to a further embodiment, objects are located in the GUI based on the attraction of nodes and the linking force between node pairs. In this case, the linking force of each pair can be calculated as follows: Flx=K(xb-xa) Fly=K(yb-ya) as well as Flx=K(xa-xb) Fly = K(ya - yb) For node "a" and node "b" of the node pair respectively, where: -k is a predetermined elastic constant; -xa and xb are the corresponding x-coordinates along the x-axis of nodes "a" and "b"; -ya and yb are the corresponding coordinates along the y-axis of nodes "a" and "b".
[0052] In another embodiment, object positioning in the GUI can be based on the attraction of nodes and the central force that attracts nodes toward the origin of the graph. In this case, the central force is calculated for each node as follows: Fcx=C*x Fcy=C*y in: -c is a predetermined constant; -x is the x-axis coordinate of the node; -y is the y-coordinate of the node.
[0053] Furthermore, in another embodiment, object positioning in the GUI can be based on the node's attraction and the node's damping force. In this case, the damping force is calculated for each node: Fdx=D*Vx Fdy=D*Vy in: -Vx is the velocity of the node on the x-axis. -Vy is the velocity of the node on the y-axis. -D is the predetermined damping constant.
[0054] Finally, in another embodiment, object positioning in the GUI can be calculated for each node based on the total force at each node, which is the sum of gravity, linking force, central force, and damping force, as described above: Ftx=Fgx+Flx+Fcx+Fdx Fty = Fgy + Fly + Fcy + Fdy In this scenario, nodes are set at arbitrary positions at time t0 and with an initial velocity of zero. As already described in the method according to the invention, the gravity of each node is calculated, defining Fgx and Fgy. Subsequently, the link forces are calculated considering the positions of the two nodes involved in each link, thus defining Flx and Fly. Then, for each node, the force attracting the origin of the graph is calculated, defining Fcx and Fcy. Damping forces are calculated using a viscous damping model, where the damping force is proportional to the velocity and where the value of D is less than 1, defining Fdx and Fdy. Finally, all forces acting on the nodes are summed together to obtain the total forces Ftx and Fty for each node.
[0055] In another embodiment, the positioning of objects in the GUI can be calculated at predetermined time intervals at each predetermined moment, wherein the Verlet-Velocity algorithm based on total force is used to determine the new positions of all nodes at that moment. This allows the calculation of one or more forces as described above to be repeated using the newly calculated positions.
[0056] Figure 2 A first example of processing according to the method of the present invention is shown, which includes twelve nodes numbered from 1 to 12. These nodes represent corresponding objects in the network.
[0057] This example is similar to Figure 1 The difference in the example shown is that a large number of nodes are considered; therefore, only the differences in the method according to the invention will be described in more detail, also taking into account whether... Both the Barnes-Hut method and the Barnes-Hut method lead to more complex force assessments.
[0058] The method for representing network objects in a GUI according to the present invention allows for further reduction in complexity to just 71 force evaluations.
[0059] The method involves first assigning all objects in the network as corresponding nodes in a two-dimensional space. Figure 2This allocation is shown and will be described in more detail below.
[0060] The assignment involves a computerized data processing unit defining random initial positions for all nodes and assigning corresponding x and y coordinates to each node in two-dimensional space. Subsequently, the computerized data processing unit encloses all nodes within a single base grid, as shown below. Figure 2 As shown at the edge.
[0061] A single base square is approximated by further dividing it into multiple first-level squares using a computerized data processing unit. These multiple first-level squares consist of four squares of the same size. Specifically, the first-level squares are nested within base squares, such that they represent offspring of the same base square.
[0062] The allocation then involves a computerized data processing unit subdividing each of the primary squares into multiple secondary squares, wherein the subdivision is performed on primary squares with two or more nodes. These multiple secondary squares consist of four squares of the same size.
[0063] To simplify representation and identification, the same symbols as in the previous example will be used. Each sub-square is defined by a number based on its position relative to the parent square, where symbol 1 defines the square at the top left, symbol 2 defines the square at the top right, symbol 3 defines the square at the bottom right, and symbol 4 defines the square at the bottom left. Furthermore, the symbol for the parent square will remain the same at each level. Therefore, the first-level squares are identified using symbols 1, 2, 3, and 4, proceeding clockwise from the top left square to the bottom left.
[0064] By considering the symbols described above, only square 2 will no longer be subdivided, as it contains only a single node, namely node number 5, while all other nodes will be subdivided into four second-level squares of the same size, as described. Specifically, the second-level squares are nested within their corresponding first-level squares, such that they represent offspring of the same first-level square. Therefore, for a first-level square with symbol 1, the second-level squares are identified by symbols 1-1, 1-2, 1-3, and 1-4; for a first-level square with symbol 3, the second-level squares are identified by symbols 3-1, 3-2, 3-3, and 3-4; and for a first-level square with symbol 4, the second-level squares are identified by symbols 4-1, 4-2, and 4-3, again proceeding clockwise from the top-left second-level square to the bottom-left. The node enclosed in the second-level square marked 1-1, i.e., node number 9; the node in the second-level square marked 1-2, i.e., nodes numbered 7 and 8; the node in the second-level square marked 1-3, i.e., node number 6; the node in the second-level square marked 3-1, i.e., node number 4; the node in the second-level square marked 3-4, i.e., nodes numbered 2 and 3; the node in the second-level square marked 4-2, i.e., node numbered 10; and the node in the second-level square marked 4-4, i.e., nodes numbered 1, 11, and 12.
[0065] By iteratively subdividing, each of the (n)th level squares is subdivided into multiple (n+1)th level squares, and the iteration continues until the (n)th level square is provided with two or more nodes.
[0066] Preferably, the multiple (n+1)th level squares are also composed of four level squares of the same size. In particular, the (n+1)th level squares are nested within the corresponding (n)th level squares, such that they represent offspring of the same level squares, which in turn include four level squares of the same size nested within the corresponding (n-1)th level squares, such that they represent offspring of the same level squares, and so on.
[0067] exist Figure 2In the illustrated embodiment, the iteration involves only further subdivision of the second-level squares labeled 1-2, 3-4, and 4-4, only those second-level squares having two or more nodes. Therefore, as described, squares 1-2, 3-4, and 4-4 will be subdivided into four tertiary squares of the same size. Specifically, the tertiary squares are nested within their respective second-level squares, such that they represent offspring of the same squares. Therefore, for the second-level squares with the symbol 1-2, the third-level squares are labeled as 1-2-1, 1-2-2, 1-2-3, 1-2-4; for the second-level squares with the symbol 3-4, the third-level squares are labeled as 3-4-1, 3-4-2, 3-4-3, 3-4-4; for the second-level squares with the symbol 4-4, the third-level squares are labeled as 4-4-1, 4-4-2, 4-4-3, 4-4-4, and so on, starting again from the third-level square in the upper left corner and proceeding clockwise to the lower left corner. The node contained in the tertiary square with symbol 1-2-2 is node number 7; the node contained in the tertiary square with symbol 1-2-4 is node number 8; the node contained in the tertiary square with symbol 3-4-2 is node number 3; the node contained in the tertiary square with symbol 3-4-4 is node number 2; the node in the tertiary square with symbol 4-4-1 is node number 1; the node in the tertiary square with symbol 4-4-3 is node number 12; and the node in the tertiary square with symbol 4-4-4 is node number 11.
[0068] Thus, as Figure 2 As shown, the assignment defines a quadtree representing all nodes from 1 to 12 of the network object. In particular, the defined quadtree is not a complete quadtree because not all parent squares have exactly four nested child squares; as explained, the nesting depends on the contained nodes.
[0069] After assignment, the method includes evaluating the gravity of the nodes.
[0070] The evaluation involves a computerized data processing unit selecting one of the cells as a source cell, starting from the highest level. Subsequently, the evaluation involves the computerized data processing unit selecting one of the cells as a receiving cell, also starting from the highest level. Specifically, the evaluation of all cells at the same level is iterative.
[0071] To simplify the following description, source cells will be indicated by S, followed by their symbols in the aforementioned quadtree, while receiving cells will be indicated by R, followed by their symbols in the aforementioned quadtree.
[0072] Therefore, without considering individual base squares, we select the source and receiver from the first-level squares, taking into account all possible combinations of source and receiver squares as described above. In this example, the selection begins with S1 and R1, then with S2-R1, S3-R1, S4-R1, and S1-R2, S2-R2, S3-R3, etc., up to S4-R4.
[0073] After selection, a computerized data processing unit performs an evaluation based on one or more predetermined criteria to determine whether the source and receiving squares are too far apart.
[0074] Distance is evaluated based on one or more predetermined criteria. Considering the generated quadtree, it is necessary to define one or more criteria to understand when the square containing the source is far enough away from the square containing the receiver so that the folds of the source and receiver can be well approximated in the result.
[0075] The predetermined criteria include an evaluation of overlap, where squares are considered close together if they overlap. Additionally, the predetermined criteria include an evaluation of edges, where squares are considered close together if they share at least one common edge. Furthermore, the predetermined criteria include an evaluation of vertices, where squares are considered close together if they share at least one common vertex. Depending on the required level of precision, these criteria can be considered in combination, i.e., all criteria can be considered, or one or more criteria can be considered individually. Furthermore, other criteria not described herein can be considered.
[0076] In this example, the above criteria will be considered together.
[0077] The result of the distance assessment between the source and receiver will trigger subsequent calculations or sub-selections. Specifically, if the source and receiver squares are assessed as far apart, or if they are assessed as close together but neither has nested lower-level squares, the computerized data processing unit performs subsequent calculations on the force exerted by the source square on the receiver square. Conversely, if the source and receiver squares are assessed as close together, the computerized data processing unit performs sub-selections of lower-level squares as either the source or receiver square, where the sub-selection again iterates over all squares at the same level.
[0078] Sub-selection and selection can also be done randomly or according to one or more selection criteria. Selection criteria may include: if both the source and receiver squares have lower-level nested squares at different levels, then the higher-level square between the source and receiver squares is selected as the lower-level square. Another criterion may include: if the other square does not have lower-level nested squares, then the square with lower-level nested squares between the source and receiver squares is selected as the lower-level square. Furthermore, a criterion may include: if both the source and receiver squares have nested lower-level squares at the same level, then the square containing the fewer nodes between the source and receiver squares is selected as the lower-level square. Finally, a criterion may include: if both the source and receiver squares have nested lower-level squares and contain the same number of nodes, then the receiver square is selected as the lower-level square. These selection criteria can be considered together (i.e., all selection criteria are considered) or individually (i.e., one or more selection criteria are considered). Additionally, further selection criteria not described herein may be considered.
[0079] In this embodiment, the above selection criteria will be considered together.
[0080] In the following text, regarding Figure 2 All iterations of the examples in the document have been summarized. 1. s=1, R=1 -> Not far: Sub-select receiver as=1, R=1-1->Not far: Sub-selection source is = 1-1, R = 1-1 -> Same, no offspring: skip. ii.s=1-2, R=1-1->Not far: Sub-select source 1. s = 1 - 2 - 1, R = 1 - 1 -> Empty: Skip 2. s = 1 - 2 - 2, R = 1 - 1 -> Distance: Calculate the force 3. s = 1 - 2 - 3, R = 1 - 1 -> Empty: Skip 4. s = 1 - 2 - 4, R = 1 - 1 -> No offspring: computational power iii. s = 1 - 3, R = 1 - 1 -> No offspring: Computational power iv.s=1-4, R=1-1->Empty: Skip bs=1, R=1-2-> Not far: Sub-selection source is = 1-1, R = 1-2 -> Not far: Sub-select receiver 1. s = 1 - 1, R = 1 - 2 - 1 -> Empty: Skip 2.s=1-1,R=1-2-2->Far: Calculation of force 3. s = 1 - 1, R = 1 - 2 - 3 -> Empty: Skip 4. s = 1 - 1, R = 1 - 2 - 4 -> No offspring: computational power ii.s=1-2, R=1-2->Not far: Sub-select receiver 1. s = 1 - 2, R = 1 - 2 - 1 -> Empty: Skip 2. S = 1 - 2, R = 1 - 2 - 2 -> Not far from the source selection as = 1-2-1, R = 1-2-2 -> Empty: Skip bs = 1-2-2, R = 1-2-2 -> Same, no offspring: Skip cs = 1-2-3, R = 1-2-2 -> Empty: Skip ds = 1-2-4, R = 1-2-2 -> No offspring: computational power 3. s = 1 - 2, R = 1 - 2 - 3 -> Empty: Skip 4. s = 1 - 2, R = 1 - 2 - 4 -> Not far: Sub-selection source as = 1-2-1, R = 1-2-4 -> Empty: Skip bs = 1-2-2, R = 1-2-4 -> No offspring: Computational power cs = 1-2-3, R = 1-2-4 -> Empty: Skip ds=1-2-4, R=1-2-4 -> Same, no offspring: Skip iii. s=1-3, R=1-2 -> Not far: Select receiver for offspring 1. s = 1 - 3, R = 1 - 2 - 1 -> Empty: Skip 2.s=1-3, R=1-2-2->Far: Calculation force 3. s = 1 - 3, R = 1 - 2 - 3 -> Empty: Skip 4. s = 1 - 3, R = 1 - 2 - 4 -> No offspring: Computational power iv.s=1-4, R=1-2->Empty: Skip cs=1, R=1-3-> Not far: Sub-selection source is = 1-1, R = 1-3 -> No offspring: Computational power ii.s=1-2, R=1-3->Not far: Sub-select source 1. s = 1 - 2 - 1, R = 1 - 3 -> Empty: Skip 2. s = 1 - 2 - 2, R = 1 - 3 -> Distance: Calculation of force 3. s = 1 - 2 - 3, R = 1 - 3 -> Empty: Skip 4. s = 1 - 2 - 4, R = 1 - 3 -> No offspring: computational power iii. s = 1-3, R = 1-3 -> Same, no offspring: Skip iv.s=1-4, R=1-3->Empty: Skip ds=1, R=1-4->Empty: Skip 2. S=2, R=1 -> Not far: Sub-selection receiver as=2,R=1-1->Far: Calculation Force bs=2, R=1-2-> Not far: Sub-select receiver is=2, R=1-2-1->Empty: Skip ii.s=2, R=1-2-2->No offspring: computational power iii.s=2, R=1-2-3->Empty: Skip iv.s=2, R=1-2-4->Far: Calculation power cs=2, R=1-3->No offspring: Computational power ds=2, R=1-4->Empty: Skip 3. s=3, R=1 -> Not far: Sub-selection source (with fewer nodes) aS=3-1, R=1->Not far: Sub-select receiver iS = 3-1, R = 1-1 -> Far: Calculation Power ii. S = 3 - 1, R = 1 - 2 > Far: Calculation power iii. s = 3 - 1, R = 1 - 3 -> No offspring: computational power iv.s=3-1, R=1-4->Empty: Skip bs = 3 - 2, R = 1 -> Empty: Skip cs=3-3, R=1->Empty: Skip dS = 3 - 4, R = 1 -> Far: Calculation force 4. S=4, R=1 -> Not far: Sub-select receiver (same level, same node) as=4, R=1-1->Far: Calculation Power bs=4, R=1-2>Far: Calculation power cs=4, R=1-3-> Not far: Sub-selection source is = 4-1, R = 1-3 -> Empty: Skip ii.s=4-2, R=1-3->No offspring: Computational power iii.s = 4-3, R = 1-3 -> Empty: Skip iv. S = 4 - 4, R = 1 - 3 > Far: Calculation power ds=4, R=1-4->Empty: Skip 5. s=1, R=2 -> Not far: Sub-selection source as=1-1,R=2->Far: Calculation Power bs = 1 - 2, R = 2 -> Not far: Sub-selection source is = 1-2-1, R = 2 -> Empty: Skip ii.s = 1-2-2, R = 2 -> No offspring: computational power iii.s = 1-2-3, R = 2 -> Empty: Skip iv.s=1-2-4,R=2->Far: Calculation Power cs=1-3, R=2->No offspring: Computational power ds=1-4, R=2->Empty: Skip 6. s=2, R=2 -> Same, no offspring: Skip 7. s=3, R=2 -> Not far: Sub-selection source as = 3 - 1, R = 2 -> No offspring: Computational power bs = 3 - 2, R = 2 -> Empty: Skip cs=3-3, R=2->Empty: Skip dS = 3 - 4, R = 2 -> Far: Calculation power 8. s=4, R=2 -> Not far: Sub-selection source as = 4 - 1, R = 2 -> Empty: Skip bs = 4 - 2, R = 2 -> No offspring: Computational power cs=4-3, R=2->Empty: Skip dS = 4 - 4, R = 2 -> Far: Calculation power 9. s=1, R=3 -> Not far: Sub-select receiver as=1, R=3-1->Not far: Sub-selection source is=1-1,R=3-1->Far: Calculation Power ii.s=1-2,R=3-1->Far: Calculation of force iii. s = 1 - 3, R = 3 - 1 -> No offspring: Computational power iv.s=1-4, R=3-1->Empty: Skip bs=1, R=3-2->Empty: Skip cs=1, R=3-3->Empty: Skip ds=1, R=3-4->Far: Calculation power 10. s=2, R=3 -> Not far: Downward in the receiver as=2, R=3-1->No offspring: Computational power bs=2, R=3-2->Empty: Skip cs=2, R=3-3->Empty: Skip ds=2, R=3-4->Far: Calculation power 11. S=3, R=3 -> Not far: Sub-select receiver as=3, R=3-1->Not far: Sub-selection source is=3-1, R=3-1 -> Same, no offspring: Skip ii.s=3-2, R=3-1->Empty: Skip iii.s = 3 - 3, R = 3 - 1 -> Empty: Skip iv. S = 3-4, R = 3-1 -> Not far: Sub-selection source 1. s = 3 - 4 - 1, R = 3 - 1 -> Empty: Skip 2. S = 3 - 4 - 2, R = 3 - 1 -> No offspring: Computational power 3.s = 3-4-3, R = 3-1 -> Empty: Skip 4. S = 3 - 4 - 4, R = 3 - 1 -> No offspring: Computational power bs=3, R=3-2->Empty: Skip cs=3, R=3-3->Empty: Skip ds=3, R=3-4-> Not far: Sub-selection source iS=3-1, R=3-4->Not far: Sub-select receiver 1. s = 3 - 1, R = 3 - 4 - 1 -> Empty: Skip 2. s = 3 - 1, R = 3 - 4 - 2 -> No offspring: computational power 3.s = 3 - 1, R = 3 - 4 - 3 -> Empty: Skip 4. S = 3 - 1, R = 3 - 4 - 4 -> Distance: Calculation force ii.s=3-2, R=3-4->Empty: Skip iii.s=3-3, R=3-4->Empty: Skip iv. S = 3-4, R = 3-4 -> Not far: Sub-selection source 1. s = 3 - 4 - 1, R = 3 - 4 -> Empty: Skip 2. S = 3-4-2, R = 3-4 -> Not far: Sub-select receiver as = 3-4-2, R = 3-4-1 -> Empty: Skip bs=3-4-2, R=3-4-2 -> Same, no offspring: Skip cs=3-4-2, R=3-4-3->Empty: Skip dS = 3-4-2, R = 3-4-4 –> No offspring: computational power 3.s = 3-4-3, R = 3-4 -> Empty: Skip 4. S = 3-4-4, R = 3-4 -> Not far: Sub-select receiver as = 3-4-4, R = 3-4-1 -> Empty: Skip bS = 3-4-4, R = 3-4-2 -> No offspring: Computational power cs=3-4-4, R=3-4-3->Empty: Skip dS = 3-4-4, R = 3-4-4 -> Same, no offspring: Skip 12. S=4, R=3 -> Not far: Sub-select receiver as=4, R=3-1->Not far: Sub-selection source is = 4-1, R = 3-1 -> Empty: Skip ii.s=4-2, R=3-1->No offspring: Computational power iii.s = 4 - 3, R = 3 - 1 -> Empty: Skip iv. S = 4 - 4, R = 3 - 1 -> Far: Calculation power bs=4, R=3-2->Empty: Skip cs=4, R=3-3->Empty: Skip ds=4, R=3-4-> Not far: Sub-selection source is = 4-1, R = 3-4 -> Empty: Skip ii. S = 4-2, R = 3-4 -> Not far: Sub-select receiver 1. s = 4-2, R = 3-4-1 -> Empty: Skip 2. S = 4 - 2, R = 3 - 4 - 2 -> Distance: Calculation force 3.s = 4 - 2, R = 3 - 4 - 3 -> Empty: Skip 4. S = 4 - 2, R = 3 - 4 - 4 -> Distance: Calculation force iii.s = 4-3, R = 3-4 -> Empty: Skip iv. S = 4 - 4, R = 3 - 4 -> Far: Calculation power 13. s=1, R=4 -> Not far: Sub-select receiver as=1, R=4-1->Empty: Skip bs=1, R=4-2-> Not far: Sub-selection source is=1-1,R=4-2->Far: Calculation Power ii.s=1-2,R=4-2->Far: Calculation force iii. s = 1 - 3, R = 4 - 2 -> No offspring: computational power iv.s=1-4, R=4-2->Empty: Skip cs=1, R=4-3->Empty: Skip ds=1, R=4-4->Far: Calculation power 14. s=2, R=4 -> Not far: Sub-select receiver as=2, R=4-1->Empty: Skip bs=2, R=4-2->No offspring: Computational power cs=2, R=4-3->Empty: Skip ds=2, R=4-4->far: computational power 15. s=3, R=4 -> Not far: Sub-selection source as=3, R=4-1->Empty: Skip bs=3, R=4-2-> Not far: Sub-selection source is = 3-1, R = 4-2 -> No offspring: Computational power ii.s=3-2, R=4-2->Empty: Skip iii.s=3-3, R=4-2->Empty: Skip iv. S = 3-4, R = 4-2 -> Not far: Sub-selection source 1. s = 3 - 4 - 1, R = 4 - 2 -> Empty: Skip 2. S = 3 - 4 - 2, R = 4 - 2 -> Distance: Calculation force 3.s = 3 - 4 - 3, R = 4 - 2 -> Empty: Skip 4. S = 3 - 4 - 4, R = 4 - 2 -> Distance: Calculation power cs=3, R=4-3->Empty: Skip ds=3, R=4-4->Far: Calculation power 16. S=4, R=4 -> Not far: Sub-select receiver as=4, R=4-1->Empty: Skip bs=4, R=4-2-> Not far: Sub-selection source is = 4-1, R = 4-2 -> Empty: Skip ii.s=4-2, R=4-2 -> Same, no offspring: Skip iii.s = 4-3, R = 4-2 -> Empty: Skip iv. S = 4 - 4, R = 4 - 2 -> Not far: Sub-selection source 1. S = 4 - 4 - 1, R = 4 - 2 -> Distance: Calculation force 2. s = 4 - 4 - 2, R = 4 - 2 -> Empty: Skip 3. S = 4 - 4 - 3, R = 4 - 2 -> Distance: Calculation power 4. S = 4 - 4 - 4, R = 4 - 2 -> Distance: Calculation power cs=4, R=4-3->Empty: Skip ds=4, R=4-4->Not far: Sub-selection source is = 4-1, R = 4-4 -> Empty: Skip ii. S = 4-2, R = 4-4 -> Not far: Sub-select receiver 1. S = 4 - 2, R = 4 - 4 - 1 -> Distance: Calculation force 2.s = 4 - 2, R = 4 - 4 - 2 -> Empty: Skip 3. S = 4 - 2, R = 4 - 4 - 3 -> Far: Calculation force 4. S = 4 - 2, R = 4 - 4 - 4 -> Far: Calculation power iii.s = 4-3, R = 4-4 -> Empty: Skip iv. S = 4-4, R = 4-4 -> Not far: Sub-select receiver 1. S = 4 - 4, R = 4 - 4 - 1 -> Not far away sub-selection source as = 4-4-1, R = 4-4-1 -> Same, no offspring: Skip bs = 4-4-2, R = 4-4-1 -> Empty: Skip cS = 4-4-3, R = 4-4-1 -> No offspring: Computational power dS = 4-4-4, R = 4-4-1 -> No offspring: Computational power 2. s = 4 - 4, R = 4 - 4 - 2 -> Empty: Skip 3. S = 4 - 4, R = 4 - 4 - 3 -> Not far: Sub-selection source aS = 4-4-1, R = 4-4-3 -> No offspring: Computational power bs = 4-4-2, R = 4-4-3 -> Empty: Skip cS = 4-4-3, R = 4-4-3 -> Same, no offspring: Skip dS = 4-4-4, R = 4-4-3 -> No offspring: Computational power 4. S = 4 - 4, R = 4 - 4 - 4 -> Not far: Sub-selection source aS = 4-4-1, R = 4-4-4 –> No offspring: Computational power bs = 4-4-2, R = 4-4-4 -> Empty: Skip cS = 4-4-3, R = 4-4-4 –> No offspring: Computational power dS = 4-4-4, R = 4-4-4 -> Same, no offspring: skip
[0081] As expected, the number of force assessments is 71, [s=1-2-2,R=1-1],[s=1-2-4,R=1-1],[s=1-3,R=1-1],[s=1-1,R=1-2-2],[s=1-1,R=1-2-4],[s=1-2-4],R=1-2-2],[s=1-2-2,R=1-2-4],[s=1-3,R=1-2-2],[s=1-3,R=1-2-4],[s=1-1,R=1-3],[s=1-2-2,R=1-3],[s=1-2-4,R=1-3],[s=2,R=1-1],[s=2,R=1-2-2],[s=2,R=1-2-4],[s=2,R=1-3],[s=3-1,R=1-1],[s=3-1,R=1-2],[s=3-1,R=1-3],[s=3-4,R=1],[s=4,R=1-1],[s=4,R=1-2],[s=4-2,R=1-3],[s=4-4,R=1-3],[s=1-1,R=2],[s=1-2-2,R=2],[s=1-2-4,R=2],[s=1-3,R=2],[s=3-1,R=2,[s=3-4,R=2],[s=4-2,R=2],[s=4-4,R=2],[s=1-1,R=3-1],[s=1-2,R=3-1],[s=1-3,R=3-1],[s=1,R=3-4],[s=2,R=3-1],[s=2,R=3-4],[s=3-4-2,R=3-1],[s=3-4-4,R=3-1,[s=3-1,R=3-4-2],[s=3-1,R=3-4-4],[s=3-4-2,R=3-4-4],[s=3-4-4,R=3-4-2],[s=4-2,R=3-1],[s=4-4,R=3-1],[s=4-2,R=3-4-2,[s=4-2,R=3-4-4],[s=4-4,R=3-4],[s=1-1,R=4-2],[s=1-2,R=4-2],[s=1-3,R=4-2],[s=1,R=4-4],[s=2,R=4-2],[s=2,R=4-4],[s=3-1,R=4-2],[s=3-4-2,R=4-2],[s=3-4-4,R=4-2],[s=3,R=4-4],[s=4-4-1,R=4-2],[s=4-4-3,R=4-2],[s=4-4-4,R=4-2],[s=4-2,R=4-4-1],[s=4-2,R=4-4-3],[s=4-2,R=4-4-4],[s=4-4-3,R=4-4-1],[s=4-4-4,R=4-4-1],[s=4-4-1,R=4-4-3],[s=4-4-4, R=4-4-3], [s=4-4-1, R=4-4-4], [s=4-4-3, R=4-4-4]. ,
[0082] At the end of all iterations and calculations, each sub-square contains the forces generated on it. Therefore, the evaluation also includes the computerized data processing unit distributing the forces acting on each of the receiving squares to all nodes in the corresponding receiving square that define the gravitational forces of all nodes.
[0083] To extract the force at each node, simply start from the lowest-level sub-square containing that node and proceed upwards, increasing the force at each step. Therefore, for each node, the assignment involves defining gravity as the force acting on the corresponding receiving square multiplied by the node's mass. Specifically, starting from the lowest-level receiving square and moving upwards to the highest-level parent receiving square, the gravity of each node is defined, where the node's gravity is calculated as the sum of the forces acting on each corresponding receiving square from the lowest to the highest level multiplied by the node's mass.
[0084] Preferably, the force acting on each receiving square is the two components of the force generated along the x and y axes in two-dimensional space, calculated as follows: Fgx=G Ms*(xs-xr) / d^3 Fgy=G Ms*(ys-yr) / d^3 in: -Ms is the source quality. -xs and ys are the coordinates of the source centroid. -xr and yr are the coordinates of the receiver's centroid. -D is the distance between the source centroid and the receiver centroid. -G is the predetermined gravitational constant.
[0085] Next, the objects are positioned as graphs in the GUI based on the previously calculated gravitational forces of the nodes. The positioning process mainly involves defining initial positions for all nodes and evaluating how these initial positions evolve when the nodes are subjected to some force, such as the calculated gravitational force. Therefore, starting from the initial positions, the nodes will move, and the graph will gradually reach a convergence state where the nodes will remain in essentially the same position.
[0086] Gravity (repulsion) keeps nodes well separated from each other, but more forces can be considered, such as linking forces, central forces, and damping forces. Linking forces bring connected nodes closer together, central forces ensure the graphic remains centered within the GUI window and doesn't move around it, and damping forces prevent oscillations. Figure 1 As described in the previous example, this force can be calculated based on further embodiments.
[0087] Therefore, this invention describes a method that can represent the entire network using a small portion of computational resources in each iteration.
[0088] In particular, the method according to the invention ensures that each iteration produces responsive graphics in the GUI as quickly as possible.
Claims
1. A method for representing network objects in a GUI, characterized in that, The method includes: - Assign all the objects in the network to corresponding nodes in a two-dimensional space; - Evaluate the gravitational force of the node; and -The object is positioned as a graphic in the GUI based on the gravity of the node; The allocation mentioned therein includes: - A computerized data processing unit defines the random initial positions of all the nodes and assigns corresponding coordinates along the x and y axes in the two-dimensional space to each of the nodes; - All the nodes are surrounded in a single base square by the computerized data processing unit; - The computerized data processing unit divides the single base square into multiple first-level squares, wherein the multiple first-level squares are composed of four first-level squares with the same size; - The computerized data processing unit subdivides each of the first-level squares into multiple second-level squares, wherein the subdivision is performed on the first-level squares having two or more of the nodes, and wherein each of the multiple second-level squares consists of four level squares having the same size. - The computerized data processing unit subdivides each of the (n)th level squares into a plurality of (n+1)th level squares, wherein the subdivision is performed on the (n)th level squares having two or more of the nodes, and wherein each of the plurality of (n+1)th level squares consists of four level squares having the same size. The evaluation includes: - The computerized data processing unit selects one of the squares as the source square, starting from the highest level; - The computerized data processing unit selects one of the squares as the receiving square, starting from the highest level; -The computerized data processing unit evaluates whether the source cell and the receiving cell are far apart according to one or more predetermined criteria; - The computerized data processing unit calculates the force from the source cell acting on the receiving cell if the source cell and the receiving cell are assessed as being far apart, or if the source cell and the receiving cell are assessed as not being far apart, and neither has any lower-level cell nesting. If the source cell and the receiving cell are evaluated to be not far apart, the computerized data processing unit subselects one of the cells at a lower level as the source cell or as the receiving cell, wherein the subselection iterates over all combinations of all cells at the same level as the source and as the receiver. The evaluation iterates over all combinations of the squares at the first level, which are both the source and the receiver; and The evaluation further includes the computerized data processing unit distributing the force acting on each of the receiving squares to all the nodes in the corresponding receiving squares, and defining the gravitational force of all the nodes.
2. The method for representing network objects in a GUI according to claim 1, characterized in that, The predetermined criteria include an assessment of overlap, wherein if the squares overlap each other, the squares are considered to be close to each other.
3. The method for representing network objects in a GUI according to claim 1 or 2, characterized in that, The predetermined criteria include the evaluation of edges, wherein if the squares have at least a common edge, the squares are considered not far apart.
4. The method for representing network objects in a GUI according to any one of claims 1-3, characterized in that, The predetermined criteria include the evaluation of vertices, wherein if the squares have at least one common vertex, then the squares are considered to be close.
5. The method for representing network objects in a GUI according to any one of claims 1-4, characterized in that, The force acting on each of the receiving squares is two components of the force generated along the x and y axes in the two-dimensional space, calculated as follows: Fgx = G Ms * (xs -xr) / d^3 Fgy = G Ms * (ys -yr) / d^3 in: -Ms is the source quality. -xs, ys are the coordinates of the source centroid. -xr, yr are the coordinates of the receiver's centroid. -d represents the distance between the source centroid and the receiver centroid. -G is the predetermined gravitational constant.
6. The method for representing network objects in a GUI according to any one of claims 1-5, characterized in that, The distribution includes, for each of the nodes, defining the gravitational force as the force acting on the corresponding receiving square multiplied by the mass of the node.
7. The method for representing network objects in a GUI according to claim 6, characterized in that, Starting from the lowest-level receiving cell and moving upwards to the highest-level parent receiving cell, define the gravitational force for each of the nodes. The gravitational force of the node is calculated as the sum of the forces acting on each of the corresponding receiving squares from the lowest to the highest level, multiplied by the mass of the node.
8. The method for representing network objects in a GUI according to any one of claims 1-7, characterized in that, The sub-selection includes: if both the source cell and the receiving cell have low-level cell nesting and are not at the same level, then the higher-level cell between the source cell and the receiving cell is selected as the low-level cell.
9. The method for representing network objects in a GUI according to any one of claims 1-8, characterized in that, The sub-selection includes: if another cell does not have a lower-level cell nesting, then selecting a cell with a lower-level cell nesting between the source cell and the receiving cell as the lower-level cell.
10. The method for representing network objects in a GUI according to any one of claims 1-9, characterized in that, The sub-selection includes: if both the source cell and the receiving cell have nested lower-level cells and are at the same level, then select the source cell or the receiving cell that contains fewer of the nodes as the lower-level cell.
11. The method for representing network objects in a GUI according to any one of claims 1-10, characterized in that, The sub-selection includes: if both the source cell and the receiving cell have nested lower-level cells and contain the same number of the nodes, then the receiving cell is selected as the lower-level cell.
12. The method for representing network objects in a GUI according to any one of claims 1-11, characterized in that, The location of the object in the GUI is based on the attraction of the node and the linking force Flx, Fly between the node pairs.
13. The method for representing network objects in a GUI according to claim 12, characterized in that, For each of the node pairs, the linking force Flx, Fly is calculated as follows, in the direction from b to a: Flx = K (xb-xa) Fly = K (yb-ya) And, in the direction from a to b: Flx = K (xa-xb) Fly = K (ya-yb) For node "a" and node "b" of the node pair respectively, where: -k is a predetermined elastic constant; -xa, xb are the respective x-coordinates of nodes "a" and "b" along the x-axis; -ya and yb are the corresponding coordinates along the y-axis of nodes "a" and "b".
14. The method for representing network objects in a GUI according to any one of claims 12-13, characterized in that, The object is located in the GUI based on the attraction of the node and the central forces Fcx and Fcy that attract the node toward the origin of the graph.
15. The method for representing network objects in a GUI according to claim 14, characterized in that, For each node, the central forces Fcx and Fcy are calculated as follows: Fcx = C * x Fcy = C * y in: -C is a predetermined constant; -x is the x-axis coordinate of the node; -y is the y-coordinate of the node.
16. The method for representing network objects in a GUI according to any one of claims 14-15, characterized in that, The object is located in the GUI based on the node's gravitational force and the node's damping forces Fdx and Fdy.
17. The method for representing network objects in a GUI according to claim 16, characterized in that, Calculate the damping forces Fdx and Fdy for each node: Fdx = D * Vx Fdy = D * Vy in: -Vx is the velocity of the node on the x-axis. -Vy is the velocity of the node on the y-axis. -D is the predetermined damping constant.
18. The method for representing network objects in a GUI according to any one of claims 16-17, characterized in that, The positioning of the object in the GUI is based on the total forces Ftx and Fty of each node, where the total force of each node is the sum of the gravitational force, the linking force, the central force, and the damping force calculated for each node. Ftx = Fgx + Flx + Fcx + Fdx Fty = Fgy + Fly + Fcy + Fdy.
19. The method for representing network objects in a GUI according to claim 18, characterized in that, The location of the object in the GUI is calculated at each predetermined time interval, and Specifically, the Verlet-Velocity algorithm based on the total force is used to determine the new positions of all the nodes at the given time.
Citation Information
Patent Citations
Spatial network node uniform deployment method based on virtual force
CN103997747A
Method and computer program for determining a placement of at least one circuit for a reconfigurable logic device
EP3333735A1