Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP.Views/3.3/CoordinatesPTSPDataView.Designer.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP.Views/3.3/CoordinatesPTSPDataView.Designer.cs	(revision 17263)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP.Views/3.3/CoordinatesPTSPDataView.Designer.cs	(revision 17264)
@@ -24,4 +24,95 @@
     /// </summary>
     private void InitializeComponent() {
+      this.tabControl = new System.Windows.Forms.TabControl();
+      this.coordinatesTabPage = new System.Windows.Forms.TabPage();
+      this.probabilitiesTabPage = new System.Windows.Forms.TabPage();
+      this.probabilitiesView = new HeuristicLab.Data.Views.StringConvertibleArrayView();
+      ((System.ComponentModel.ISupportInitialize)(this.coordinatesSplitContainer)).BeginInit();
+      this.coordinatesSplitContainer.Panel1.SuspendLayout();
+      this.coordinatesSplitContainer.Panel2.SuspendLayout();
+      this.coordinatesSplitContainer.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.coordinatesPictureBox)).BeginInit();
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+      this.tabControl.SuspendLayout();
+      this.probabilitiesTabPage.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // coordinatesSplitContainer
+      // 
+      // 
+      // coordinatesMatrixView
+      // 
+      this.coordinatesMatrixView.ShowStatisticalInformation = false;
+      // 
+      // nameTextBox
+      // 
+      this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+      this.errorProvider.SetIconPadding(this.nameTextBox, 2);
+      // 
+      // tabControl
+      // 
+      this.tabControl.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.tabControl.Controls.Add(this.coordinatesTabPage);
+      this.tabControl.Controls.Add(this.probabilitiesTabPage);
+      this.tabControl.Location = new System.Drawing.Point(0, 26);
+      this.tabControl.Name = "tabControl";
+      this.tabControl.SelectedIndex = 0;
+      this.tabControl.Size = new System.Drawing.Size(256, 567);
+      this.tabControl.TabIndex = 2;
+      // 
+      // coordinatesTabPage
+      // 
+      this.coordinatesTabPage.Location = new System.Drawing.Point(4, 22);
+      this.coordinatesTabPage.Name = "coordinatesTabPage";
+      this.coordinatesTabPage.Padding = new System.Windows.Forms.Padding(3);
+      this.coordinatesTabPage.Size = new System.Drawing.Size(248, 541);
+      this.coordinatesTabPage.TabIndex = 0;
+      this.coordinatesTabPage.Text = "Coordinates";
+      this.coordinatesTabPage.UseVisualStyleBackColor = true;
+      // 
+      // probabilitiesTabPage
+      // 
+      this.probabilitiesTabPage.Controls.Add(this.probabilitiesView);
+      this.probabilitiesTabPage.Location = new System.Drawing.Point(4, 22);
+      this.probabilitiesTabPage.Name = "probabilitiesTabPage";
+      this.probabilitiesTabPage.Padding = new System.Windows.Forms.Padding(3);
+      this.probabilitiesTabPage.Size = new System.Drawing.Size(248, 544);
+      this.probabilitiesTabPage.TabIndex = 1;
+      this.probabilitiesTabPage.Text = "Probabilities";
+      this.probabilitiesTabPage.UseVisualStyleBackColor = true;
+      // 
+      // probabilitiesView
+      // 
+      this.probabilitiesView.Caption = "StringConvertibleArray View";
+      this.probabilitiesView.Content = null;
+      this.probabilitiesView.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.probabilitiesView.Location = new System.Drawing.Point(3, 3);
+      this.probabilitiesView.Name = "probabilitiesView";
+      this.probabilitiesView.ReadOnly = false;
+      this.probabilitiesView.Size = new System.Drawing.Size(242, 538);
+      this.probabilitiesView.TabIndex = 0;
+      // 
+      // CoordinatesPTSPDataView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.Controls.Add(this.tabControl);
+      this.Name = "CoordinatesPTSPDataView";
+      this.Controls.SetChildIndex(this.coordinatesSplitContainer, 0);
+      this.Controls.SetChildIndex(this.nameLabel, 0);
+      this.Controls.SetChildIndex(this.nameTextBox, 0);
+      this.Controls.SetChildIndex(this.infoLabel, 0);
+      this.Controls.SetChildIndex(this.tabControl, 0);
+      this.coordinatesSplitContainer.Panel1.ResumeLayout(false);
+      this.coordinatesSplitContainer.Panel2.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.coordinatesSplitContainer)).EndInit();
+      this.coordinatesSplitContainer.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.coordinatesPictureBox)).EndInit();
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+      this.tabControl.ResumeLayout(false);
+      this.probabilitiesTabPage.ResumeLayout(false);
+      this.ResumeLayout(false);
+      this.PerformLayout();
 
     }
@@ -29,4 +120,8 @@
     #endregion
 
+    private System.Windows.Forms.TabControl tabControl;
+    private System.Windows.Forms.TabPage coordinatesTabPage;
+    private System.Windows.Forms.TabPage probabilitiesTabPage;
+    private Data.Views.StringConvertibleArrayView probabilitiesView;
   }
 }
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP.Views/3.3/CoordinatesPTSPDataView.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP.Views/3.3/CoordinatesPTSPDataView.cs	(revision 17263)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP.Views/3.3/CoordinatesPTSPDataView.cs	(revision 17264)
@@ -20,5 +20,8 @@
 #endregion
 
+using System;
+using System.Drawing;
 using System.Windows.Forms;
