510 likes | 650 Views
Label Placement and graph drawing. Imo Lieberwerth. Overview. Introduction The Edge Label Placement problem The Multiple Label Placement problem. Introduction. Automated label placement originates from the Cartography Many years of research Three types: Point labeling Line labeling
E N D
Label Placement and graph drawing Imo Lieberwerth
Overview • Introduction • The Edge Label Placement problem • The Multiple Label Placement problem
Introduction • Automated label placement originates from the Cartography • Many years of research • Three types: • Point labeling • Line labeling • Area labeling
Point labeling • Label features like • cities • nodes of a graph
Line labeling • Label features like • Rivers • streets
Rules for line labeling • The label must follow the shape of the line (but not to strict) • At long lines the label must be repeated • No extra white spaces between characters • Vertical lines: • Left of the map: First letter towards the bottom • Right of the map: First letter towards the top
Area labeling • Label features like • Countries • Oceans
Rules for area labeling • Stretch label over whole the area • Areal labels preferably have the same shape • Use horizontal or curved labels • Evenly curved labels • Repeat labels at suitable intervals
Labeling quality • Problem of assigning text labels to graphical features such that association of labels is clear • The label assignment must be unambiguous • Lot of work is done by Imhof and Yoeli
Problematic cases Problem association Thunder Bay and point Problem readability name Problem visibility highway 20
Basic rules for labeling quality • Labels should be easily read and easily and quickly located • No overlap of a label with other labels or other graphical features are allowed • Each label can be easily identified with exactly one graphical feature of the layout (the assignment is unambiguous) • Each label must be placed in the best possible position
COST-function • A optimal assignment can produces labels that do not strictly follow the rules • COST(i, j) is penalty for label j to edge i • Penalty with respect to the ranking of label j • Penalty for violating the basic rules
Labeling space Discrete labeling space Continuous labeling space
The ELP problem • ELP: Is the problem of placing text labels assigned to particular edges of a graph • ELP problem has received little attention • Complexity is solved in 1996 and is NP-Hard by Kakoulis and Tollis • Most algorithms do not produce desired results • Trapped in local optima • Take exponential time • The ELP-algorithm
The optimal ELP problem Question: Find a labeling assignment that minimizes the following function:
The ELP algorithm • Assumptions: • All labels have the same size • Each edge has only one label associated with it • Any acceptable solution must guarantee: • Any label must be free of overlap (except his associated edge) • Any label must be very close (touch) to its associated edge
Main idea of the algorithm • Divide the input drawing into horizontal strips of equal height • Finite number of label positions • Find the set of label positions for each edge • Each position must be inside a strip • Each position has to touch a edge but not intersect this edge (or other graphical feature) • Each label position overlaps at most with one other label position
1 3 4 2 Example
1 3 4 2 Example
1 3 4 2 Example
1 3 4 2 Example
Matching problem • Transform ELP problem where each edge is matched to one of his label positions • Group label positions together: • If two positions overlap they belong to the same group • Else to a single member group • Only one member of group in assignment • Guaranties labels do not overlap each other
Matching graph • Define matching graph Gm(Ve ,Vg ,Em) • Each node e inVe corresponds to an edge • Each node r in Vgcorresponds to a group of label positions • Each edge(e, r) in Emconnects a node e inVe to a node r in Vg if and only if e has a label positioning that belongs to group r • Gm is a bipartite graph • For each edge in Gm add the cost for assigning label
1 3 4 2 Example 1,2 3,4 g1 g2 g3 g4 g5 g2 g5 g1 g6 g3 g4 g6
ELP_Algorithm INPUT: A drawing D of the graph G(V, E) OUTPUT: A label assignment • Split D into horizontal strips • Find all label positions for each edge and construct the groups R • Create the matching graph Gmfor D • Match edges to label positions , by finding a matching in Gm
Finding a matching • Theorem. Let A be the set of label positions for all edges of a drawing D of graph G(V, E). If every label position in A overlaps at most one other label position in A, then a maximum cardinality minimum weight matching of the corresponding matching graph Gm produces an optimal solution to the ELP problem with no overlaps. • You can use any known algorithm to find a maximum cardinality minimum weight matching
Fast Matching Heuristic INPUT: Matching graph Gm OUTPUT: A maximum cardinality matching for Gm with low weight • IF the minimum weight incident edge a node in VE connects this node to a node in VG of degree 1THEN Assign this edge as a matched edge update Gm • IF a node in VE in has degree oneTHEN Assign its incident edge as a matched edge update Gm • Repeat steps 1 and 2 until no new edge can be matched • Delete all nodes of degree 0 from GmFOR each node e in VE DO:Remove all but the two incidents edges of e with the least weight • The remaining graph consists of simple cycles and/or paths. Find the only two maximum cardinality matchings for each component. Choose the matching of minimum weight.
Step 1 INPUT: Matching graph Gm OUTPUT: A maximum cardinality matching for Gm with low weight • IF the minimum weight incident edge a node in VE connects this node to a node in VG of degree 1THEN Assign this edge as a matched edge update Gm • IF a node in VE in has degree oneTHEN Assign its incident edge as a matched edge update Gm • Repeat steps 1 and 2 until no new edge can be matched • Delete all nodes of degree 0 from GmFOR each node e in VE DO:Remove all but the two incidents edges of e with the least weight • The remaining graph consists of simple cycles and/or paths. Find the only two maximum cardinality matchings for each component. Choose the matching of minimum weight.
Example step 1 Ve Ve Vg Vg
Step 2 INPUT: Matching graph Gm OUTPUT: A maximum cardinality matching for Gm with low weight • IF the minimum weight incident edge a node in VE connects this node to a node in VG of degree 1THEN Assign this edge as a matched edge update Gm • IF a node in VE in has degree oneTHEN Assign its incident edge as a matched edge update Gm • Repeat steps 1 and 2 until no new edge can be matched • Delete all nodes of degree 0 from GmFOR each node e in VE DO:Remove all but the two incidents edges of e with the least weight • The remaining graph consists of simple cycles and/or paths. Find the only two maximum cardinality matchings for each component. Choose the matching of minimum weight.
Example step 2 Ve Ve Vg Vg
Fast Matching Heuristic INPUT: Matching graph Gm OUTPUT: A maximum cardinality matching for Gm with low weight • IF the minimum weight incident edge a node in VE connects this node to a node in VG of degree 1THEN Assign this edge as a matched edge update Gm • IF a node in VE in has degree oneTHEN Assign its incident edge as a matched edge update Gm • Repeat steps 1 and 2 until no new edge can be matched • Delete all nodes of degree 0 from GmFOR each node e in VE DO:Remove all but the two incidents edges of e with the least weight • The remaining graph consists of simple cycles and/or paths. Find the only two maximum cardinality matchings for each component. Choose the matching of minimum weight.
Fast Matching Heuristic INPUT: Matching graph Gm OUTPUT: A maximum cardinality matching for Gm with low weight • IF the minimum weight incident edge a node in VE connects this node to a node in VG of degree 1THEN Assign this edge as a matched edge update Gm • IF a node in VE in has degree oneTHEN Assign its incident edge as a matched edge update Gm • Repeat steps 1 and 2 until no new edge can be matched • Delete all nodes of degree 0 from GmFOR each node e in VE DO:Remove all but the two incidents edges of e with the least weight • The remaining graph consists of simple cycles and/or paths. Find the only two maximum cardinality matchings for each component. Choose the matching of minimum weight.
Example step 4 Ve Ve Vg Vg
Fast Matching Heuristic INPUT: Matching graph Gm OUTPUT: A maximum cardinality matching for Gm with low weight • IF the minimum weight incident edge a node in VE connects this node to a node in VG of degree 1THEN Assign this edge as a matched edge update Gm • IF a node in VE in has degree oneTHEN Assign its incident edge as a matched edge update Gm • Repeat steps 1 and 2 until no new edge can be matched • Delete all nodes of degree 0 from GmFOR each node e in VE DO:Remove all but the two incidents edges of e with the least weight • The remaining graph consists of simple cycles and/or paths. Find the only two maximum cardinality matchings for each component. Choose the matching of minimum weight.
Example step 5 • Traverse cycle (or path) and pick only the even or odd edges as part of the matching Ve Ve Vg Vg
Remark • Algorithm don’t label horizontal edges • Solution: rotate the drawing
Extension and results • Post processing step: • Relaxing the restrictions by allowing labels to overlap their associated edges • The algorithm works very well for hierarchical and other straight-line drawing • Not suitable for orthogonal drawings
The MLP problem • Konstantinos G. Kakoulis and Ioannis G. Tollis. On the multiple label placement problem. In Proc. 10th Canadian Conf. Computational Geometry (CCCG’98), pages 66–67, 1998. • Each graphical feature is associated with more then one label • Constraints: example with single edge and source and target node • Proximity: Label Ls must be in close proximity with source node. Define maximum distance • Partial Order: The source node label must closer to the source node then the other label. Define a partial order • Priority: First important labels and then the other labels if there is a space
Algorithm 1 • Algorithm for solving the MLP problem • Iterative approach • Main loop • i-th iteration of the loop, assigns the i-th label for graphical feature • This algorithm can take into account all three constraints • This algorithm can use the ELP-algorithm
Example An orthogonal drawing A hierarchical drawing
Algorithm 2 • Non-iterative fashion and extension of ELP-algorithm • Sketch algorithm: • Find set of label positions for each graphical feature • Label positions that overlap each other are grouped in clusters • Each cluster is matched to at most one graphical feature using flow techniques
Graphs • First create bipartite graph matching graph Gm(Vf , Vc , Em) • Each graphical feature is represented by a node in Vf • Each cluster is represented by a node in Vc • Each edge in Em connect • Then transform Gm to a flow graph Gflow(s, t,Vf , Vc , Em)
Flow graph The flow graph of algorithm 2
Flow graph • Assign capacities: • Each edge of original matching graph has capacity one • Each edge (c, t) has capacity one • Each edge (s, v) has capacity equal to the number of labels associated with v • Include the cost of the label positioning for each edge • Solve the maximum flow minimum cost problem for the flow graph Gflow
Flow graph The flow graph of algorithm 2
Example Circular drawing with 3 labels per edge and node
Experimental Results • Both algorithms perform well and the same with respect to the success rate • The flow method produces a slightly better quality of label assignments • If labels have variable size the algorithm 1 would be the best choice