Self-organizing neural network approach to the automatic layout of business process diagrams
First Claim
1. A computer program product for generating self-organizing layouts of process diagrams, the computer program product comprising a computer readable storage medium having program code embodied therewith, wherein the computer readable storage medium is not a transitory signal per se, and wherein the program code is readable and executable by a processor to perform a method comprising:
- randomly selecting initial spatial position vectors, wi, for all graphical nodes in a process diagram, wherein a first node in the process diagram is in a first lane of the process diagram, wherein a second node in the process diagram is in a second lane of the process diagram;
distributing the initial spatial position vectors, wi, uniformly within boundaries of multiple regions in the process diagram;
in each region in the process diagram, randomly generating a spatial input vector, x, within the boundaries of each region;
in each region in the process diagram, finding a closest graphical node wc, to a random input vector generated in said each region;
in each region in the process diagram, adjusting a position of a winning graphical node that is the closest graphical node to the random input vector generated in said each region, wherein said adjusting the position of the winning graphical node brings the winning graphical node closer to the random input vector;
adjusting a weight vector of each immutable closest graphical node in the process diagram, wherein each immutable closest graphical node wc has a fixed location on the process diagram;
adjusting positions of all non-immutable graphical objects in a topographical neighborhood N(k) of the closest graphical node wc that can cross a boundary of one or more regions from the multiple regions;
randomly generating the spatial input vector x, locating the closest graphical node wc, adjusting the position of the winning graphical node, and adjusting positions of all non-immutable graphical objects in the topographical neighborhood N(k) recursively until a maximum number of iterations, kmax is reached; and
flipping an arrangement of nodes in the second lane such that the first node and the second node are proximate to one another and are connected by a connector that does not overlap any other connectors in the second lane.
1 Assignment
0 Petitions
Accused Products
Abstract
A method, system, and/or computer program product generates self-organizing layouts of process diagrams. Initial weight vectors are distributed uniformly within boundaries of regions in the process diagram. A spatial input vector is randomly generated within the boundaries of each region. In each region in the process diagram, a closest graphical node is found, and a position of a winning graphical node that is the closest graphical node to the random input vector is adjusted. Positions of all non-immutable graphical objects, wi, in a topographical neighborhood N(k) of a closest graphical node wc that can cross a boundary of one or more regions from the multiple regions are adjusted. The spatial input vector is recursively generated, the closest graphical node is recursively located, and the positions of all non-immutable graphical objects, wi, in the topographical neighborhood N(k) are recursively adjusted until a maximum number of iterations, kmax is reached.
9 Citations
12 Claims
-
1. A computer program product for generating self-organizing layouts of process diagrams, the computer program product comprising a computer readable storage medium having program code embodied therewith, wherein the computer readable storage medium is not a transitory signal per se, and wherein the program code is readable and executable by a processor to perform a method comprising:
-
randomly selecting initial spatial position vectors, wi, for all graphical nodes in a process diagram, wherein a first node in the process diagram is in a first lane of the process diagram, wherein a second node in the process diagram is in a second lane of the process diagram; distributing the initial spatial position vectors, wi, uniformly within boundaries of multiple regions in the process diagram; in each region in the process diagram, randomly generating a spatial input vector, x, within the boundaries of each region; in each region in the process diagram, finding a closest graphical node wc, to a random input vector generated in said each region; in each region in the process diagram, adjusting a position of a winning graphical node that is the closest graphical node to the random input vector generated in said each region, wherein said adjusting the position of the winning graphical node brings the winning graphical node closer to the random input vector; adjusting a weight vector of each immutable closest graphical node in the process diagram, wherein each immutable closest graphical node wc has a fixed location on the process diagram; adjusting positions of all non-immutable graphical objects in a topographical neighborhood N(k) of the closest graphical node wc that can cross a boundary of one or more regions from the multiple regions; randomly generating the spatial input vector x, locating the closest graphical node wc, adjusting the position of the winning graphical node, and adjusting positions of all non-immutable graphical objects in the topographical neighborhood N(k) recursively until a maximum number of iterations, kmax is reached; and flipping an arrangement of nodes in the second lane such that the first node and the second node are proximate to one another and are connected by a connector that does not overlap any other connectors in the second lane. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system comprising:
-
a processor, a computer readable memory, and a non-transitory computer readable storage media; first program instructions to randomly select initial spatial position vectors, wi, for all graphical nodes in a process diagram, wherein a first node in the process diagram is in a first lane of the process diagram, wherein a second node in the process diagram is in a second lane of the process diagram; second program instructions to distribute the initial spatial position vectors, wi, uniformly within boundaries of multiple regions in the process diagram; third program instructions to, in each region in the process diagram, randomly generate a spatial input vector, x, within the boundaries of each region; fourth program instructions to, in each region in the process diagram, find a closest graphical node, wc, to a random input vector generated in said each region; fifth program instructions to, in each region in the process diagram, adjust a position of a winning graphical node that is the closest graphical node to the random input vector generated in said each region, wherein adjusting the position of the winning graphical node brings the winning graphical node closer to the random input vector; sixth program instructions to adjust a weight vector of each immutable closest graphical node in the process diagram, wherein each immutable closest graphical node wc has a fixed location on the process diagram; seventh program instructions to adjust positions of all non-immutable graphical objects in a topographical neighborhood N(k) of the closest graphical node wc that can cross a boundary of one or more regions from the multiple regions; and eighth program instructions to randomly generate the spatial input vector x, locate the closest graphical node wc, adjust the position of the winning graphical node, and adjust positions of all non-immutable graphical objects in the topographical neighborhood N(k) recursively until a maximum number of iterations, kmax is reached; and ninth program instructions to flip an arrangement of nodes in the second lane such that the first node and the second node are proximate to one another and are connected by a connector that does not overlap any other connectors in the second lane; and
whereinthe first, second, third, fourth, fifth, sixth, seventh, eighth, and ninth program instructions are stored on the non-transitory computer readable storage media for execution by the processor via the computer readable memory. - View Dependent Claims (10, 11, 12)
wherein the tenth program instructions are stored on the non-transitory computer readable storage media for execution by the processor via the computer readable memory.
-
-
11. The system of claim 9, wherein wc is not immutable, wherein wc is from a set of non-immutable graphical nodes, wc, in an interconnected neighborhood N(k), wherein nodes from wc can cross the regional boundaries in the process diagram, and wherein the system further comprises:
-
tenth program instructions to calculate spatial adjustment of nodes in the process diagram by executing the formula;
Δ
wi=α
(k)h(nc,ni)[x−
wi], niϵ
N(k)where α
(k) is an adaption rate, having a value between 0 and 1, that diminishes with every iteration k;
h(nc, ni) is a neighborhood function, having a value between 0 and 1, that diminishes as a topographical distance increases between the winning graphical node and other nodes ni in the neighborhood N(k) and wherein N(k) defines a neighborhood boundary during an iteration k and decreases over a span of the iterations, such that niϵ
N(k) refers to every k iteration of output nodes n in the neighborhood N(k); andeleventh program instructions to determine α
(k) h(nc, ni) by executing the formula;
-
-
12. The system of claim 9, further comprising:
-
tenth program instructions to recursively randomly generate the spatial input vector x, locate the closest graphical node wc, and adjust the position of the closest graphical node wc, until a weight adaption rate drops below a predefined threshold; and
whereinthe tenth program instructions are stored on the non-transitory computer readable storage media for execution by the processor via the computer readable memory.
-
Specification