+using HeuristicLab.Data;
 using HeuristicLab.MainForm;
 using HeuristicLab.MainForm.WindowsForms;
@@ -37,4 +40,10 @@
     public CoordinatesPTSPDataView() {
       InitializeComponent();
+      SuspendLayout();
+      Controls.Remove(coordinatesMatrixView);
+      coordinatesMatrixView.Dock = System.Windows.Forms.DockStyle.None;
+      coordinatesTabPage.Controls.Add(coordinatesMatrixView);
+      coordinatesMatrixView.Dock = System.Windows.Forms.DockStyle.Fill;
+      ResumeLayout(true);
     }
 
@@ -42,5 +51,7 @@
       base.OnContentChanged();
       if (Content == null) {
+        probabilitiesView.Content = null;
       } else {
+        probabilitiesView.Content = Content.Probabilities;
       }
     }
@@ -48,4 +59,50 @@
     protected override void SetEnabledStateOfControls() {
       base.SetEnabledStateOfControls();
+      probabilitiesView.Enabled = !ReadOnly && !Locked && Content != null;
+    }
+
+    protected override void GenerateImage() {
+      if ((coordinatesPictureBox.Width > 0) && (coordinatesPictureBox.Height > 0)) {
+        if (Content == null) {
+          coordinatesPictureBox.Image = null;
+        } else {
+          DoubleMatrix coordinates = Content.Coordinates;
+          DoubleArray probabilities = Content.Probabilities;
+          Bitmap bitmap = new Bitmap(coordinatesPictureBox.Width, coordinatesPictureBox.Height);
+
+          if ((coordinates != null) && (coordinates.Rows > 0) && (coordinates.Columns == 2) && (probabilities.Length == coordinates.Rows)) {
+            double xMin = double.MaxValue, yMin = double.MaxValue, xMax = double.MinValue, yMax = double.MinValue;
+            for (int i = 0; i < coordinates.Rows; i++) {
+              if (xMin > coordinates[i, 0]) xMin = coordinates[i, 0];
+              if (yMin > coordinates[i, 1]) yMin = coordinates[i, 1];
+              if (xMax < coordinates[i, 0]) xMax = coordinates[i, 0];
+              if (yMax < coordinates[i, 1]) yMax = coordinates[i, 1];
+            }
+
+            int border = 20;
+            double xStep = xMax != xMin ? (coordinatesPictureBox.Width - 2 * border) / (xMax - xMin) : 1;
+            double yStep = yMax != yMin ? (coordinatesPictureBox.Height - 2 * border) / (yMax - yMin) : 1;
+
+            Point[] points = new Point[coordinates.Rows];
+            for (int i = 0; i < coordinates.Rows; i++)
+              points[i] = new Point(border + ((int)((coordinates[i, 0] - xMin) * xStep)),
+                                    bitmap.Height - (border + ((int)((coordinates[i, 1] - yMin) * yStep))));
+
+            using (Graphics graphics = Graphics.FromImage(bitmap)) {
+              for (int i = 0; i < points.Length; i++)
+                graphics.FillRectangle(Brushes.Red, points[i].X - 2, points[i].Y - 2, Convert.ToInt32(probabilities[i] * 20), Convert.ToInt32(probabilities[i] * 20));
+            }
+          } else {
+            using (Graphics graphics = Graphics.FromImage(bitmap)) {
+              graphics.Clear(Color.White);
+              Font font = new Font(FontFamily.GenericSansSerif, 12, FontStyle.Regular);
+              string text = "No coordinates defined or in wrong format.";
+              SizeF strSize = graphics.MeasureString(text, font);
+              graphics.DrawString(text, font, Brushes.Black, (float)(coordinatesPictureBox.Width - strSize.Width) / 2.0f, (float)(coordinatesPictureBox.Height - strSize.Height) / 2.0f);
+            }
+          }
+          coordinatesPictureBox.Image = bitmap;
+        }
+      }
     }
   }
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP.Views/3.3/EuclideanPTSPDataView.Designer.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP.Views/3.3/EuclideanPTSPDataView.Designer.cs	(revision 17263)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP.Views/3.3/EuclideanPTSPDataView.Designer.cs	(revision 17264)
@@ -24,4 +24,94 @@
     /// </summary>
     private void InitializeComponent() {
+      this.tabControl = new System.Windows.Forms.TabControl();
+      this.coordinatesTabPage = new System.Windows.Forms.TabPage();
+      this.probabilitiesTabPage = new System.Windows.Forms.TabPage();
+      this.probabilitiesView = new HeuristicLab.Data.Views.StringConvertibleArrayView();
+      ((System.ComponentModel.ISupportInitialize)(this.coordinatesSplitContainer)).BeginInit();
+      this.coordinatesSplitContainer.Panel1.SuspendLayout();
+      this.coordinatesSplitContainer.Panel2.SuspendLayout();
+      this.coordinatesSplitContainer.SuspendLayout();
+      ((System.ComponentModel.ISupportInitialize)(this.coordinatesPictureBox)).BeginInit();
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
+      this.tabControl.SuspendLayout();
+      this.probabilitiesTabPage.SuspendLayout();
+      this.SuspendLayout();
+      // 
+      // coordinatesSplitContainer
+      // 
+      // 
+      // coordinatesSplitContainer.Panel1
+      // 
+      this.coordinatesSplitContainer.Panel1.Controls.Add(this.tabControl);
+      // 
+      // coordinatesMatrixView
+      // 
+      this.coordinatesMatrixView.ShowStatisticalInformation = false;
+      // 
+      // nameTextBox
+      // 
+      this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+      this.errorProvider.SetIconPadding(this.nameTextBox, 2);
+      // 
+      // tabControl
+      // 
+      this.tabControl.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.tabControl.Controls.Add(this.coordinatesTabPage);
+      this.tabControl.Controls.Add(this.probabilitiesTabPage);
+      this.tabControl.Location = new System.Drawing.Point(0, 30);
+      this.tabControl.Name = "tabControl";
+      this.tabControl.SelectedIndex = 0;
+      this.tabControl.Size = new System.Drawing.Size(256, 540);
+      this.tabControl.TabIndex = 4;
+      // 
+      // coordinatesTabPage
+      // 
+      this.coordinatesTabPage.Location = new System.Drawing.Point(4, 22);
+      this.coordinatesTabPage.Name = "coordinatesTabPage";
+      this.coordinatesTabPage.Padding = new System.Windows.Forms.Padding(3);
+      this.coordinatesTabPage.Size = new System.Drawing.Size(248, 514);
+      this.coordinatesTabPage.TabIndex = 0;
+      this.coordinatesTabPage.Text = "Coordinates";
+      this.coordinatesTabPage.UseVisualStyleBackColor = true;
+      // 
+      // probabilitiesTabPage
+      // 
+      this.probabilitiesTabPage.Controls.Add(this.probabilitiesView);
+      this.probabilitiesTabPage.Location = new System.Drawing.Point(4, 22);
+      this.probabilitiesTabPage.Name = "probabilitiesTabPage";
+      this.probabilitiesTabPage.Padding = new System.Windows.Forms.Padding(3);
+      this.probabilitiesTabPage.Size = new System.Drawing.Size(248, 514);
+      this.probabilitiesTabPage.TabIndex = 1;
+      this.probabilitiesTabPage.Text = "Probabilities";
+      this.probabilitiesTabPage.UseVisualStyleBackColor = true;
+      // 
+      // probabilitiesView
+      // 
+      this.probabilitiesView.Caption = "StringConvertibleArray View";
+      this.probabilitiesView.Content = null;
+      this.probabilitiesView.Dock = System.Windows.Forms.DockStyle.Fill;
+      this.probabilitiesView.Location = new System.Drawing.Point(3, 3);
+      this.probabilitiesView.Name = "probabilitiesView";
+      this.probabilitiesView.ReadOnly = false;
+      this.probabilitiesView.Size = new System.Drawing.Size(242, 508);
+      this.probabilitiesView.TabIndex = 0;
+      // 
+      // EuclideanPTSPDataView
+      // 
+      this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+      this.Name = "EuclideanPTSPDataView";
+      this.coordinatesSplitContainer.Panel1.ResumeLayout(false);
+      this.coordinatesSplitContainer.Panel1.PerformLayout();
+      this.coordinatesSplitContainer.Panel2.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.coordinatesSplitContainer)).EndInit();
+      this.coordinatesSplitContainer.ResumeLayout(false);
+      ((System.ComponentModel.ISupportInitialize)(this.coordinatesPictureBox)).EndInit();
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
+      this.tabControl.ResumeLayout(false);
+      this.probabilitiesTabPage.ResumeLayout(false);
+      this.ResumeLayout(false);
+      this.PerformLayout();
 
     }
