Index: trunk/sources/HeuristicLab.ExtLibs/HeuristicLab.LibSVM/1.6.3/LibSVM-1.6.3/Model.cs
===================================================================
--- trunk/sources/HeuristicLab.ExtLibs/HeuristicLab.LibSVM/1.6.3/LibSVM-1.6.3/Model.cs	(revision 3857)
+++ trunk/sources/HeuristicLab.ExtLibs/HeuristicLab.LibSVM/1.6.3/LibSVM-1.6.3/Model.cs	(revision 3858)
@@ -33,4 +33,5 @@
     private int _numberOfClasses;
     private int _supportVectorCount;
+    private int[] _supportVectorIndizes;
     private Node[][] _supportVectors;
     private double[][] _supportVectorCoefficients;
@@ -78,4 +79,16 @@
       set {
         _supportVectorCount = value;
+      }
+    }
+
+    /// <summary>
+    /// Indizes of support vectors identified in the training.
+    /// </summary>
+    public int[] SupportVectorIndizes {
+      get {
+        return _supportVectorIndizes;
+      }
+      set {
+        _supportVectorIndizes = value;
       }
     }
Index: trunk/sources/HeuristicLab.ExtLibs/HeuristicLab.LibSVM/1.6.3/LibSVM-1.6.3/Solver.cs
===================================================================
--- trunk/sources/HeuristicLab.ExtLibs/HeuristicLab.LibSVM/1.6.3/LibSVM-1.6.3/Solver.cs	(revision 3857)
+++ trunk/sources/HeuristicLab.ExtLibs/HeuristicLab.LibSVM/1.6.3/LibSVM-1.6.3/Solver.cs	(revision 3858)
@@ -1673,6 +1673,8 @@
                     if (Math.Abs(f.alpha[i]) > 0) ++nSV;                
                 model.SupportVectorCount = nSV;
+                model.SupportVectorIndizes = new int[nSV];
                 model.SupportVectors = new Node[nSV][];
                 model.SupportVectorCoefficients[0] = new double[nSV];
+                
                 int j = 0;
                 for (i = 0; i < prob.Count; i++)
@@ -1680,5 +1682,7 @@
                     {
                         model.SupportVectors[j] = prob.X[i];
+                        model.SupportVectorIndizes[j] = i;
                         model.SupportVectorCoefficients[0][j] = f.alpha[i];
+                       
                         ++j;
                     }
@@ -1820,7 +1824,13 @@
                 model.SupportVectorCount = nnz;
                 model.SupportVectors = new Node[nnz][];
+                model.SupportVectorIndizes = new int[nnz];
                 p = 0;
-                for (i = 0; i < l; i++)
-                    if (nonzero[i]) model.SupportVectors[p++] = x[i];
+                for (i = 0; i < l; i++) {
+                  if (nonzero[i]) {
+                    model.SupportVectors[p] = x[i];
+                    model.SupportVectorIndizes[p] = i;
+                    p++;
+                  }
+                }
 
                 int[] nz_start = new int[nr_class];
Index: trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/SupportVectorRegression/SupportVectorRegressionSolution.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/SupportVectorRegression/SupportVectorRegressionSolution.cs	(revision 3857)
+++ trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/SupportVectorRegression/SupportVectorRegressionSolution.cs	(revision 3858)
@@ -49,6 +49,7 @@
     }
 
-    [Storable]
-    private List<string> inputVariables;
+    public Dataset SupportVectors {
+      get { return CalculateSupportVectors(); }
+    }
 
     public SupportVectorRegressionSolution() : base() { }
@@ -56,9 +57,21 @@
       : base(problemData, lowerEstimationLimit, upperEstimationLimit) {
       this.model = model;
-      this.inputVariables = new List<string>(inputVariables);
     }
 
     protected override void OnProblemDataChanged(EventArgs e) {
       RecalculateEstimatedValues();
+      model.Model.SupportVectorIndizes = new int[0];
+    }
+
+    private Dataset CalculateSupportVectors() {
+      if (model.Model.SupportVectorIndizes.Length == 0)
+        return new Dataset();
+
+      Dataset dataset = new Dataset(ProblemData.Dataset.VariableNames, new double[model.Model.SupportVectorCount, ProblemData.Dataset.Columns]);
+      for (int i = 0; i < model.Model.SupportVectorIndizes.Length; i++) {
+        for (int column = 0; column < ProblemData.Dataset.Columns; column++)
+          dataset[i, column] = ProblemData.Dataset[model.Model.SupportVectorIndizes[i], column];
+      }
+      return dataset;
     }
 
Index: trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/SupportVectorRegressionSolutionView.Designer.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/SupportVectorRegressionSolutionView.Designer.cs	(revision 3857)
+++ trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/SupportVectorRegressionSolutionView.Designer.cs	(revision 3858)
@@ -46,10 +46,13 @@
       this.modelTabControl = new System.Windows.Forms.TabControl();
       this.modelTabPage = new System.Windows.Forms.TabPage();
+      this.modelPanel = new HeuristicLab.MainForm.WindowsForms.ViewHost();
       this.dataTabPage = new System.Windows.Forms.TabPage();
-      this.modelPanel = new HeuristicLab.MainForm.WindowsForms.ViewHost();
       this.dataPanel = new HeuristicLab.MainForm.WindowsForms.ViewHost();
