Index: /trunk/sources/HeuristicLab 3.3.vsmdi
===================================================================
--- /trunk/sources/HeuristicLab 3.3.vsmdi	(revision 7617)
+++ /trunk/sources/HeuristicLab 3.3.vsmdi	(revision 7618)
@@ -3,42 +3,53 @@
   <TestList name="Create Samples Tests" id="12acbb59-0ff6-4a9a-8f98-201e7d9412f9" parentListId="8c43106b-9dc1-4907-a29f-aa66a61bf5b6">
     <TestLinks>
-      <TestLink id="fc406b79-142c-bb12-8287-0bc768acd728" name="CreateIslandGaTspSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="77c479e4-8f9a-5474-b026-e5c0811c8eb0" name="CreateLocalSearchKnapsackSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="45db65d6-d6b2-67e4-1bec-293528739529" name="CreateEsGriewankSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="74b708a9-14d0-3cc3-d72e-139d1a27f5ef" name="CreateGaTspSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="5c5fb63e-d219-6818-bba2-9f66dbe4d727" name="CreateGpSymbolicRegressionSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="6c054fba-432a-4fe2-507f-e2083c998056" name="CreatePsoSchwefelSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="0b6b45a4-99ea-b020-805a-1652f0f5b5a7" name="CreateSimulatedAnnealingRastriginSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="51e968a7-120f-dd28-9514-ad35d3ee66d2" name="CreateGaVrpSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="0d883f66-2fc5-99fc-eabb-2dff566104f5" name="CreateTabuSearchTspSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="c8ea68e8-b9d7-24cb-5540-655f58da13bf" name="CreateGpArtificialAntSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="e6f3ab8a-1630-560c-c8b9-4e8ce2522172" name="CreateVnsTspSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="29257c28-7dfb-f227-00a4-776d74b02a7b" name="CreateGpSymbolicClassificationSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="fc406b79-142c-bb12-8287-0bc768acd728" name="CreateIslandGaTspSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="77c479e4-8f9a-5474-b026-e5c0811c8eb0" name="CreateLocalSearchKnapsackSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="45db65d6-d6b2-67e4-1bec-293528739529" name="CreateEsGriewankSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="5c5fb63e-d219-6818-bba2-9f66dbe4d727" name="CreateGpSymbolicRegressionSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="6c054fba-432a-4fe2-507f-e2083c998056" name="CreatePsoSchwefelSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="0b6b45a4-99ea-b020-805a-1652f0f5b5a7" name="CreateSimulatedAnnealingRastriginSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="74b708a9-14d0-3cc3-d72e-139d1a27f5ef" name="CreateGaTspSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="51e968a7-120f-dd28-9514-ad35d3ee66d2" name="CreateGaVrpSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="0d883f66-2fc5-99fc-eabb-2dff566104f5" name="CreateTabuSearchTspSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="c8ea68e8-b9d7-24cb-5540-655f58da13bf" name="CreateGpArtificialAntSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="e6f3ab8a-1630-560c-c8b9-4e8ce2522172" name="CreateVnsTspSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="29257c28-7dfb-f227-00a4-776d74b02a7b" name="CreateGpSymbolicClassificationSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+    </TestLinks>
+  </TestList>
+  <TestList name="Problem Instances" id="25141565-14fd-4cfe-ad7e-116a167b7661" parentListId="8c43106b-9dc1-4907-a29f-aa66a61bf5b6">
+    <TestLinks>
+      <TestLink id="6d995522-f0fc-4c71-ad6d-98b511b6dc87" name="GetTSPLIBCVRPInstanceTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="a4a79e51-0e00-0079-3cda-edacb878ba09" name="TestQAPLIBSolutions" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="bc0d1af3-feb0-ab88-2bd3-7548e2139393" name="GetTSPLIBTSPInstanceTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="9e776d58-b350-7ae8-ed84-1d29b0aa02c3" name="GetTSPLIBATSPInstanceTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="b3134ddf-d188-708f-0ea7-9eae51d3614a" name="TestQAPLIBInstances" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="fc5f5e65-3fea-b18a-a0f9-3c32141a324b" name="GetCordeauGQAPInstanceTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="0cd31467-2b80-e093-20df-1d629b0c4b47" name="GetElloumiCTAPInstanceTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
     </TestLinks>
   </TestList>
   <TestList name="Basic Tests" id="3f8b3bd5-248c-46a8-84cf-7d035eb3c815" parentListId="8c43106b-9dc1-4907-a29f-aa66a61bf5b6">
     <TestLinks>