@@ -29,4 +119,8 @@
     #endregion
 
+    private System.Windows.Forms.TabControl tabControl;
+    private System.Windows.Forms.TabPage coordinatesTabPage;
+    private System.Windows.Forms.TabPage probabilitiesTabPage;
+    private Data.Views.StringConvertibleArrayView probabilitiesView;
   }
 }
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP.Views/3.3/EuclideanPTSPDataView.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP.Views/3.3/EuclideanPTSPDataView.cs	(revision 17263)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP.Views/3.3/EuclideanPTSPDataView.cs	(revision 17264)
@@ -20,4 +20,7 @@
 #endregion
 
+using System;
+using System.Drawing;
+using HeuristicLab.Data;
 using HeuristicLab.MainForm;
 using HeuristicLab.Problems.TravelingSalesman.Views;
@@ -35,4 +38,10 @@
     public EuclideanPTSPDataView() {
       InitializeComponent();
+      SuspendLayout();
+      Controls.Remove(coordinatesMatrixView);
+      coordinatesMatrixView.Dock = System.Windows.Forms.DockStyle.None;
+      coordinatesTabPage.Controls.Add(coordinatesMatrixView);
+      coordinatesMatrixView.Dock = System.Windows.Forms.DockStyle.Fill;
+      ResumeLayout(true);
     }
 
@@ -40,7 +49,7 @@
       base.OnContentChanged();
       if (Content == null) {
-
+        probabilitiesView.Content = null;
       } else {
-
+        probabilitiesView.Content = Content.Probabilities;
       }
     }
@@ -48,5 +57,50 @@
     protected override void SetEnabledStateOfControls() {
       base.SetEnabledStateOfControls();
+      probabilitiesView.Enabled = !ReadOnly && !Locked && Content != null;
+    }
 
