IP Library Granted Patent US 8,902,231
Granted Patent B2
US 8,902,231 · App. 11/551,429 · Granted Dec 2, 2014

Method and apparatus for displaying graphical representations of graph layouts

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,902,231
App. No.
11/551,429
Granted
Dec 2, 2014
Kind
B2
Abstract

The invention includes a method and apparatus for displaying a graphical representation of a graph including nodes and edges. A layout of the graph is determined. The layout of the graph is determined by determining respective positions of each of the nodes and edges within the layout. The position of each node is determined using a first model and, optionally, a second force model, wherein the first force model comprises a substantially linear repulsive force in a first region, a substantially exponential repulsive force in a second region, and an attractive force in a third region. In one embodiment, the position of each edge may be determined using the first force model. A graphical representation of the layout is generated. The graphical representation of the layout is displayed to one or more users.

Claims (82)

1. A method for generating a graphical representation of a graph comprising a plurality of nodes and a plurality of edges, comprising:

using a processor to perform steps comprising:

determining, for each of the nodes of the graph, a position of the node within a layout of the graph;

wherein the positions of the nodes within the layout of the graph are determined using a force model comprising a substantially linear repulsive force in a first region, a substantially exponential repulsive force in a second region, and an attractive force in a third region;

wherein, for each of a plurality of pairs of nodes of the graph for which the force model is used, the region of the force model that is used is determined using a distance between the nodes in the pair of nodes; and

generating a graphical representation of the graph using the determined positions of the nodes within the layout of the graph.

2. The method of claim 1 , wherein the force model is a first force model, wherein the positions of the nodes within the layout of the graph are determined using the first force model and a second force model, wherein the second force model comprises a substantially linear attractive force.

3. The method of claim 2 , wherein each of the nodes of the graph has a vector associated therewith, wherein determining the positions of the within the layout of the graph comprises:

for each pair of nodes in the graph, determining a first force for the node pair using the first force model, and adding the first force to the respective vectors associated with the nodes in the node pair;

for each pair of nodes in the graph connected by an edge of the graph, determining a second force for the node pair using the second force model, and adding the second force to the respective vectors associated with the nodes in the node pair connected by the edge; and

determining the positions of the nodes using the respective vectors associated with the nodes.

4. The method of claim 3 , wherein determining the positions of the nodes using the respective vectors associated with the nodes comprises:

identifying, for each of the nodes, a previous position associated with the node;

determining, for each of the nodes, a displacement value for the node using the respective vector for the node; and

determining the positions of the nodes by updating the previous positions of the nodes using the respective displacement values of the nodes.

5. The method of claim 4 , wherein determining the displacement values for the nodes comprises:

dividing, for each of the nodes, the vector associated with the node by a damping parameter.

6. The method of claim 4 , further comprising:

computing an absolute value of each of the displacement values of the nodes;

computing a summation of the absolute values of the displacement values of the nodes; and

determining, using the summation of the absolute values, whether the positions of the nodes comprise final positions of the nodes within the layout.

7. The method of claim 1 , wherein the substantially linear repulsive force in the first region comprises a substantially constant repulsive force, wherein the substantially exponential repulsive force in the second region decreases with an increase in distance between nodes, wherein the attractive force in the third region increases with an increase in distance between nodes.

8. The method of claim 1 , wherein the region of the force model to be used for a pair of nodes is selected according to a distance x between respective centers of the nodes in the pair of nodes.

9. The method of claim 8 , wherein the first region is used when the distance x is in a first range 0<x<2r, wherein the second region is used when the distance x is in a second range 2r<x<2r+d, wherein the third region is used when the distance x is in a third range 2r+d<x, wherein r is a radius of each node in the pair of nodes, wherein d is an adjustable parameter.

10. The method of claim 1 , further comprising:

displaying the graphical representation of the layout of the graph on a display device.

11. The method of claim 1 , further comprising:

determining, for each edge of the graph, a position of the edge within the layout of the graph.

12. The method of claim 11 , wherein determining the positions of the edges of the graph, comprises:

fixing the positions of the nodes within the layout of the graph;

splitting each edge into at least two sub-edges;

generating, for each edge, a virtual node between each pair of sub-edges formed from the edge;

determining a position of each virtual node within the layout of the graph; and

splining, for each edge, the sub-edges formed from the edge using the virtual nodes between each pair of sub-edges formed from the edge.

13. The method of claim 12 , wherein the position of each virtual node is determined using the force model.

14. The method of claim 12 , wherein the force model is a first force model, wherein a second force model comprises a substantially linear attractive force, wherein each virtual node has a vector associated therewith, wherein determining the positions of the virtual nodes comprises:

for each pair of nodes including at least one virtual node, determining a first force using the first force model, and adding the first force to the at least one vector associated with the respective at least one virtual node of the node pair;

determining, for each of the sub-edges, a second force using the second force model, and adding the second force to the at least one vector associated with the at least one virtual node connected to the sub-edge; and

determining the positions of the virtual nodes using the respective vectors associated with the virtual nodes.

15. An apparatus for generating a graphical representation of a graph comprising a plurality of nodes and a plurality of edges, comprising:

means for determining, for each of the nodes of the graph, a position of the node within a layout of the graph;

wherein the positions of the nodes within the layout of the graph are determined using a force model comprising a substantially linear repulsive force in a first region, a substantially exponential repulsive force in a second region, and an attractive force in a third region;

wherein, for each of a plurality of pairs of nodes of the graph for which the force model is used, the region of the force model that is used is determined using a distance between the nodes in the pair of nodes; and

means for generating a graphical representation of the graph using the determined positions of the nodes within the layout of the graph.

