Index: branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/ExperimentViewPage.Designer.cs
===================================================================
--- branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/ExperimentViewPage.Designer.cs	(revision 7939)
+++ branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/ExperimentViewPage.Designer.cs	(revision 7939)
@@ -0,0 +1,61 @@
+﻿namespace HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard {
+  partial class ExperimentViewPage {
+    /// <summary>
+    /// Required designer variable.
+    /// </summary>
+    private System.ComponentModel.IContainer components = null;
+
+    /// <summary>
+    /// Clean up any resources being used.
+    /// </summary>
+    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
+    protected override void Dispose(bool disposing) {
+      if (disposing && (components != null)) {
+        components.Dispose();
+      }
+      base.Dispose(disposing);
+    }
+
+    #region Windows Form Designer generated code
+
+    /// <summary>
+    /// Required method for Designer support - do not modify
+    /// the contents of this method with the code editor.
+    /// </summary>
+    private void InitializeComponent() {
+      this.experimentListView = new HeuristicLab.Optimization.Views.ExperimentListView();
+      this.SuspendLayout();
+      // 
+      // wizardBanner
+      // 
+      this.wizardBanner.Size = new System.Drawing.Size(640, 81);
+      // 
+      // experimentListView
+      // 
+      this.experimentListView.Caption = "Experiment List View";
+      this.experimentListView.Content = null;
+      this.experimentListView.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.experimentListView.Location = new System.Drawing.Point(0, 81);
+      this.experimentListView.Name = "experimentListView";
+      this.experimentListView.ReadOnly = false;
+      this.experimentListView.Size = new System.Drawing.Size(640, 399);
+      this.experimentListView.TabIndex = 1;
+      // 
+      // ExperimentViewPage
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.Controls.Add(this.experimentListView);
+      this.Name = "ExperimentViewPage";
+      this.Size = new System.Drawing.Size(640, 480);
+      this.SetActive += new System.ComponentModel.CancelEventHandler(this.ExperimentViewPage_SetActive);
+      this.Controls.SetChildIndex(this.wizardBanner, 0);
+      this.Controls.SetChildIndex(this.experimentListView, 0);
+      this.ResumeLayout(false);
+
+    }
+
+    #endregion
+
+    private Optimization.Views.ExperimentListView experimentListView;
+  }
+}
Index: branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/ExperimentViewPage.cs
===================================================================
--- branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/ExperimentViewPage.cs	(revision 7939)
+++ branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/ExperimentViewPage.cs	(revision 7939)
@@ -0,0 +1,21 @@
+﻿using System.ComponentModel;
+
+namespace HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard {
+  public partial class ExperimentViewPage : HeuristicLab.ExperimentGeneration.DataAnalysis.Wizard.WizardPage {
+    private DataAnalysisWizardContext context;
+    public DataAnalysisWizardContext Context {
+      get { return context; }
+    }
+
+    public ExperimentViewPage(DataAnalysisWizardContext context) {
+      InitializeComponent();
+      this.context = context;
+
+    }
+
+    private void ExperimentViewPage_SetActive(object sender, CancelEventArgs e) {
+      experimentListView.Content = context.Experiment;
+      SetWizardButton(Wizard.WizardButtons.None);
+    }
+  }
+}
Index: branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard.csproj
===================================================================
--- branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard.csproj	(revision 7912)
+++ branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard.csproj	(revision 7939)
@@ -42,4 +42,5 @@
       <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.Algorithms.DataAnalysis.Views-3.4.dll</HintPath>
     </Reference>
+    <Reference Include="HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     <Reference Include="HeuristicLab.Collections-3.3">
       <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.Collections-3.3.dll</HintPath>
@@ -63,4 +64,5 @@
       <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.Data.Views-3.3.dll</HintPath>
     </Reference>
+    <Reference Include="HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.4, Version=3.4.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     <Reference Include="HeuristicLab.MainForm-3.3">
       <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.MainForm-3.3.dll</HintPath>