+    protected override void GenerateImage() {
+      if ((coordinatesPictureBox.Width > 0) && (coordinatesPictureBox.Height > 0)) {
+        if (Content == null) {
+          coordinatesPictureBox.Image = null;
+        } else {
+          DoubleMatrix coordinates = Content.Coordinates;
+          DoubleArray probabilities = Content.Probabilities;
+          Bitmap bitmap = new Bitmap(coordinatesPictureBox.Width, coordinatesPictureBox.Height);
+
+          if ((coordinates != null) && (coordinates.Rows > 0) && (coordinates.Columns == 2) && (probabilities.Length == coordinates.Rows)) {
+            double xMin = double.MaxValue, yMin = double.MaxValue, xMax = double.MinValue, yMax = double.MinValue;
+            for (int i = 0; i < coordinates.Rows; i++) {
+              if (xMin > coordinates[i, 0]) xMin = coordinates[i, 0];
+              if (yMin > coordinates[i, 1]) yMin = coordinates[i, 1];
+              if (xMax < coordinates[i, 0]) xMax = coordinates[i, 0];
+              if (yMax < coordinates[i, 1]) yMax = coordinates[i, 1];
+            }
+
+            int border = 20;
+            double xStep = xMax != xMin ? (coordinatesPictureBox.Width - 2 * border) / (xMax - xMin) : 1;
+            double yStep = yMax != yMin ? (coordinatesPictureBox.Height - 2 * border) / (yMax - yMin) : 1;
+
+            Point[] points = new Point[coordinates.Rows];
+            for (int i = 0; i < coordinates.Rows; i++)
+              points[i] = new Point(border + ((int)((coordinates[i, 0] - xMin) * xStep)),
+                                    bitmap.Height - (border + ((int)((coordinates[i, 1] - yMin) * yStep))));
+
+            using (Graphics graphics = Graphics.FromImage(bitmap)) {
+              for (int i = 0; i < points.Length; i++)
+                graphics.FillRectangle(Brushes.Red, points[i].X - 2, points[i].Y - 2, Convert.ToInt32(probabilities[i] * 20), Convert.ToInt32(probabilities[i] * 20));
+            }
+          } else {
+            using (Graphics graphics = Graphics.FromImage(bitmap)) {
+              graphics.Clear(Color.White);
+              Font font = new Font(FontFamily.GenericSansSerif, 12, FontStyle.Regular);
+              string text = "No coordinates defined or in wrong format.";
+              SizeF strSize = graphics.MeasureString(text, font);
+              graphics.DrawString(text, font, Brushes.Black, (float)(coordinatesPictureBox.Width - strSize.Width) / 2.0f, (float)(coordinatesPictureBox.Height - strSize.Height) / 2.0f);
+            }
+          }
+          coordinatesPictureBox.Image = bitmap;
+        }
+      }
     }
   }
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP.Views/3.3/HeuristicLab.Problems.PTSP.Views-3.3.csproj
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP.Views/3.3/HeuristicLab.Problems.PTSP.Views-3.3.csproj	(revision 17263)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP.Views/3.3/HeuristicLab.Problems.PTSP.Views-3.3.csproj	(revision 17264)
@@ -200,9 +200,4 @@
     <None Include="Plugin.cs.frame" />
     <None Include="Properties\AssemblyInfo.cs.frame" />
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="MatrixPTSPDataView.resx">
-      <DependentUpon>MatrixPTSPDataView.cs</DependentUpon>
-    </EmbeddedResource>
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP.Views/3.3/MatrixPTSPDataView.Designer.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP.Views/3.3/MatrixPTSPDataView.Designer.cs	(revision 17263)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP.Views/3.3/MatrixPTSPDataView.Designer.cs	(revision 17264)
@@ -38,4 +38,8 @@
       this.SuspendLayout();
       // 
+      // distanceMatrixView
+      // 
+      this.distanceMatrixView.ShowStatisticalInformation = false;
+      // 
       // tabControl
       // 
@@ -55,4 +59,5 @@
       // coordinatesMatrixView
       // 
+      this.coordinatesMatrixView.ShowStatisticalInformation = false;
       this.coordinatesMatrixView.Size = new System.Drawing.Size(252, 538);
       // 
@@ -88,8 +93,8 @@
       this.probabilitiesView.TabIndex = 0;
       // 
-      // MatrixProbabilisticTSPDataView
+      // MatrixPTSPDataView
       // 
       this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
-      this.Name = "MatrixProbabilisticTSPDataView";
+      this.Name = "MatrixPTSPDataView";
       this.tabControl.ResumeLayout(false);
       this.coordinatesTabPage.ResumeLayout(false);
Index: anches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP.Views/3.3/MatrixPTSPDataView.resx
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP.Views/3.3/MatrixPTSPDataView.resx	(revision 17263)
+++ 	(revision )
@@ -1,126 +1,0 @@
-﻿<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <metadata name="errorProvider.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>17, 17</value>
-  </metadata>
-  <metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
-    <value>147, 17</value>
-  </metadata>
-</root>
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/AnalyticalPTSP.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/AnalyticalPTSP.cs	(revision 17263)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/AnalyticalPTSP.cs	(revision 17264)
@@ -20,5 +20,4 @@
 #endregion
 
-using System.Linq;
 using HEAL.Attic;
 using HeuristicLab.Common;
@@ -48,12 +47,14 @@
       Operators.Add(new PTSPAnalyticalTwoPointFiveMoveEvaluator());
 
