Index: /branches/GeneralizedQAP/HeuristicLab 3.3 Services.sln
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab 3.3 Services.sln	(revision 6658)
+++ /branches/GeneralizedQAP/HeuristicLab 3.3 Services.sln	(revision 6659)
@@ -17,4 +17,11 @@
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Services.Deployment-3.3.Tests", "HeuristicLab.Services.Deployment\3.3\Tests\HeuristicLab.Services.Deployment-3.3.Tests.csproj", "{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Services.ProblemInstances-3.3", "HeuristicLab.Services.ProblemInstances\HeuristicLab.Services.ProblemInstances-3.3.csproj", "{D4E9242F-DAA4-4A15-8DE7-91CECFFFD898}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Services.ProblemInstances.QAPInitializer", "HeuristicLab.Services.ProblemInstances.QAPInitializer\HeuristicLab.Services.ProblemInstances.QAPInitializer.csproj", "{BA6B5487-6CCA-4484-B196-13B68A45CBB5}"
+	ProjectSection(ProjectDependencies) = postProject
+		{D4E9242F-DAA4-4A15-8DE7-91CECFFFD898} = {D4E9242F-DAA4-4A15-8DE7-91CECFFFD898}
+	EndProjectSection
+EndProject
 Global
 	GlobalSection(TestCaseManagementSettings) = postSolution
@@ -23,7 +30,9 @@
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
+		Debug|Mixed Platforms = Debug|Mixed Platforms
 		Debug|x64 = Debug|x64
 		Debug|x86 = Debug|x86
 		Release|Any CPU = Release|Any CPU
+		Release|Mixed Platforms = Release|Mixed Platforms
 		Release|x64 = Release|x64
 		Release|x86 = Release|x86
@@ -32,4 +41,6 @@
 		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
+		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Debug|Mixed Platforms.Build.0 = Debug|x64
 		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Debug|x64.ActiveCfg = Debug|x64
 		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Debug|x64.Build.0 = Debug|x64
@@ -38,4 +49,6 @@
 		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Release|Any CPU.Build.0 = Release|Any CPU
+		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Release|Mixed Platforms.ActiveCfg = Release|x64
+		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Release|Mixed Platforms.Build.0 = Release|x64
 		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Release|x64.ActiveCfg = Release|x64
 		{30D8C5F1-CD3A-4EC1-907F-430177A03FBE}.Release|x64.Build.0 = Release|x64
@@ -44,4 +57,6 @@
 		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
+		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Debug|Mixed Platforms.Build.0 = Debug|x64
 		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Debug|x64.ActiveCfg = Debug|x64
 		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Debug|x64.Build.0 = Debug|x64
@@ -50,4 +65,6 @@
 		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Release|Any CPU.Build.0 = Release|Any CPU
+		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Release|Mixed Platforms.ActiveCfg = Release|x64
+		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Release|Mixed Platforms.Build.0 = Release|x64
 		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Release|x64.ActiveCfg = Release|x64
 		{EBEBA863-DD05-4331-BE25-5758B15F7407}.Release|x64.Build.0 = Release|x64
@@ -56,4 +73,6 @@
 		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Debug|Mixed Platforms.Build.0 = Debug|x86
 		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Debug|x64.ActiveCfg = Debug|x64
 		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Debug|x64.Build.0 = Debug|x64
@@ -62,8 +81,34 @@
 		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Release|Any CPU.Build.0 = Release|Any CPU
+		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Release|Mixed Platforms.ActiveCfg = Release|x86
+		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Release|Mixed Platforms.Build.0 = Release|x86
 		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Release|x64.ActiveCfg = Release|x64
 		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Release|x64.Build.0 = Release|x64
 		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Release|x86.ActiveCfg = Release|x86
 		{421D9CCA-5A48-4813-AB9C-ED7025F9CC35}.Release|x86.Build.0 = Release|x86
+		{D4E9242F-DAA4-4A15-8DE7-91CECFFFD898}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D4E9242F-DAA4-4A15-8DE7-91CECFFFD898}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D4E9242F-DAA4-4A15-8DE7-91CECFFFD898}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
+		{D4E9242F-DAA4-4A15-8DE7-91CECFFFD898}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
+		{D4E9242F-DAA4-4A15-8DE7-91CECFFFD898}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{D4E9242F-DAA4-4A15-8DE7-91CECFFFD898}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{D4E9242F-DAA4-4A15-8DE7-91CECFFFD898}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D4E9242F-DAA4-4A15-8DE7-91CECFFFD898}.Release|Any CPU.Build.0 = Release|Any CPU
+		{D4E9242F-DAA4-4A15-8DE7-91CECFFFD898}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
+		{D4E9242F-DAA4-4A15-8DE7-91CECFFFD898}.Release|Mixed Platforms.Build.0 = Release|Any CPU
+		{D4E9242F-DAA4-4A15-8DE7-91CECFFFD898}.Release|x64.ActiveCfg = Release|Any CPU
+		{D4E9242F-DAA4-4A15-8DE7-91CECFFFD898}.Release|x86.ActiveCfg = Release|Any CPU
+		{BA6B5487-6CCA-4484-B196-13B68A45CBB5}.Debug|Any CPU.ActiveCfg = Debug|x86
+		{BA6B5487-6CCA-4484-B196-13B68A45CBB5}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
+		{BA6B5487-6CCA-4484-B196-13B68A45CBB5}.Debug|Mixed Platforms.Build.0 = Debug|x86
+		{BA6B5487-6CCA-4484-B196-13B68A45CBB5}.Debug|x64.ActiveCfg = Debug|x86
+		{BA6B5487-6CCA-4484-B196-13B68A45CBB5}.Debug|x86.ActiveCfg = Debug|x86
+		{BA6B5487-6CCA-4484-B196-13B68A45CBB5}.Debug|x86.Build.0 = Debug|x86
+		{BA6B5487-6CCA-4484-B196-13B68A45CBB5}.Release|Any CPU.ActiveCfg = Release|x86
+		{BA6B5487-6CCA-4484-B196-13B68A45CBB5}.Release|Mixed Platforms.ActiveCfg = Release|x86
+		{BA6B5487-6CCA-4484-B196-13B68A45CBB5}.Release|Mixed Platforms.Build.0 = Release|x86
+		{BA6B5487-6CCA-4484-B196-13B68A45CBB5}.Release|x64.ActiveCfg = Release|x86
+		{BA6B5487-6CCA-4484-B196-13B68A45CBB5}.Release|x86.ActiveCfg = Release|x86
+		{BA6B5487-6CCA-4484-B196-13B68A45CBB5}.Release|x86.Build.0 = Release|x86
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
Index: /branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment/3.3/GeneralizedQuadraticAssignmentProblem.cs
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment/3.3/GeneralizedQuadraticAssignmentProblem.cs	(revision 6658)
+++ /branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment/3.3/GeneralizedQuadraticAssignmentProblem.cs	(revision 6659)
@@ -78,7 +78,7 @@
       set { InstallationCostsParameter.Value = value; }
     }
-    public DoubleValue TransportationCosts {
-      get { return TransportationCostsParameter.Value; }
-      set { TransportationCostsParameter.Value = value; }
+    public double TransportationCosts {
+      get { return TransportationCostsParameter.Value.Value; }
+      set { TransportationCostsParameter.Value.Value = value; }
     }
     public DoubleArray Demands {
@@ -131,5 +131,5 @@
       InstallationCosts = new DoubleMatrix(3, 3);
 
-      TransportationCosts = new DoubleValue(1);
+      TransportationCosts = 1;
 
       Demands = new DoubleArray(5);
Index: /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/HeuristicLab.Problems.QuadraticAssignment.Views-3.3.csproj
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/HeuristicLab.Problems.QuadraticAssignment.Views-3.3.csproj	(revision 6658)
+++ /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/HeuristicLab.Problems.QuadraticAssignment.Views-3.3.csproj	(revision 6659)
@@ -113,4 +113,6 @@
     <Reference Include="System.Data" />
     <Reference Include="System.Drawing" />
+    <Reference Include="System.Runtime.Serialization" />
+    <Reference Include="System.ServiceModel" />
     <Reference Include="System.Windows.Forms" />
     <Reference Include="System.Windows.Forms.DataVisualization" />
@@ -136,8 +138,33 @@
       <DependentUpon>QuadraticAssignmentProblemView.cs</DependentUpon>
     </Compile>
+    <Compile Include="Service References\QAPServiceReference\Reference.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>Reference.svcmap</DependentUpon>
+    </Compile>
+    <None Include="app.config" />
     <None Include="Plugin.cs.frame" />
     <Compile Include="Plugin.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <None Include="Properties\AssemblyInfo.frame" />
+    <None Include="Service References\QAPServiceReference\HeuristicLab.Problems.QuadraticAssignment.Views.QAPServiceReference.QAPInstanceDto.datasource">
+      <DependentUpon>Reference.svcmap</DependentUpon>
+    </None>
+    <None Include="Service References\QAPServiceReference\HeuristicLab.Problems.QuadraticAssignment.Views.QAPServiceReference.QAPSolutionDto.datasource">
+      <DependentUpon>Reference.svcmap</DependentUpon>
+    </None>
+    <None Include="Service References\QAPServiceReference\QAP.wsdl" />
+    <None Include="Service References\QAPServiceReference\QAP.xsd">
+      <SubType>Designer</SubType>
+    </None>
+    <None Include="Service References\QAPServiceReference\QAP1.xsd">
+      <SubType>Designer</SubType>
+    </None>
+    <None Include="Service References\QAPServiceReference\QAP2.xsd">
+      <SubType>Designer</SubType>
+    </None>
+    <None Include="Service References\QAPServiceReference\QAP3.xsd">
+      <SubType>Designer</SubType>
+    </None>
   </ItemGroup>
   <ItemGroup>
@@ -197,4 +224,25 @@
       <Name>HeuristicLab.Problems.QuadraticAssignment-3.3</Name>
     </ProjectReference>
+  </ItemGroup>
+  <ItemGroup>
+    <WCFMetadata Include="Service References\" />
+  </ItemGroup>
+  <ItemGroup>
+    <WCFMetadataStorage Include="Service References\QAPServiceReference\" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Service References\QAPServiceReference\QAP.disco" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Service References\QAPServiceReference\configuration91.svcinfo" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Service References\QAPServiceReference\configuration.svcinfo" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="Service References\QAPServiceReference\Reference.svcmap">
+      <Generator>WCF Proxy Generator</Generator>
+      <LastGenOutput>Reference.cs</LastGenOutput>
+    </None>
   </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Index: /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/QuadraticAssignmentProblemView.Designer.cs
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/QuadraticAssignmentProblemView.Designer.cs	(revision 6658)
+++ /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/QuadraticAssignmentProblemView.Designer.cs	(revision 6659)
@@ -54,4 +54,5 @@
       this.visualizationTabPage = new System.Windows.Forms.TabPage();
       this.qapView = new HeuristicLab.Problems.QuadraticAssignment.Views.QAPVisualizationControl();
+      this.reloadInstancesButton = new System.Windows.Forms.Button();
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).BeginInit();
       this.tabControl.SuspendLayout();
@@ -120,7 +121,7 @@
       this.instancesComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
       this.instancesComboBox.FormattingEnabled = true;
-      this.instancesComboBox.Location = new System.Drawing.Point(105, 2);
+      this.instancesComboBox.Location = new System.Drawing.Point(137, 1);
       this.instancesComboBox.Name = "instancesComboBox";
-      this.instancesComboBox.Size = new System.Drawing.Size(358, 21);
+      this.instancesComboBox.Size = new System.Drawing.Size(326, 21);
       this.instancesComboBox.TabIndex = 7;
       this.instancesComboBox.SelectedValueChanged += new System.EventHandler(this.instancesComboBox_SelectedValueChanged);
@@ -184,4 +185,14 @@
       this.qapView.Weights = null;
       // 
+      // reloadInstancesButton
+      // 
+      this.reloadInstancesButton.Location = new System.Drawing.Point(105, 0);
+      this.reloadInstancesButton.Name = "reloadInstancesButton";
+      this.reloadInstancesButton.Size = new System.Drawing.Size(26, 23);
+      this.reloadInstancesButton.TabIndex = 9;
+      this.reloadInstancesButton.Text = "Reload";
+      this.reloadInstancesButton.UseVisualStyleBackColor = true;
+      this.reloadInstancesButton.Click += new System.EventHandler(this.reloadInstancesButton_Click);
+      // 
       // QuadraticAssignmentProblemView
       // 
@@ -192,8 +203,10 @@
       this.Controls.Add(this.importInstanceButton);
       this.Controls.Add(this.loadInstanceButton);
+      this.Controls.Add(this.reloadInstancesButton);
       this.Controls.Add(this.QAPLIBInstancesLabel);
       this.Name = "QuadraticAssignmentProblemView";
       this.Size = new System.Drawing.Size(647, 492);
       this.Controls.SetChildIndex(this.QAPLIBInstancesLabel, 0);
+      this.Controls.SetChildIndex(this.reloadInstancesButton, 0);
       this.Controls.SetChildIndex(this.loadInstanceButton, 0);
       this.Controls.SetChildIndex(this.importInstanceButton, 0);
@@ -223,4 +236,5 @@
     private System.Windows.Forms.TabPage visualizationTabPage;
     private QAPVisualizationControl qapView;
+    private System.Windows.Forms.Button reloadInstancesButton;
   }
 }
