#region License Information /* HeuristicLab * Copyright (C) 2002-2013 Heuristic and Evolutionary Algorithms Laboratory (HEAL) * * This file is part of HeuristicLab. * * HeuristicLab is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * HeuristicLab is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with HeuristicLab. If not, see . */ #endregion using System; using System.Linq; using HeuristicLab.Analysis.SolutionCaching.PermutationEncoding; using HeuristicLab.Core.Views; using HeuristicLab.Encodings.PermutationEncoding; using HeuristicLab.MainForm; namespace HeuristicLab.Analysis.AlgorithmBehavior.Analyzers.Views { [View("ConvexHull View")] [Content(typeof(PermutationSolutionCache), false)] public partial class ConvexHullView : ItemView { public ConvexHullView() { InitializeComponent(); } public new PermutationSolutionCache Content { get { return (PermutationSolutionCache)base.Content; } set { base.Content = value; } } protected override void OnContentChanged() { base.OnContentChanged(); if (Content != null) { } } private void testConvexHullButton_Click(object sender, System.EventArgs e) { for (int i = 0; i < 20; i++) { var sols = Content.GetSolutionsFromGeneration(i); var input = sols.Select(x => ConvertPermutationToVertex(x)).ToArray(); var convexHull = HyperHull.CalculateUsingSMO(input); resultsTextBox.Text += "Nr. of Points in Generation " + i + ": " + convexHull.Count + Environment.NewLine; resultsTextBox.Text += "Volume of Convex Hull in Generation " + i + " is: " + ConvexHullMeasures.CalculateVolume(convexHull) + Environment.NewLine; } } private double[] ConvertPermutationToVertex(Permutation p) { double[] vertex = p.Select(x => (double)x).ToArray(); return vertex; } } }