Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
08/31/14 18:28:25 (10 years ago)
Author:
bburlacu
Message:

#1772: Fixed bug and improved handling of elite individuals in the genealogy analyzer. Fixed minor bug in the tracing code. Other minor cosmetic improvements to the GenealogyGraph and FragmentGraphView.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.EvolutionTracking/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/Tracking/FragmentGraphView.cs

    r11253 r11318  
    2727using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
    2828using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views;
    29 using HeuristicLab.EvolutionTracking;
    3029using HeuristicLab.MainForm;
    3130using HeuristicLab.Visualization;
     
    3837    private const int PreferredVerticalSpacing = 25;
    3938
    40     private ReingoldTilfordLayoutEngine<TileLayoutNode> layoutEngine;
    41     private ReingoldTilfordLayoutEngine<ISymbolicExpressionTreeNode> symbolicExpressionEngine;
    42 
    43     private Dictionary<FragmentNode, TileLayoutNode> tileDictionary;
     39    private readonly ReingoldTilfordLayoutEngine<TileLayoutNode> layoutEngine;
     40    private readonly ReingoldTilfordLayoutEngine<ISymbolicExpressionTreeNode> symbolicExpressionEngine;
     41
     42    private readonly Dictionary<FragmentNode, TileLayoutNode> nodeToTileMap;
    4443
    4544    private SymbolicExpressionTreeTile Root { get; set; }
     
    6362        NodeHeight = 40
    6463      };
    65       tileDictionary = new Dictionary<FragmentNode, TileLayoutNode>();
     64      nodeToTileMap = new Dictionary<FragmentNode, TileLayoutNode>();
    6665    }
    6766
    6867    private void MakeTiles() {
    6968      var chart = symbolicExpressionChartControl.Chart;
    70       tileDictionary.Clear();
     69      nodeToTileMap.Clear();
    7170      foreach (var node in Content.Vertices) {
    72         var graphNode = (IGenealogyGraphNode<ISymbolicExpressionTree>)node.Data;
    7371        var tile = new SymbolicExpressionTreeTile(chart);
    7472        tile.LayoutEngine = symbolicExpressionEngine;
    7573        tile.Label = "Generation " + node.Data.Rank + Environment.NewLine +
    7674                     "Quality " + String.Format("{0:0.000}", node.Data.Quality);
    77         tile.Root = graphNode.Data.Root;
     75        tile.Root = node.Data.Data.Root;
    7876        var tileNode = new TileLayoutNode { Tile = tile };
    79         tileDictionary.Add(node, tileNode);
     77        nodeToTileMap.Add(node, tileNode);
    8078      }
    8179      foreach (var node in Content.Vertices.Where(n => n.OutArcs.Any())) {
    82         var layoutNode = tileDictionary[node];
    83         layoutNode.Children = new List<TileLayoutNode>(node.OutArcs.Select(a => tileDictionary[(FragmentNode)a.Target]));
     80        var layoutNode = nodeToTileMap[node];
     81        layoutNode.Children = new List<TileLayoutNode>(node.OutArcs.Select(a => nodeToTileMap[(FragmentNode)a.Target]));
    8482      }
    8583    }
     
    8987      var nodes = Content.Vertices.ToList();
    9088      var root = nodes[0];
    91       var fragmentRoot = tileDictionary[root];
     89      var fragmentRoot = nodeToTileMap[root];
    9290      int maxTileWidth = 0, maxTileHeight = 0;
    93       var tiles = nodes.Select(x => tileDictionary[x].Tile).ToList();
     91      var tiles = nodes.Select(x => nodeToTileMap[x].Tile).ToList();
    9492
    9593      foreach (var tile in tiles) {
     
    114112      // add connections between the tiles
    115113      foreach (var node in nodes) {
    116         var aTile = tileDictionary[node].Tile;
     114        var aTile = nodeToTileMap[node].Tile;
    117115        var aSize = aTile.Size;
    118116        var aPos = aTile.Position;
     
    158156
    159157        foreach (var child in node.OutArcs.Select(x => (FragmentNode)x.Target)) {
    160           var bTile = tileDictionary[child].Tile;
     158          var bTile = nodeToTileMap[child].Tile;
    161159          var bSize = bTile.Size;
    162160          var bPos = bTile.Position;
     
    169167      }
    170168      // center display on the root of the fragment graph
    171       symbolicExpressionChartControl.Chart.Move(tileDictionary[root].Tile.Position.X, tileDictionary[root].Tile.Position.Y);
     169      symbolicExpressionChartControl.Chart.Move(nodeToTileMap[root].Tile.Position.X, nodeToTileMap[root].Tile.Position.Y);
    172170      symbolicExpressionChartControl.UpdateEnabled = true;
    173171      symbolicExpressionChartControl.EnforceUpdate();
Note: See TracChangeset for help on using the changeset viewer.