Index: /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/QuadraticAssignmentProblemView.cs
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/QuadraticAssignmentProblemView.cs	(revision 6658)
+++ /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/QuadraticAssignmentProblemView.cs	(revision 6659)
@@ -25,4 +25,5 @@
 using HeuristicLab.Common.Resources;
 using HeuristicLab.Core.Views;
+using HeuristicLab.Data;
 using HeuristicLab.MainForm;
 using HeuristicLab.MainForm.WindowsForms;
@@ -40,4 +41,7 @@
       InitializeComponent();
       importInstanceButton.Image = VSImageLibrary.Open;
+      reloadInstancesButton.Text = String.Empty;
+      reloadInstancesButton.Image = VSImageLibrary.Refresh;
+      loadInstanceButton.Image = VSImageLibrary.Internet;
       Controls.Remove(parameterCollectionView);
       parameterCollectionView.Dock = DockStyle.Fill;
@@ -102,5 +106,24 @@
       string instance = instancesComboBox.SelectedItem as string;
       try {
-        Content.LoadEmbeddedInstance(instance);
+        //Content.LoadEmbeddedInstance(instance);
+        using (QAPServiceReference.QAPClient client = new QAPServiceReference.QAPClient()) {
+          var data = client.GetProblemInstanceData(instance);
+          DoubleMatrix weights = new DoubleMatrix(data.Weights.Length, data.Weights.Length);
+          DoubleMatrix distances = new DoubleMatrix(data.Weights.Length, data.Weights.Length);
+          try {
+            for (int i = 0; i < data.Weights.Length; i++)
+              for (int j = 0; j < data.Weights.Length; j++) {
+                weights[i, j] = data.Weights[i][j];
+                distances[i, j] = data.Distances[i][j];
+              }
+          } catch (IndexOutOfRangeException) {
+            MessageBox.Show("The problem data is malformed, the problem could not be loaded.", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
+          }
+          Content.Name = data.Name;
+          Content.Description = data.Description;
+          Content.Maximization.Value = data.Maximization;
+          Content.Weights = weights;
+          Content.Distances = distances;
+        }
       } catch (Exception ex) {
         PluginInfrastructure.ErrorHandling.ShowErrorDialog(ex);
@@ -133,4 +156,16 @@
       toolTip.SetToolTip(QAPLIBInstancesLabel, String.Empty);
     }
+
+    private void reloadInstancesButton_Click(object sender, EventArgs e) {
+      try {
+        using (QAPServiceReference.QAPClient client = new QAPServiceReference.QAPClient()) {
+          instancesComboBox.Items.Clear();
+          foreach (string name in client.GetProblemInstances())
+            instancesComboBox.Items.Add(name);
+        }
+      } catch (Exception ex) {
+        PluginInfrastructure.ErrorHandling.ShowErrorDialog(ex);
+      }
+    }
   }
 }