@@ -69,4 +71,5 @@
       <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.MainForm.WindowsForms-3.3.dll</HintPath>
     </Reference>
+    <Reference Include="HeuristicLab.Operators-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     <Reference Include="HeuristicLab.Optimization-3.3">
       <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.Optimization-3.3.dll</HintPath>
@@ -90,7 +93,12 @@
       <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.Problems.DataAnalysis-3.4.dll</HintPath>
     </Reference>
+    <Reference Include="HeuristicLab.Problems.DataAnalysis.Symbolic-3.4, Version=3.4.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
+    <Reference Include="HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4, Version=3.4.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     <Reference Include="HeuristicLab.Problems.DataAnalysis.Views-3.4">
       <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.Problems.DataAnalysis.Views-3.4.dll</HintPath>
     </Reference>
+    <Reference Include="HeuristicLab.Problems.Instances-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
+    <Reference Include="HeuristicLab.Problems.Instances.DataAnalysis-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
+    <Reference Include="HeuristicLab.Selection-3.3, Version=3.3.0.0, Culture=neutral, PublicKeyToken=ba48961d6f65dcec, processorArchitecture=MSIL" />
     <Reference Include="HeuristicLab.Visualization.ChartControlsExtensions-3.3">
       <HintPath>..\..\..\trunk\sources\bin\HeuristicLab.Visualization.ChartControlsExtensions-3.3.dll</HintPath>
Index: branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/MediumAnalysisPage.cs
===================================================================
--- branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/MediumAnalysisPage.cs	(revision 7912)
+++ branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/MediumAnalysisPage.cs	(revision 7939)
@@ -3,10 +3,18 @@
 using System.Linq;
 using HeuristicLab.Algorithms.DataAnalysis;
+using HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm;
+using HeuristicLab.Common;
 using HeuristicLab.Data;
 using HeuristicLab.Encodings.ParameterConfigurationTreeEncoding;
 using HeuristicLab.Optimization;
 using HeuristicLab.Problems.DataAnalysis;