-      <TestLink id="36916402-ba0c-751d-366b-380dac87dcef" name="CheckPluginDependenciesForReferencedAssemblies" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="29ead60b-2ae7-821a-ccc3-e5e4769661b7" name="TestStorableConstructor" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="2028e687-d144-bb6f-bb05-ac86eaec07ee" name="TestCloningAllDeepCloneables" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="3983eb26-fd15-5b88-1fd7-07b363511b10" name="TestCloningConstructor" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="34ed65f1-46f7-d2e6-64cc-c2d958294d8b" name="CheckReferenceAssembliesForPluginDependencies" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="ec4d1ddf-ed6b-9f9e-29a0-d9e558856af1" name="ContentViewAttributeTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="36916402-ba0c-751d-366b-380dac87dcef" name="CheckPluginDependenciesForReferencedAssemblies" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="29ead60b-2ae7-821a-ccc3-e5e4769661b7" name="TestStorableConstructor" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="2028e687-d144-bb6f-bb05-ac86eaec07ee" name="TestCloningAllDeepCloneables" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="3983eb26-fd15-5b88-1fd7-07b363511b10" name="TestCloningConstructor" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="34ed65f1-46f7-d2e6-64cc-c2d958294d8b" name="CheckReferenceAssembliesForPluginDependencies" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="ec4d1ddf-ed6b-9f9e-29a0-d9e558856af1" name="ContentViewAttributeTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
     </TestLinks>
   </TestList>
   <TestList name="Run Samples Tests" id="40b94fb3-06ad-41f8-bb3f-dc90c2510684" parentListId="8c43106b-9dc1-4907-a29f-aa66a61bf5b6">
     <TestLinks>
-      <TestLink id="8bb23f49-5206-4245-08b9-471f543b3e21" name="RunGpSymbolicRegressionSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="1f743a89-461d-5650-31ba-e68c02f0fbad" name="RunGaVrpSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="f8489a03-acca-11d3-53cb-8e24d5f2bc12" name="RunIslandGaTspSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="0f7f90f7-e380-ff65-538e-ae559774092a" name="RunPsoSchwefelSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="53547167-fc2b-4954-b200-2cc27b4c4951" name="RunVnsTspSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="7512aa68-9dbe-f891-d1da-99dc94661142" name="RunEsGriewankSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="433a86f1-0126-5281-1c23-90b47f066d94" name="RunGpSymbolicClassificationSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="eec82cf0-dae7-63c8-a469-6dd84d49a935" name="RunGaTspSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="7d7f6024-f783-1c71-db60-2d6746653109" name="RunSimulatedAnnealingRastriginSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="29188193-8d50-0c61-c6fa-4d5b608a72e8" name="RunGpArtificialAntSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="95278ae9-832c-bef9-0bbc-4432195e63fa" name="RunTabuSearchTspSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
-      <TestLink id="21f1371d-8c47-9588-d8fa-cf45fd1d81eb" name="RunLocalSearchKnapsackSampleTest" storage="heuristiclab.tests\bin\release\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="8bb23f49-5206-4245-08b9-471f543b3e21" name="RunGpSymbolicRegressionSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="1f743a89-461d-5650-31ba-e68c02f0fbad" name="RunGaVrpSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="f8489a03-acca-11d3-53cb-8e24d5f2bc12" name="RunIslandGaTspSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="0f7f90f7-e380-ff65-538e-ae559774092a" name="RunPsoSchwefelSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="53547167-fc2b-4954-b200-2cc27b4c4951" name="RunVnsTspSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="7512aa68-9dbe-f891-d1da-99dc94661142" name="RunEsGriewankSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="433a86f1-0126-5281-1c23-90b47f066d94" name="RunGpSymbolicClassificationSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="eec82cf0-dae7-63c8-a469-6dd84d49a935" name="RunGaTspSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="7d7f6024-f783-1c71-db60-2d6746653109" name="RunSimulatedAnnealingRastriginSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="29188193-8d50-0c61-c6fa-4d5b608a72e8" name="RunGpArtificialAntSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="95278ae9-832c-bef9-0bbc-4432195e63fa" name="RunTabuSearchTspSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
+      <TestLink id="21f1371d-8c47-9588-d8fa-cf45fd1d81eb" name="RunLocalSearchKnapsackSampleTest" storage="heuristiclab.tests\bin\debug\heuristiclab.tests.dll" type="Microsoft.VisualStudio.TestTools.TestTypes.Unit.UnitTestElement, Microsoft.VisualStudio.QualityTools.Tips.UnitTest.ObjectModel, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
     </TestLinks>
   </TestList>
Index: /trunk/sources/HeuristicLab.Problems.Instances.TSPLIB/3.3/HeuristicLab.Problems.Instances.TSPLIB-3.3.csproj
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.TSPLIB/3.3/HeuristicLab.Problems.Instances.TSPLIB-3.3.csproj	(revision 7617)
+++ /trunk/sources/HeuristicLab.Problems.Instances.TSPLIB/3.3/HeuristicLab.Problems.Instances.TSPLIB-3.3.csproj	(revision 7618)
@@ -102,4 +102,7 @@
   </PropertyGroup>
   <ItemGroup>
+    <Reference Include="ICSharpCode.SharpZipLib, Version=0.85.4.369, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
+      <Private>False</Private>
+    </Reference>
     <Reference Include="System" />
     <Reference Include="System.Core" />
@@ -107,4 +110,5 @@
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="TSPLIBInstanceProvider.cs" />
     <Compile Include="TSPLIBATSPInstanceProvider.cs" />
     <Compile Include="TSPLIBCVRPInstanceProvider.cs" />