-      Encoding.ConfigureOperators(Operators.OfType<IOperator>());
-      foreach (var twopointfiveMoveOperator in Operators.OfType<ITwoPointFiveMoveOperator>()) {
-        twopointfiveMoveOperator.TwoPointFiveMoveParameter.ActualName = "Permutation.TwoPointFiveMove";
-      }
+      Encoding.ConfigureOperators(Operators);
     }
 
     public override IDeepCloneable Clone(Cloner cloner) {
       return new AnalyticalPTSP(this, cloner);
+    }
+
+    protected override void OnEncodingChanged() {
+      base.OnEncodingChanged();
+      Encoding.ConfigureOperators(Operators);
     }
 
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/EstimatedPTSP.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/EstimatedPTSP.cs	(revision 17263)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/EstimatedPTSP.cs	(revision 17264)
@@ -29,4 +29,5 @@
 using HeuristicLab.Encodings.PermutationEncoding;
 using HeuristicLab.Parameters;
+using HeuristicLab.Problems.Instances;
 using HeuristicLab.Random;
 
@@ -189,8 +190,15 @@
     }
 
+    public override void Load(PTSPData data) {
+      base.Load(data);
+      UpdateRealizations();
+    }
+
     private void UpdateRealizations() {
       var data = new List<BoolArray>(Realizations);
-      var rng = new FastRandom(RealizationsSeed);
-      for (var i = 0; i < Realizations; i++) {
+      var rng = new MersenneTwister((uint)RealizationsSeed);
+      if (Enumerable.Range(0, ProbabilisticTSPData.Cities).All(c => ProbabilisticTSPData.GetProbability(c) <= 0))
+        throw new InvalidOperationException("All probabilities are zero.");
+      while (data.Count < Realizations) {
         var cities = 0;
         var r = new bool[ProbabilisticTSPData.Cities];
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Improvers/PTSPAnalyticalInsertionLocalImprovement.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Improvers/PTSPAnalyticalInsertionLocalImprovement.cs	(revision 17263)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Improvers/PTSPAnalyticalInsertionLocalImprovement.cs	(revision 17264)
@@ -40,5 +40,5 @@
   [Item("pTSP Analytical Insertion Local Improvement", "An operator that improves probabilistic traveling salesman solutions. The operator tries to improve the probabilistic traveling salesman solution by swapping two randomly chosen edges for a certain number of times.")]
   [StorableType("5adca9d8-02b2-4937-9f79-a24d8ea8ea19")]
-  public sealed class PTSPAnalyticalInsertionLocalImprovement : SingleSuccessorOperator, IAnalyticalPTSPOperator, ILocalImprovementOperator {
+  public sealed class PTSPAnalyticalInsertionLocalImprovement : SingleSuccessorOperator, IAnalyticalPTSPOperator, IPermutationLocalImprovementOperator {
 
     public ILookupParameter<IntValue> LocalIterationsParameter {
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Improvers/PTSPAnalyticalInversionLocalImprovement.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Improvers/PTSPAnalyticalInversionLocalImprovement.cs	(revision 17263)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Improvers/PTSPAnalyticalInversionLocalImprovement.cs	(revision 17264)
@@ -40,5 +40,5 @@
   [Item("pTSP Analytical Inversion Local Improvement", "An operator that improves probabilistic traveling salesman solutions. The operator tries to improve the probabilistic traveling salesman solution by swapping two randomly chosen edges for a certain number of times.")]
   [StorableType("88147d6a-e843-4f65-8058-421453b5206a")]
-  public sealed class PTSPAnalyticalInversionLocalImprovement : SingleSuccessorOperator, IAnalyticalPTSPOperator, ILocalImprovementOperator {
+  public sealed class PTSPAnalyticalInversionLocalImprovement : SingleSuccessorOperator, IAnalyticalPTSPOperator, IPermutationLocalImprovementOperator {
 
     public ILookupParameter<IntValue> LocalIterationsParameter {
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Improvers/PTSPAnalyticalTwoPointFiveLocalImprovement.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Improvers/PTSPAnalyticalTwoPointFiveLocalImprovement.cs	(revision 17263)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Improvers/PTSPAnalyticalTwoPointFiveLocalImprovement.cs	(revision 17264)
@@ -40,5 +40,5 @@
   [Item("pTSP Analytical 2.5 Local Improvement", "An operator that improves probabilistic traveling salesman solutions. The operator tries to improve the probabilistic traveling salesman solution by swapping two randomly chosen edges for a certain number of times.")]
   [StorableType("6e07195e-0da7-45ea-9385-0c66594127db")]
-  public sealed class PTSPAnalyticalTwoPointFiveLocalImprovement : SingleSuccessorOperator, IAnalyticalPTSPOperator, ILocalImprovementOperator {
+  public sealed class PTSPAnalyticalTwoPointFiveLocalImprovement : SingleSuccessorOperator, IAnalyticalPTSPOperator, IPermutationLocalImprovementOperator {
 
     public ILookupParameter<IntValue> LocalIterationsParameter {
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Improvers/PTSPEstimatedInsertionLocalImprovement.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Improvers/PTSPEstimatedInsertionLocalImprovement.cs	(revision 17263)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Improvers/PTSPEstimatedInsertionLocalImprovement.cs	(revision 17264)
@@ -42,5 +42,5 @@
   [Item("pTSP Estimated Insertion Local Improvement", "An operator that improves probabilistic traveling salesman solutions. The operator tries to improve the probabilistic traveling salesman solution by swapping two randomly chosen edges for a certain number of times.")]
   [StorableType("B2D60579-A97D-4E44-B11C-61CDA6EBEBA7")]
-  public sealed class PTSPEstimatedInsertionLocalImprovement : SingleSuccessorOperator, IEstimatedPTSPOperator, ILocalImprovementOperator {
+  public sealed class PTSPEstimatedInsertionLocalImprovement : SingleSuccessorOperator, IEstimatedPTSPOperator, IPermutationLocalImprovementOperator {
 
     public ILookupParameter<IntValue> LocalIterationsParameter {
@@ -76,6 +76,6 @@
     }
 
-    public ILookupParameter<ReadOnlyItemList<BoolArray>> RealizationsParameter {
-      get { return (ILookupParameter<ReadOnlyItemList<BoolArray>>)Parameters["Realizations"]; }
+    public ILookupParameter<ReadOnlyItemList<BoolArray>> RealizationDataParameter {
+      get { return (ILookupParameter<ReadOnlyItemList<BoolArray>>)Parameters["RealizationData"]; }
     }
 
@@ -93,5 +93,5 @@
       Parameters.Add(new LookupParameter<BoolValue>("Maximization", "True if the problem should be maximized or minimized."));
       Parameters.Add(new LookupParameter<IProbabilisticTSPData>("PTSP Data", "The main parameters of the pTSP."));
-      Parameters.Add(new LookupParameter<ItemList<BoolArray>>("Realizations", "The list of samples drawn from all possible stochastic instances."));
+      Parameters.Add(new LookupParameter<ReadOnlyItemList<BoolArray>>("RealizationData", "The list of samples drawn from all possible stochastic instances."));
     }
 
@@ -131,5 +131,5 @@
       var evaluations = EvaluatedSolutionsParameter.ActualValue;
       var data = ProbabilisticTSPDataParameter.ActualValue;
-      var realizations = RealizationsParameter.ActualValue;
+      var realizations = RealizationDataParameter.ActualValue;
       if (localIterations == null) {
         localIterations = new IntValue(0);
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Improvers/PTSPEstimatedInversionLocalImprovement.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Improvers/PTSPEstimatedInversionLocalImprovement.cs	(revision 17263)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Improvers/PTSPEstimatedInversionLocalImprovement.cs	(revision 17264)
@@ -42,5 +42,5 @@
   [Item("PTSP Estimated Inversion Local Improvement", "An operator that improves probabilistic traveling salesman solutions. The operator tries to improve the probabilistic traveling salesman solution by swapping two randomly chosen edges for a certain number of times.")]
   [StorableType("AA67F3B1-2667-4F0B-A79F-4A02B89EE977")]
-  public sealed class PTSPEstimatedInversionLocalImprovement : SingleSuccessorOperator, IEstimatedPTSPOperator, ILocalImprovementOperator {
+  public sealed class PTSPEstimatedInversionLocalImprovement : SingleSuccessorOperator, IEstimatedPTSPOperator, IPermutationLocalImprovementOperator {
 
     public ILookupParameter<IntValue> LocalIterationsParameter {
@@ -76,6 +76,6 @@
     }
 
-    public ILookupParameter<ReadOnlyItemList<BoolArray>> RealizationsParameter {
-      get { return (ILookupParameter<ReadOnlyItemList<BoolArray>>)Parameters["Realizations"]; }
+    public ILookupParameter<ReadOnlyItemList<BoolArray>> RealizationDataParameter {
+      get { return (ILookupParameter<ReadOnlyItemList<BoolArray>>)Parameters["RealizationData"]; }
     }
 
@@ -93,5 +93,5 @@
       Parameters.Add(new LookupParameter<BoolValue>("Maximization", "True if the problem should be maximized or minimized."));
       Parameters.Add(new LookupParameter<IProbabilisticTSPData>("PTSP Data", "The main parameters of the pTSP."));
-      Parameters.Add(new LookupParameter<ItemList<BoolArray>>("Realizations", "The list of samples drawn from all possible stochastic instances."));
+      Parameters.Add(new LookupParameter<ReadOnlyItemList<BoolArray>>("RealizationData", "The list of samples drawn from all possible stochastic instances."));
     }
 
@@ -131,5 +131,5 @@
       var evaluations = EvaluatedSolutionsParameter.ActualValue;
       var data = ProbabilisticTSPDataParameter.ActualValue;
-      var realizations = RealizationsParameter.ActualValue;
+      var realizations = RealizationDataParameter.ActualValue;
       if (localIterations == null) {
         localIterations = new IntValue(0);
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Improvers/PTSPEstimatedTwoPointFiveLocalImprovement.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Improvers/PTSPEstimatedTwoPointFiveLocalImprovement.cs	(revision 17263)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Improvers/PTSPEstimatedTwoPointFiveLocalImprovement.cs	(revision 17264)
@@ -42,5 +42,5 @@
   [Item("PTSP Estimated 2.5 Local Improvement", "An operator that improves probabilistic traveling salesman solutions. The operator tries to improve the probabilistic traveling salesman solution by swapping two randomly chosen edges for a certain number of times.")]
   [StorableType("8B04265A-50AD-4FAD-99F8-2357D6F10CC3")]
-  public sealed class PTSPEstimatedTwoPointFiveLocalImprovement : SingleSuccessorOperator, IEstimatedPTSPOperator, ILocalImprovementOperator {
+  public sealed class PTSPEstimatedTwoPointFiveLocalImprovement : SingleSuccessorOperator, IEstimatedPTSPOperator, IPermutationLocalImprovementOperator {
 
     public ILookupParameter<IntValue> LocalIterationsParameter {
@@ -75,6 +75,6 @@
       get { return (ILookupParameter<IProbabilisticTSPData>)Parameters["PTSP Data"]; }
     }
-    public ILookupParameter<ReadOnlyItemList<BoolArray>> RealizationsParameter {
-      get { return (ILookupParameter<ReadOnlyItemList<BoolArray>>)Parameters["Realizations"]; }
+    public ILookupParameter<ReadOnlyItemList<BoolArray>> RealizationDataParameter {
+      get { return (ILookupParameter<ReadOnlyItemList<BoolArray>>)Parameters["RealizationData"]; }
     }
 
@@ -92,5 +92,5 @@
       Parameters.Add(new LookupParameter<BoolValue>("Maximization", "True if the problem should be maximized or minimized."));
       Parameters.Add(new LookupParameter<IProbabilisticTSPData>("PTSP Data", "The main parameters of the pTSP."));
-      Parameters.Add(new LookupParameter<ReadOnlyItemList<BoolArray>>("Realizations", "The list of samples drawn from all possible stochastic instances."));
+      Parameters.Add(new LookupParameter<ReadOnlyItemList<BoolArray>>("RealizationData", "The list of samples drawn from all possible stochastic instances."));
     }
 
@@ -131,5 +131,5 @@
       var evaluations = EvaluatedSolutionsParameter.ActualValue;
       var data = ProbabilisticTSPDataParameter.ActualValue;
-      var realizations = RealizationsParameter.ActualValue;
+      var realizations = RealizationDataParameter.ActualValue;
       if (localIterations == null) {
         localIterations = new IntValue(0);
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Interfaces/IEstimatedPTSPOperator.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Interfaces/IEstimatedPTSPOperator.cs	(revision 17263)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Interfaces/IEstimatedPTSPOperator.cs	(revision 17264)
@@ -28,5 +28,5 @@
   public interface IEstimatedPTSPOperator : IItem {
     ILookupParameter<IProbabilisticTSPData> ProbabilisticTSPDataParameter { get; }
-    ILookupParameter<ReadOnlyItemList<BoolArray>> RealizationsParameter { get; }
+    ILookupParameter<ReadOnlyItemList<BoolArray>> RealizationDataParameter { get; }
   }
 }
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Interfaces/ITwoPointFiveMoveOperator.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Interfaces/ITwoPointFiveMoveOperator.cs	(revision 17263)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Interfaces/ITwoPointFiveMoveOperator.cs	(revision 17264)
@@ -20,11 +20,11 @@
 #endregion
 
+using HEAL.Attic;
 using HeuristicLab.Core;
-using HeuristicLab.Optimization;
-using HEAL.Attic;
+using HeuristicLab.Encodings.PermutationEncoding;
 
 namespace HeuristicLab.Problems.PTSP {
   [StorableType("C21E0AC3-85BD-4F40-8DD6-E79A019278E1")]
-  public interface ITwoPointFiveMoveOperator : IMoveOperator {
+  public interface ITwoPointFiveMoveOperator : IPermutationMoveOperator {
     ILookupParameter<TwoPointFiveMove> TwoPointFiveMoveParameter { get; }
   }
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Moves/EstimatedPTSPMoveEvaluator.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Moves/EstimatedPTSPMoveEvaluator.cs	(revision 17263)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/Moves/EstimatedPTSPMoveEvaluator.cs	(revision 17264)
@@ -43,6 +43,6 @@
       get { return (ILookupParameter<IProbabilisticTSPData>)Parameters["PTSP Data"]; }
     }
-    public ILookupParameter<ReadOnlyItemList<BoolArray>> RealizationsParameter {
-      get { return (ILookupParameter<ReadOnlyItemList<BoolArray>>)Parameters["Realizations"]; }
+    public ILookupParameter<ReadOnlyItemList<BoolArray>> RealizationDataParameter {
+      get { return (ILookupParameter<ReadOnlyItemList<BoolArray>>)Parameters["RealizationData"]; }
     }
     public ILookupParameter<DoubleValue> QualityParameter {
@@ -60,5 +60,5 @@
       Parameters.Add(new LookupParameter<Permutation>("Permutation", "The solution as permutation."));
       Parameters.Add(new LookupParameter<IProbabilisticTSPData>("PTSP Data", "The main parameters of the pTSP."));
-      Parameters.Add(new LookupParameter<ReadOnlyItemList<BoolArray>>("Realizations", "The list of samples drawn from all possible stochastic instances."));
+      Parameters.Add(new LookupParameter<ReadOnlyItemList<BoolArray>>("RealizationData", "The list of samples drawn from all possible stochastic instances."));
       Parameters.Add(new LookupParameter<DoubleValue>("Quality", "The quality of a TSP solution."));
       Parameters.Add(new LookupParameter<DoubleValue>("MoveQuality", "The evaluated quality of a move on a TSP solution."));
@@ -67,5 +67,5 @@
     public override IOperation Apply() {
       var permutation = PermutationParameter.ActualValue;
-      var realizations = RealizationsParameter.ActualValue;
+      var realizations = RealizationDataParameter.ActualValue;
       var data = ProbabilisticTSPDataParameter.ActualValue;
       var relativeQualityDifference = EvaluateMove(permutation, data, realizations);
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/ProbabilisticTSP.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/ProbabilisticTSP.cs	(revision 17263)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.PTSP/3.3/ProbabilisticTSP.cs	(revision 17264)
@@ -157,5 +157,5 @@
         try {
           var tour = new Permutation(PermutationTypes.RelativeUndirected, data.BestKnownTour);
-          var tourLength = Evaluate(tour, new FastRandom(1));
+          var tourLength = Evaluate(tour, new MersenneTwister(1));
           BestKnownSolution = new ProbabilisticTSPSolution(data.Coordinates != null ? new DoubleMatrix(data.Coordinates) : null, new PercentArray(data.Probabilities), tour, new DoubleValue(tourLength));
           BestKnownQuality = tourLength;
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.TravelingSalesman.Views/3.3/CoordinatesTSPDataView.Designer.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.TravelingSalesman.Views/3.3/CoordinatesTSPDataView.Designer.cs	(revision 17263)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.TravelingSalesman.Views/3.3/CoordinatesTSPDataView.Designer.cs	(revision 17264)
@@ -73,5 +73,5 @@
       this.coordinatesMatrixView.ReadOnly = false;
       this.coordinatesMatrixView.ShowRowsAndColumnsTextBox = true;
-      this.coordinatesMatrixView.ShowStatisticalInformation = true;
+      this.coordinatesMatrixView.ShowStatisticalInformation = false;
       this.coordinatesMatrixView.Size = new System.Drawing.Size(256, 570);
       this.coordinatesMatrixView.TabIndex = 1;
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.TravelingSalesman.Views/3.3/EuclideanTSPDataView.Designer.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.TravelingSalesman.Views/3.3/EuclideanTSPDataView.Designer.cs	(revision 17263)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.TravelingSalesman.Views/3.3/EuclideanTSPDataView.Designer.cs	(revision 17264)
@@ -31,4 +31,5 @@
       this.coordinatesSplitContainer.SuspendLayout();
       ((System.ComponentModel.ISupportInitialize)(this.coordinatesPictureBox)).BeginInit();
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
       this.SuspendLayout();
       // 
@@ -48,5 +49,11 @@
       this.coordinatesMatrixView.Dock = System.Windows.Forms.DockStyle.None;
       this.coordinatesMatrixView.Location = new System.Drawing.Point(0, 30);
+      this.coordinatesMatrixView.ShowStatisticalInformation = false;
       this.coordinatesMatrixView.Size = new System.Drawing.Size(256, 598);
+      // 
+      // nameTextBox
+      // 
+      this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
+      this.errorProvider.SetIconPadding(this.nameTextBox, 2);
       // 
       // roundingModeLabel
@@ -81,5 +88,7 @@
       this.coordinatesSplitContainer.ResumeLayout(false);
       ((System.ComponentModel.ISupportInitialize)(this.coordinatesPictureBox)).EndInit();
+      ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
       this.ResumeLayout(false);
+      this.PerformLayout();
 
     }
Index: /branches/2521_ProblemRefactoring/HeuristicLab.Problems.TravelingSalesman.Views/3.3/MatrixTSPDataView.Designer.cs
===================================================================
--- /branches/2521_ProblemRefactoring/HeuristicLab.Problems.TravelingSalesman.Views/3.3/MatrixTSPDataView.Designer.cs	(revision 17263)
+++ /branches/2521_ProblemRefactoring/HeuristicLab.Problems.TravelingSalesman.Views/3.3/MatrixTSPDataView.Designer.cs	(revision 17264)
@@ -85,5 +85,5 @@
       this.distanceMatrixView.ReadOnly = false;
       this.distanceMatrixView.ShowRowsAndColumnsTextBox = true;
-      this.distanceMatrixView.ShowStatisticalInformation = true;
+      this.distanceMatrixView.ShowStatisticalInformation = false;
       this.distanceMatrixView.Size = new System.Drawing.Size(757, 538);
       this.distanceMatrixView.TabIndex = 0;
@@ -95,5 +95,5 @@
       this.coordinatesTabPage.Name = "coordinatesTabPage";
       this.coordinatesTabPage.Padding = new System.Windows.Forms.Padding(3);
-      this.coordinatesTabPage.Size = new System.Drawing.Size(763, 570);
+      this.coordinatesTabPage.Size = new System.Drawing.Size(763, 544);
       this.coordinatesTabPage.TabIndex = 1;
       this.coordinatesTabPage.Text = "Display Coordinates";
@@ -113,5 +113,5 @@
       // 
       this.coordinatesSplitContainer.Panel2.Controls.Add(this.coordinatesPictureBox);
-      this.coordinatesSplitContainer.Size = new System.Drawing.Size(757, 564);
+      this.coordinatesSplitContainer.Size = new System.Drawing.Size(757, 538);
       this.coordinatesSplitContainer.SplitterDistance = 252;
       this.coordinatesSplitContainer.TabIndex = 0;
@@ -126,6 +126,6 @@
       this.coordinatesMatrixView.ReadOnly = false;
       this.coordinatesMatrixView.ShowRowsAndColumnsTextBox = true;
-      this.coordinatesMatrixView.ShowStatisticalInformation = true;
-      this.coordinatesMatrixView.Size = new System.Drawing.Size(252, 564);
+      this.coordinatesMatrixView.ShowStatisticalInformation = false;
+      this.coordinatesMatrixView.Size = new System.Drawing.Size(252, 538);
       this.coordinatesMatrixView.TabIndex = 1;
       // 
@@ -135,5 +135,5 @@
       this.coordinatesPictureBox.Location = new System.Drawing.Point(0, 0);
       this.coordinatesPictureBox.Name = "coordinatesPictureBox";
-      this.coordinatesPictureBox.Size = new System.Drawing.Size(501, 564);
+      this.coordinatesPictureBox.Size = new System.Drawing.Size(501, 538);
       this.coordinatesPictureBox.TabIndex = 0;
       this.coordinatesPictureBox.TabStop = false;