+      this.supportVectorTabControl = new System.Windows.Forms.TabPage();
+      this.supportVectorViewHost = new HeuristicLab.MainForm.WindowsForms.ViewHost();
       this.modelTabControl.SuspendLayout();
       this.modelTabPage.SuspendLayout();
       this.dataTabPage.SuspendLayout();
+      this.supportVectorTabControl.SuspendLayout();
       this.SuspendLayout();
       // 
@@ -61,4 +64,5 @@
       this.modelTabControl.Controls.Add(this.modelTabPage);
       this.modelTabControl.Controls.Add(this.dataTabPage);
+      this.modelTabControl.Controls.Add(this.supportVectorTabControl);
       this.modelTabControl.Location = new System.Drawing.Point(3, 3);
       this.modelTabControl.Name = "modelTabControl";
@@ -78,4 +82,18 @@
       this.modelTabPage.UseVisualStyleBackColor = true;
       // 
+      // modelPanel
+      // 
+      this.modelPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+                  | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.modelPanel.Caption = "View";
+      this.modelPanel.Content = null;
+      this.modelPanel.Location = new System.Drawing.Point(6, 6);
+      this.modelPanel.Name = "modelPanel";
+      this.modelPanel.ReadOnly = false;
+      this.modelPanel.Size = new System.Drawing.Size(227, 207);
+      this.modelPanel.TabIndex = 0;
+      this.modelPanel.ViewType = null;
+      // 
       // dataTabPage
       // 
@@ -89,14 +107,4 @@
       this.dataTabPage.UseVisualStyleBackColor = true;
       // 
-      // modelPanel
-      // 
-      this.modelPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
-                  | System.Windows.Forms.AnchorStyles.Left)
-                  | System.Windows.Forms.AnchorStyles.Right)));
-      this.modelPanel.Location = new System.Drawing.Point(6, 6);
-      this.modelPanel.Name = "modelPanel";
-      this.modelPanel.Size = new System.Drawing.Size(227, 207);
-      this.modelPanel.TabIndex = 0;
-      // 
       // dataPanel
       // 
@@ -104,8 +112,37 @@
                   | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
+      this.dataPanel.Caption = "View";
+      this.dataPanel.Content = null;
       this.dataPanel.Location = new System.Drawing.Point(6, 6);
       this.dataPanel.Name = "dataPanel";
+      this.dataPanel.ReadOnly = false;
       this.dataPanel.Size = new System.Drawing.Size(227, 207);
       this.dataPanel.TabIndex = 0;
+      this.dataPanel.ViewType = null;
+      // 
+      // supportVectorTabControl
+      // 
+      this.supportVectorTabControl.Controls.Add(this.supportVectorViewHost);
+      this.supportVectorTabControl.Location = new System.Drawing.Point(4, 22);
+      this.supportVectorTabControl.Name = "supportVectorTabControl";
+      this.supportVectorTabControl.Padding = new System.Windows.Forms.Padding(3);
+      this.supportVectorTabControl.Size = new System.Drawing.Size(239, 219);
+      this.supportVectorTabControl.TabIndex = 2;
+      this.supportVectorTabControl.Text = "Support vectors";
+      this.supportVectorTabControl.UseVisualStyleBackColor = true;
+      // 
+      // supportVectorViewHost
+      // 
+      this.supportVectorViewHost.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+                  | System.Windows.Forms.AnchorStyles.Left)
+                  | System.Windows.Forms.AnchorStyles.Right)));
+      this.supportVectorViewHost.Caption = "SupportVectors";
+      this.supportVectorViewHost.Content = null;
+      this.supportVectorViewHost.Location = new System.Drawing.Point(6, 6);
+      this.supportVectorViewHost.Name = "supportVectorViewHost";
+      this.supportVectorViewHost.ReadOnly = false;
+      this.supportVectorViewHost.Size = new System.Drawing.Size(227, 207);
+      this.supportVectorViewHost.TabIndex = 1;
+      this.supportVectorViewHost.ViewType = null;
       // 
       // SupportVectorRegressionSolutionView
@@ -120,4 +157,5 @@
       this.modelTabPage.ResumeLayout(false);
       this.dataTabPage.ResumeLayout(false);
+      this.supportVectorTabControl.ResumeLayout(false);
       this.ResumeLayout(false);
 
@@ -131,4 +169,6 @@
     private System.Windows.Forms.TabPage dataTabPage;
     private HeuristicLab.MainForm.WindowsForms.ViewHost dataPanel;
+    private System.Windows.Forms.TabPage supportVectorTabControl;
+    private HeuristicLab.MainForm.WindowsForms.ViewHost supportVectorViewHost;
 
 
Index: trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/SupportVectorRegressionSolutionView.cs
===================================================================
--- trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/SupportVectorRegressionSolutionView.cs	(revision 3857)
+++ trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/SupportVectorRegressionSolutionView.cs	(revision 3858)
@@ -59,7 +59,9 @@
         dataPanel.Content = Content.ProblemData;
         modelPanel.Content = Content.Model;
+        supportVectorViewHost.Content = Content.SupportVectors;
       } else {
         dataPanel.Content = null;
         modelPanel.Content = null;
+        supportVectorViewHost.Content = null;
       }
     }