16. The apparatus of claim 15 , wherein the force model is a first force model, wherein the positions of the nodes within the layout of the graph are determined using the first force model and a second force model, wherein the second force model comprises a substantially linear attractive force.

17. The apparatus of claim 16 , wherein each of the nodes of the graph has a vector associated therewith, wherein the means for determining the positions of the within the layout of the graph comprises:

means for determining, for each pair of nodes in the graph, a first force for the node pair using the first force model, and adding the first force to the respective vectors associated with the nodes in the node pair;

means for determining, for each pair of nodes in the graph connected by an edge of the graph, a second force for the node pair using the second force model, and adding the second force to the respective vectors associated with the nodes in the node pair connected by the edge; and

means for determining the positions of the nodes using the respective vectors associated with the nodes.

18. The apparatus of claim 17 , wherein the means for determining the positions of the nodes using the respective vectors associated with the nodes comprises:

means for identifying, for each of the nodes, a previous position associated with the node;

means for determining, for each of the nodes, a displacement value for the node using the respective vector for the node; and

means for determining the positions of the nodes by updating the previous positions of the nodes using the respective displacement values of the nodes.

19. The apparatus of claim 18 , wherein the means for determining the displacement values for the nodes comprises:

means for dividing, for each of the nodes, the vector associated with the node by a damping parameter.

20. The apparatus of claim 18 , further comprising:

means for computing an absolute value of each of the displacement values of the nodes;

means for computing a summation of the absolute values of the displacement values of the nodes; and

means for determining, using the summation of the absolute values, whether the positions of the nodes comprise final positions of the nodes within the layout.

21. The apparatus of claim 15 , wherein the substantially linear repulsive force in the first region comprises a substantially constant repulsive force, wherein the substantially exponential repulsive force in the second region decreases with an increase in distance between nodes, wherein the attractive force in the third region increases with an increase in distance between nodes.

22. The apparatus of claim 15 , wherein the region of the force model to be used for a pair of nodes is selected according to a distance x between respective centers of the nodes in the pair of nodes.

23. The apparatus of claim 22 , wherein the first region is used when the distance x is in a first range 0<x<2r, wherein the second region is used when the distance x is in a second range 2r<x<2r+d, wherein the third region is used when the distance x is in a third range 2r+d<x, wherein r is a radius of each node in the pair of nodes, wherein d is an adjustable parameter.

24. The apparatus of claim 15 , further comprising:

means for displaying the graphical representation of the layout of the graph.

25. The apparatus of claim 15 , further comprising:

means for determining, for each edge of the graph, a position of the edge within the layout of the graph.

26. The apparatus of claim 25 , wherein the means for determining the positions of the edges of the graph, comprises:

means for fixing the positions of the nodes within the layout of the graph;

means for splitting each edge into at least two sub-edges;

means for generating, for each edge, a virtual node between each pair of sub-edges formed from the edge;

means for determining a position of each virtual node within the layout of the graph; and

means for splining, for each edge, the sub-edges formed from the edge using the virtual nodes between each pair of sub-edges formed from the edge.

27. The apparatus of claim 26 , wherein the position of each virtual node is determined using the first force model.

28. The apparatus of claim 26 , wherein the force model is a first force model, wherein a second force model comprises a substantially linear attractive force, wherein each virtual node has a vector associated therewith, wherein the means for determining the positions of the virtual nodes comprises:

means for determining, for each pair of nodes including at least one virtual node, a first force using the first force model, and adding the first force to the at least one vector associated with the respective at least one virtual node of the node pair;

means for determining, for each of the sub-edges, a second force using the second force model, and adding the second force to the at least one vector associated with the at least one virtual node connected to the sub-edge; and

means for determining the positions of the virtual nodes using the respective vectors associated with the virtual nodes.

29. A non-transitory computer readable storage medium storing a software program, that, when executed by a computer, causes the computer to perform a method for displaying a graphical representation of a graph comprising a plurality of nodes and a plurality of edges, the method comprising:

determining, for each of the nodes of the graph, a position of the node within a layout of the graph;

wherein the positions of the nodes within the layout of the graph are determined using a force model comprising a substantially linear repulsive force in a first region, a substantially exponential repulsive force in a second region, and an attractive force in a third region;

wherein, for each of a plurality of pairs of nodes of the graph for which the force model is used, the region of the force model that is used is determined using a distance between the nodes in the pair of nodes; and

generating a graphical representation of the graph using the determined positions of the nodes within the layout of the graph.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2022
From: ALCATEL LUCENT SAS
To: PIECE FUTURE PTE LTD
Reel/Frame 058673/0931 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2014
From: ALCATEL-LUCENT USA INC.
To: ALCATEL LUCENT
Reel/Frame 034357/0111 →
MERGER AND CHANGE OF NAME Recorded Oct 23, 2014
From: ALCATEL USA MARKETING, INC.; ALCATEL USA SOURCING, INC.; LUCENT TECHNOLOGIES INC.; LUCENT TECHNOLOGIES INC.
To: ALCATEL-LUCENT USA INC.
Reel/Frame 034018/0640 →
RELEASE OF SECURITY INTEREST Recorded Sep 30, 2014
From: CREDIT SUISSE AG
To: ALCATEL LUCENT
Reel/Frame 033868/0555 →
SECURITY AGREEMENT Recorded Jan 30, 2013
From: ALCATEL LUCENT
To: CREDIT SUISSE AG
Reel/Frame 029821/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2006
From: HEINKEL, ULRICH KARL; SCHNEIDER, AXEL; WALTER, STEPHAN
To: LUCENT TECHNOLOGIES INC.
Reel/Frame 018418/0150 →