@@ -112,181 +116,8 @@
     <Compile Include="TSPLIBTSPInstanceProvider.cs" />
     <Compile Include="TSPLIBParser.cs" />
-    <EmbeddedResource Include="Data\TSP\a280.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\a280.tsp" />
-    <EmbeddedResource Include="Data\TSP\ali535.tsp" />
-    <EmbeddedResource Include="Data\TSP\att48.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\att48.tsp" />
-    <EmbeddedResource Include="Data\TSP\att532.tsp" />
-    <EmbeddedResource Include="Data\TSP\bayg29.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\bayg29.tsp" />
-    <EmbeddedResource Include="Data\TSP\bays29.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\bays29.tsp" />
-    <EmbeddedResource Include="Data\TSP\berlin52.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\berlin52.tsp" />
-    <EmbeddedResource Include="Data\TSP\bier127.tsp" />
-    <EmbeddedResource Include="Data\TSP\brazil58.tsp" />
-    <EmbeddedResource Include="Data\TSP\brd14051.tsp" />
-    <EmbeddedResource Include="Data\TSP\brg180.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\brg180.tsp" />
-    <EmbeddedResource Include="Data\TSP\burma14.tsp" />
-    <EmbeddedResource Include="Data\TSP\ch130.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\ch130.tsp" />
-    <EmbeddedResource Include="Data\TSP\ch150.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\ch150.tsp" />
-    <EmbeddedResource Include="Data\TSP\d1291.tsp" />
-    <EmbeddedResource Include="Data\TSP\d15112.tsp" />
-    <EmbeddedResource Include="Data\TSP\d1655.tsp" />
-    <EmbeddedResource Include="Data\TSP\d18512.tsp" />
-    <EmbeddedResource Include="Data\TSP\d198.tsp" />
-    <EmbeddedResource Include="Data\TSP\d2103.tsp" />
-    <EmbeddedResource Include="Data\TSP\d493.tsp" />
-    <EmbeddedResource Include="Data\TSP\d657.tsp" />
-    <EmbeddedResource Include="Data\TSP\dantzig42.tsp" />
-    <EmbeddedResource Include="Data\TSP\dsj1000.tsp" />
-    <EmbeddedResource Include="Data\TSP\eil101.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\eil101.tsp" />
-    <EmbeddedResource Include="Data\TSP\eil51.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\eil51.tsp" />
-    <EmbeddedResource Include="Data\TSP\eil76.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\eil76.tsp" />
-    <EmbeddedResource Include="Data\TSP\fl1400.tsp" />
-    <EmbeddedResource Include="Data\TSP\fl1577.tsp" />
-    <EmbeddedResource Include="Data\TSP\fl3795.tsp" />
-    <EmbeddedResource Include="Data\TSP\fl417.tsp" />
-    <EmbeddedResource Include="Data\TSP\fnl4461.tsp" />
-    <EmbeddedResource Include="Data\TSP\fri26.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\fri26.tsp" />
-    <EmbeddedResource Include="Data\TSP\gil262.tsp" />
-    <EmbeddedResource Include="Data\TSP\gr120.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\gr120.tsp" />
-    <EmbeddedResource Include="Data\TSP\gr137.tsp" />
-    <EmbeddedResource Include="Data\TSP\gr17.tsp" />
-    <EmbeddedResource Include="Data\TSP\gr202.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\gr202.tsp" />
-    <EmbeddedResource Include="Data\TSP\gr21.tsp" />
-    <EmbeddedResource Include="Data\TSP\gr229.tsp" />
-    <EmbeddedResource Include="Data\TSP\gr24.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\gr24.tsp" />
-    <EmbeddedResource Include="Data\TSP\gr431.tsp" />
-    <EmbeddedResource Include="Data\TSP\gr48.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\gr48.tsp" />
-    <EmbeddedResource Include="Data\TSP\gr666.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\gr666.tsp" />
-    <EmbeddedResource Include="Data\TSP\gr96.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\gr96.tsp" />
-    <EmbeddedResource Include="Data\TSP\hk48.tsp" />
-    <EmbeddedResource Include="Data\TSP\kroA100.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\kroA100.tsp" />
-    <EmbeddedResource Include="Data\TSP\kroA150.tsp" />
-    <EmbeddedResource Include="Data\TSP\kroA200.tsp" />
-    <EmbeddedResource Include="Data\TSP\kroB100.tsp" />
-    <EmbeddedResource Include="Data\TSP\kroB150.tsp" />
-    <EmbeddedResource Include="Data\TSP\kroB200.tsp" />
-    <EmbeddedResource Include="Data\TSP\kroC100.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\kroC100.tsp" />
-    <EmbeddedResource Include="Data\TSP\kroD100.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\kroD100.tsp" />
-    <EmbeddedResource Include="Data\TSP\kroE100.tsp" />
-    <EmbeddedResource Include="Data\TSP\lin105.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\lin105.tsp" />
-    <EmbeddedResource Include="Data\TSP\lin318.tsp" />
-    <EmbeddedResource Include="Data\TSP\nrw1379.tsp" />
-    <EmbeddedResource Include="Data\TSP\p654.tsp" />
-    <EmbeddedResource Include="Data\TSP\pa561.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\pa561.tsp" />
-    <EmbeddedResource Include="Data\TSP\pcb1173.tsp" />
-    <EmbeddedResource Include="Data\TSP\pcb3038.tsp" />
-    <EmbeddedResource Include="Data\TSP\pcb442.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\pcb442.tsp" />
-    <EmbeddedResource Include="Data\TSP\pla33810.tsp" />
-    <EmbeddedResource Include="Data\TSP\pla7397.tsp" />
-    <EmbeddedResource Include="Data\TSP\pla85900.tsp" />
-    <EmbeddedResource Include="Data\TSP\pr1002.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\pr1002.tsp" />
-    <EmbeddedResource Include="Data\TSP\pr107.tsp" />
-    <EmbeddedResource Include="Data\TSP\pr124.tsp" />
-    <EmbeddedResource Include="Data\TSP\pr136.tsp" />
-    <EmbeddedResource Include="Data\TSP\pr144.tsp" />
-    <EmbeddedResource Include="Data\TSP\pr152.tsp" />
-    <EmbeddedResource Include="Data\TSP\pr226.tsp" />
-    <EmbeddedResource Include="Data\TSP\pr2392.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\pr2392.tsp" />
-    <EmbeddedResource Include="Data\TSP\pr264.tsp" />
-    <EmbeddedResource Include="Data\TSP\pr299.tsp" />
-    <EmbeddedResource Include="Data\TSP\pr439.tsp" />
-    <EmbeddedResource Include="Data\TSP\pr76.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\pr76.tsp" />
-    <EmbeddedResource Include="Data\TSP\rat195.tsp" />
-    <EmbeddedResource Include="Data\TSP\rat575.tsp" />
-    <EmbeddedResource Include="Data\TSP\rat783.tsp" />
-    <EmbeddedResource Include="Data\TSP\rat99.tsp" />
-    <EmbeddedResource Include="Data\TSP\rd100.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\rd100.tsp" />
-    <EmbeddedResource Include="Data\TSP\rd400.tsp" />
-    <EmbeddedResource Include="Data\TSP\rl11849.tsp" />
-    <EmbeddedResource Include="Data\TSP\rl1304.tsp" />
-    <EmbeddedResource Include="Data\TSP\rl1323.tsp" />
-    <EmbeddedResource Include="Data\TSP\rl1889.tsp" />
-    <EmbeddedResource Include="Data\TSP\rl5915.tsp" />
-    <EmbeddedResource Include="Data\TSP\rl5934.tsp" />
-    <EmbeddedResource Include="Data\TSP\si1032.tsp" />
-    <EmbeddedResource Include="Data\TSP\si175.tsp" />
-    <EmbeddedResource Include="Data\TSP\si535.tsp" />
-    <EmbeddedResource Include="Data\TSP\st70.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\st70.tsp" />
-    <EmbeddedResource Include="Data\TSP\swiss42.tsp" />
-    <EmbeddedResource Include="Data\TSP\ts225.tsp" />
-    <EmbeddedResource Include="Data\TSP\tsp225.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\tsp225.tsp" />
-    <EmbeddedResource Include="Data\TSP\u1060.tsp" />
-    <EmbeddedResource Include="Data\TSP\u1432.tsp" />
-    <EmbeddedResource Include="Data\TSP\u159.tsp" />
-    <EmbeddedResource Include="Data\TSP\u1817.tsp" />
-    <EmbeddedResource Include="Data\TSP\u2152.tsp" />
-    <EmbeddedResource Include="Data\TSP\u2319.tsp" />
-    <EmbeddedResource Include="Data\TSP\u574.tsp" />
-    <EmbeddedResource Include="Data\TSP\u724.tsp" />
-    <EmbeddedResource Include="Data\TSP\ulysses16.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\ulysses16.tsp" />
-    <EmbeddedResource Include="Data\TSP\ulysses22.opt.tour" />
-    <EmbeddedResource Include="Data\TSP\ulysses22.tsp" />
-    <EmbeddedResource Include="Data\TSP\usa13509.tsp" />
-    <EmbeddedResource Include="Data\TSP\vm1084.tsp" />
-    <EmbeddedResource Include="Data\TSP\vm1748.tsp" />
-    <EmbeddedResource Include="Data\ATSP\br17.atsp" />
-    <EmbeddedResource Include="Data\ATSP\ft53.atsp" />
-    <EmbeddedResource Include="Data\ATSP\ft70.atsp" />
-    <EmbeddedResource Include="Data\ATSP\ftv170.atsp" />
-    <EmbeddedResource Include="Data\ATSP\ftv33.atsp" />
-    <EmbeddedResource Include="Data\ATSP\ftv35.atsp" />
-    <EmbeddedResource Include="Data\ATSP\ftv38.atsp" />
-    <EmbeddedResource Include="Data\ATSP\ftv44.atsp" />
-    <EmbeddedResource Include="Data\ATSP\ftv47.atsp" />
-    <EmbeddedResource Include="Data\ATSP\ftv55.atsp" />
-    <EmbeddedResource Include="Data\ATSP\ftv64.atsp" />
-    <EmbeddedResource Include="Data\ATSP\ftv70.atsp" />
-    <EmbeddedResource Include="Data\ATSP\kro124p.atsp" />
-    <EmbeddedResource Include="Data\ATSP\p43.atsp" />
-    <EmbeddedResource Include="Data\ATSP\rbg323.atsp" />
-    <EmbeddedResource Include="Data\ATSP\rbg358.atsp" />
-    <EmbeddedResource Include="Data\ATSP\rbg403.atsp" />
-    <EmbeddedResource Include="Data\ATSP\rbg443.atsp" />
-    <EmbeddedResource Include="Data\ATSP\ry48p.atsp" />
-    <EmbeddedResource Include="Data\CVRP\att48.vrp" />
-    <EmbeddedResource Include="Data\CVRP\eil13.vrp" />
-    <EmbeddedResource Include="Data\CVRP\eil22.vrp" />
-    <EmbeddedResource Include="Data\CVRP\eil23.vrp" />
-    <EmbeddedResource Include="Data\CVRP\eil30.vrp" />
-    <EmbeddedResource Include="Data\CVRP\eil31.vrp" />
-    <EmbeddedResource Include="Data\CVRP\eil33.vrp" />
-    <EmbeddedResource Include="Data\CVRP\eil51.vrp" />
-    <EmbeddedResource Include="Data\CVRP\eil7.vrp" />
-    <EmbeddedResource Include="Data\CVRP\eilA101.vrp" />
-    <EmbeddedResource Include="Data\CVRP\eilA76.vrp" />
-    <EmbeddedResource Include="Data\CVRP\eilB101.vrp" />
-    <EmbeddedResource Include="Data\CVRP\eilB76.vrp" />
-    <EmbeddedResource Include="Data\CVRP\eilC76.vrp" />
-    <EmbeddedResource Include="Data\CVRP\eilD76.vrp" />
-    <EmbeddedResource Include="Data\CVRP\gil262.vrp" />
+    <EmbeddedResource Include="Data\atsp.zip" />
+    <EmbeddedResource Include="Data\tsp.zip" />
+    <EmbeddedResource Include="Data\tsp.opt.tour.zip" />
+    <EmbeddedResource Include="Data\vrp.zip" />
     <None Include="Plugin.cs.frame" />
     <Compile Include="Plugin.cs" />