+using HeuristicLab.Problems.DataAnalysis.Symbolic.Regression;
 namespace HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard {
   public partial class MediumAnalysisPage : HeuristicLab.ExperimentGeneration.DataAnalysis.Wizard.WizardPage {
+    private const int nrOfRepetitions = 10;
+    private const string gaCrossover = "SubtreeSwappingCrossover";
+    private const string gaMutator = "MultiSymbolicExpressionTreeManipulator";
+    private const string gaSelector = "GenderSpecificSelection";
+
     private BackgroundWorker worker;
 
@@ -22,4 +30,6 @@
       worker.DoWork += new DoWorkEventHandler(GenerateExperimentsTask);
       worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(WorkerCompleted);
+      worker.WorkerReportsProgress = true;
+      worker.ProgressChanged += new ProgressChangedEventHandler(WorkerProgressChanged);
 
     }
@@ -28,27 +38,113 @@
       DataAnalysisWizardContext c = e.Argument as DataAnalysisWizardContext;
       IProblem problem = c.Problem;
+
+      // SVR Experiment -------------------------------------------------------
       SupportVectorRegression svr = new SupportVectorRegression();
       svr.Problem = (IRegressionProblem)problem;
       ParameterConfigurationTree vc = new ParameterConfigurationTree(svr, problem);
-      var nuPc = vc.AlgorithmConfiguration.ParameterConfigurations.Where(x => x.ParameterName == "Nu").SingleOrDefault();
-      nuPc.Optimize = true;
-      var nuVc = (RangeValueConfiguration)nuPc.ValueConfigurations.First();
-      nuVc.Optimize = true;
-      nuVc.RangeConstraint = new DoubleValueRange(new DoubleValue(0.1), new DoubleValue(0.9), new DoubleValue(0.1));
 
-      var costPc = vc.AlgorithmConfiguration.ParameterConfigurations.Where(x => x.ParameterName == "Cost").SingleOrDefault();
-      costPc.Optimize = true;
-      var costVc = (RangeValueConfiguration)costPc.ValueConfigurations.First();
-      costVc.Optimize = true;
-      costVc.RangeConstraint = new DoubleValueFactorRange(new DoubleValue(0.03125), new DoubleValue(32768), new DoubleValue(4));
+      var nuRange = new DoubleValueRange(new DoubleValue(0.1), new DoubleValue(0.9), new DoubleValue(0.1));
+      SetParameterRangeContraint(vc, "Nu", nuRange);
 
-      var gammaPc = vc.AlgorithmConfiguration.ParameterConfigurations.Where(x => x.ParameterName == "Gamma").SingleOrDefault();
-      gammaPc.Optimize = true;
-      var gammaVc = (RangeValueConfiguration)gammaPc.ValueConfigurations.First();
-      gammaVc.Optimize = true;
-      gammaVc.RangeConstraint = new DoubleValueFactorRange(new DoubleValue(6.10352E-05), new DoubleValue(64), new DoubleValue(4));
+      var costRange = new DoubleValueFactorRange(new DoubleValue(0.03125), new DoubleValue(32768), new DoubleValue(4));
+      SetParameterRangeContraint(vc, "Cost", costRange);
 
-      Experiment experiment = vc.GenerateExperiment(svr);
+      var gammaRange = new DoubleValueFactorRange(new DoubleValue(6.10352E-05), new DoubleValue(64), new DoubleValue(4));
+      SetParameterRangeContraint(vc, "Gamma", gammaRange);
+      worker.ReportProgress(5);
+      Experiment svrExperiment = vc.GenerateExperiment(svr);
+      // ======================================================================
+      worker.ReportProgress(20);
+
+      // RF Experiment --------------------------------------------------------
+      RandomForestRegression rfr = new RandomForestRegression();
+      rfr.Problem = (IRegressionProblem)problem;
+      ParameterConfigurationTree rfConfig = new ParameterConfigurationTree(rfr, problem);
+      var rRange = new DoubleValueRange(new DoubleValue(0.1), new DoubleValue(0.7), new DoubleValue(0.1));
+      SetParameterRangeContraint(rfConfig, "R", rRange);
+      var treeRange = new IntValueRange(new IntValue(250), new IntValue(250), new IntValue(250));
+      SetParameterRangeContraint(rfConfig, "Number of trees", treeRange);
+      Experiment rfrExperiment = rfConfig.GenerateExperiment(rfr);
+      // ======================================================================
+      worker.ReportProgress(40);
+      // NN Experiment --------------------------------------------------------
+      NeuralNetworkRegression nnr = new NeuralNetworkRegression();
+      nnr.Problem = (IRegressionProblem)problem;
+      ParameterConfigurationTree nnrConfig = new ParameterConfigurationTree(nnr, problem);
+      var decayRange = new DoubleValueFactorRange(new DoubleValue(0.001), new DoubleValue(100), new DoubleValue(10));
+      SetParameterRangeContraint(nnrConfig, "Decay", decayRange);
+      var nodesRange = new IntValueFactorRange(new IntValue(1), new IntValue(100), new IntValue(3));
+      SetParameterRangeContraint(nnrConfig, "NodesInFirstHiddenLayer", nodesRange);
+      Experiment nnrExperiment = nnrConfig.GenerateExperiment(nnr);
+      // ======================================================================
+      worker.ReportProgress(60);
+      // GP Experiment --------------------------------------------------------
+      OffspringSelectionGeneticAlgorithm osga = new OffspringSelectionGeneticAlgorithm();
+      var prob = new SymbolicRegressionSingleObjectiveProblem();
+      prob.ProblemData = ((IRegressionProblem)problem).ProblemData;
+      //prob.SolutionCreator = new MultiSymbolicDataAnalysisExpressionCreator();
+      osga.Problem = prob;
+      osga.ComparisonFactorLowerBound.Value = 1;
+      osga.Crossover = osga.Problem.Operators.OfType<ICrossover>().FirstOrDefault(x => x.Name == gaCrossover);
+      osga.MaximumEvaluatedSolutions.Value = 500000;
+      osga.MaximumGenerations.Value = 100;
+      osga.MutationProbability = new PercentValue(0.15);
+      osga.Mutator = osga.Problem.Operators.OfType<IManipulator>().FirstOrDefault(x => x.Name == gaMutator);
+      osga.PopulationSize.Value = 500;
+      osga.Selector = osga.SelectorParameter.ValidValues.FirstOrDefault(x => x.Name == gaSelector);
+
+      CrossValidation crossSmall = new CrossValidation();
+      crossSmall.Algorithm = osga;
+      BatchRun batchSmall = new BatchRun("small");
+      batchSmall.Repetitions = nrOfRepetitions;
+      batchSmall.Optimizer = crossSmall;
+
+      CrossValidation crossMedium = (CrossValidation)crossSmall.Clone(new Cloner());
+      var probMedium = (SymbolicRegressionSingleObjectiveProblem)prob.Clone(new Cloner());
+      probMedium.MaximumSymbolicExpressionTreeDepth.Value = 12;
+      probMedium.MaximumSymbolicExpressionTreeLength.Value = 125;
+      crossMedium.Algorithm.Problem = probMedium;
+      BatchRun batchMedium = new BatchRun("medium");
+      batchMedium.Repetitions = nrOfRepetitions;
+      batchMedium.Optimizer = crossMedium;
+
+      CrossValidation crossLarge = (CrossValidation)crossSmall.Clone(new Cloner());
+      var probLarge = (SymbolicRegressionSingleObjectiveProblem)prob.Clone(new Cloner());
+      probLarge.MaximumSymbolicExpressionTreeDepth.Value = 17;
+      probLarge.MaximumSymbolicExpressionTreeLength.Value = 250;
+      crossLarge.Algorithm.Problem = probLarge;
+      BatchRun batchLarge = new BatchRun("large");
+      batchLarge.Repetitions = nrOfRepetitions;
+      batchLarge.Optimizer = crossLarge;
+
+      Experiment gpExperiment = new Experiment();
+      gpExperiment.Optimizers.Add(batchSmall);
+      gpExperiment.Optimizers.Add(batchMedium);
+      gpExperiment.Optimizers.Add(batchLarge);
+      // ======================================================================
+      worker.ReportProgress(80);
+
+      Experiment experiment = new Experiment("Data Analysis Experiment");
+      experiment.Optimizers.Add(svrExperiment);
+      experiment.Optimizers.Add(rfrExperiment);
+      experiment.Optimizers.Add(nnrExperiment);
+      experiment.Optimizers.Add(gpExperiment);
+
+      worker.ReportProgress(100);
+
       e.Result = experiment;
+    }
+
+    private void SetParameterRangeContraint(ParameterConfigurationTree pct, string parameterName, IRange rangeContraint) {
+      var pc = pct.AlgorithmConfiguration.ParameterConfigurations.Where(x => x.ParameterName == parameterName).SingleOrDefault();
+      pc.Optimize = true;
+      var vc = (RangeValueConfiguration)pc.ValueConfigurations.First();
+      vc.Optimize = true;
+      vc.RangeConstraint = rangeContraint;
+
+    }
+
+    private void WorkerProgressChanged(object sender, ProgressChangedEventArgs e) {
+      progressBar1.Value = e.ProgressPercentage;
     }
 