Index: /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/HeuristicLab.Problems.QuadraticAssignment.Views.QAPServiceReference.QAPInstanceDto.datasource
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/HeuristicLab.Problems.QuadraticAssignment.Views.QAPServiceReference.QAPInstanceDto.datasource	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/HeuristicLab.Problems.QuadraticAssignment.Views.QAPServiceReference.QAPInstanceDto.datasource	(revision 6659)
@@ -0,0 +1,10 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<!--
+    This file is automatically generated by Visual Studio .Net. It is 
+    used to store generic object data source configuration information.  
+    Renaming the file extension or editing the content of this file may   
+    cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="QAPInstanceDto" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+   <TypeInfo>HeuristicLab.Problems.QuadraticAssignment.Views.QAPServiceReference.QAPInstanceDto</TypeInfo>
+</GenericObjectDataSource>
Index: /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/HeuristicLab.Problems.QuadraticAssignment.Views.QAPServiceReference.QAPSolutionDto.datasource
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/HeuristicLab.Problems.QuadraticAssignment.Views.QAPServiceReference.QAPSolutionDto.datasource	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/HeuristicLab.Problems.QuadraticAssignment.Views.QAPServiceReference.QAPSolutionDto.datasource	(revision 6659)
@@ -0,0 +1,10 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<!--
+    This file is automatically generated by Visual Studio .Net. It is 
+    used to store generic object data source configuration information.  
+    Renaming the file extension or editing the content of this file may   
+    cause the file to be unrecognizable by the program.
+-->
+<GenericObjectDataSource DisplayName="QAPSolutionDto" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
+   <TypeInfo>HeuristicLab.Problems.QuadraticAssignment.Views.QAPServiceReference.QAPSolutionDto</TypeInfo>
+</GenericObjectDataSource>
Index: /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/QAP.disco
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/QAP.disco	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/QAP.disco	(revision 6659)
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<discovery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/disco/">
+  <contractRef ref="http://localhost:3978/QAP/QAP.svc?wsdl" docRef="http://localhost:3978/QAP/QAP.svc" xmlns="http://schemas.xmlsoap.org/disco/scl/" />
+</discovery>
Index: /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/QAP.wsdl
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/QAP.wsdl	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/QAP.wsdl	(revision 6659)
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="utf-8"?>
+<wsdl:definitions xmlns:wsap="http://schemas.xmlsoap.org/ws/2004/08/addressing/policy" xmlns:wsa10="http://www.w3.org/2005/08/addressing" xmlns:tns="http://tempuri.org/" xmlns:msc="http://schemas.microsoft.com/ws/2005/12/wsdl/contract" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsx="http://schemas.xmlsoap.org/ws/2004/09/mex" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="QAP" targetNamespace="http://tempuri.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+  <wsdl:types>
+    <xsd:schema targetNamespace="http://tempuri.org/Imports">
+      <xsd:import schemaLocation="http://localhost:3978/QAP/QAP.svc?xsd=xsd0" namespace="http://tempuri.org/" />
+      <xsd:import schemaLocation="http://localhost:3978/QAP/QAP.svc?xsd=xsd1" namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
+      <xsd:import schemaLocation="http://localhost:3978/QAP/QAP.svc?xsd=xsd2" namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
+      <xsd:import schemaLocation="http://localhost:3978/QAP/QAP.svc?xsd=xsd3" namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.ProblemInstances" />
+    </xsd:schema>
+  </wsdl:types>
+  <wsdl:message name="IQAP_GetProblemInstances_InputMessage">
+    <wsdl:part name="parameters" element="tns:GetProblemInstances" />
+  </wsdl:message>
+  <wsdl:message name="IQAP_GetProblemInstances_OutputMessage">
+    <wsdl:part name="parameters" element="tns:GetProblemInstancesResponse" />
+  </wsdl:message>
+  <wsdl:message name="IQAP_GetProblemInstanceData_InputMessage">
+    <wsdl:part name="parameters" element="tns:GetProblemInstanceData" />
+  </wsdl:message>
+  <wsdl:message name="IQAP_GetProblemInstanceData_OutputMessage">
+    <wsdl:part name="parameters" element="tns:GetProblemInstanceDataResponse" />
+  </wsdl:message>
+  <wsdl:message name="IQAP_GetBestSolutionsData_InputMessage">
+    <wsdl:part name="parameters" element="tns:GetBestSolutionsData" />
+  </wsdl:message>
+  <wsdl:message name="IQAP_GetBestSolutionsData_OutputMessage">
+    <wsdl:part name="parameters" element="tns:GetBestSolutionsDataResponse" />
+  </wsdl:message>
+  <wsdl:portType name="IQAP">
+    <wsdl:operation name="GetProblemInstances">
+      <wsdl:input wsaw:Action="http://tempuri.org/IQAP/GetProblemInstances" message="tns:IQAP_GetProblemInstances_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/IQAP/GetProblemInstancesResponse" message="tns:IQAP_GetProblemInstances_OutputMessage" />
+    </wsdl:operation>
+    <wsdl:operation name="GetProblemInstanceData">
+      <wsdl:input wsaw:Action="http://tempuri.org/IQAP/GetProblemInstanceData" message="tns:IQAP_GetProblemInstanceData_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/IQAP/GetProblemInstanceDataResponse" message="tns:IQAP_GetProblemInstanceData_OutputMessage" />
+    </wsdl:operation>
+    <wsdl:operation name="GetBestSolutionsData">
+      <wsdl:input wsaw:Action="http://tempuri.org/IQAP/GetBestSolutionsData" message="tns:IQAP_GetBestSolutionsData_InputMessage" />
+      <wsdl:output wsaw:Action="http://tempuri.org/IQAP/GetBestSolutionsDataResponse" message="tns:IQAP_GetBestSolutionsData_OutputMessage" />
+    </wsdl:operation>
+  </wsdl:portType>
+  <wsdl:binding name="BasicHttpBinding_IQAP" type="tns:IQAP">
+    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
+    <wsdl:operation name="GetProblemInstances">
+      <soap:operation soapAction="http://tempuri.org/IQAP/GetProblemInstances" style="document" />
+      <wsdl:input>
+        <soap:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetProblemInstanceData">
+      <soap:operation soapAction="http://tempuri.org/IQAP/GetProblemInstanceData" style="document" />
+      <wsdl:input>
+        <soap:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+    <wsdl:operation name="GetBestSolutionsData">
+      <soap:operation soapAction="http://tempuri.org/IQAP/GetBestSolutionsData" style="document" />
+      <wsdl:input>
+        <soap:body use="literal" />
+      </wsdl:input>
+      <wsdl:output>
+        <soap:body use="literal" />
+      </wsdl:output>
+    </wsdl:operation>
+  </wsdl:binding>
+  <wsdl:service name="QAP">
+    <wsdl:port name="BasicHttpBinding_IQAP" binding="tns:BasicHttpBinding_IQAP">
+      <soap:address location="http://localhost:3978/QAP/QAP.svc" />
+    </wsdl:port>
+  </wsdl:service>
+</wsdl:definitions>
Index: /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/QAP.xsd
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/QAP.xsd	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/QAP.xsd	(revision 6659)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:tns="http://schemas.microsoft.com/2003/10/Serialization/Arrays" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:complexType name="ArrayOfstring">
+    <xs:sequence>
+      <xs:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="xs:string" />
+    </xs:sequence>
+  </xs:complexType>
+  <xs:element name="ArrayOfstring" nillable="true" type="tns:ArrayOfstring" />
+  <xs:complexType name="ArrayOfArrayOfdouble">
+    <xs:sequence>
+      <xs:element minOccurs="0" maxOccurs="unbounded" name="ArrayOfdouble" nillable="true" type="tns:ArrayOfdouble" />
+    </xs:sequence>
+  </xs:complexType>
+  <xs:element name="ArrayOfArrayOfdouble" nillable="true" type="tns:ArrayOfArrayOfdouble" />
+  <xs:complexType name="ArrayOfdouble">
+    <xs:sequence>
+      <xs:element minOccurs="0" maxOccurs="unbounded" name="double" type="xs:double" />
+    </xs:sequence>
+  </xs:complexType>
+  <xs:element name="ArrayOfdouble" nillable="true" type="tns:ArrayOfdouble" />
+  <xs:complexType name="ArrayOfint">
+    <xs:sequence>
+      <xs:element minOccurs="0" maxOccurs="unbounded" name="int" type="xs:int" />
+    </xs:sequence>
+  </xs:complexType>
+  <xs:element name="ArrayOfint" nillable="true" type="tns:ArrayOfint" />
+</xs:schema>
Index: /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/QAP1.xsd
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/QAP1.xsd	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/QAP1.xsd	(revision 6659)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.ProblemInstances" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.ProblemInstances" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:import schemaLocation="http://localhost:3978/QAP/QAP.svc?xsd=xsd2" namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
+  <xs:complexType name="QAPInstanceDto">
+    <xs:sequence>
+      <xs:element minOccurs="0" name="Description" nillable="true" type="xs:string" />
+      <xs:element xmlns:q1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="Distances" nillable="true" type="q1:ArrayOfArrayOfdouble" />
+      <xs:element minOccurs="0" name="Maximization" type="xs:boolean" />
+      <xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
+      <xs:element xmlns:q2="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="Weights" nillable="true" type="q2:ArrayOfArrayOfdouble" />
+    </xs:sequence>
+  </xs:complexType>
+  <xs:element name="QAPInstanceDto" nillable="true" type="tns:QAPInstanceDto" />
+  <xs:complexType name="ArrayOfQAPSolutionDto">
+    <xs:sequence>
+      <xs:element minOccurs="0" maxOccurs="unbounded" name="QAPSolutionDto" nillable="true" type="tns:QAPSolutionDto" />
+    </xs:sequence>
+  </xs:complexType>
+  <xs:element name="ArrayOfQAPSolutionDto" nillable="true" type="tns:ArrayOfQAPSolutionDto" />
+  <xs:complexType name="QAPSolutionDto">
+    <xs:sequence>
+      <xs:element xmlns:q3="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="Assignment" nillable="true" type="q3:ArrayOfint" />
+      <xs:element minOccurs="0" name="Quality" type="xs:double" />
+    </xs:sequence>
+  </xs:complexType>
+  <xs:element name="QAPSolutionDto" nillable="true" type="tns:QAPSolutionDto" />
+</xs:schema>
Index: /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/QAP2.xsd
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/QAP2.xsd	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/QAP2.xsd	(revision 6659)
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:tns="http://tempuri.org/" elementFormDefault="qualified" targetNamespace="http://tempuri.org/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:import schemaLocation="http://localhost:3978/QAP/QAP.svc?xsd=xsd2" namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
+  <xs:import schemaLocation="http://localhost:3978/QAP/QAP.svc?xsd=xsd3" namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.ProblemInstances" />
+  <xs:element name="GetProblemInstances">
+    <xs:complexType>
+      <xs:sequence />
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="GetProblemInstancesResponse">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element xmlns:q1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="GetProblemInstancesResult" nillable="true" type="q1:ArrayOfstring" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="GetProblemInstanceData">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element minOccurs="0" name="instance" nillable="true" type="xs:string" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="GetProblemInstanceDataResponse">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element xmlns:q2="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.ProblemInstances" minOccurs="0" name="GetProblemInstanceDataResult" nillable="true" type="q2:QAPInstanceDto" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="GetBestSolutionsData">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element minOccurs="0" name="instance" nillable="true" type="xs:string" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+  <xs:element name="GetBestSolutionsDataResponse">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element xmlns:q3="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.ProblemInstances" minOccurs="0" name="GetBestSolutionsDataResult" nillable="true" type="q3:ArrayOfQAPSolutionDto" />
+      </xs:sequence>
+    </xs:complexType>
+  </xs:element>
+</xs:schema>
Index: /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/QAP3.xsd
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/QAP3.xsd	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/QAP3.xsd	(revision 6659)
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema xmlns:tns="http://schemas.microsoft.com/2003/10/Serialization/" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+  <xs:element name="anyType" nillable="true" type="xs:anyType" />
+  <xs:element name="anyURI" nillable="true" type="xs:anyURI" />
+  <xs:element name="base64Binary" nillable="true" type="xs:base64Binary" />
+  <xs:element name="boolean" nillable="true" type="xs:boolean" />
+  <xs:element name="byte" nillable="true" type="xs:byte" />
+  <xs:element name="dateTime" nillable="true" type="xs:dateTime" />
+  <xs:element name="decimal" nillable="true" type="xs:decimal" />
+  <xs:element name="double" nillable="true" type="xs:double" />
+  <xs:element name="float" nillable="true" type="xs:float" />
+  <xs:element name="int" nillable="true" type="xs:int" />
+  <xs:element name="long" nillable="true" type="xs:long" />
+  <xs:element name="QName" nillable="true" type="xs:QName" />
+  <xs:element name="short" nillable="true" type="xs:short" />
+  <xs:element name="string" nillable="true" type="xs:string" />
+  <xs:element name="unsignedByte" nillable="true" type="xs:unsignedByte" />
+  <xs:element name="unsignedInt" nillable="true" type="xs:unsignedInt" />
+  <xs:element name="unsignedLong" nillable="true" type="xs:unsignedLong" />
+  <xs:element name="unsignedShort" nillable="true" type="xs:unsignedShort" />
+  <xs:element name="char" nillable="true" type="tns:char" />
+  <xs:simpleType name="char">
+    <xs:restriction base="xs:int" />
+  </xs:simpleType>
+  <xs:element name="duration" nillable="true" type="tns:duration" />
+  <xs:simpleType name="duration">
+    <xs:restriction base="xs:duration">
+      <xs:pattern value="\-?P(\d*D)?(T(\d*H)?(\d*M)?(\d*(\.\d*)?S)?)?" />
+      <xs:minInclusive value="-P10675199DT2H48M5.4775808S" />
+      <xs:maxInclusive value="P10675199DT2H48M5.4775807S" />
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:element name="guid" nillable="true" type="tns:guid" />
+  <xs:simpleType name="guid">
+    <xs:restriction base="xs:string">
+      <xs:pattern value="[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}" />
+    </xs:restriction>
+  </xs:simpleType>
+  <xs:attribute name="FactoryType" type="xs:QName" />
+  <xs:attribute name="Id" type="xs:ID" />
+  <xs:attribute name="Ref" type="xs:IDREF" />
+</xs:schema>
Index: /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/Reference.cs
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/Reference.cs	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/Reference.cs	(revision 6659)
@@ -0,0 +1,239 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//     This code was generated by a tool.
+//     Runtime Version:4.0.30319.235
+//
+//     Changes to this file may cause incorrect behavior and will be lost if
+//     the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+namespace HeuristicLab.Problems.QuadraticAssignment.Views.QAPServiceReference {
+    using System.Runtime.Serialization;
+    using System;
+    
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="QAPInstanceDto", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.ProblemInstances")]
+    [System.SerializableAttribute()]
+    public partial class QAPInstanceDto : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+        
+        [System.NonSerializedAttribute()]
+        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private string DescriptionField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private double[][] DistancesField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private bool MaximizationField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private string NameField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private double[][] WeightsField;
+        
+        [global::System.ComponentModel.BrowsableAttribute(false)]
+        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+            get {
+                return this.extensionDataField;
+            }
+            set {
+                this.extensionDataField = value;
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public string Description {
+            get {
+                return this.DescriptionField;
+            }
+            set {
+                if ((object.ReferenceEquals(this.DescriptionField, value) != true)) {
+                    this.DescriptionField = value;
+                    this.RaisePropertyChanged("Description");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public double[][] Distances {
+            get {
+                return this.DistancesField;
+            }
+            set {
+                if ((object.ReferenceEquals(this.DistancesField, value) != true)) {
+                    this.DistancesField = value;
+                    this.RaisePropertyChanged("Distances");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public bool Maximization {
+            get {
+                return this.MaximizationField;
+            }
+            set {
+                if ((this.MaximizationField.Equals(value) != true)) {
+                    this.MaximizationField = value;
+                    this.RaisePropertyChanged("Maximization");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public string Name {
+            get {
+                return this.NameField;
+            }
+            set {
+                if ((object.ReferenceEquals(this.NameField, value) != true)) {
+                    this.NameField = value;
+                    this.RaisePropertyChanged("Name");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public double[][] Weights {
+            get {
+                return this.WeightsField;
+            }
+            set {
+                if ((object.ReferenceEquals(this.WeightsField, value) != true)) {
+                    this.WeightsField = value;
+                    this.RaisePropertyChanged("Weights");
+                }
+            }
+        }
+        
+        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        
+        protected void RaisePropertyChanged(string propertyName) {
+            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
+            if ((propertyChanged != null)) {
+                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
+            }
+        }
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
+    [System.Runtime.Serialization.DataContractAttribute(Name="QAPSolutionDto", Namespace="http://schemas.datacontract.org/2004/07/HeuristicLab.Services.ProblemInstances")]
+    [System.SerializableAttribute()]
+    public partial class QAPSolutionDto : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
+        
+        [System.NonSerializedAttribute()]
+        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private int[] AssignmentField;
+        
+        [System.Runtime.Serialization.OptionalFieldAttribute()]
+        private double QualityField;
+        
+        [global::System.ComponentModel.BrowsableAttribute(false)]
+        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
+            get {
+                return this.extensionDataField;
+            }
+            set {
+                this.extensionDataField = value;
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public int[] Assignment {
+            get {
+                return this.AssignmentField;
+            }
+            set {
+                if ((object.ReferenceEquals(this.AssignmentField, value) != true)) {
+                    this.AssignmentField = value;
+                    this.RaisePropertyChanged("Assignment");
+                }
+            }
+        }
+        
+        [System.Runtime.Serialization.DataMemberAttribute()]
+        public double Quality {
+            get {
+                return this.QualityField;
+            }
+            set {
+                if ((this.QualityField.Equals(value) != true)) {
+                    this.QualityField = value;
+                    this.RaisePropertyChanged("Quality");
+                }
+            }
+        }
+        
+        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
+        
+        protected void RaisePropertyChanged(string propertyName) {
+            System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
+            if ((propertyChanged != null)) {
+                propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
+            }
+        }
+    }
+    
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+    [System.ServiceModel.ServiceContractAttribute(ConfigurationName="QAPServiceReference.IQAP")]
+    public interface IQAP {
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IQAP/GetProblemInstances", ReplyAction="http://tempuri.org/IQAP/GetProblemInstancesResponse")]
+        string[] GetProblemInstances();
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IQAP/GetProblemInstanceData", ReplyAction="http://tempuri.org/IQAP/GetProblemInstanceDataResponse")]
+        HeuristicLab.Problems.QuadraticAssignment.Views.QAPServiceReference.QAPInstanceDto GetProblemInstanceData(string instance);
+        
+        [System.ServiceModel.OperationContractAttribute(Action="http://tempuri.org/IQAP/GetBestSolutionsData", ReplyAction="http://tempuri.org/IQAP/GetBestSolutionsDataResponse")]
+        HeuristicLab.Problems.QuadraticAssignment.Views.QAPServiceReference.QAPSolutionDto[] GetBestSolutionsData(string instance);
+    }
+    
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+    public interface IQAPChannel : HeuristicLab.Problems.QuadraticAssignment.Views.QAPServiceReference.IQAP, System.ServiceModel.IClientChannel {
+    }
+    
+    [System.Diagnostics.DebuggerStepThroughAttribute()]
+    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
+    public partial class QAPClient : System.ServiceModel.ClientBase<HeuristicLab.Problems.QuadraticAssignment.Views.QAPServiceReference.IQAP>, HeuristicLab.Problems.QuadraticAssignment.Views.QAPServiceReference.IQAP {
+        
+        public QAPClient() {
+        }
+        
+        public QAPClient(string endpointConfigurationName) : 
+                base(endpointConfigurationName) {
+        }
+        
+        public QAPClient(string endpointConfigurationName, string remoteAddress) : 
+                base(endpointConfigurationName, remoteAddress) {
+        }
+        
+        public QAPClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
+                base(endpointConfigurationName, remoteAddress) {
+        }
+        
+        public QAPClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
+                base(binding, remoteAddress) {
+        }
+        
+        public string[] GetProblemInstances() {
+            return base.Channel.GetProblemInstances();
+        }
+        
+        public HeuristicLab.Problems.QuadraticAssignment.Views.QAPServiceReference.QAPInstanceDto GetProblemInstanceData(string instance) {
+            return base.Channel.GetProblemInstanceData(instance);
+        }
+        
+        public HeuristicLab.Problems.QuadraticAssignment.Views.QAPServiceReference.QAPSolutionDto[] GetBestSolutionsData(string instance) {
+            return base.Channel.GetBestSolutionsData(instance);
+        }
+    }
+}
Index: /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/Reference.svcmap
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/Reference.svcmap	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/Reference.svcmap	(revision 6659)
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ReferenceGroup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ID="ed34ef92-f9c8-4d0f-8a26-eb1b6892aeee" xmlns="urn:schemas-microsoft-com:xml-wcfservicemap">
+  <ClientOptions>
+    <GenerateAsynchronousMethods>false</GenerateAsynchronousMethods>
+    <EnableDataBinding>true</EnableDataBinding>
+    <ExcludedTypes />
+    <ImportXmlTypes>false</ImportXmlTypes>
+    <GenerateInternalTypes>false</GenerateInternalTypes>
+    <GenerateMessageContracts>false</GenerateMessageContracts>
+    <NamespaceMappings />
+    <CollectionMappings />
+    <GenerateSerializableTypes>true</GenerateSerializableTypes>
+    <Serializer>Auto</Serializer>
+    <UseSerializerForFaults>true</UseSerializerForFaults>
+    <ReferenceAllAssemblies>true</ReferenceAllAssemblies>
+    <ReferencedAssemblies />
+    <ReferencedDataContractTypes />
+    <ServiceContractMappings />
+  </ClientOptions>
+  <MetadataSources>
+    <MetadataSource Address="http://localhost:3978/QAP/QAP.svc" Protocol="http" SourceId="1" />
+  </MetadataSources>
+  <Metadata>
+    <MetadataFile FileName="QAP.disco" MetadataType="Disco" ID="dea2bc2c-960b-40b9-94ce-8cffa4b02221" SourceId="1" SourceUrl="http://localhost:3978/QAP/QAP.svc?disco" />
+    <MetadataFile FileName="QAP.wsdl" MetadataType="Wsdl" ID="ee1aab36-1ae6-4864-99de-d577d1f3de16" SourceId="1" SourceUrl="http://localhost:3978/QAP/QAP.svc?wsdl" />
+    <MetadataFile FileName="QAP.xsd" MetadataType="Schema" ID="bf8e27bf-7807-41e0-8fe5-0941e9c0b93a" SourceId="1" SourceUrl="http://localhost:3978/QAP/QAP.svc?xsd=xsd2" />
+    <MetadataFile FileName="QAP1.xsd" MetadataType="Schema" ID="4dc00ff5-082c-49a3-b956-0af89ccfc448" SourceId="1" SourceUrl="http://localhost:3978/QAP/QAP.svc?xsd=xsd3" />
+    <MetadataFile FileName="QAP2.xsd" MetadataType="Schema" ID="d883e2c7-abf6-4c20-8d60-23f417b40561" SourceId="1" SourceUrl="http://localhost:3978/QAP/QAP.svc?xsd=xsd0" />
+    <MetadataFile FileName="QAP3.xsd" MetadataType="Schema" ID="c86fad99-c0cb-4ce6-9318-38797ba97040" SourceId="1" SourceUrl="http://localhost:3978/QAP/QAP.svc?xsd=xsd1" />
+  </Metadata>
+  <Extensions>
+    <ExtensionFile FileName="configuration91.svcinfo" Name="configuration91.svcinfo" />
+    <ExtensionFile FileName="configuration.svcinfo" Name="configuration.svcinfo" />
+  </Extensions>
+</ReferenceGroup>
Index: /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/configuration.svcinfo
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/configuration.svcinfo	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/configuration.svcinfo	(revision 6659)
@@ -0,0 +1,10 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<configurationSnapshot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:schemas-microsoft-com:xml-wcfconfigurationsnapshot">
+  <behaviors />
+  <bindings>
+    <binding digest="System.ServiceModel.Configuration.BasicHttpBindingElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data hostNameComparisonMode=&quot;StrongWildcard&quot; maxBufferSize=&quot;65536&quot; messageEncoding=&quot;Text&quot; name=&quot;BasicHttpBinding_IQAP&quot; textEncoding=&quot;utf-8&quot; transferMode=&quot;Buffered&quot;&gt;&lt;readerQuotas maxArrayLength=&quot;16384&quot; maxBytesPerRead=&quot;4096&quot; maxDepth=&quot;32&quot; maxNameTableCharCount=&quot;16384&quot; maxStringContentLength=&quot;8192&quot; /&gt;&lt;security mode=&quot;None&quot;&gt;&lt;message algorithmSuite=&quot;Default&quot; clientCredentialType=&quot;UserName&quot; /&gt;&lt;transport clientCredentialType=&quot;None&quot; proxyCredentialType=&quot;None&quot; realm=&quot;&quot; /&gt;&lt;/security&gt;&lt;/Data&gt;" bindingType="basicHttpBinding" name="BasicHttpBinding_IQAP" />
+  </bindings>
+  <endpoints>
+    <endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://localhost:3978/QAP/QAP.svc&quot; binding=&quot;basicHttpBinding&quot; bindingConfiguration=&quot;BasicHttpBinding_IQAP&quot; contract=&quot;QAPServiceReference.IQAP&quot; name=&quot;BasicHttpBinding_IQAP&quot; /&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://localhost:3978/QAP/QAP.svc&quot; binding=&quot;basicHttpBinding&quot; bindingConfiguration=&quot;BasicHttpBinding_IQAP&quot; contract=&quot;QAPServiceReference.IQAP&quot; name=&quot;BasicHttpBinding_IQAP&quot; /&gt;" contractName="QAPServiceReference.IQAP" name="BasicHttpBinding_IQAP" />
+  </endpoints>
+</configurationSnapshot>
Index: /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/configuration91.svcinfo
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/configuration91.svcinfo	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/Service References/QAPServiceReference/configuration91.svcinfo	(revision 6659)
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="utf-8"?>
+<SavedWcfConfigurationInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="9.1" CheckSum="PGSA1ejV32Fh0z8GmGBf7NFeB0w=">
+  <bindingConfigurations>
+    <bindingConfiguration bindingType="basicHttpBinding" name="BasicHttpBinding_IQAP">
+      <properties>
+        <property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>BasicHttpBinding_IQAP</serializedValue>
+        </property>
+        <property path="/closeTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>00:01:00</serializedValue>
+        </property>
+        <property path="/openTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>00:01:00</serializedValue>
+        </property>
+        <property path="/receiveTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>00:10:00</serializedValue>
+        </property>
+        <property path="/sendTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>00:01:00</serializedValue>
+        </property>
+        <property path="/allowCookies" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>False</serializedValue>
+        </property>
+        <property path="/bypassProxyOnLocal" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>False</serializedValue>
+        </property>
+        <property path="/hostNameComparisonMode" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.HostNameComparisonMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>StrongWildcard</serializedValue>
+        </property>
+        <property path="/maxBufferSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>65536</serializedValue>
+        </property>
+        <property path="/maxBufferPoolSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>524288</serializedValue>
+        </property>
+        <property path="/maxReceivedMessageSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>65536</serializedValue>
+        </property>
+        <property path="/messageEncoding" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.WSMessageEncoding, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>Text</serializedValue>
+        </property>
+        <property path="/proxyAddress" isComplexType="false" isExplicitlyDefined="false" clrType="System.Uri, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/readerQuotas" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement</serializedValue>
+        </property>
+        <property path="/readerQuotas/maxDepth" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>32</serializedValue>
+        </property>
+        <property path="/readerQuotas/maxStringContentLength" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>8192</serializedValue>
+        </property>
+        <property path="/readerQuotas/maxArrayLength" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>16384</serializedValue>
+        </property>
+        <property path="/readerQuotas/maxBytesPerRead" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>4096</serializedValue>
+        </property>
+        <property path="/readerQuotas/maxNameTableCharCount" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>16384</serializedValue>
+        </property>
+        <property path="/security" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.BasicHttpSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.BasicHttpSecurityElement</serializedValue>
+        </property>
+        <property path="/security/mode" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.BasicHttpSecurityMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>None</serializedValue>
+        </property>
+        <property path="/security/transport" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.HttpTransportSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.HttpTransportSecurityElement</serializedValue>
+        </property>
+        <property path="/security/transport/clientCredentialType" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.HttpClientCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>None</serializedValue>
+        </property>
+        <property path="/security/transport/proxyCredentialType" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.HttpProxyCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>None</serializedValue>
+        </property>
+        <property path="/security/transport/extendedProtectionPolicy" isComplexType="true" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement</serializedValue>
+        </property>
+        <property path="/security/transport/extendedProtectionPolicy/policyEnforcement" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.PolicyEnforcement, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>Never</serializedValue>
+        </property>
+        <property path="/security/transport/extendedProtectionPolicy/protectionScenario" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.ProtectionScenario, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>TransportSelected</serializedValue>
+        </property>
+        <property path="/security/transport/extendedProtectionPolicy/customServiceNames" isComplexType="true" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.Configuration.ServiceNameElementCollection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>(Collection)</serializedValue>
+        </property>
+        <property path="/security/transport/realm" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/security/message" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.BasicHttpMessageSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.BasicHttpMessageSecurityElement</serializedValue>
+        </property>
+        <property path="/security/message/clientCredentialType" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.BasicHttpMessageCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>UserName</serializedValue>
+        </property>
+        <property path="/security/message/algorithmSuite" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.Security.SecurityAlgorithmSuite, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>Default</serializedValue>
+        </property>
+        <property path="/textEncoding" isComplexType="false" isExplicitlyDefined="true" clrType="System.Text.Encoding, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.Text.UTF8Encoding</serializedValue>
+        </property>
+        <property path="/transferMode" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.TransferMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>Buffered</serializedValue>
+        </property>
+        <property path="/useDefaultWebProxy" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>True</serializedValue>
+        </property>
+      </properties>
+    </bindingConfiguration>
+  </bindingConfigurations>
+  <endpoints>
+    <endpoint name="BasicHttpBinding_IQAP" contract="QAPServiceReference.IQAP" bindingType="basicHttpBinding" address="http://localhost:3978/QAP/QAP.svc" bindingConfiguration="BasicHttpBinding_IQAP">
+      <properties>
+        <property path="/address" isComplexType="false" isExplicitlyDefined="true" clrType="System.Uri, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>http://localhost:3978/QAP/QAP.svc</serializedValue>
+        </property>
+        <property path="/behaviorConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/binding" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>basicHttpBinding</serializedValue>
+        </property>
+        <property path="/bindingConfiguration" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>BasicHttpBinding_IQAP</serializedValue>
+        </property>
+        <property path="/contract" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>QAPServiceReference.IQAP</serializedValue>
+        </property>
+        <property path="/headers" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.AddressHeaderCollectionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.AddressHeaderCollectionElement</serializedValue>
+        </property>
+        <property path="/headers/headers" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.Channels.AddressHeaderCollection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>&lt;Header /&gt;</serializedValue>
+        </property>
+        <property path="/identity" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.IdentityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.IdentityElement</serializedValue>
+        </property>
+        <property path="/identity/userPrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.UserPrincipalNameElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.UserPrincipalNameElement</serializedValue>
+        </property>
+        <property path="/identity/userPrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/identity/servicePrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.ServicePrincipalNameElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.ServicePrincipalNameElement</serializedValue>
+        </property>
+        <property path="/identity/servicePrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/identity/dns" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.DnsElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.DnsElement</serializedValue>
+        </property>
+        <property path="/identity/dns/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/identity/rsa" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.RsaElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.RsaElement</serializedValue>
+        </property>
+        <property path="/identity/rsa/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/identity/certificate" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.CertificateElement</serializedValue>
+        </property>
+        <property path="/identity/certificate/encodedValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/identity/certificateReference" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateReferenceElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>System.ServiceModel.Configuration.CertificateReferenceElement</serializedValue>
+        </property>
+        <property path="/identity/certificateReference/storeName" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreName, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>My</serializedValue>
+        </property>
+        <property path="/identity/certificateReference/storeLocation" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreLocation, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>LocalMachine</serializedValue>
+        </property>
+        <property path="/identity/certificateReference/x509FindType" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.X509FindType, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>FindBySubjectDistinguishedName</serializedValue>
+        </property>
+        <property path="/identity/certificateReference/findValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/identity/certificateReference/isChainIncluded" isComplexType="false" isExplicitlyDefined="false" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>False</serializedValue>
+        </property>
+        <property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue>BasicHttpBinding_IQAP</serializedValue>
+        </property>
+        <property path="/kind" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+        <property path="/endpointConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
+          <serializedValue />
+        </property>
+      </properties>
+    </endpoint>
+  </endpoints>
+</SavedWcfConfigurationInformation>
Index: /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/app.config
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/app.config	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Problems.QuadraticAssignment.Views/3.3/app.config	(revision 6659)
@@ -0,0 +1,28 @@
+﻿<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <system.serviceModel>
+        <bindings>
+            <basicHttpBinding>
+                <binding name="BasicHttpBinding_IQAP" closeTimeout="00:01:00"
+                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
+                    allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
+                    maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
+                    messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
+                    useDefaultWebProxy="true">
+                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
+                        maxBytesPerRead="4096" maxNameTableCharCount="16384" />
+                    <security mode="None">
+                        <transport clientCredentialType="None" proxyCredentialType="None"
+                            realm="" />
+                        <message clientCredentialType="UserName" algorithmSuite="Default" />
+                    </security>
+                </binding>
+            </basicHttpBinding>
+        </bindings>
+        <client>
+            <endpoint address="http://localhost:3978/QAP/QAP.svc" binding="basicHttpBinding"
+                bindingConfiguration="BasicHttpBinding_IQAP" contract="QAPServiceReference.IQAP"
+                name="BasicHttpBinding_IQAP" />
+        </client>
+    </system.serviceModel>
+</configuration>
Index: /branches/GeneralizedQAP/HeuristicLab.Services.Deployment/3.3/HeuristicLab.Services.Deployment-3.3.csproj
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.Deployment/3.3/HeuristicLab.Services.Deployment-3.3.csproj	(revision 6658)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.Deployment/3.3/HeuristicLab.Services.Deployment-3.3.csproj	(revision 6659)
@@ -14,5 +14,6 @@
     <StartArguments>/client:"WcfTestClient.exe"</StartArguments>
     <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
-    <TargetFrameworkProfile></TargetFrameworkProfile>
+    <TargetFrameworkProfile>
+    </TargetFrameworkProfile>
     <SignAssembly>true</SignAssembly>
     <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
@@ -114,5 +115,7 @@
   </ItemGroup>
   <ItemGroup>
-    <None Include="App.config" />
+    <None Include="App.config">
+      <SubType>Designer</SubType>
+    </None>
   </ItemGroup>
   <ItemGroup>
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances.QAPInitializer/HeuristicLab.Services.ProblemInstances.QAPInitializer.csproj
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances.QAPInitializer/HeuristicLab.Services.ProblemInstances.QAPInitializer.csproj	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances.QAPInitializer/HeuristicLab.Services.ProblemInstances.QAPInitializer.csproj	(revision 6659)
@@ -0,0 +1,91 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">x86</Platform>
+    <ProductVersion>8.0.30703</ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{BA6B5487-6CCA-4484-B196-13B68A45CBB5}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.Services.ProblemInstances.QAPInitializer</RootNamespace>
+    <AssemblyName>HeuristicLab.Services.ProblemInstances.QAPInitializer</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <TargetFrameworkProfile>Client</TargetFrameworkProfile>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
+    <PlatformTarget>x86</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
+    <PlatformTarget>x86</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="HeuristicLab.Common-3.3">
+      <HintPath>..\..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Common-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Core-3.3">
+      <HintPath>..\..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Core-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Data-3.3">
+      <HintPath>..\..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Data-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Encodings.PermutationEncoding-3.3">
+      <HintPath>..\..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Encodings.PermutationEncoding-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Optimization-3.3">
+      <HintPath>..\..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Optimization-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="HeuristicLab.Problems.QuadraticAssignment-3.3">
+      <HintPath>..\..\..\..\..\..\..\Program Files\HeuristicLab 3.3\HeuristicLab.Problems.QuadraticAssignment-3.3.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Data.Entity" />
+    <Reference Include="System.Runtime.Serialization" />
+    <Reference Include="System.Security" />
+    <Reference Include="System.ServiceModel" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <WCFMetadata Include="Service References\" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="app.config" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\HeuristicLab.Services.ProblemInstances\HeuristicLab.Services.ProblemInstances-3.3.csproj">
+      <Project>{D4E9242F-DAA4-4A15-8DE7-91CECFFFD898}</Project>
+      <Name>HeuristicLab.Services.ProblemInstances-3.3</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances.QAPInitializer/Program.cs
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances.QAPInitializer/Program.cs	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances.QAPInitializer/Program.cs	(revision 6659)
@@ -0,0 +1,59 @@
+﻿using System;
+using System.Text;
+using HeuristicLab.Problems.QuadraticAssignment;
+
+namespace HeuristicLab.Services.ProblemInstances.QAPInitializer {
+  class Program {
+    static void Main(string[] args) {
+      QuadraticAssignmentProblem qap = new QuadraticAssignmentProblem();
+      using (ProblemInstancesEntities context = new ProblemInstancesEntities()) {
+        foreach (string instance in qap.EmbeddedInstances) {
+          qap.LoadEmbeddedInstance(instance);
+          // transform matrices into jagged arrays
+          double[][] weights = new double[qap.Weights.Rows][];
+          double[][] distances = new double[qap.Weights.Rows][];
+          for (int i = 0; i < weights.Length; i++) {
+            weights[i] = new double[weights.Length];
+            distances[i] = new double[weights.Length];
+            for (int j = 0; j < weights.Length; j++) {
+              weights[i][j] = qap.Weights[i, j];
+              distances[i][j] = qap.Distances[i, j];
+            }
+          }
+
+          QAPInstance dbInstance = context.CreateObject<QAPInstance>();
+          dbInstance.name = qap.Name;
+          dbInstance.description = qap.Description;
+          dbInstance.maximization = qap.Maximization.Value;
+          dbInstance.weights = PrimitiveSerializer.SerializeDoubleMatrix(weights);
+          dbInstance.weights_sha1 = GetSHA1Hash(dbInstance.weights);
+          dbInstance.distances = PrimitiveSerializer.SerializeDoubleMatrix(distances);
+          dbInstance.distances_sha1 = GetSHA1Hash(dbInstance.distances);
+          dbInstance.problemsize = qap.Weights.Rows;
+
+          context.QAPInstances.AddObject(dbInstance);
+        }
+        context.SaveChanges();
+      }
+    }
+
+    public static string GetSHA1Hash(string text) {
+      var SHA1 = new System.Security.Cryptography.SHA1CryptoServiceProvider();
+
+      byte[] arrayData;
+      byte[] arrayResult;
+      string result = null;
+      string temp = null;
+
+      arrayData = Encoding.ASCII.GetBytes(text);
+      arrayResult = SHA1.ComputeHash(arrayData);
+      for (int i = 0; i < arrayResult.Length; i++) {
+        temp = Convert.ToString(arrayResult[i], 16);
+        if (temp.Length == 1)
+          temp = "0" + temp;
+        result += temp;
+      }
+      return result;
+    }
+  }
+}
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances.QAPInitializer/Properties/AssemblyInfo.cs
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances.QAPInitializer/Properties/AssemblyInfo.cs	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances.QAPInitializer/Properties/AssemblyInfo.cs	(revision 6659)
@@ -0,0 +1,36 @@
+﻿using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.Services.ProblemInstances.QAPInitializer")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyProduct("HeuristicLab.Services.ProblemInstances.QAPInitializer")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2011")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("96b8b32c-a826-49ab-a1d6-8e3d6d7ea9b9")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances.QAPInitializer/app.config
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances.QAPInitializer/app.config	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances.QAPInitializer/app.config	(revision 6659)
@@ -0,0 +1,10 @@
+﻿<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <system.serviceModel>
+        <bindings />
+        <client />
+    </system.serviceModel>
+  <connectionStrings>
+    <add name="ProblemInstancesEntities" connectionString="metadata=res://*/ProblemInstancesModel.csdl|res://*/ProblemInstancesModel.ssdl|res://*/ProblemInstancesModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=MRPINK\SQLEXPRESS;Initial Catalog=ProblemInstances;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" />
+  </connectionStrings>
+</configuration>
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/HeuristicLab.Services.ProblemInstances-3.3.csproj
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/HeuristicLab.Services.ProblemInstances-3.3.csproj	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/HeuristicLab.Services.ProblemInstances-3.3.csproj	(revision 6659)
@@ -0,0 +1,119 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProductVersion>
+    </ProductVersion>
+    <SchemaVersion>2.0</SchemaVersion>
+    <ProjectGuid>{D4E9242F-DAA4-4A15-8DE7-91CECFFFD898}</ProjectGuid>
+    <ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>HeuristicLab.Services.ProblemInstances</RootNamespace>
+    <AssemblyName>HeuristicLab.Services.ProblemInstances-3.3</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data.Entity" />
+    <Reference Include="System.Security" />
+    <Reference Include="System.Web.DynamicData" />
+    <Reference Include="System.Web.Entity" />
+    <Reference Include="System.Web.ApplicationServices" />
+    <Reference Include="System" />
+    <Reference Include="System.Configuration" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Drawing" />
+    <Reference Include="System.EnterpriseServices" />
+    <Reference Include="System.Runtime.Serialization" />
+    <Reference Include="System.ServiceModel" />
+    <Reference Include="System.ServiceModel.Web" />
+    <Reference Include="System.Web" />
+    <Reference Include="System.Web.Extensions" />
+    <Reference Include="System.Web.Services" />
+    <Reference Include="System.Xml" />
+    <Reference Include="System.Xml.Linq" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="QAP\QAP.svc" />
+    <Content Include="Web.config" />
+    <Content Include="Web.Debug.config">
+      <DependentUpon>Web.config</DependentUpon>
+    </Content>
+    <Content Include="Web.Release.config">
+      <DependentUpon>Web.config</DependentUpon>
+    </Content>
+  </ItemGroup>
+  <ItemGroup>
+    <EntityDeploy Include="ProblemInstancesModel.edmx">
+      <Generator>EntityModelCodeGenerator</Generator>
+      <LastGenOutput>ProblemInstancesModel.Designer.cs</LastGenOutput>
+    </EntityDeploy>
+    <None Include="Properties\AssemblyInfo.frame" />
+    <Compile Include="PrimitiveSerializationException.cs" />
+    <Compile Include="PrimitiveSerializer.cs" />
+    <Compile Include="ProblemInstancesModel.Designer.cs">
+      <AutoGen>True</AutoGen>
+      <DesignTime>True</DesignTime>
+      <DependentUpon>ProblemInstancesModel.edmx</DependentUpon>
+    </Compile>
+    <Compile Include="QAP\IQAP.cs" />
+    <Compile Include="QAP\QAP.svc.cs">
+      <DependentUpon>QAP.svc</DependentUpon>
+    </Compile>
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="QAP\QAPInstanceDto.cs" />
+    <Compile Include="QAP\QAPSolutionDto.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <Folder Include="App_Data\" />
+  </ItemGroup>
+  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
+  <ProjectExtensions>
+    <VisualStudio>
+      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
+        <WebProjectProperties>
+          <UseIIS>False</UseIIS>
+          <AutoAssignPort>True</AutoAssignPort>
+          <DevelopmentServerPort>3978</DevelopmentServerPort>
+          <DevelopmentServerVPath>/</DevelopmentServerVPath>
+          <IISUrl>
+          </IISUrl>
+          <NTLMAuthentication>False</NTLMAuthentication>
+          <UseCustomServer>False</UseCustomServer>
+          <CustomServerUrl>
+          </CustomServerUrl>
+          <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
+          <EnableWcfTestClientForSVCDefaultValue>True</EnableWcfTestClientForSVCDefaultValue>
+        </WebProjectProperties>
+      </FlavorProperties>
+    </VisualStudio>
+  </ProjectExtensions>
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/PrimitiveSerializationException.cs
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/PrimitiveSerializationException.cs	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/PrimitiveSerializationException.cs	(revision 6659)
@@ -0,0 +1,30 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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 <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+
+namespace HeuristicLab.Services.ProblemInstances {
+  public class PrimitiveSerializationException : Exception {
+    public PrimitiveSerializationException() : base() { }
+    public PrimitiveSerializationException(string message) : base(message) { }
+    public PrimitiveSerializationException(string message, Exception innerException) : base(message, innerException) { }
+  }
+}
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/PrimitiveSerializer.cs
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/PrimitiveSerializer.cs	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/PrimitiveSerializer.cs	(revision 6659)
@@ -0,0 +1,118 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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 <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Globalization;
+using System.Text;
+
+namespace HeuristicLab.Services.ProblemInstances {
+  public static class PrimitiveSerializer {
+    public static string SerializeDoubleMatrix(double[][] matrix) {
+      StringBuilder builder = new StringBuilder();
+      int dim1 = matrix.Length;
+      int dim2 = matrix[0].Length;
+      builder.Append(dim1.ToString(CultureInfo.InvariantCulture.NumberFormat));
+      builder.Append(";");
+      builder.Append(dim2.ToString(CultureInfo.InvariantCulture.NumberFormat));
+      for (int i = 0; i < dim1; i++) {
+        for (int j = 0; j < dim2; j++) {
+          if (matrix[i].Length != dim2) throw new ArgumentException("ERROR jagged array is not a matrix!");
+          builder.Append(";" + matrix[i][j].ToString(CultureInfo.InvariantCulture.NumberFormat));
+        }
+      }
+      return builder.ToString();
+    }
+
+    public static double[][] DeserializeDoubleMatrix(string data) {
+      string[] tokens = data.Split(';');
+      int dim1 = int.Parse(tokens[0], CultureInfo.InvariantCulture.NumberFormat);
+      int dim2 = int.Parse(tokens[1], CultureInfo.InvariantCulture.NumberFormat);
+      if (tokens.Length != (dim1 * dim2) + 2) throw new ArgumentException("ERROR serialized data does not represent a matrix!");
+      double[][] result = new double[dim1][];
+      for (int i = 0; i < dim1; i++) {
+        result[i] = new double[dim2];
+        for (int j = 0; j < dim2; j++)
+          result[i][j] = double.Parse(tokens[i * dim1 + j + 2], CultureInfo.InvariantCulture.NumberFormat);
+      }
+      return result;
+    }
+
+    public static string SerializeMatrixWithHeaders(double[][] matrix, string[] headers) {
+      StringBuilder builder = new StringBuilder();
+      int dim1 = matrix.Length;
+      if (headers.Length != dim1) throw new ArgumentException("ERROR: headers and matrix size do not correspond");
+      int dim2 = matrix[0].Length;
+      if (dim2 != dim1) throw new ArgumentException("ERROR: square matrix expected");
+      builder.Append(dim1.ToString(CultureInfo.InvariantCulture.NumberFormat));
+      builder.Append(";");
+      builder.Append(dim2.ToString(CultureInfo.InvariantCulture.NumberFormat));
+      for (int i = 0; i < headers.Length; i++) {
+        builder.Append(";" + headers[i]);
+      }
+      for (int i = 0; i < dim1; i++) {
+        for (int j = 0; j < dim2; j++) {
+          if (matrix[i].Length != dim2) throw new ArgumentException("ERROR jagged array is not a matrix!");
+          builder.Append(";" + matrix[i][j].ToString(CultureInfo.InvariantCulture.NumberFormat));
+        }
+      }
+      return builder.ToString();
+    }
+
+    public static double[][] DeserializeMatrixWithHeaders(string data, out string[] headers) {
+      string[] tokens = data.Split(';');
+      int dim1 = int.Parse(tokens[0], CultureInfo.InvariantCulture.NumberFormat);
+      int dim2 = int.Parse(tokens[1], CultureInfo.InvariantCulture.NumberFormat);
+      if (dim1 != dim2) throw new ArgumentException("ERROR: square matrix expected");
+      headers = new string[dim1];
+      if (tokens.Length != (dim1 * dim2) + 2 + dim1) throw new ArgumentException("ERROR serialized data does not represent a matrix!");
+      for (int i = 0; i < dim1; i++)
+        headers[i] = tokens[i + 2];
+      double[][] result = new double[dim1][];
+      for (int i = 0; i < dim1; i++) {
+        result[i] = new double[dim2];
+        for (int j = 0; j < dim2; j++)
+          result[i][j] = double.Parse(tokens[(i + 1) * dim1 + j + 2], CultureInfo.InvariantCulture.NumberFormat);
+      }
+      return result;
+    }
+
+    public static string SerializeIntArray(int[] array) {
+      StringBuilder builder = new StringBuilder();
+      int dim1 = array.Length;
+      builder.Append(dim1.ToString(CultureInfo.InvariantCulture.NumberFormat));
+      builder.Append(";");
+      for (int i = 0; i < dim1; i++) {
+        builder.Append(";" + array[i].ToString(CultureInfo.InvariantCulture.NumberFormat));
+      }
+      return builder.ToString();
+    }
+
+    public static int[] DeserializeIntArray(string array) {
+      string[] tokens = array.Split(';');
+      int dim1 = int.Parse(tokens[0], CultureInfo.InvariantCulture.NumberFormat);
+      int[] result = new int[dim1];
+      for (int i = 0; i < dim1; i++) {
+        result[i] = int.Parse(tokens[i + 1], CultureInfo.InvariantCulture.NumberFormat);
+      }
+      return result;
+    }
+  }
+}
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/ProblemInstancesModel.Designer.cs
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/ProblemInstancesModel.Designer.cs	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/ProblemInstancesModel.Designer.cs	(revision 6659)
@@ -0,0 +1,594 @@
+﻿//------------------------------------------------------------------------------
+// <auto-generated>
+//    This code was generated from a template.
+//
+//    Manual changes to this file may cause unexpected behavior in your application.
+//    Manual changes to this file will be overwritten if the code is regenerated.
+// </auto-generated>
+//------------------------------------------------------------------------------
+
+using System;
+using System.Data.Objects;
+using System.Data.Objects.DataClasses;
+using System.Data.EntityClient;
+using System.ComponentModel;
+using System.Xml.Serialization;
+using System.Runtime.Serialization;
+
+[assembly: EdmSchemaAttribute()]
+#region EDM Relationship Metadata
+
+[assembly: EdmRelationshipAttribute("ProblemInstancesModel", "FK_QAPSolution_QAPInstance", "QAPInstance", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(HeuristicLab.Services.ProblemInstances.QAPInstance), "QAPSolution", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(HeuristicLab.Services.ProblemInstances.QAPSolution), true)]
+
+#endregion
+
+namespace HeuristicLab.Services.ProblemInstances
+{
+    #region Contexts
+    
+    /// <summary>
+    /// No Metadata Documentation available.
+    /// </summary>
+    public partial class ProblemInstancesEntities : ObjectContext
+    {
+        #region Constructors
+    
+        /// <summary>
+        /// Initializes a new ProblemInstancesEntities object using the connection string found in the 'ProblemInstancesEntities' section of the application configuration file.
+        /// </summary>
+        public ProblemInstancesEntities() : base("name=ProblemInstancesEntities", "ProblemInstancesEntities")
+        {
+            this.ContextOptions.LazyLoadingEnabled = true;
+            OnContextCreated();
+        }
+    
+        /// <summary>
+        /// Initialize a new ProblemInstancesEntities object.
+        /// </summary>
+        public ProblemInstancesEntities(string connectionString) : base(connectionString, "ProblemInstancesEntities")
+        {
+            this.ContextOptions.LazyLoadingEnabled = true;
+            OnContextCreated();
+        }
+    
+        /// <summary>
+        /// Initialize a new ProblemInstancesEntities object.
+        /// </summary>
+        public ProblemInstancesEntities(EntityConnection connection) : base(connection, "ProblemInstancesEntities")
+        {
+            this.ContextOptions.LazyLoadingEnabled = true;
+            OnContextCreated();
+        }
+    
+        #endregion
+    
+        #region Partial Methods
+    
+        partial void OnContextCreated();
+    
+        #endregion
+    
+        #region ObjectSet Properties
+    
+        /// <summary>
+        /// No Metadata Documentation available.
+        /// </summary>
+        public ObjectSet<QAPInstance> QAPInstances
+        {
+            get
+            {
+                if ((_QAPInstances == null))
+                {
+                    _QAPInstances = base.CreateObjectSet<QAPInstance>("QAPInstances");
+                }
+                return _QAPInstances;
+            }
+        }
+        private ObjectSet<QAPInstance> _QAPInstances;
+    
+        /// <summary>
+        /// No Metadata Documentation available.
+        /// </summary>
+        public ObjectSet<QAPSolution> QAPSolutions
+        {
+            get
+            {
+                if ((_QAPSolutions == null))
+                {
+                    _QAPSolutions = base.CreateObjectSet<QAPSolution>("QAPSolutions");
+                }
+                return _QAPSolutions;
+            }
+        }
+        private ObjectSet<QAPSolution> _QAPSolutions;
+
+        #endregion
+        #region AddTo Methods
+    
+        /// <summary>
+        /// Deprecated Method for adding a new object to the QAPInstances EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
+        /// </summary>
+        public void AddToQAPInstances(QAPInstance qAPInstance)
+        {
+            base.AddObject("QAPInstances", qAPInstance);
+        }
+    
+        /// <summary>
+        /// Deprecated Method for adding a new object to the QAPSolutions EntitySet. Consider using the .Add method of the associated ObjectSet&lt;T&gt; property instead.
+        /// </summary>
+        public void AddToQAPSolutions(QAPSolution qAPSolution)
+        {
+            base.AddObject("QAPSolutions", qAPSolution);
+        }
+
+        #endregion
+    }
+    
+
+    #endregion
+    
+    #region Entities
+    
+    /// <summary>
+    /// No Metadata Documentation available.
+    /// </summary>
+    [EdmEntityTypeAttribute(NamespaceName="ProblemInstancesModel", Name="QAPInstance")]
+    [Serializable()]
+    [DataContractAttribute(IsReference=true)]
+    public partial class QAPInstance : EntityObject
+    {
+        #region Factory Method
+    
+        /// <summary>
+        /// Create a new QAPInstance object.
+        /// </summary>
+        /// <param name="name">Initial value of the name property.</param>
+        /// <param name="maximization">Initial value of the maximization property.</param>
+        /// <param name="weights">Initial value of the weights property.</param>
+        /// <param name="weights_sha1">Initial value of the weights_sha1 property.</param>
+        /// <param name="distances">Initial value of the distances property.</param>
+        /// <param name="distances_sha1">Initial value of the distances_sha1 property.</param>
+        /// <param name="problemsize">Initial value of the problemsize property.</param>
+        public static QAPInstance CreateQAPInstance(global::System.String name, global::System.Boolean maximization, global::System.String weights, global::System.String weights_sha1, global::System.String distances, global::System.String distances_sha1, global::System.Int32 problemsize)
+        {
+            QAPInstance qAPInstance = new QAPInstance();
+            qAPInstance.name = name;
+            qAPInstance.maximization = maximization;
+            qAPInstance.weights = weights;
+            qAPInstance.weights_sha1 = weights_sha1;
+            qAPInstance.distances = distances;
+            qAPInstance.distances_sha1 = distances_sha1;
+            qAPInstance.problemsize = problemsize;
+            return qAPInstance;
+        }
+
+        #endregion
+        #region Primitive Properties
+    
+        /// <summary>
+        /// No Metadata Documentation available.
+        /// </summary>
+        [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
+        [DataMemberAttribute()]
+        public global::System.String name
+        {
+            get
+            {
+                return _name;
+            }
+            set
+            {
+                if (_name != value)
+                {
+                    OnnameChanging(value);
+                    ReportPropertyChanging("name");
+                    _name = StructuralObject.SetValidValue(value, false);
+                    ReportPropertyChanged("name");
+                    OnnameChanged();
+                }
+            }
+        }
+        private global::System.String _name;
+        partial void OnnameChanging(global::System.String value);
+        partial void OnnameChanged();
+    
+        /// <summary>
+        /// No Metadata Documentation available.
+        /// </summary>
+        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
+        [DataMemberAttribute()]
+        public global::System.String description
+        {
+            get
+            {
+                return _description;
+            }
+            set
+            {
+                OndescriptionChanging(value);
+                ReportPropertyChanging("description");
+                _description = StructuralObject.SetValidValue(value, true);
+                ReportPropertyChanged("description");
+                OndescriptionChanged();
+            }
+        }
+        private global::System.String _description;
+        partial void OndescriptionChanging(global::System.String value);
+        partial void OndescriptionChanged();
+    
+        /// <summary>
+        /// No Metadata Documentation available.
+        /// </summary>
+        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
+        [DataMemberAttribute()]
+        public global::System.Boolean maximization
+        {
+            get
+            {
+                return _maximization;
+            }
+            set
+            {
+                OnmaximizationChanging(value);
+                ReportPropertyChanging("maximization");
+                _maximization = StructuralObject.SetValidValue(value);
+                ReportPropertyChanged("maximization");
+                OnmaximizationChanged();
+            }
+        }
+        private global::System.Boolean _maximization;
+        partial void OnmaximizationChanging(global::System.Boolean value);
+        partial void OnmaximizationChanged();
+    
+        /// <summary>
+        /// No Metadata Documentation available.
+        /// </summary>
+        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
+        [DataMemberAttribute()]
+        public global::System.String weights
+        {
+            get
+            {
+                return _weights;
+            }
+            set
+            {
+                OnweightsChanging(value);
+                ReportPropertyChanging("weights");
+                _weights = StructuralObject.SetValidValue(value, false);
+                ReportPropertyChanged("weights");
+                OnweightsChanged();
+            }
+        }
+        private global::System.String _weights;
+        partial void OnweightsChanging(global::System.String value);
+        partial void OnweightsChanged();
+    
+        /// <summary>
+        /// No Metadata Documentation available.
+        /// </summary>
+        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
+        [DataMemberAttribute()]
+        public global::System.String weights_sha1
+        {
+            get
+            {
+                return _weights_sha1;
+            }
+            set
+            {
+                Onweights_sha1Changing(value);
+                ReportPropertyChanging("weights_sha1");
+                _weights_sha1 = StructuralObject.SetValidValue(value, false);
+                ReportPropertyChanged("weights_sha1");
+                Onweights_sha1Changed();
+            }
+        }
+        private global::System.String _weights_sha1;
+        partial void Onweights_sha1Changing(global::System.String value);
+        partial void Onweights_sha1Changed();
+    
+        /// <summary>
+        /// No Metadata Documentation available.
+        /// </summary>
+        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
+        [DataMemberAttribute()]
+        public global::System.String distances
+        {
+            get
+            {
+                return _distances;
+            }
+            set
+            {
+                OndistancesChanging(value);
+                ReportPropertyChanging("distances");
+                _distances = StructuralObject.SetValidValue(value, false);
+                ReportPropertyChanged("distances");
+                OndistancesChanged();
+            }
+        }
+        private global::System.String _distances;
+        partial void OndistancesChanging(global::System.String value);
+        partial void OndistancesChanged();
+    
+        /// <summary>
+        /// No Metadata Documentation available.
+        /// </summary>
+        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
+        [DataMemberAttribute()]
+        public global::System.String distances_sha1
+        {
+            get
+            {
+                return _distances_sha1;
+            }
+            set
+            {
+                Ondistances_sha1Changing(value);
+                ReportPropertyChanging("distances_sha1");
+                _distances_sha1 = StructuralObject.SetValidValue(value, false);
+                ReportPropertyChanged("distances_sha1");
+                Ondistances_sha1Changed();
+            }
+        }
+        private global::System.String _distances_sha1;
+        partial void Ondistances_sha1Changing(global::System.String value);
+        partial void Ondistances_sha1Changed();
+    
+        /// <summary>
+        /// No Metadata Documentation available.
+        /// </summary>
+        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
+        [DataMemberAttribute()]
+        public global::System.Int32 problemsize
+        {
+            get
+            {
+                return _problemsize;
+            }
+            set
+            {
+                OnproblemsizeChanging(value);
+                ReportPropertyChanging("problemsize");
+                _problemsize = StructuralObject.SetValidValue(value);
+                ReportPropertyChanged("problemsize");
+                OnproblemsizeChanged();
+            }
+        }
+        private global::System.Int32 _problemsize;
+        partial void OnproblemsizeChanging(global::System.Int32 value);
+        partial void OnproblemsizeChanged();
+
+        #endregion
+    
+        #region Navigation Properties
+    
+        /// <summary>
+        /// No Metadata Documentation available.
+        /// </summary>
+        [XmlIgnoreAttribute()]
+        [SoapIgnoreAttribute()]
+        [DataMemberAttribute()]
+        [EdmRelationshipNavigationPropertyAttribute("ProblemInstancesModel", "FK_QAPSolution_QAPInstance", "QAPSolution")]
+        public EntityCollection<QAPSolution> QAPSolutions
+        {
+            get
+            {
+                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<QAPSolution>("ProblemInstancesModel.FK_QAPSolution_QAPInstance", "QAPSolution");
+            }
+            set
+            {
+                if ((value != null))
+                {
+                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<QAPSolution>("ProblemInstancesModel.FK_QAPSolution_QAPInstance", "QAPSolution", value);
+                }
+            }
+        }
+
+        #endregion
+    }
+    
+    /// <summary>
+    /// No Metadata Documentation available.
+    /// </summary>
+    [EdmEntityTypeAttribute(NamespaceName="ProblemInstancesModel", Name="QAPSolution")]
+    [Serializable()]
+    [DataContractAttribute(IsReference=true)]
+    public partial class QAPSolution : EntityObject
+    {
+        #region Factory Method
+    
+        /// <summary>
+        /// Create a new QAPSolution object.
+        /// </summary>
+        /// <param name="id">Initial value of the id property.</param>
+        /// <param name="name">Initial value of the name property.</param>
+        /// <param name="assignment">Initial value of the assignment property.</param>
+        /// <param name="assignment_sha1">Initial value of the assignment_sha1 property.</param>
+        /// <param name="quality">Initial value of the quality property.</param>
+        public static QAPSolution CreateQAPSolution(global::System.Int32 id, global::System.String name, global::System.String assignment, global::System.String assignment_sha1, global::System.Double quality)
+        {
+            QAPSolution qAPSolution = new QAPSolution();
+            qAPSolution.id = id;
+            qAPSolution.name = name;
+            qAPSolution.assignment = assignment;
+            qAPSolution.assignment_sha1 = assignment_sha1;
+            qAPSolution.quality = quality;
+            return qAPSolution;
+        }
+
+        #endregion
+        #region Primitive Properties
+    
+        /// <summary>
+        /// No Metadata Documentation available.
+        /// </summary>
+        [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
+        [DataMemberAttribute()]
+        public global::System.Int32 id
+        {
+            get
+            {
+                return _id;
+            }
+            set
+            {
+                if (_id != value)
+                {
+                    OnidChanging(value);
+                    ReportPropertyChanging("id");
+                    _id = StructuralObject.SetValidValue(value);
+                    ReportPropertyChanged("id");
+                    OnidChanged();
+                }
+            }
+        }
+        private global::System.Int32 _id;
+        partial void OnidChanging(global::System.Int32 value);
+        partial void OnidChanged();
+    
+        /// <summary>
+        /// No Metadata Documentation available.
+        /// </summary>
+        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
+        [DataMemberAttribute()]
+        public global::System.String name
+        {
+            get
+            {
+                return _name;
+            }
+            set
+            {
+                OnnameChanging(value);
+                ReportPropertyChanging("name");
+                _name = StructuralObject.SetValidValue(value, false);
+                ReportPropertyChanged("name");
+                OnnameChanged();
+            }
+        }
+        private global::System.String _name;
+        partial void OnnameChanging(global::System.String value);
+        partial void OnnameChanged();
+    
+        /// <summary>
+        /// No Metadata Documentation available.
+        /// </summary>
+        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
+        [DataMemberAttribute()]
+        public global::System.String assignment
+        {
+            get
+            {
+                return _assignment;
+            }
+            set
+            {
+                OnassignmentChanging(value);
+                ReportPropertyChanging("assignment");
+                _assignment = StructuralObject.SetValidValue(value, false);
+                ReportPropertyChanged("assignment");
+                OnassignmentChanged();
+            }
+        }
+        private global::System.String _assignment;
+        partial void OnassignmentChanging(global::System.String value);
+        partial void OnassignmentChanged();
+    
+        /// <summary>
+        /// No Metadata Documentation available.
+        /// </summary>
+        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
+        [DataMemberAttribute()]
+        public global::System.String assignment_sha1
+        {
+            get
+            {
+                return _assignment_sha1;
+            }
+            set
+            {
+                Onassignment_sha1Changing(value);
+                ReportPropertyChanging("assignment_sha1");
+                _assignment_sha1 = StructuralObject.SetValidValue(value, false);
+                ReportPropertyChanged("assignment_sha1");
+                Onassignment_sha1Changed();
+            }
+        }
+        private global::System.String _assignment_sha1;
+        partial void Onassignment_sha1Changing(global::System.String value);
+        partial void Onassignment_sha1Changed();
+    
+        /// <summary>
+        /// No Metadata Documentation available.
+        /// </summary>
+        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
+        [DataMemberAttribute()]
+        public global::System.Double quality
+        {
+            get
+            {
+                return _quality;
+            }
+            set
+            {
+                OnqualityChanging(value);
+                ReportPropertyChanging("quality");
+                _quality = StructuralObject.SetValidValue(value);
+                ReportPropertyChanged("quality");
+                OnqualityChanged();
+            }
+        }
+        private global::System.Double _quality;
+        partial void OnqualityChanging(global::System.Double value);
+        partial void OnqualityChanged();
+
+        #endregion
+    
+        #region Navigation Properties
+    
+        /// <summary>
+        /// No Metadata Documentation available.
+        /// </summary>
+        [XmlIgnoreAttribute()]
+        [SoapIgnoreAttribute()]
+        [DataMemberAttribute()]
+        [EdmRelationshipNavigationPropertyAttribute("ProblemInstancesModel", "FK_QAPSolution_QAPInstance", "QAPInstance")]
+        public QAPInstance QAPInstance
+        {
+            get
+            {
+                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<QAPInstance>("ProblemInstancesModel.FK_QAPSolution_QAPInstance", "QAPInstance").Value;
+            }
+            set
+            {
+                ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<QAPInstance>("ProblemInstancesModel.FK_QAPSolution_QAPInstance", "QAPInstance").Value = value;
+            }
+        }
+        /// <summary>
+        /// No Metadata Documentation available.
+        /// </summary>
+        [BrowsableAttribute(false)]
+        [DataMemberAttribute()]
+        public EntityReference<QAPInstance> QAPInstanceReference
+        {
+            get
+            {
+                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<QAPInstance>("ProblemInstancesModel.FK_QAPSolution_QAPInstance", "QAPInstance");
+            }
+            set
+            {
+                if ((value != null))
+                {
+                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<QAPInstance>("ProblemInstancesModel.FK_QAPSolution_QAPInstance", "QAPInstance", value);
+                }
+            }
+        }
+
+        #endregion
+    }
+
+    #endregion
+    
+}
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/ProblemInstancesModel.edmx
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/ProblemInstancesModel.edmx	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/ProblemInstancesModel.edmx	(revision 6659)
@@ -0,0 +1,158 @@
+﻿<?xml version="1.0" encoding="utf-8"?>
+<edmx:Edmx Version="2.0" xmlns:edmx="http://schemas.microsoft.com/ado/2008/10/edmx">
+  <!-- EF Runtime content -->
+  <edmx:Runtime>
+    <!-- SSDL content -->
+    <edmx:StorageModels>
+      <Schema Namespace="ProblemInstancesModel.Store" Alias="Self" Provider="System.Data.SqlClient" ProviderManifestToken="2008" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2009/02/edm/ssdl">
+        <EntityContainer Name="ProblemInstancesModelStoreContainer">
+          <EntitySet Name="QAPInstance" EntityType="ProblemInstancesModel.Store.QAPInstance" store:Type="Tables" Schema="dbo" />
+          <EntitySet Name="QAPSolution" EntityType="ProblemInstancesModel.Store.QAPSolution" store:Type="Tables" Schema="dbo" />
+          <AssociationSet Name="FK_QAPSolution_QAPInstance" Association="ProblemInstancesModel.Store.FK_QAPSolution_QAPInstance">
+            <End Role="QAPInstance" EntitySet="QAPInstance" />
+            <End Role="QAPSolution" EntitySet="QAPSolution" />
+          </AssociationSet>
+        </EntityContainer>
+        <EntityType Name="QAPInstance">
+          <Key>
+            <PropertyRef Name="name" />
+          </Key>
+          <Property Name="name" Type="nvarchar" Nullable="false" MaxLength="64" />
+          <Property Name="description" Type="ntext" />
+          <Property Name="maximization" Type="bit" Nullable="false" />
+          <Property Name="weights" Type="text" Nullable="false" />
+          <Property Name="weights_sha1" Type="char" Nullable="false" MaxLength="40" />
+          <Property Name="distances" Type="text" Nullable="false" />
+          <Property Name="distances_sha1" Type="char" Nullable="false" MaxLength="40" />
+          <Property Name="problemsize" Type="int" Nullable="false" />
+        </EntityType>
+        <EntityType Name="QAPSolution">
+          <Key>
+            <PropertyRef Name="id" />
+          </Key>
+          <Property Name="id" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />
+          <Property Name="name" Type="nvarchar" Nullable="false" MaxLength="64" />
+          <Property Name="assignment" Type="text" Nullable="false" />
+          <Property Name="assignment_sha1" Type="char" Nullable="false" MaxLength="40" />
+          <Property Name="quality" Type="float" Nullable="false" />
+        </EntityType>
+        <Association Name="FK_QAPSolution_QAPInstance">
+          <End Role="QAPInstance" Type="ProblemInstancesModel.Store.QAPInstance" Multiplicity="1">
+            <OnDelete Action="Cascade" />
+          </End>
+          <End Role="QAPSolution" Type="ProblemInstancesModel.Store.QAPSolution" Multiplicity="*" />
+          <ReferentialConstraint>
+            <Principal Role="QAPInstance">
+              <PropertyRef Name="name" />
+            </Principal>
+            <Dependent Role="QAPSolution">
+              <PropertyRef Name="name" />
+            </Dependent>
+          </ReferentialConstraint>
+        </Association>
+      </Schema>
+    </edmx:StorageModels>
+    <!-- CSDL content -->
+    <edmx:ConceptualModels>
+      <Schema Namespace="ProblemInstancesModel" Alias="Self" xmlns:annotation="http://schemas.microsoft.com/ado/2009/02/edm/annotation" xmlns="http://schemas.microsoft.com/ado/2008/09/edm">
+        <EntityContainer Name="ProblemInstancesEntities" annotation:LazyLoadingEnabled="true">
+          <EntitySet Name="QAPInstances" EntityType="ProblemInstancesModel.QAPInstance" />
+          <EntitySet Name="QAPSolutions" EntityType="ProblemInstancesModel.QAPSolution" />
+          <AssociationSet Name="FK_QAPSolution_QAPInstance" Association="ProblemInstancesModel.FK_QAPSolution_QAPInstance">
+            <End Role="QAPInstance" EntitySet="QAPInstances" />
+            <End Role="QAPSolution" EntitySet="QAPSolutions" />
+          </AssociationSet>
+        </EntityContainer>
+        <EntityType Name="QAPInstance">
+          <Key>
+            <PropertyRef Name="name" />
+          </Key>
+          <Property Name="name" Type="String" Nullable="false" MaxLength="64" Unicode="true" FixedLength="false" />
+          <Property Name="description" Type="String" MaxLength="Max" Unicode="true" FixedLength="false" />
+          <Property Name="maximization" Type="Boolean" Nullable="false" />
+          <Property Name="weights" Type="String" Nullable="false" MaxLength="Max" Unicode="false" FixedLength="false" />
+          <Property Name="weights_sha1" Type="String" Nullable="false" MaxLength="40" Unicode="false" FixedLength="true" />
+          <Property Name="distances" Type="String" Nullable="false" MaxLength="Max" Unicode="false" FixedLength="false" />
+          <Property Name="distances_sha1" Type="String" Nullable="false" MaxLength="40" Unicode="false" FixedLength="true" />
+          <Property Name="problemsize" Type="Int32" Nullable="false" />
+          <NavigationProperty Name="QAPSolutions" Relationship="ProblemInstancesModel.FK_QAPSolution_QAPInstance" FromRole="QAPInstance" ToRole="QAPSolution" />
+        </EntityType>
+        <EntityType Name="QAPSolution">
+          <Key>
+            <PropertyRef Name="id" />
+          </Key>
+          <Property Name="id" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
+          <Property Name="name" Type="String" Nullable="false" MaxLength="64" Unicode="true" FixedLength="false" />
+          <Property Name="assignment" Type="String" Nullable="false" MaxLength="Max" Unicode="false" FixedLength="false" />
+          <Property Name="assignment_sha1" Type="String" Nullable="false" MaxLength="40" Unicode="false" FixedLength="true" />
+          <Property Name="quality" Type="Double" Nullable="false" />
+          <NavigationProperty Name="QAPInstance" Relationship="ProblemInstancesModel.FK_QAPSolution_QAPInstance" FromRole="QAPSolution" ToRole="QAPInstance" />
+        </EntityType>
+        <Association Name="FK_QAPSolution_QAPInstance">
+          <End Role="QAPInstance" Type="ProblemInstancesModel.QAPInstance" Multiplicity="1">
+            <OnDelete Action="Cascade" />
+          </End>
+          <End Role="QAPSolution" Type="ProblemInstancesModel.QAPSolution" Multiplicity="*" />
+          <ReferentialConstraint>
+            <Principal Role="QAPInstance">
+              <PropertyRef Name="name" />
+            </Principal>
+            <Dependent Role="QAPSolution">
+              <PropertyRef Name="name" />
+            </Dependent>
+          </ReferentialConstraint>
+        </Association>
+      </Schema>
+    </edmx:ConceptualModels>
+    <!-- C-S mapping content -->
+    <edmx:Mappings>
+      <Mapping Space="C-S" xmlns="http://schemas.microsoft.com/ado/2008/09/mapping/cs">
+        <EntityContainerMapping StorageEntityContainer="ProblemInstancesModelStoreContainer" CdmEntityContainer="ProblemInstancesEntities">
+          <EntitySetMapping Name="QAPInstances"><EntityTypeMapping TypeName="ProblemInstancesModel.QAPInstance"><MappingFragment StoreEntitySet="QAPInstance">
+            <ScalarProperty Name="name" ColumnName="name" />
+            <ScalarProperty Name="description" ColumnName="description" />
+            <ScalarProperty Name="maximization" ColumnName="maximization" />
+            <ScalarProperty Name="weights" ColumnName="weights" />
+            <ScalarProperty Name="weights_sha1" ColumnName="weights_sha1" />
+            <ScalarProperty Name="distances" ColumnName="distances" />
+            <ScalarProperty Name="distances_sha1" ColumnName="distances_sha1" />
+            <ScalarProperty Name="problemsize" ColumnName="problemsize" />
+          </MappingFragment></EntityTypeMapping></EntitySetMapping>
+          <EntitySetMapping Name="QAPSolutions"><EntityTypeMapping TypeName="ProblemInstancesModel.QAPSolution"><MappingFragment StoreEntitySet="QAPSolution">
+            <ScalarProperty Name="id" ColumnName="id" />
+            <ScalarProperty Name="name" ColumnName="name" />
+            <ScalarProperty Name="assignment" ColumnName="assignment" />
+            <ScalarProperty Name="assignment_sha1" ColumnName="assignment_sha1" />
+            <ScalarProperty Name="quality" ColumnName="quality" />
+          </MappingFragment></EntityTypeMapping></EntitySetMapping>
+        </EntityContainerMapping>
+      </Mapping>
+    </edmx:Mappings>
+  </edmx:Runtime>
+  <!-- EF Designer content (DO NOT EDIT MANUALLY BELOW HERE) -->
+  <Designer xmlns="http://schemas.microsoft.com/ado/2008/10/edmx">
+    <Connection>
+      <DesignerInfoPropertySet>
+        <DesignerProperty Name="MetadataArtifactProcessing" Value="EmbedInOutputAssembly" />
+      </DesignerInfoPropertySet>
+    </Connection>
+    <Options>
+      <DesignerInfoPropertySet>
+        <DesignerProperty Name="ValidateOnBuild" Value="true" />
+        <DesignerProperty Name="EnablePluralization" Value="False" />
+        <DesignerProperty Name="IncludeForeignKeysInModel" Value="True" />
+      </DesignerInfoPropertySet>
+    </Options>
+    <!-- Diagram content (shape and connector positions) -->
+    <Diagrams>
+      <Diagram Name="ProblemInstancesModel">
+        <EntityTypeShape EntityType="ProblemInstancesModel.QAPInstance" Width="1.5" PointX="0.75" PointY="1" Height="2.7494921874999996" IsExpanded="true" />
+        <EntityTypeShape EntityType="ProblemInstancesModel.QAPSolution" Width="1.5" PointX="3" PointY="1.25" Height="2.1725878906249996" IsExpanded="true" />
+        <AssociationConnector Association="ProblemInstancesModel.FK_QAPSolution_QAPInstance" ManuallyRouted="false">
+          <ConnectorPoint PointX="2.25" PointY="2.3362939453125" />
+          <ConnectorPoint PointX="3" PointY="2.3362939453125" />
+        </AssociationConnector>
+      </Diagram>
+    </Diagrams>
+  </Designer>
+</edmx:Edmx>
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/Properties/AssemblyInfo.frame
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/Properties/AssemblyInfo.frame	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/Properties/AssemblyInfo.frame	(revision 6659)
@@ -0,0 +1,56 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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 <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Reflection;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("HeuristicLab.Services.ProblemInstances")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("HEAL")]
+[assembly: AssemblyProduct("HeuristicLab.Services.ProblemInstances")]
+[assembly: AssemblyCopyright("(c) 2002-2011 HEAL")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("59cd6e99-eb5f-46e6-b170-5fa34666d4a6")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Revision and Build Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("3.3.0.0")]
+[assembly: AssemblyFileVersion("3.3.5.$WCREV$")]
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/QAP/IQAP.cs
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/QAP/IQAP.cs	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/QAP/IQAP.cs	(revision 6659)
@@ -0,0 +1,36 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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 <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.ServiceModel;
+
+namespace HeuristicLab.Services.ProblemInstances {
+  [ServiceContract]
+  public interface IQAP {
+    [OperationContract]
+    string[] GetProblemInstances();
+
+    [OperationContract]
+    QAPInstanceDto GetProblemInstanceData(string instance);
+
+    [OperationContract]
+    QAPSolutionDto[] GetBestSolutionsData(string instance);
+  }
+}
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/QAP/QAP.svc
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/QAP/QAP.svc	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/QAP/QAP.svc	(revision 6659)
@@ -0,0 +1,1 @@
+﻿<%@ ServiceHost Language="C#" Debug="true" Service="HeuristicLab.Services.ProblemInstances.QAP" CodeBehind="QAP.svc.cs" %>
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/QAP/QAP.svc.cs
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/QAP/QAP.svc.cs	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/QAP/QAP.svc.cs	(revision 6659)
@@ -0,0 +1,50 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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 <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Linq;
+
+namespace HeuristicLab.Services.ProblemInstances {
+  public class QAP : IQAP {
+    public string[] GetProblemInstances() {
+      using (ProblemInstancesEntities context = new ProblemInstancesEntities()) {
+        return context.QAPInstances.Select(x => x.name).ToArray();
+      }
+    }
+
+    public QAPInstanceDto GetProblemInstanceData(string instance) {
+      using (ProblemInstancesEntities context = new ProblemInstancesEntities()) {
+        return new QAPInstanceDto(context.QAPInstances.Where(x => x.name == instance).Single());
+      }
+    }
+
+    public QAPSolutionDto[] GetBestSolutionsData(string instance) {
+      using (ProblemInstancesEntities context = new ProblemInstancesEntities()) {
+        QAPInstance qap = context.QAPInstances.Where(x => x.name == instance).SingleOrDefault();
+        if (qap == null) return new QAPSolutionDto[0];
+        double best = double.NaN;
+        if (qap.maximization) best = qap.QAPSolutions.Max(x => x.quality);
+        else best = qap.QAPSolutions.Min(x => x.quality);
+
+        return qap.QAPSolutions.Where(x => x.quality == best).Select(x => new QAPSolutionDto(x)).ToArray();
+      }
+    }
+  }
+}
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/QAP/QAPInstanceDto.cs
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/QAP/QAPInstanceDto.cs	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/QAP/QAPInstanceDto.cs	(revision 6659)
@@ -0,0 +1,69 @@
+﻿
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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 <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System;
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.ProblemInstances {
+  [DataContract]
+  public class QAPInstanceDto {
+    [DataMember]
+    public string Name { get; set; }
+    [DataMember]
+    public string Description { get; set; }
+    [DataMember]
+    public bool Maximization { get; set; }
+    [DataMember]
+    public double[][] Weights { get; set; }
+    [DataMember]
+    public double[][] Distances { get; set; }
+
+    public QAPInstanceDto() {
+      Name = "-=UNDEFINED=-";
+    }
+
+    public QAPInstanceDto(QAPInstance qAPInstance) {
+      Name = qAPInstance.name;
+      Description = qAPInstance.description;
+      Maximization = qAPInstance.maximization;
+      try {
+        Weights = PrimitiveSerializer.DeserializeDoubleMatrix(qAPInstance.weights);
+        Distances = PrimitiveSerializer.DeserializeDoubleMatrix(qAPInstance.distances);
+      } catch (ArgumentException e) {
+        throw new PrimitiveSerializationException("Failed to deserialize the weights or distance matrix.", e);
+      }
+    }
+
+    public bool Validate() {
+      bool valid = Name.Trim() != string.Empty
+        && Name != "-=UNDEFINED=-"
+        && Weights.GetLength(0) == Distances.GetLength(0);
+      if (valid) {
+        for (int i = 0; i < Weights.GetLength(0); i++) {
+          valid = Weights[i].Length == Distances[i].Length;
+          if (!valid) break;
+        }
+      }
+      return valid;
+    }
+  }
+}
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/QAP/QAPSolutionDto.cs
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/QAP/QAPSolutionDto.cs	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/QAP/QAPSolutionDto.cs	(revision 6659)
@@ -0,0 +1,42 @@
+﻿
+#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2011 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 <http://www.gnu.org/licenses/>.
+ */
+#endregion
+
+using System.Runtime.Serialization;
+
+namespace HeuristicLab.Services.ProblemInstances {
+  [DataContract]
+  public class QAPSolutionDto {
+    [DataMember]
+    public int[] Assignment { get; set; }
+    [DataMember]
+    public double Quality { get; set; }
+
+    public QAPSolutionDto() {
+
+    }
+
+    public QAPSolutionDto(QAPSolution x) {
+      Assignment = PrimitiveSerializer.DeserializeIntArray(x.assignment);
+      Quality = x.quality;
+    }
+  }
+}
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/Web.Debug.config
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/Web.Debug.config	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/Web.Debug.config	(revision 6659)
@@ -0,0 +1,7 @@
+﻿<?xml version="1.0"?>
+
+<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
+
+<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
+
+</configuration>
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/Web.Release.config
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/Web.Release.config	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/Web.Release.config	(revision 6659)
@@ -0,0 +1,11 @@
+﻿<?xml version="1.0"?>
+
+<!-- For more information on using web.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
+
+<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
+
+  <system.web>
+    <compilation xdt:Transform="RemoveAttributes(debug)" />
+  </system.web>
+
+</configuration>
Index: /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/Web.config
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/Web.config	(revision 6659)
+++ /branches/GeneralizedQAP/HeuristicLab.Services.ProblemInstances/Web.config	(revision 6659)
@@ -0,0 +1,24 @@
+﻿<?xml version="1.0"?>
+<configuration>
+
+  <system.web>
+    <compilation debug="true" targetFramework="4.0"><assemblies><add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /></assemblies></compilation>
+  </system.web>
+  <system.serviceModel>
+    <behaviors>
+      <serviceBehaviors>
+        <behavior>
+          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
+          <serviceMetadata httpGetEnabled="true" />
+          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
+          <serviceDebug includeExceptionDetailInFaults="false" />
+        </behavior>
+      </serviceBehaviors>
+    </behaviors>
+    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
+  </system.serviceModel>
+ <system.webServer>
+    <modules runAllManagedModulesForAllRequests="true" />
+  </system.webServer>
+  
+<connectionStrings><add name="ProblemInstancesEntities" connectionString="metadata=res://*/ProblemInstancesModel.csdl|res://*/ProblemInstancesModel.ssdl|res://*/ProblemInstancesModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=MRPINK\SQLEXPRESS;Initial Catalog=ProblemInstances;Integrated Security=True;Pooling=False;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient" /></connectionStrings></configuration>
Index: /branches/GeneralizedQAP/HeuristicLab/3.3/MergeConfigs.cmd
===================================================================
--- /branches/GeneralizedQAP/HeuristicLab/3.3/MergeConfigs.cmd	(revision 6658)
+++ /branches/GeneralizedQAP/HeuristicLab/3.3/MergeConfigs.cmd	(revision 6659)
@@ -3,3 +3,4 @@
 ConfigMerger "%SolutionDir%\HeuristicLab.Optimizer\3.3\%Outdir%\HeuristicLab.Optimizer-3.3.dll.config" "HeuristicLab 3.3.exe.config"
 ConfigMerger "%SolutionDir%\HeuristicLab.Persistence\3.3\%Outdir%\HeuristicLab.Persistence-3.3.dll.config" "HeuristicLab 3.3.exe.config"
+ConfigMerger "%SolutionDir%\HeuristicLab.Problems.QuadraticAssignment.Views\3.3\%Outdir%\HeuristicLab.Problems.QuadraticAssignment.Views-3.3.dll.config" "HeuristicLab 3.3.exe.config"
 ConfigMerger "%SolutionDir%\HeuristicLab.Tracing\3.3\%Outdir%\HeuristicLab.Tracing-3.3.dll.config" "HeuristicLab 3.3.exe.config"