Index: /trunk/sources/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBATSPInstanceProvider.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBATSPInstanceProvider.cs	(revision 7617)
+++ /trunk/sources/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBATSPInstanceProvider.cs	(revision 7618)
@@ -21,12 +21,8 @@
 
 using System;
-using System.Collections.Generic;
-using System.IO;
 using System.Linq;
-using System.Reflection;
-using System.Text.RegularExpressions;
 
 namespace HeuristicLab.Problems.Instances.TSPLIB {
-  public class TSPLIBATSPInstanceProvider : ProblemInstanceProvider<ATSPData> {
+  public class TSPLIBATSPInstanceProvider : TSPLIBInstanceProvider<ATSPData> {
 
     public override string Name {
@@ -38,58 +34,7 @@
     }
 
-    public override Uri WebLink {
-      get { return new Uri("http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/"); }
-    }
+    protected override string FileExtension { get { return "atsp"; } }
 
-    public override string ReferencePublication {
-      get {
-        return @"G. Reinelt. 1991.
-TSPLIB - A Traveling Salesman Problem Library.
-ORSA Journal on Computing, 3, pp. 376-384.";
-      }
-    }
-
-    public override IEnumerable<IDataDescriptor> GetDataDescriptors() {
-      var solutions = Assembly.GetExecutingAssembly()
-        .GetManifestResourceNames()
-        .Where(x => Regex.Match(x, @".*\.Data\.ATSP\..*").Success)
-        .Where(x => x.EndsWith(".opt.tour"))
-        .ToDictionary(x => x.Substring(0, x.Length - ".opt.tour".Length) + ".atsp", x => x);
-
-      return Assembly.GetExecutingAssembly()
-          .GetManifestResourceNames()
-        .Where(x => Regex.Match(x, @".*\.Data\.ATSP\..*").Success)
-          .Where(x => x.EndsWith(".atsp"))
-          .OrderBy(x => x)
-          .Select(x => new TSPLIBDataDescriptor(GetPrettyName(x), GetDescription(), x, solutions.ContainsKey(x) ? solutions[x] : String.Empty));
-    }
-
-    public override ATSPData LoadData(IDataDescriptor id) {
-      var descriptor = (TSPLIBDataDescriptor)id;
-      using (var stream = Assembly.GetExecutingAssembly()
-        .GetManifestResourceStream(descriptor.InstanceIdentifier)) {
-        var instance = Load(new TSPLIBParser(stream));
-
-        if (!String.IsNullOrEmpty(descriptor.SolutionIdentifier)) {
-          using (Stream solStream = Assembly.GetExecutingAssembly()
-            .GetManifestResourceStream(descriptor.SolutionIdentifier)) {
-            var tourParser = new TSPLIBParser(solStream);
-            tourParser.Parse();
-            instance.BestKnownTour = tourParser.Tour[0];
-          }
-        }
-        return instance;
-      }
-    }
-
-    public override ATSPData LoadData(string path) {
-      return Load(new TSPLIBParser(path));
-    }
-
-    public override void SaveData(ATSPData instance, string path) {
-      throw new NotSupportedException();
-    }
-
-    private ATSPData Load(TSPLIBParser parser) {
+    protected override ATSPData LoadInstance(TSPLIBParser parser) {
       var instance = new ATSPData();
 
@@ -102,15 +47,12 @@
       instance.Description = parser.Comment
         + Environment.NewLine + Environment.NewLine
-        + GetDescription();
+        + GetInstanceDescription();
 
       return instance;
     }
 
-    private string GetPrettyName(string instanceIdentifier) {
-      return Regex.Match(instanceIdentifier, GetType().Namespace + @"\.Data\.ATSP\.(.*)\.atsp").Groups[1].Captures[0].Value;
-    }
-
-    private string GetDescription() {
-      return "Embedded instance of plugin version " + Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyFileVersionAttribute), true).Cast<AssemblyFileVersionAttribute>().First().Version + ".";
+    protected override void LoadSolution(TSPLIBParser parser, ATSPData instance) {
+      parser.Parse();
+      instance.BestKnownTour = parser.Tour.FirstOrDefault();
     }
   }
Index: /trunk/sources/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBCVRPInstanceProvider.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBCVRPInstanceProvider.cs	(revision 7617)
+++ /trunk/sources/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBCVRPInstanceProvider.cs	(revision 7618)
@@ -21,12 +21,8 @@
 
 using System;
-using System.Collections.Generic;
 using System.IO;
-using System.Linq;
-using System.Reflection;
-using System.Text.RegularExpressions;
 
 namespace HeuristicLab.Problems.Instances.TSPLIB {
-  public class TSPLIBCVRPInstanceProvider : ProblemInstanceProvider<CVRPData> {
+  public class TSPLIBCVRPInstanceProvider : TSPLIBInstanceProvider<CVRPData> {
 
     public override string Name {
@@ -38,57 +34,7 @@
     }
 
-    public override Uri WebLink {
-      get { return new Uri("http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/"); }
-    }
+    protected override string FileExtension { get { return "vrp"; } }
 
-    public override string ReferencePublication {
-      get {
-        return @"G. Reinelt. 1991.
-TSPLIB - A Traveling Salesman Problem Library.
-ORSA Journal on Computing, 3, pp. 376-384.";
-      }
-    }
-
-    public override IEnumerable<IDataDescriptor> GetDataDescriptors() {
-      var solutions = Assembly.GetExecutingAssembly()
-        .GetManifestResourceNames()
-        .Where(x => Regex.Match(x, @".*\.Data\.CVRP\..*").Success)
-        .Where(x => x.EndsWith(".opt.tour"))
-        .ToDictionary(x => x.Substring(0, x.Length - ".opt.tour".Length) + ".vrp", x => x);
-
-      return Assembly.GetExecutingAssembly()
-          .GetManifestResourceNames()
-          .Where(x => Regex.Match(x, @".*\.Data\.CVRP\..*").Success)
-          .OrderBy(x => x)
-          .Select(x => new TSPLIBDataDescriptor(GetPrettyName(x), GetDescription(), x, solutions.ContainsKey(x) ? solutions[x] : String.Empty));
-    }
-
-    public override CVRPData LoadData(IDataDescriptor id) {
-      var descriptor = (TSPLIBDataDescriptor)id;
-      using (var stream = Assembly.GetExecutingAssembly()
-        .GetManifestResourceStream(descriptor.InstanceIdentifier)) {
-        var instance = Load(new TSPLIBParser(stream));
-
-        if (!String.IsNullOrEmpty(descriptor.SolutionIdentifier)) {
-          using (Stream solStream = Assembly.GetExecutingAssembly()
-            .GetManifestResourceStream(descriptor.SolutionIdentifier)) {
-            var slnParser = new TSPLIBParser(solStream);
-            slnParser.Parse();
-            instance.BestKnownTour = slnParser.Tour;
-          }
-        }
-        return instance;
-      }
-    }
-
-    public override CVRPData LoadData(string path) {
-      return Load(new TSPLIBParser(path));
-    }
-
-    public override void SaveData(CVRPData instance, string path) {
-      throw new NotSupportedException();
-    }
-
-    private CVRPData Load(TSPLIBParser parser) {
+    protected override CVRPData LoadInstance(TSPLIBParser parser) {
       parser.Parse();
       var instance = new CVRPData();
@@ -123,15 +69,12 @@
       instance.Description = parser.Comment
         + Environment.NewLine + Environment.NewLine
-        + GetDescription();
+        + GetInstanceDescription();
 
       return instance;
     }
 
-    private string GetPrettyName(string instanceIdentifier) {
-      return Regex.Match(instanceIdentifier, GetType().Namespace + @"\.Data\.CVRP\.(.*)\.vrp").Groups[1].Captures[0].Value;
-    }
-
-    private string GetDescription() {
-      return "Embedded instance of plugin version " + Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyFileVersionAttribute), true).Cast<AssemblyFileVersionAttribute>().First().Version + ".";
+    protected override void LoadSolution(TSPLIBParser parser, CVRPData instance) {
+      parser.Parse();
+      instance.BestKnownTour = parser.Tour;
     }
   }
Index: /trunk/sources/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBInstanceProvider.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBInstanceProvider.cs	(revision 7618)
+++ /trunk/sources/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBInstanceProvider.cs	(revision 7618)
@@ -0,0 +1,116 @@
+﻿#region License Information
+/* HeuristicLab
+ * Copyright (C) 2002-2012 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.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Reflection;
+using System.Text.RegularExpressions;
+using ICSharpCode.SharpZipLib.Zip;
+
+namespace HeuristicLab.Problems.Instances.TSPLIB {
+  public abstract class TSPLIBInstanceProvider<T> : ProblemInstanceProvider<T> {
+
+    public override Uri WebLink {
+      get { return new Uri("http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/"); }
+    }
+
+    public override string ReferencePublication {
+      get {
+        return @"G. Reinelt. 1991.
+TSPLIB - A Traveling Salesman Problem Library.
+ORSA Journal on Computing, 3, pp. 376-384.";
+      }
+    }
+
+    protected abstract string FileExtension { get; }
+
+    protected abstract T LoadInstance(TSPLIBParser parser);
+    protected abstract void LoadSolution(TSPLIBParser parser, T instance);
+
+    public override IEnumerable<IDataDescriptor> GetDataDescriptors() {
+      Dictionary<string, string> solutions = new Dictionary<string, string>();
+      var solutionsArchiveName = GetResourceName(FileExtension + @"\.opt\.tour\.zip");
+      if (!String.IsNullOrEmpty(solutionsArchiveName)) {
+        using (var solutionsZipFile = new ZipInputStream(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName))) {
+          foreach (var entry in GetZipContents(solutionsZipFile))
+            solutions.Add(entry.Substring(0, entry.Length - ".opt.tour".Length) + FileExtension, entry);
+        }
+      }
+      var instanceArchiveName = GetResourceName(FileExtension + @"\.zip");
+      if (String.IsNullOrEmpty(instanceArchiveName)) yield break;
+
+      using (var instanceStream = new ZipInputStream(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
+        foreach (var entry in GetZipContents(instanceStream)) {
+          yield return new TSPLIBDataDescriptor(Path.GetFileNameWithoutExtension(entry), GetInstanceDescription(), entry, solutions.ContainsKey(entry) ? solutions[entry] : String.Empty);
+        }
+      }
+    }
+
+    public override T LoadData(IDataDescriptor id) {
+      var descriptor = (TSPLIBDataDescriptor)id;
+      var instanceArchiveName = GetResourceName(FileExtension + @"\.zip");
+      using (var instancesZipFile = new ZipFile(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
+        var entry = instancesZipFile.GetEntry(descriptor.InstanceIdentifier);
+        var stream = instancesZipFile.GetInputStream(entry);
+        var parser = new TSPLIBParser(stream);
+        var instance = LoadInstance(parser);
+
+        if (!String.IsNullOrEmpty(descriptor.SolutionIdentifier)) {
+          var solutionsArchiveName = GetResourceName(FileExtension + @"\.opt\.tour\.zip");
+          using (var solutionsZipFile = new ZipFile(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName))) {
+            entry = solutionsZipFile.GetEntry(descriptor.SolutionIdentifier);
+            stream = solutionsZipFile.GetInputStream(entry);
+            parser = new TSPLIBParser(stream);
+            LoadSolution(parser, instance);
+          }
+        }
+
+        return instance;
+      }
+    }
+
+    public override T LoadData(string path) {
+      return LoadInstance(new TSPLIBParser(path));
+    }
+
+    public override void SaveData(T instance, string path) {
+      throw new NotSupportedException();
+    }
+
+    protected virtual string GetResourceName(string fileName) {
+      return Assembly.GetExecutingAssembly().GetManifestResourceNames()
+              .Where(x => Regex.Match(x, @".*\.Data\." + fileName).Success).SingleOrDefault();
+    }
+
+    protected virtual string GetInstanceDescription() {
+      return "Embedded instance of plugin version " + Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyFileVersionAttribute), true).Cast<AssemblyFileVersionAttribute>().First().Version + ".";
+    }
+
+    protected IEnumerable<string> GetZipContents(ZipInputStream zipFile) {
+      ZipEntry entry;
+      while ((entry = zipFile.GetNextEntry()) != null) {
+        yield return entry.Name;
+      }
+    }
+  }
+}
Index: /trunk/sources/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBTSPInstanceProvider.cs
===================================================================
--- /trunk/sources/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBTSPInstanceProvider.cs	(revision 7617)
+++ /trunk/sources/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBTSPInstanceProvider.cs	(revision 7618)
@@ -21,12 +21,9 @@
 
 using System;
-using System.Collections.Generic;
 using System.IO;
 using System.Linq;
-using System.Reflection;
-using System.Text.RegularExpressions;
 
 namespace HeuristicLab.Problems.Instances.TSPLIB {
-  public class TSPLIBTSPInstanceProvider : ProblemInstanceProvider<TSPData> {
+  public class TSPLIBTSPInstanceProvider : TSPLIBInstanceProvider<TSPData> {
 
     public override string Name {
@@ -38,72 +35,7 @@
     }
 
-    public override Uri WebLink {
-      get { return new Uri("http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/"); }
-    }
+    protected override string FileExtension { get { return "tsp"; } }
 
-    public override string ReferencePublication {
-      get {
-        return @"G. Reinelt. 1991.
-TSPLIB - A Traveling Salesman Problem Library.
-ORSA Journal on Computing, 3, pp. 376-384.";
-      }
-    }
-
-    public override IEnumerable<IDataDescriptor> GetDataDescriptors() {
-      var solutions = Assembly.GetExecutingAssembly()
-        .GetManifestResourceNames()
-        .Where(x => Regex.Match(x, @".*\.Data\.TSP\..*").Success)
-        .Where(x => x.EndsWith(".opt.tour"))
-        .ToDictionary(x => x.Substring(0, x.Length - ".opt.tour".Length) + ".tsp", x => x);
-
-      return Assembly.GetExecutingAssembly()
-        .GetManifestResourceNames()
-        .Where(x => Regex.Match(x, @".*\.Data\.TSP\..*").Success)
-        .Where(x => x.EndsWith(".tsp"))
-        .OrderBy(x => x)
-        .Select(x => new TSPLIBDataDescriptor(GetPrettyName(x), GetDescription(), x, solutions.ContainsKey(x) ? solutions[x] : String.Empty));
-    }
-
-    public override TSPData LoadData(IDataDescriptor id) {
-      var descriptor = (TSPLIBDataDescriptor)id;
-      using (var stream = Assembly.GetExecutingAssembly()
-        .GetManifestResourceStream(descriptor.InstanceIdentifier)) {
-        var parser = new TSPLIBParser(stream);
-        var instance = Load(parser);
-
-        if (!String.IsNullOrEmpty(descriptor.SolutionIdentifier)) {
-          using (Stream solStream = Assembly.GetExecutingAssembly()
-            .GetManifestResourceStream(descriptor.SolutionIdentifier)) {
-            var tourParser = new TSPLIBParser(solStream);
-            tourParser.Parse();
-            instance.BestKnownTour = tourParser.Tour[0];
-          }
-        }
-        return instance;
-      }
-    }
-
-    public override TSPData LoadData(string path) {
-      return Load(new TSPLIBParser(path));
-    }
-
-    public TSPData LoadData(string tspFile, string tourFile, double? bestQuality) {
-      var data = Load(new TSPLIBParser(tspFile));
-      if (bestQuality.HasValue)
-        data.BestKnownQuality = bestQuality.Value;
-      else data.BestKnownQuality = null;
-      if (!String.IsNullOrEmpty(tourFile)) {
-        var tourParser = new TSPLIBParser(tourFile);
-        tourParser.Parse();
-        data.BestKnownTour = tourParser.Tour[0];
-      }
-      return data;
-    }
-
-    public override void SaveData(TSPData instance, string path) {
-      throw new NotSupportedException();
-    }
-
-    private TSPData Load(TSPLIBParser parser) {
+    protected override TSPData LoadInstance(TSPLIBParser parser) {
       parser.Parse();
       if (parser.FixedEdges != null) throw new InvalidDataException("TSP instance " + parser.Name + " contains fixed edges which are not supported by HeuristicLab.");
@@ -140,15 +72,24 @@
       instance.Description = parser.Comment
         + Environment.NewLine + Environment.NewLine
-        + GetDescription();
+        + GetInstanceDescription();
       return instance;
     }
 
-    private string GetPrettyName(string instanceIdentifier) {
-      return Regex.Match(instanceIdentifier, GetType().Namespace + @"\.Data\.TSP\.(.*)\.tsp").Groups[1].Captures[0].Value;
+    protected override void LoadSolution(TSPLIBParser parser, TSPData instance) {
+      parser.Parse();
+      instance.BestKnownTour = parser.Tour.FirstOrDefault();
     }
 
-    private string GetDescription() {
-      return "Embedded instance of plugin version " + Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyFileVersionAttribute), true).Cast<AssemblyFileVersionAttribute>().First().Version + ".";
+    public TSPData LoadData(string tspFile, string tourFile, double? bestQuality) {
+      var data = LoadInstance(new TSPLIBParser(tspFile));
+      if (!String.IsNullOrEmpty(tourFile)) {
+        var tourParser = new TSPLIBParser(tourFile);
+        LoadSolution(tourParser, data);
+      }
+      if (bestQuality.HasValue)
+        data.BestKnownQuality = bestQuality.Value;
+      return data;
     }
+
   }
 }