Index: branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/Plugin.cs.frame
===================================================================
--- branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/Plugin.cs.frame	(revision 7912)
+++ branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/Plugin.cs.frame	(revision 7939)
@@ -48,4 +48,6 @@
   [PluginDependency("HeuristicLab.Problems.DataAnalysis", "3.4")]
   [PluginDependency("HeuristicLab.Problems.DataAnalysis.Views", "3.4")]
+  [PluginDependency("HeuristicLab.Problems.Instances", "3.3")]
+  [PluginDependency("HeuristicLab.Problems.Instances.DataAnalysis", "3.3")]
   [PluginDependency("HeuristicLab.Visualization.ChartControlsExtensions", "3.3")]
   public class HeuristicLabExperimentGenerationDataAnalysisExperimentWizardPlugin : PluginBase {
Index: branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/ProblemDataPage.Designer.cs
===================================================================
--- branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/ProblemDataPage.Designer.cs	(revision 7912)
+++ branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/ProblemDataPage.Designer.cs	(revision 7939)
@@ -24,5 +24,5 @@
     /// </summary>
     private void InitializeComponent() {
-      this.dataAnalysisProblemView = new HeuristicLab.Problems.DataAnalysis.Views.DataAnalysisProblemView();
+      this.problemView = new HeuristicLab.Optimization.Views.ProblemView();
       this.SuspendLayout();
       // 
@@ -31,14 +31,14 @@
       this.wizardBanner.Size = new System.Drawing.Size(640, 81);
       // 
-      // dataAnalysisProblemView
+      // problemView
       // 
-      this.dataAnalysisProblemView.Caption = "DataAnalysisProblem View";
-      this.dataAnalysisProblemView.Content = null;
-      this.dataAnalysisProblemView.Dock = System.Windows.Forms.DockStyle.Fill;
-      this.dataAnalysisProblemView.Location = new System.Drawing.Point(0, 81);
-      this.dataAnalysisProblemView.Name = "dataAnalysisProblemView";
-      this.dataAnalysisProblemView.ReadOnly = false;
-      this.dataAnalysisProblemView.Size = new System.Drawing.Size(640, 399);
-      this.dataAnalysisProblemView.TabIndex = 1;
+      this.problemView.Caption = "Problem View";
+      this.problemView.Content = null;
+      this.problemView.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.problemView.Location = new System.Drawing.Point(0, 81);
+      this.problemView.Name = "problemView";
+      this.problemView.ReadOnly = false;
+      this.problemView.Size = new System.Drawing.Size(640, 399);
+      this.problemView.TabIndex = 1;
       // 
       // ProblemDataPage
@@ -46,5 +46,5 @@
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
       this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-      this.Controls.Add(this.dataAnalysisProblemView);
+      this.Controls.Add(this.problemView);
       this.Name = "ProblemDataPage";
       this.Size = new System.Drawing.Size(640, 480);
@@ -52,5 +52,5 @@
       this.WizardNext += new HeuristicLab.ExperimentGeneration.DataAnalysis.Wizard.WizardPageEventHandler(this.ProblemDataPage_WizardNext);
       this.Controls.SetChildIndex(this.wizardBanner, 0);
-      this.Controls.SetChildIndex(this.dataAnalysisProblemView, 0);
+      this.Controls.SetChildIndex(this.problemView, 0);
       this.ResumeLayout(false);
 
@@ -59,5 +59,5 @@
     #endregion
 
-    private Problems.DataAnalysis.Views.DataAnalysisProblemView dataAnalysisProblemView;
+    private Optimization.Views.ProblemView problemView;
 
   }
Index: branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/ProblemDataPage.cs
===================================================================
--- branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/ProblemDataPage.cs	(revision 7912)
+++ branches/DataAnalysisService/HeuristicLab.ExperimentGeneration.DataAnalysis.ExperimentWizard/3.3/ProblemDataPage.cs	(revision 7939)
@@ -12,5 +12,5 @@
       InitializeComponent();
       this.context = context;
-      dataAnalysisProblemView.Content = new RegressionProblem();
+      problemView.Content = new RegressionProblem();
     }
 
@@ -20,5 +20,5 @@
 
     private void ProblemDataPage_WizardNext(object sender, Wizard.WizardPageEventArgs e) {
-      context.Problem = dataAnalysisProblemView.Content;
+      context.Problem = (IDataAnalysisProblem)problemView.Content;
     }
   }
