Changes for page KLay Layered
Last modified by Richard Kreissig on 2023/09/14 09:07
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Objects (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. uru1 +XWiki.cds - Content
-
... ... @@ -30,29 +30,7 @@ 30 30 31 31 Don't hesitate to switch between the tasks and don't be afraid of exceptions or errors during debugging. When you use your layering phase without the intermediate processors the rest of KLay Layered will most likely complain (for cyclic input graphs). In other words, the following two assignments only work combined and not alone. 32 32 33 -{{panel title="Assignment (b)"}} 34 -Create a layout phase called 35 - 36 -{{code language="none"}} 37 -NullPhase 38 -{{/code}} 39 - 40 - that does nothing and can be used as a cycle breaking strategy. Hint: It has to implement the 41 - 42 -{{code language="none"}} 43 -ILayoutPhase 44 -{{/code}} 45 - 46 - interface and has to be added to the 47 - 48 -{{code language="none"}} 49 -CycleBreakingStrategy 50 -{{/code}} 51 - 52 - enumeration. 53 -{{/panel}} 54 - 55 -{{panel title="Assignment (b)"}} 33 +{{panel title="Assignment (1)"}} 56 56 Write an intermediate processor that takes a //layered// graph (i.e. the result of assigment 2) as input and reverses edges such that the output graph is acyclic. Here are some hints. 57 57 58 58 The {{code language="none"}}LEdge{{/code}} offers a method {{code language="none"}}reverseEdge{{/code}} that does parts of the job for you and marks the edge such that the {{code language="none"}}ReversedEdgeRestorer {{/code}}will take care of 'back'-reversing the edge at the end of the algorithm. Your class should extend the {{code language="none"}}ILayoutProcessor{{/code}} interface. ... ... @@ -70,7 +70,7 @@ 70 70 {{/code}} 71 71 {{/panel}} 72 72 73 -{{panel title="Assignment ( c)"}}51 +{{panel title="Assignment (2)"}} 74 74 Write a layer assignment algorithm that assigns nodes of a possibly cyclic input graph to layers. The only requirement is that you don't assign layers randomly. 75 75 76 76 The intermediate processing configuration has to include your previously created intermediate processor as well as the existing {{code language="none"}}ReversedEdgeRestorer{{/code}}. The {{code language="none"}}IntermediateProcessorStrategy{{/code}} can help you to find the phase after which to execute the {{code language="none"}}ReversedEdgeRestorer{{/code}}. ... ... @@ -98,18 +98,16 @@ 98 98 Use {{code language="none"}}node.setLayer(layerX);{{/code}} to add assign a layer to a node. Internally, the node will be added to the layer's list of nodes. 99 99 100 100 Don't forget to let the switch statements in the {{code language="none"}}LayeringStrategy{{/code}} and {{code language="none"}}IntermediateProcessorStrategy{{/code}} enumerations know about the new classes. 101 - 102 -The layout options you definitely need are {{code language="none"}}de.cau.cs.kieler.klay.layered.cycleBreaking{{/code}} and {{code language="none"}}de.cau.cs.kieler.klay.layered.nodePlace{{/code}}. 103 103 {{/tip}} 104 104 105 - 81 +{{note title="ToDo"}} 82 +How to configure the algorithm. 83 +{{/note}} 106 106 107 107 108 108 109 109 110 110 111 - 112 - 113 113 A result might look like this. The default strategies of KLay Layered try to achieve short edges and a low number of reversed edges. The left screenshot shows the result of a random layerer and is obviously inferior to the result seen in the right screenshot. 114 114 115 115
- Confluence.Code.ConfluencePageClass[0]
-
- Id
-
... ... @@ -1,1 +1,1 @@ 1 -1075178 31 +10751780 - URL
-
... ... @@ -1,1 +1,1 @@ 1 -https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/TUT/pages/1075178 3/KLay Layered1 +https://rtsys.informatik.uni-kiel.de/confluence//wiki/spaces/TUT/pages/10751780/KLay Layered