Index: branches/VRP/HeuristicLab 3.3.sln
===================================================================
--- branches/VRP/HeuristicLab 3.3.sln	(revision 5230)
+++ branches/VRP/HeuristicLab 3.3.sln	(revision 5867)
@@ -66,7 +66,5 @@
 		{25087811-F74C-4128-BC86-8324271DA13E} = {25087811-F74C-4128-BC86-8324271DA13E}
 		{662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2} = {662B4B15-8F4D-4AE5-B3EB-D91C215F5AF2}
-		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9} = {BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}
 		{E226881D-315F-423D-B419-A766FE0D8685} = {E226881D-315F-423D-B419-A766FE0D8685}
-		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9} = {9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}
 		{F62BCD22-FB83-4444-9401-8031C2487A86} = {F62BCD22-FB83-4444-9401-8031C2487A86}
 		{E0B45023-CB84-48A1-A1B7-8295B64B7BAD} = {E0B45023-CB84-48A1-A1B7-8295B64B7BAD}
@@ -81,5 +79,4 @@
 		{250ADE34-82FD-4BAE-86D5-985FBE589C4A} = {250ADE34-82FD-4BAE-86D5-985FBE589C4A}
 		{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1} = {0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}
-		{799B0B38-E384-4A17-A73C-F211EB854592} = {799B0B38-E384-4A17-A73C-F211EB854592}
 		{678E2145-8152-4E19-9646-07D439D00301} = {678E2145-8152-4E19-9646-07D439D00301}
 		{BB994448-2B21-4564-BB2E-38D8FFF8CF18} = {BB994448-2B21-4564-BB2E-38D8FFF8CF18}
@@ -98,19 +95,13 @@
 		{8824925E-3E00-4543-8293-7DDACE4737F8} = {8824925E-3E00-4543-8293-7DDACE4737F8}
 		{E10F395F-C8A6-48AD-B470-9AA7A1F43809} = {E10F395F-C8A6-48AD-B470-9AA7A1F43809}
-		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5} = {6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}
 		{4AE3FC69-C575-42D2-BC46-0FAD5850EFC5} = {4AE3FC69-C575-42D2-BC46-0FAD5850EFC5}
 		{56F9106A-079F-4C61-92F6-86A84C2D84B7} = {56F9106A-079F-4C61-92F6-86A84C2D84B7}
-		{30D6606B-96E7-436C-B5D7-EA1455848E37} = {30D6606B-96E7-436C-B5D7-EA1455848E37}
-		{A8D5676D-9662-437A-B44D-ECB4046CDE12} = {A8D5676D-9662-437A-B44D-ECB4046CDE12}
 		{DC3D7072-7999-4719-B65D-3997744D5DC1} = {DC3D7072-7999-4719-B65D-3997744D5DC1}
 		{76945D76-CA61-4147-9DC2-0ACDCDDF87F9} = {76945D76-CA61-4147-9DC2-0ACDCDDF87F9}
 		{57F38579-409D-4DD8-AB19-3F2C4A665126} = {57F38579-409D-4DD8-AB19-3F2C4A665126}
 		{4ABA047D-46DD-4608-9E4A-41C5F92FDBB1} = {4ABA047D-46DD-4608-9E4A-41C5F92FDBB1}
-		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC} = {70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}
-		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F} = {8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}
 		{D767C38D-8014-46B0-9A32-03A3AECCE34A} = {D767C38D-8014-46B0-9A32-03A3AECCE34A}
 		{BF7D9494-A586-457B-8DF9-ED599F9E6A71} = {BF7D9494-A586-457B-8DF9-ED599F9E6A71}
 		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58} = {F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}
-		{DE12659F-87C4-48E6-B2E3-4E73DD95A540} = {DE12659F-87C4-48E6-B2E3-4E73DD95A540}
 		{4FE983A1-AAF8-4977-B9E2-52B3224510CB} = {4FE983A1-AAF8-4977-B9E2-52B3224510CB}
 		{30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F} = {30DD3DA2-CA57-49DD-A5BA-50CEF19DB45F}
@@ -129,6 +120,4 @@
 		{6908BDCE-D925-43F3-94AC-A531E6DF2591} = {6908BDCE-D925-43F3-94AC-A531E6DF2591}
 		{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B} = {102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}
-		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384} = {13CA37D6-4111-4E7B-BE2E-AF3DE462D384}
-		{71D904D9-233B-44B2-ABB2-1525691228C5} = {71D904D9-233B-44B2-ABB2-1525691228C5}
 		{EE2034D9-6E27-48A1-B855-42D45F69A4FC} = {EE2034D9-6E27-48A1-B855-42D45F69A4FC}
 		{A9EE65D9-405B-4C9C-B470-FC911AAC541B} = {A9EE65D9-405B-4C9C-B470-FC911AAC541B}
@@ -140,5 +129,4 @@
 		{A9E282EA-180F-4233-B809-AEDF0787545C} = {A9E282EA-180F-4233-B809-AEDF0787545C}
 		{96AEBBEE-4203-45F3-BCF5-7B73BF256BDA} = {96AEBBEE-4203-45F3-BCF5-7B73BF256BDA}
-		{5A4679EF-A8F3-4647-B722-441A36B3BA6B} = {5A4679EF-A8F3-4647-B722-441A36B3BA6B}
 		{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE} = {23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}
 		{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937} = {BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}
@@ -198,18 +186,10 @@
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.PermutationEncoding-3.3", "HeuristicLab.Encodings.PermutationEncoding\3.3\HeuristicLab.Encodings.PermutationEncoding-3.3.csproj", "{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.PermutationEncoding-3.3.Tests", "HeuristicLab.Encodings.PermutationEncoding\3.3\Tests\HeuristicLab.Encodings.PermutationEncoding-3.3.Tests.csproj", "{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.RealVectorEncoding-3.3", "HeuristicLab.Encodings.RealVectorEncoding\3.3\HeuristicLab.Encodings.RealVectorEncoding-3.3.csproj", "{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.RealVectorEncoding-3.3.Tests", "HeuristicLab.Encodings.RealVectorEncoding\3.3\Tests\HeuristicLab.Encodings.RealVectorEncoding-3.3.Tests.csproj", "{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.IntegerVectorEncoding-3.3", "HeuristicLab.Encodings.IntegerVectorEncoding\3.3\HeuristicLab.Encodings.IntegerVectorEncoding-3.3.csproj", "{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.IntegerVectorEncoding-3.3.Tests", "HeuristicLab.Encodings.IntegerVectorEncoding\3.3\Tests\HeuristicLab.Encodings.IntegerVectorEncoding-3.3.Tests.csproj", "{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.BinaryVectorEncoding-3.3", "HeuristicLab.Encodings.BinaryVectorEncoding\3.3\HeuristicLab.Encodings.BinaryVectorEncoding-3.3.csproj", "{66D249C3-A01D-42A8-82A2-919BC8EC3D83}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.BinaryVectorEncoding-3.3.Tests", "HeuristicLab.Encodings.BinaryVectorEncoding\3.3\Tests\HeuristicLab.Encodings.BinaryVectorEncoding-3.3.Tests.csproj", "{30D6606B-96E7-436C-B5D7-EA1455848E37}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.OneMax-3.3", "HeuristicLab.Problems.OneMax\3.3\HeuristicLab.Problems.OneMax-3.3.csproj", "{F62BCD22-FB83-4444-9401-8031C2487A86}"
 EndProject
@@ -236,6 +216,4 @@
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.GeneticAlgorithm-3.3", "HeuristicLab.Algorithms.GeneticAlgorithm\3.3\HeuristicLab.Algorithms.GeneticAlgorithm-3.3.csproj", "{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.GeneticAlgorithm-3.3.Tests", "HeuristicLab.Algorithms.GeneticAlgorithm\3.3\Tests\HeuristicLab.Algorithms.GeneticAlgorithm-3.3.Tests.csproj", "{DE12659F-87C4-48E6-B2E3-4E73DD95A540}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3", "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.3\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3.csproj", "{125D3006-67F5-48CB-913E-73C0548F17FA}"
 EndProject
@@ -246,12 +224,6 @@
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.3", "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views\3.3\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding.Views-3.3.csproj", "{6F42C5F8-16CD-43EE-8208-FD4573A69D85}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis-3.3", "HeuristicLab.Problems.DataAnalysis\3.3\HeuristicLab.Problems.DataAnalysis-3.3.csproj", "{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Regression-3.3", "HeuristicLab.Problems.DataAnalysis.Regression\3.3\HeuristicLab.Problems.DataAnalysis.Regression-3.3.csproj", "{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3.Tests", "HeuristicLab.Encodings.SymbolicExpressionTreeEncoding\3.3\Tests\HeuristicLab.Encodings.SymbolicExpressionTreeEncoding-3.3.Tests.csproj", "{8824925E-3E00-4543-8293-7DDACE4737F8}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Views-3.3", "HeuristicLab.Problems.DataAnalysis.Views\3.3\HeuristicLab.Problems.DataAnalysis.Views-3.3.csproj", "{799B0B38-E384-4A17-A73C-F211EB854592}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm-3.3", "HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm\3.3\HeuristicLab.Algorithms.OffspringSelectionGeneticAlgorithm-3.3.csproj", "{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}"
 EndProject
@@ -265,8 +237,4 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.OneMax.Views-3.3", "HeuristicLab.Problems.OneMax.Views\3.3\HeuristicLab.Problems.OneMax.Views-3.3.csproj", "{4FE983A1-AAF8-4977-B9E2-52B3224510CB}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.DataAnalysis.Tests-3.3", "HeuristicLab.Problems.DataAnalysis\3.3\Tests\HeuristicLab.Problems.DataAnalysis.Tests-3.3.csproj", "{5A4679EF-A8F3-4647-B722-441A36B3BA6B}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.TestFunctions-3.3.Tests", "HeuristicLab.Problems.TestFunctions\3.3\Tests\HeuristicLab.Problems.TestFunctions-3.3.Tests.csproj", "{71D904D9-233B-44B2-ABB2-1525691228C5}"
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ALGLIB-2.5.0", "HeuristicLab.ExtLibs\HeuristicLab.ALGLIB\2.5.0\ALGLIB-2.5.0\ALGLIB-2.5.0.csproj", "{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}"
@@ -283,6 +251,4 @@
 	EndProjectSection
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.DataAnalysis-3.3", "HeuristicLab.Algorithms.DataAnalysis\3.3\HeuristicLab.Algorithms.DataAnalysis-3.3.csproj", "{A8D5676D-9662-437A-B44D-ECB4046CDE12}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffers", "HeuristicLab.ExtLibs\HeuristicLab.ProtobufCS\0.9.1\ProtobufCS\src\ProtocolBuffers\ProtocolBuffers.csproj", "{6908BDCE-D925-43F3-94AC-A531E6DF2591}"
 EndProject
@@ -301,6 +267,4 @@
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.VehicleRouting.Views-3.3", "HeuristicLab.Problems.VehicleRouting.Views\3.3\HeuristicLab.Problems.VehicleRouting.Views-3.3.csproj", "{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.MainForm.WindowsForms-3.3.Tests", "HeuristicLab.MainForm.WindowsForms\3.3\Tests\HeuristicLab.MainForm.WindowsForms-3.3.Tests.csproj", "{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}"
-EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Problems.ExternalEvaluation.GP-3.3", "HeuristicLab.Problems.ExternalEvaluation.GP\3.3\HeuristicLab.Problems.ExternalEvaluation.GP-3.3.csproj", "{E86E215D-E3CE-4244-978D-555D4E17AC09}"
 EndProject
@@ -314,4 +278,6 @@
 EndProject
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Visualization.ChartControlsExtensions-3.3", "HeuristicLab.Visualization.ChartControlsExtensions\3.3\HeuristicLab.Visualization.ChartControlsExtensions-3.3.csproj", "{315BDA09-3F4F-49B3-9790-B37CFC1C5750}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HeuristicLab.Algorithms.VariableNeighborhoodSearch-3.3", "HeuristicLab.Algorithms.VariableNeighborhoodSearch\3.3\HeuristicLab.Algorithms.VariableNeighborhoodSearch-3.3.csproj", "{E4CFB0C3-0589-4893-B38E-8BEDF885C765}"
 EndProject
 Global
@@ -748,16 +714,4 @@
 		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|x86.ActiveCfg = Release|x86
 		{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}.Release|x86.Build.0 = Release|x86
-		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Debug|x64.ActiveCfg = Debug|x64
-		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Debug|x64.Build.0 = Debug|x64
-		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Debug|x86.ActiveCfg = Debug|x86
-		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Debug|x86.Build.0 = Debug|x86
-		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Release|Any CPU.Build.0 = Release|Any CPU
-		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Release|x64.ActiveCfg = Release|x64
-		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Release|x64.Build.0 = Release|x64
-		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Release|x86.ActiveCfg = Release|x86
-		{13CA37D6-4111-4E7B-BE2E-AF3DE462D384}.Release|x86.Build.0 = Release|x86
 		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Debug|Any CPU.Build.0 = Debug|Any CPU
@@ -772,16 +726,4 @@
 		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|x86.ActiveCfg = Release|x86
 		{BB6D334A-4BB6-4674-9883-31A6EBB32CAB}.Release|x86.Build.0 = Release|x86
-		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Debug|x64.ActiveCfg = Debug|x64
-		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Debug|x64.Build.0 = Debug|x64
-		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Debug|x86.ActiveCfg = Debug|x86
-		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Debug|x86.Build.0 = Debug|x86
-		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Release|Any CPU.Build.0 = Release|Any CPU
-		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Release|x64.ActiveCfg = Release|x64
-		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Release|x64.Build.0 = Release|x64
-		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Release|x86.ActiveCfg = Release|x86
-		{8FA6898D-E4B0-4E08-A6D6-F9F520E7959F}.Release|x86.Build.0 = Release|x86
 		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Debug|Any CPU.Build.0 = Debug|Any CPU
@@ -796,16 +738,4 @@
 		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|x86.ActiveCfg = Release|x86
 		{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}.Release|x86.Build.0 = Release|x86
-		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Debug|x64.ActiveCfg = Debug|x64
-		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Debug|x64.Build.0 = Debug|x64
-		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Debug|x86.ActiveCfg = Debug|x86
-		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Debug|x86.Build.0 = Debug|x86
-		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Release|Any CPU.Build.0 = Release|Any CPU
-		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Release|x64.ActiveCfg = Release|x64
-		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Release|x64.Build.0 = Release|x64
-		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Release|x86.ActiveCfg = Release|x86
-		{6F18ED66-2333-4B5C-B882-AC99FB3CDCE5}.Release|x86.Build.0 = Release|x86
 		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Debug|Any CPU.Build.0 = Debug|Any CPU
@@ -820,16 +750,4 @@
 		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|x86.ActiveCfg = Release|x86
 		{66D249C3-A01D-42A8-82A2-919BC8EC3D83}.Release|x86.Build.0 = Release|x86
-		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Debug|x64.ActiveCfg = Debug|x64
-		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Debug|x64.Build.0 = Debug|x64
-		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Debug|x86.ActiveCfg = Debug|x86
-		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Debug|x86.Build.0 = Debug|x86
-		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Release|Any CPU.Build.0 = Release|Any CPU
-		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Release|x64.ActiveCfg = Release|x64
-		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Release|x64.Build.0 = Release|x64
-		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Release|x86.ActiveCfg = Release|x86
-		{30D6606B-96E7-436C-B5D7-EA1455848E37}.Release|x86.Build.0 = Release|x86
 		{F62BCD22-FB83-4444-9401-8031C2487A86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{F62BCD22-FB83-4444-9401-8031C2487A86}.Debug|Any CPU.Build.0 = Debug|Any CPU
@@ -976,16 +894,4 @@
 		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|x86.ActiveCfg = Release|x86
 		{A51DA44F-CB35-4F6F-99F5-2A2E904AB93B}.Release|x86.Build.0 = Release|x86
-		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Debug|x64.ActiveCfg = Debug|x64
-		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Debug|x64.Build.0 = Debug|x64
-		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Debug|x86.ActiveCfg = Debug|x86
-		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Debug|x86.Build.0 = Debug|x86
-		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Release|Any CPU.Build.0 = Release|Any CPU
-		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Release|x64.ActiveCfg = Release|x64
-		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Release|x64.Build.0 = Release|x64
-		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Release|x86.ActiveCfg = Release|x86
-		{DE12659F-87C4-48E6-B2E3-4E73DD95A540}.Release|x86.Build.0 = Release|x86
 		{125D3006-67F5-48CB-913E-73C0548F17FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{125D3006-67F5-48CB-913E-73C0548F17FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
@@ -1036,28 +942,4 @@
 		{6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Release|x86.ActiveCfg = Release|x86
 		{6F42C5F8-16CD-43EE-8208-FD4573A69D85}.Release|x86.Build.0 = Release|x86
-		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Debug|x64.ActiveCfg = Debug|x64
-		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Debug|x64.Build.0 = Debug|x64
-		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Debug|x86.ActiveCfg = Debug|x86
-		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Debug|x86.Build.0 = Debug|x86
-		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Release|Any CPU.Build.0 = Release|Any CPU
-		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Release|x64.ActiveCfg = Release|x64
-		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Release|x64.Build.0 = Release|x64
-		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Release|x86.ActiveCfg = Release|x86
-		{70DFD984-B1D9-46FE-8EB7-4DE92D71A9FC}.Release|x86.Build.0 = Release|x86
-		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Debug|x64.ActiveCfg = Debug|x64
-		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Debug|x64.Build.0 = Debug|x64
-		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Debug|x86.ActiveCfg = Debug|x86
-		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Debug|x86.Build.0 = Debug|x86
-		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Release|Any CPU.Build.0 = Release|Any CPU
-		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Release|x64.ActiveCfg = Release|x64
-		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Release|x64.Build.0 = Release|x64
-		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Release|x86.ActiveCfg = Release|x86
-		{BDF86B1D-630E-4CE2-8A49-8C90B1BDE4C9}.Release|x86.Build.0 = Release|x86
 		{8824925E-3E00-4543-8293-7DDACE4737F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{8824925E-3E00-4543-8293-7DDACE4737F8}.Debug|Any CPU.Build.0 = Debug|Any CPU
@@ -1072,16 +954,4 @@
 		{8824925E-3E00-4543-8293-7DDACE4737F8}.Release|x86.ActiveCfg = Release|x86
 		{8824925E-3E00-4543-8293-7DDACE4737F8}.Release|x86.Build.0 = Release|x86
-		{799B0B38-E384-4A17-A73C-F211EB854592}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{799B0B38-E384-4A17-A73C-F211EB854592}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{799B0B38-E384-4A17-A73C-F211EB854592}.Debug|x64.ActiveCfg = Debug|x64
-		{799B0B38-E384-4A17-A73C-F211EB854592}.Debug|x64.Build.0 = Debug|x64
-		{799B0B38-E384-4A17-A73C-F211EB854592}.Debug|x86.ActiveCfg = Debug|x86
-		{799B0B38-E384-4A17-A73C-F211EB854592}.Debug|x86.Build.0 = Debug|x86
-		{799B0B38-E384-4A17-A73C-F211EB854592}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{799B0B38-E384-4A17-A73C-F211EB854592}.Release|Any CPU.Build.0 = Release|Any CPU
-		{799B0B38-E384-4A17-A73C-F211EB854592}.Release|x64.ActiveCfg = Release|x64
-		{799B0B38-E384-4A17-A73C-F211EB854592}.Release|x64.Build.0 = Release|x64
-		{799B0B38-E384-4A17-A73C-F211EB854592}.Release|x86.ActiveCfg = Release|x86
-		{799B0B38-E384-4A17-A73C-F211EB854592}.Release|x86.Build.0 = Release|x86
 		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{F409DD9E-1E9C-4EB1-AA3A-9F6E987C6E58}.Debug|Any CPU.Build.0 = Debug|Any CPU
@@ -1156,28 +1026,4 @@
 		{4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Release|x86.ActiveCfg = Release|x86
 		{4FE983A1-AAF8-4977-B9E2-52B3224510CB}.Release|x86.Build.0 = Release|x86
-		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Debug|x64.ActiveCfg = Debug|x64
-		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Debug|x64.Build.0 = Debug|x64
-		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Debug|x86.ActiveCfg = Debug|x86
-		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Debug|x86.Build.0 = Debug|x86
-		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Release|Any CPU.Build.0 = Release|Any CPU
-		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Release|x64.ActiveCfg = Release|x64
-		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Release|x64.Build.0 = Release|x64
-		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Release|x86.ActiveCfg = Release|x86
-		{5A4679EF-A8F3-4647-B722-441A36B3BA6B}.Release|x86.Build.0 = Release|x86
-		{71D904D9-233B-44B2-ABB2-1525691228C5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{71D904D9-233B-44B2-ABB2-1525691228C5}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{71D904D9-233B-44B2-ABB2-1525691228C5}.Debug|x64.ActiveCfg = Debug|x64
-		{71D904D9-233B-44B2-ABB2-1525691228C5}.Debug|x64.Build.0 = Debug|x64
-		{71D904D9-233B-44B2-ABB2-1525691228C5}.Debug|x86.ActiveCfg = Debug|x86
-		{71D904D9-233B-44B2-ABB2-1525691228C5}.Debug|x86.Build.0 = Debug|x86
-		{71D904D9-233B-44B2-ABB2-1525691228C5}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{71D904D9-233B-44B2-ABB2-1525691228C5}.Release|Any CPU.Build.0 = Release|Any CPU
-		{71D904D9-233B-44B2-ABB2-1525691228C5}.Release|x64.ActiveCfg = Release|x64
-		{71D904D9-233B-44B2-ABB2-1525691228C5}.Release|x64.Build.0 = Release|x64
-		{71D904D9-233B-44B2-ABB2-1525691228C5}.Release|x86.ActiveCfg = Release|x86
-		{71D904D9-233B-44B2-ABB2-1525691228C5}.Release|x86.Build.0 = Release|x86
 		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{29E4B033-1FEF-4FE1-AE17-0A9319D7C54E}.Debug|Any CPU.Build.0 = Debug|Any CPU
@@ -1240,16 +1086,4 @@
 		{25735DB4-8E54-4A2C-83E3-A60C76565E55}.Release|x86.ActiveCfg = Release|x86
 		{25735DB4-8E54-4A2C-83E3-A60C76565E55}.Release|x86.Build.0 = Release|x86
-		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Debug|x64.ActiveCfg = Debug|x64
-		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Debug|x64.Build.0 = Debug|x64
-		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Debug|x86.ActiveCfg = Debug|x86
-		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Debug|x86.Build.0 = Debug|x86
-		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Release|Any CPU.Build.0 = Release|Any CPU
-		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Release|x64.ActiveCfg = Release|x64
-		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Release|x64.Build.0 = Release|x64
-		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Release|x86.ActiveCfg = Release|x86
-		{A8D5676D-9662-437A-B44D-ECB4046CDE12}.Release|x86.Build.0 = Release|x86
 		{6908BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{6908BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|Any CPU.Build.0 = Debug|Any CPU
@@ -1348,16 +1182,4 @@
 		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Release|x86.ActiveCfg = Release|x86
 		{D1386FE7-682D-4E18-8C4F-CFD423FA5DD0}.Release|x86.Build.0 = Release|x86
-		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Debug|x64.ActiveCfg = Debug|x64
-		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Debug|x64.Build.0 = Debug|x64
-		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Debug|x86.ActiveCfg = Debug|x86
-		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Debug|x86.Build.0 = Debug|x86
-		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Release|Any CPU.Build.0 = Release|Any CPU
-		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Release|x64.ActiveCfg = Release|x64
-		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Release|x64.Build.0 = Release|x64
-		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Release|x86.ActiveCfg = Release|x86
-		{9F3D601F-E39A-42BE-AEF7-2BF5AD2942D9}.Release|x86.Build.0 = Release|x86
 		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{E86E215D-E3CE-4244-978D-555D4E17AC09}.Debug|Any CPU.Build.0 = Debug|Any CPU
@@ -1432,4 +1254,16 @@
 		{315BDA09-3F4F-49B3-9790-B37CFC1C5750}.Release|x86.ActiveCfg = Release|x86
 		{315BDA09-3F4F-49B3-9790-B37CFC1C5750}.Release|x86.Build.0 = Release|x86
+		{E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Debug|x64.ActiveCfg = Debug|x64
+		{E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Debug|x64.Build.0 = Debug|x64
+		{E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Debug|x86.ActiveCfg = Debug|x86
+		{E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Debug|x86.Build.0 = Debug|x86
+		{E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Release|Any CPU.Build.0 = Release|Any CPU
+		{E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Release|x64.ActiveCfg = Release|x64
+		{E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Release|x64.Build.0 = Release|x64
+		{E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Release|x86.ActiveCfg = Release|x86
+		{E4CFB0C3-0589-4893-B38E-8BEDF885C765}.Release|x86.Build.0 = Release|x86
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting.Views/3.4/HeuristicLab.Problems.VehicleRouting.Views-3.4.csproj
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting.Views/3.4/HeuristicLab.Problems.VehicleRouting.Views-3.4.csproj	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting.Views/3.4/HeuristicLab.Problems.VehicleRouting.Views-3.4.csproj	(revision 5867)
@@ -11,5 +11,5 @@
     <RootNamespace>HeuristicLab.Problems.VehicleRouting.Views</RootNamespace>
     <AssemblyName>HeuristicLab.Problems.VehicleRouting.Views-3.4</AssemblyName>
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
     <FileAlignment>512</FileAlignment>
     <SignAssembly>true</SignAssembly>
@@ -34,4 +34,5 @@
     <UseApplicationTrust>false</UseApplicationTrust>
     <BootstrapperEnabled>true</BootstrapperEnabled>
+    <TargetFrameworkProfile />
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting.Views/3.4/VRPImportDialog.Designer.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting.Views/3.4/VRPImportDialog.Designer.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting.Views/3.4/VRPImportDialog.Designer.cs	(revision 5867)
@@ -100,5 +100,5 @@
       // 
       this.openVRPFileButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-      this.openVRPFileButton.Image = HeuristicLab.Common.Resources.VS2008ImageLibrary.Open;
+      this.openVRPFileButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Open;
       this.openVRPFileButton.Location = new System.Drawing.Point(520, 10);
       this.openVRPFileButton.Name = "openVRPFileButton";
@@ -131,5 +131,5 @@
       // 
       this.openTourFileButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-      this.openTourFileButton.Image = HeuristicLab.Common.Resources.VS2008ImageLibrary.Open;
+      this.openTourFileButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Open;
       this.openTourFileButton.Location = new System.Drawing.Point(520, 35);
       this.openTourFileButton.Name = "openTourFileButton";
@@ -161,5 +161,5 @@
       // 
       this.clearTourFileButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
-      this.clearTourFileButton.Image = HeuristicLab.Common.Resources.VS2008ImageLibrary.Remove;
+      this.clearTourFileButton.Image = HeuristicLab.Common.Resources.VSImageLibrary.Remove;
       this.clearTourFileButton.Location = new System.Drawing.Point(550, 35);
       this.clearTourFileButton.Name = "clearTourFileButton";
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting.Views/3.4/VRPSolutionView.Designer.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting.Views/3.4/VRPSolutionView.Designer.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting.Views/3.4/VRPSolutionView.Designer.cs	(revision 5867)
@@ -24,5 +24,5 @@
     /// </summary>
     private void InitializeComponent() {
-      this.tabControl1 = new System.Windows.Forms.TabControl();
+      this.tabControl1 = new HeuristicLab.MainForm.WindowsForms.DragOverTabControl();
       this.tabPage1 = new System.Windows.Forms.TabPage();
       this.problemInstanceView = new HeuristicLab.MainForm.WindowsForms.ViewHost();
@@ -119,5 +119,5 @@
     #endregion
 
-    private System.Windows.Forms.TabControl tabControl1;
+    private HeuristicLab.MainForm.WindowsForms.DragOverTabControl tabControl1;
     private System.Windows.Forms.TabPage tabPage1;
     private MainForm.WindowsForms.ViewHost problemInstanceView;
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting.Views/3.4/VehicleRoutingProblemView.Designer.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting.Views/3.4/VehicleRoutingProblemView.Designer.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting.Views/3.4/VehicleRoutingProblemView.Designer.cs	(revision 5867)
@@ -33,4 +33,10 @@
       this.errorProvider.SetIconAlignment(this.nameTextBox, System.Windows.Forms.ErrorIconAlignment.MiddleLeft);
       this.errorProvider.SetIconPadding(this.nameTextBox, 2);
+      this.nameTextBox.Location = new System.Drawing.Point(60, 0);
+      this.nameTextBox.Size = new System.Drawing.Size(405, 20);
+      // 
+      // infoLabel
+      // 
+      this.infoLabel.Location = new System.Drawing.Point(471, 3);
       // 
       // importButton
@@ -38,5 +44,5 @@
       this.importButton.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                   | System.Windows.Forms.AnchorStyles.Right)));
-      this.importButton.Location = new System.Drawing.Point(0, 55);
+      this.importButton.Location = new System.Drawing.Point(0, 26);
       this.importButton.Name = "importButton";
       this.importButton.Size = new System.Drawing.Size(490, 23);
@@ -53,8 +59,8 @@
       this.parameterCollectionView.Caption = "ParameterCollection View";
       this.parameterCollectionView.Content = null;
-      this.parameterCollectionView.Location = new System.Drawing.Point(0, 84);
+      this.parameterCollectionView.Location = new System.Drawing.Point(0, 55);
       this.parameterCollectionView.Name = "parameterCollectionView";
       this.parameterCollectionView.ReadOnly = false;
-      this.parameterCollectionView.Size = new System.Drawing.Size(490, 268);
+      this.parameterCollectionView.Size = new System.Drawing.Size(490, 210);
       this.parameterCollectionView.TabIndex = 9;
       // 
@@ -65,11 +71,9 @@
       this.Controls.Add(this.importButton);
       this.Name = "VehicleRoutingProblemView";
-      this.Size = new System.Drawing.Size(490, 352);
+      this.Size = new System.Drawing.Size(490, 275);
       this.Controls.SetChildIndex(this.importButton, 0);
       this.Controls.SetChildIndex(this.parameterCollectionView, 0);
       this.Controls.SetChildIndex(this.nameTextBox, 0);
       this.Controls.SetChildIndex(this.nameLabel, 0);
-      this.Controls.SetChildIndex(this.descriptionLabel, 0);
-      this.Controls.SetChildIndex(this.descriptionTextBox, 0);
       ((System.ComponentModel.ISupportInitialize)(this.errorProvider)).EndInit();
       this.ResumeLayout(false);
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Analyzer/BestSolution/BestVRPSolutionAnalyzer.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Analyzer/BestSolution/BestVRPSolutionAnalyzer.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Analyzer/BestSolution/BestVRPSolutionAnalyzer.cs	(revision 5867)
@@ -149,5 +149,8 @@
           validSolution = new VRPSolution(problemInstance, best.Clone() as IVRPEncoding, new DoubleValue(qualities[i].Value));
           BestValidSolutionParameter.ActualValue = validSolution;
-          results.Add(new Result("Best valid VRP Solution", validSolution));
+          if (results.ContainsKey("Best valid VRP Solution"))
+            results["Best valid VRP Solution"].Value = validSolution;
+          else
+            results.Add(new Result("Best valid VRP Solution", validSolution));
         }
       } else {
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Analyzer/VRPSolution.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Analyzer/VRPSolution.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Analyzer/VRPSolution.cs	(revision 5867)
@@ -36,5 +36,5 @@
   public sealed class VRPSolution : Item {
     public override Image ItemImage {
-      get { return HeuristicLab.Common.Resources.VS2008ImageLibrary.Image; }
+      get { return HeuristicLab.Common.Resources.VSImageLibrary.Image; }
     }
 
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Crossovers/AlbaPermutationCrossover.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Crossovers/AlbaPermutationCrossover.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Crossovers/AlbaPermutationCrossover.cs	(revision 5867)
@@ -58,5 +58,5 @@
       IAtomicOperation op = this.ExecutionContext.CreateOperation(
         InnerCrossoverParameter.ActualValue, this.ExecutionContext.Scope);
-      op.Operator.Execute((IExecutionContext)op);
+      op.Operator.Execute((IExecutionContext)op, CancellationToken);
 
       string childName = InnerCrossoverParameter.ActualValue.ChildParameter.ActualName;
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Manipulators/AlbaPermutationManipulator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Manipulators/AlbaPermutationManipulator.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Manipulators/AlbaPermutationManipulator.cs	(revision 5867)
@@ -56,5 +56,5 @@
       IAtomicOperation op = this.ExecutionContext.CreateOperation(
         InnerManipulatorParameter.ActualValue, this.ExecutionContext.Scope);
-      op.Operator.Execute((IExecutionContext)op);
+      op.Operator.Execute((IExecutionContext)op, CancellationToken);
     }
   }
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/IntraRouteInversion/AlbaIntraRouteInversionMove.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/IntraRouteInversion/AlbaIntraRouteInversionMove.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/IntraRouteInversion/AlbaIntraRouteInversionMove.cs	(revision 5867)
@@ -33,5 +33,12 @@
   public class AlbaIntraRouteInversionMove : TwoIndexMove, IVRPMove {
     public IVRPEncoding Individual { get { return Permutation as AlbaEncoding; } }
-    
+
+    [StorableConstructor]
+    protected AlbaIntraRouteInversionMove(bool deserializing) : base(deserializing) { }
+
+    protected AlbaIntraRouteInversionMove(AlbaIntraRouteInversionMove original, Cloner cloner)
+      : base(original, cloner) {
+    }
+
     public AlbaIntraRouteInversionMove()
       : base() {
@@ -43,15 +50,10 @@
 
     public AlbaIntraRouteInversionMove(int index1, int index2, AlbaEncoding permutation)
-      : base(index1, index2, permutation.Clone() as AlbaEncoding) {
+      : base(index1, index2, null) {
+        this.Permutation = permutation.Clone() as AlbaEncoding;
      }
 
     public override IDeepCloneable Clone(Cloner cloner) {
       return new AlbaIntraRouteInversionMove(this, cloner);
-    }
-
-    protected AlbaIntraRouteInversionMove(AlbaIntraRouteInversionMove original, Cloner cloner)
-      : base(original, cloner) {
-        if (Permutation != null)
-          this.Permutation = cloner.Clone(original.Permutation);
     }
 
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/IntraRouteInversion/AlbaStochasticIntraRouteInversionMutliMoveGenerator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/IntraRouteInversion/AlbaStochasticIntraRouteInversionMutliMoveGenerator.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/IntraRouteInversion/AlbaStochasticIntraRouteInversionMutliMoveGenerator.cs	(revision 5867)
@@ -30,9 +30,11 @@
 using HeuristicLab.Problems.VehicleRouting.Interfaces;
 using HeuristicLab.Common;
+using HeuristicLab.Problems.VehicleRouting.Encodings.General;
 
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
   [Item("AlbaStochasticIntraRouteInversionMultiMoveGenerator", "Generates multiple random intra route inversion moves from a given VRP encoding.  It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")]
   [StorableClass]
-  public sealed class AlbaStochasticIntraRouteInversionMultiMoveGenerator : AlbaIntraRouteInversionMoveGenerator, IStochasticOperator, IMultiMoveGenerator, IAlbaIntraRouteInversionMoveOperator {
+  public sealed class AlbaStochasticIntraRouteInversionMultiMoveGenerator : AlbaIntraRouteInversionMoveGenerator, IStochasticOperator,
+    IMultiMoveGenerator, IAlbaIntraRouteInversionMoveOperator, IMultiVRPMoveGenerator {
     public ILookupParameter<IRandom> RandomParameter {
       get { return (ILookupParameter<IRandom>)Parameters["Random"]; }
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/IntraRouteInversion/AlbaStochasticIntraRouteInversionSingleMoveGenerator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/IntraRouteInversion/AlbaStochasticIntraRouteInversionSingleMoveGenerator.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/IntraRouteInversion/AlbaStochasticIntraRouteInversionSingleMoveGenerator.cs	(revision 5867)
@@ -35,5 +35,5 @@
   [StorableClass]
   public sealed class AlbaStochasticIntraRouteInversionSingleMoveGenerator : AlbaIntraRouteInversionMoveGenerator,
-    IStochasticOperator, ISingleMoveGenerator, IAlbaIntraRouteInversionMoveOperator, IMultiVRPMoveGenerator {
+    IStochasticOperator, ISingleMoveGenerator, IAlbaIntraRouteInversionMoveOperator {
     #region IMultiVRPMoveOperator Members
 
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/LambdaInterchange/AlbaStochasticLambdaInterchangeMutliMoveGenerator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/LambdaInterchange/AlbaStochasticLambdaInterchangeMutliMoveGenerator.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/LambdaInterchange/AlbaStochasticLambdaInterchangeMutliMoveGenerator.cs	(revision 5867)
@@ -30,9 +30,11 @@
 using HeuristicLab.Problems.VehicleRouting.Interfaces;
 using HeuristicLab.Common;
+using HeuristicLab.Problems.VehicleRouting.Encodings.General;
 
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Alba {
   [Item("AlbaStochasticLambdaInterchangeMultiMoveGenerator", "Generates multiple random lambda interchange moves from a given VRP encoding.  It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")]
   [StorableClass]
-  public sealed class AlbaStochasticLambdaInterchangeMultiMoveGenerator : AlbaLambdaInterchangeMoveGenerator, IStochasticOperator, IMultiMoveGenerator, IAlbaLambdaInterchangeMoveOperator {
+  public sealed class AlbaStochasticLambdaInterchangeMultiMoveGenerator : AlbaLambdaInterchangeMoveGenerator, IStochasticOperator,
+    IMultiMoveGenerator, IAlbaLambdaInterchangeMoveOperator, IMultiVRPMoveGenerator {
     public ILookupParameter<IRandom> RandomParameter {
       get { return (ILookupParameter<IRandom>)Parameters["Random"]; }
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/LambdaInterchange/AlbaStochasticLambdaInterchangeSingleMoveGenerator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/LambdaInterchange/AlbaStochasticLambdaInterchangeSingleMoveGenerator.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/LambdaInterchange/AlbaStochasticLambdaInterchangeSingleMoveGenerator.cs	(revision 5867)
@@ -35,5 +35,5 @@
   [StorableClass]
   public sealed class AlbaStochasticLambdaInterchangeSingleMoveGenerator : AlbaLambdaInterchangeMoveGenerator,
-    IStochasticOperator, ISingleMoveGenerator, IAlbaLambdaInterchangeMoveOperator, IMultiVRPMoveGenerator {
+    IStochasticOperator, ISingleMoveGenerator, IAlbaLambdaInterchangeMoveOperator {
     #region IMultiVRPMoveOperator Members
 
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaStochasticTranslocationSingleMoveGenerator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaStochasticTranslocationSingleMoveGenerator.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaStochasticTranslocationSingleMoveGenerator.cs	(revision 5867)
@@ -34,5 +34,5 @@
   [Item("AlbaStochasticTranslocationSingleMoveGenerator", "An operator which generates a single translocation move for a VRP representation.  It is implemented as described in Alba, E. and Dorronsoro, B. (2004). Solving the Vehicle Routing Problem by Using Cellular Genetic Algorithms.")]
   [StorableClass]
-  public sealed class AlbaStochasticTranslocationSingleMoveGenerator : AlbaMoveGenerator, IAlbaTranslocationMoveOperator, IMultiVRPMoveGenerator {
+  public sealed class AlbaStochasticTranslocationSingleMoveGenerator : AlbaMoveGenerator, IAlbaTranslocationMoveOperator {
     [Storable]
     private TranslocationMoveGenerator generator = new StochasticTranslocationSingleMoveGenerator();
@@ -80,5 +80,5 @@
       generator.PermutationParameter.ActualName = VRPToursParameter.ActualName;
       IAtomicOperation op = this.ExecutionContext.CreateChildOperation(generator);
-      op.Operator.Execute((IExecutionContext)op);
+      op.Operator.Execute((IExecutionContext)op, CancellationToken);
 
       foreach (IScope scope in this.ExecutionContext.Scope.SubScopes) {
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveGenerator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveGenerator.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveGenerator.cs	(revision 5867)
@@ -101,5 +101,5 @@
       PermutationMoveOperatorParameter.PermutationParameter.ActualName = VRPToursParameter.ActualName;
       IAtomicOperation op = this.ExecutionContext.CreateChildOperation(PermutationMoveOperatorParameter);
-      op.Operator.Execute((IExecutionContext)op);
+      op.Operator.Execute((IExecutionContext)op, CancellationToken);
 
       return next;
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveHardTabuCriterion.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveHardTabuCriterion.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveHardTabuCriterion.cs	(revision 5867)
@@ -78,4 +78,5 @@
     private AlbaTranslocationMoveHardTabuCriterion(AlbaTranslocationMoveHardTabuCriterion original, Cloner cloner)
       : base(original, cloner) {
+      tabuChecker = cloner.Clone(original.tabuChecker);
     }
 
@@ -87,5 +88,5 @@
       PermutationMoveOperatorParameter.PermutationParameter.ActualName = VRPToursParameter.ActualName;
       IAtomicOperation op = this.ExecutionContext.CreateChildOperation(PermutationMoveOperatorParameter);
-      op.Operator.Execute((IExecutionContext)op);
+      op.Operator.Execute((IExecutionContext)op, CancellationToken);
 
       return next;
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveMaker.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveMaker.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveMaker.cs	(revision 5867)
@@ -61,4 +61,5 @@
     private AlbaTranslocationMoveMaker(AlbaTranslocationMoveMaker original, Cloner cloner)
       : base(original, cloner) {
+        moveMaker = cloner.Clone(original.moveMaker);
     }
 
@@ -71,5 +72,5 @@
       moveMaker.PermutationParameter.ActualName = VRPToursParameter.ActualName;
       IAtomicOperation op = this.ExecutionContext.CreateChildOperation(moveMaker);
-      op.Operator.Execute((IExecutionContext)op);
+      op.Operator.Execute((IExecutionContext)op, CancellationToken);
     }
   }
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveSoftTabuCriterion.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveSoftTabuCriterion.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveSoftTabuCriterion.cs	(revision 5867)
@@ -78,4 +78,5 @@
     private AlbaTranslocationMoveSoftTabuCriterion(AlbaTranslocationMoveSoftTabuCriterion original, Cloner cloner)
       : base(original, cloner) {
+        tabuChecker = cloner.Clone(original.tabuChecker);
     }
 
@@ -87,5 +88,5 @@
       PermutationMoveOperatorParameter.PermutationParameter.ActualName = VRPToursParameter.ActualName;
       IAtomicOperation op = this.ExecutionContext.CreateChildOperation(PermutationMoveOperatorParameter);
-      op.Operator.Execute((IExecutionContext)op);
+      op.Operator.Execute((IExecutionContext)op, CancellationToken);
 
       return next;
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveTabuMaker.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveTabuMaker.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Alba/Moves/ThreeOpt/AlbaTranslocationMoveTabuMaker.cs	(revision 5867)
@@ -78,4 +78,5 @@
     private AlbaTranslocationMoveTabuMaker(AlbaTranslocationMoveTabuMaker original, Cloner cloner)
       : base(original, cloner) {
+        moveTabuMaker = cloner.Clone(original.moveTabuMaker);
     }
 
@@ -87,5 +88,5 @@
       PermutationMoveOperatorParameter.PermutationParameter.ActualName = VRPToursParameter.ActualName;
       IAtomicOperation op = this.ExecutionContext.CreateChildOperation(PermutationMoveOperatorParameter);
-      op.Operator.Execute((IExecutionContext)op);
+      op.Operator.Execute((IExecutionContext)op, CancellationToken);
 
       return next;
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/MultiVRPMoveOperator/MultiVRPMoveEvaluator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/MultiVRPMoveOperator/MultiVRPMoveEvaluator.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/MultiVRPMoveOperator/MultiVRPMoveEvaluator.cs	(revision 5867)
@@ -58,5 +58,5 @@
       moveEvaluator.VRPMoveParameter.ActualName = VRPMoveParameter.Name;
       IAtomicOperation op = this.ExecutionContext.CreateOperation(moveEvaluator);
-      op.Operator.Execute((IExecutionContext)op);
+      op.Operator.Execute((IExecutionContext)op, CancellationToken);
     }
   }
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/MultiVRPMoveOperator/MultiVRPMoveMaker.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/MultiVRPMoveOperator/MultiVRPMoveMaker.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/MultiVRPMoveOperator/MultiVRPMoveMaker.cs	(revision 5867)
@@ -60,5 +60,5 @@
       moveMaker.VRPMoveParameter.ActualName = VRPMoveParameter.Name;
       IAtomicOperation op = this.ExecutionContext.CreateOperation(moveMaker);
-      op.Operator.Execute((IExecutionContext)op);
+      op.Operator.Execute((IExecutionContext)op, CancellationToken);
     }
   }
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/VRPMoveEvaluator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/VRPMoveEvaluator.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/Moves/VRPMoveEvaluator.cs	(revision 5867)
@@ -64,20 +64,5 @@
     //helper method to evaluate an updated individual
     protected void UpdateEvaluation(IVRPEncoding updatedTours) {
-      IVRPEvaluator evaluator = ProblemInstance.EvaluatorParameter.Value.Clone() as IVRPEvaluator;
-
-      Dictionary<IParameter, string> originalName =
-        new Dictionary<IParameter, string>();
-
-      foreach (IParameter parameter in evaluator.Parameters) {
-        if (parameter is ILookupParameter 
-          && parameter != evaluator.ProblemInstanceParameter 
-          && parameter != evaluator.VRPToursParameter) {
-            originalName[parameter] = (parameter as ILookupParameter).ActualName;
-
-            (parameter as ILookupParameter).ActualName =
-              MovePrefix +
-              (parameter as ILookupParameter).ActualName;
-        }
-      }
+      IVRPEvaluator evaluator = ProblemInstance.MoveEvaluator;
 
       try {
@@ -86,11 +71,7 @@
 
         IAtomicOperation op = this.ExecutionContext.CreateChildOperation(evaluator);
-        op.Operator.Execute((IExecutionContext)op);
+        op.Operator.Execute((IExecutionContext)op, CancellationToken);
       }
       finally {
-        foreach (IParameter parameter in originalName.Keys) {
-          (parameter as ILookupParameter).ActualName = originalName[parameter];
-        }
-
         this.ExecutionContext.Scope.Variables.Remove(evaluator.VRPToursParameter.ActualName);
       }
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/TourEncoding.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/TourEncoding.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/General/TourEncoding.cs	(revision 5867)
@@ -34,5 +34,5 @@
   public abstract class TourEncoding : Item, IVRPEncoding {
     public override Image ItemImage {
-      get { return HeuristicLab.Common.Resources.VS2008ImageLibrary.Class; }
+      get { return HeuristicLab.Common.Resources.VSImageLibrary.Class; }
     }
     
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Manipulators/PotvinTwoLevelExchangeManipulator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Manipulators/PotvinTwoLevelExchangeManipulator.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Manipulators/PotvinTwoLevelExchangeManipulator.cs	(revision 5867)
@@ -44,11 +44,14 @@
       : base(original, cloner) {
     }
-    
+
     protected override void Manipulate(IRandom random, PotvinEncoding individual) {
       int selectedIndex = SelectRandomTourBiasedByLength(random, individual);
-      Tour route1 =
-        individual.Tours[selectedIndex];
+      Tour route1 = individual.Tours[selectedIndex];
 
-      for (int customer1Position = 0; customer1Position < route1.Stops.Count; customer1Position++) {
+      bool performed = false;
+      int customer1Position = 0;
+      while (customer1Position < route1.Stops.Count) {
+        performed = false;
+
         foreach (Tour tour in individual.Tours) {
           if (tour != route1) {
@@ -60,15 +63,16 @@
               tour.Stops[customer2Position] = customer1;
               if (ProblemInstance.Feasible(tour)) {
-                int route, place;
+                int routeIdx, place;
                 if (FindInsertionPlace(individual,
-                  customer2, selectedIndex, out route, out place)) {
-                    individual.Tours[route].Stops.Insert(place, customer2);
-                    route1.Stops.RemoveAt(customer1Position);
+                  customer2, selectedIndex, out routeIdx, out place)) {
+                  individual.Tours[routeIdx].Stops.Insert(place, customer2);
+                  route1.Stops.RemoveAt(customer1Position);
 
-                    if (route1.Stops.Count == 0)
+                  if (route1.Stops.Count == 0)
                     individual.Tours.Remove(route1);
 
                   //two-level exchange has been performed
-                  return;
+                  performed = true;
+                  break;
                 } else {
                   tour.Stops[customer2Position] = customer2;
@@ -79,5 +83,11 @@
             }
           }
+
+          if (performed)
+            break;
         }
+
+        if (!performed)
+          customer1Position++;
       }
     }
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/CustomerRelocation/PotvinCustomerRelocationMoveEvaluator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/CustomerRelocation/PotvinCustomerRelocationMoveEvaluator.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/CustomerRelocation/PotvinCustomerRelocationMoveEvaluator.cs	(revision 5867)
@@ -85,5 +85,5 @@
         string key = AdditionFrequencyMemoryKeyParameter.Value.Value;
 
-        if (memory.ContainsKey(key)) {
+        if (memory != null && memory.ContainsKey(key)) {
           ItemDictionary<PotvinCustomerRelocationMoveAttribute, IntValue> additionFrequency =
                memory[key].Value as ItemDictionary<PotvinCustomerRelocationMoveAttribute, IntValue>;
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/CustomerRelocation/PotvinCustomerRelocationMoveMaker.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/CustomerRelocation/PotvinCustomerRelocationMoveMaker.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/CustomerRelocation/PotvinCustomerRelocationMoveMaker.cs	(revision 5867)
@@ -101,5 +101,5 @@
       PotvinCustomerRelocationMove move = CustomerRelocationMoveParameter.ActualValue;
 
-      PotvinEncoding newSolution = move.Individual as PotvinEncoding;
+      PotvinEncoding newSolution = move.Individual.Clone() as PotvinEncoding;
       Apply(newSolution, move);
       VRPToursParameter.ActualValue = newSolution;
@@ -125,16 +125,18 @@
       string key = AdditionFrequencyMemoryKeyParameter.Value.Value;
 
-      if (!memory.ContainsKey(key)) {
-        memory.Add(new Variable(key,
-            new ItemDictionary<PotvinCustomerRelocationMoveAttribute, IntValue>()));
+      if (memory != null) {
+        if (!memory.ContainsKey(key)) {
+          memory.Add(new Variable(key,
+              new ItemDictionary<PotvinCustomerRelocationMoveAttribute, IntValue>()));
+        }
+        ItemDictionary<PotvinCustomerRelocationMoveAttribute, IntValue> additionFrequency =
+          memory[key].Value as ItemDictionary<PotvinCustomerRelocationMoveAttribute, IntValue>;
+
+        PotvinCustomerRelocationMoveAttribute attr = new PotvinCustomerRelocationMoveAttribute(0, move.Tour, move.City);
+        if (!additionFrequency.ContainsKey(attr))
+          additionFrequency[attr] = new IntValue(0);
+
+        additionFrequency[attr].Value++;
       }
-      ItemDictionary<PotvinCustomerRelocationMoveAttribute, IntValue> additionFrequency =
-        memory[key].Value as ItemDictionary<PotvinCustomerRelocationMoveAttribute, IntValue>;
-
-      PotvinCustomerRelocationMoveAttribute attr = new PotvinCustomerRelocationMoveAttribute(0, move.Tour, move.City);
-      if (!additionFrequency.ContainsKey(attr))
-        additionFrequency[attr] = new IntValue(0);
-
-      additionFrequency[attr].Value++;
     }
   }
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/CustomerRelocation/PotvinCustomerRelocationMultiMoveGenerator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/CustomerRelocation/PotvinCustomerRelocationMultiMoveGenerator.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/CustomerRelocation/PotvinCustomerRelocationMultiMoveGenerator.cs	(revision 5867)
@@ -29,9 +29,10 @@
 using HeuristicLab.Common;
 using HeuristicLab.Data;
+using HeuristicLab.Problems.VehicleRouting.Encodings.General;
 
 namespace HeuristicLab.Problems.VehicleRouting.Encodings.Potvin {
   [Item("PotvinCustomerRelocationMultiMoveGenerator", "Generates customer relocation moves from a given VRP encoding.")]
   [StorableClass]
-  public sealed class PotvinCustomerRelocationMultiMoveGenerator : PotvinCustomerRelocationMoveGenerator, IMultiMoveGenerator {
+  public sealed class PotvinCustomerRelocationMultiMoveGenerator : PotvinCustomerRelocationMoveGenerator, IMultiMoveGenerator, IMultiVRPMoveGenerator {
     public ILookupParameter<IRandom> RandomParameter {
       get { return (ILookupParameter<IRandom>)Parameters["Random"]; }
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/CustomerRelocation/PotvinCustomerRelocationSingleMoveGenerator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/CustomerRelocation/PotvinCustomerRelocationSingleMoveGenerator.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Potvin/Moves/CustomerRelocation/PotvinCustomerRelocationSingleMoveGenerator.cs	(revision 5867)
@@ -35,5 +35,5 @@
   [StorableClass]
   public sealed class PotvinCustomerRelocationSingleMoveGenerator : PotvinCustomerRelocationMoveGenerator,
-    ISingleMoveGenerator, IMultiVRPMoveGenerator {
+    ISingleMoveGenerator {
     #region IMultiVRPMoveOperator Members
 
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Prins/Crossovers/PrinsPermutationCrossover.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Prins/Crossovers/PrinsPermutationCrossover.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Prins/Crossovers/PrinsPermutationCrossover.cs	(revision 5867)
@@ -58,5 +58,5 @@
       IAtomicOperation op = this.ExecutionContext.CreateOperation(
         InnerCrossoverParameter.ActualValue, this.ExecutionContext.Scope);
-      op.Operator.Execute((IExecutionContext)op);
+      op.Operator.Execute((IExecutionContext)op, CancellationToken);
 
       string childName = InnerCrossoverParameter.ActualValue.ChildParameter.ActualName;
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Prins/Manipulators/PrinsPermutationManipulator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Prins/Manipulators/PrinsPermutationManipulator.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Prins/Manipulators/PrinsPermutationManipulator.cs	(revision 5867)
@@ -56,5 +56,5 @@
       IAtomicOperation op = this.ExecutionContext.CreateOperation(
         InnerManipulatorParameter.ActualValue, this.ExecutionContext.Scope);
-      op.Operator.Execute((IExecutionContext)op);
+      op.Operator.Execute((IExecutionContext)op, CancellationToken);
     }
   }
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Zhu/Crossovers/ZhuPermutationCrossover.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Zhu/Crossovers/ZhuPermutationCrossover.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Zhu/Crossovers/ZhuPermutationCrossover.cs	(revision 5867)
@@ -58,5 +58,5 @@
       IAtomicOperation op = this.ExecutionContext.CreateOperation(
         InnerCrossoverParameter.ActualValue, this.ExecutionContext.Scope);
-      op.Operator.Execute((IExecutionContext)op);
+      op.Operator.Execute((IExecutionContext)op, CancellationToken);
 
       string childName = InnerCrossoverParameter.ActualValue.ChildParameter.ActualName;
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Zhu/Manipulators/ZhuPermutationManipulator.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Zhu/Manipulators/ZhuPermutationManipulator.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Encodings/Zhu/Manipulators/ZhuPermutationManipulator.cs	(revision 5867)
@@ -56,5 +56,5 @@
       IAtomicOperation op = this.ExecutionContext.CreateOperation(
         InnerManipulatorParameter.ActualValue, this.ExecutionContext.Scope);
-      op.Operator.Execute((IExecutionContext)op);
+      op.Operator.Execute((IExecutionContext)op, CancellationToken);
     }
   }
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/HeuristicLab.Problems.VehicleRouting-3.4.csproj
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/HeuristicLab.Problems.VehicleRouting-3.4.csproj	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/HeuristicLab.Problems.VehicleRouting-3.4.csproj	(revision 5867)
@@ -18,5 +18,5 @@
     <UpgradeBackupLocation>
     </UpgradeBackupLocation>
-    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
     <PublishUrl>publish\</PublishUrl>
     <Install>true</Install>
@@ -34,4 +34,5 @@
     <UseApplicationTrust>false</UseApplicationTrust>
     <BootstrapperEnabled>true</BootstrapperEnabled>
+    <TargetFrameworkProfile />
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Interfaces/IVRPProblemInstance.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Interfaces/IVRPProblemInstance.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/Interfaces/IVRPProblemInstance.cs	(revision 5867)
@@ -31,4 +31,5 @@
   public interface IVRPProblemInstance: IItem {
     IValueParameter<IVRPEvaluator> EvaluatorParameter { get; }
+    IVRPEvaluator MoveEvaluator { get; }
     IValueParameter<IVRPCreator> SolutionCreatorParameter { get; }
     IValueParameter<DoubleValue> BestKnownQualityParameter { get; }
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/ProblemInstances/VRPProblemInstance.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/ProblemInstances/VRPProblemInstance.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/ProblemInstances/VRPProblemInstance.cs	(revision 5867)
@@ -32,4 +32,5 @@
 using HeuristicLab.PluginInfrastructure;
 using HeuristicLab.Common;
+using HeuristicLab.Problems.VehicleRouting.Encodings.General;
 
 namespace HeuristicLab.Problems.VehicleRouting.ProblemInstances {
@@ -39,4 +40,30 @@
     public IValueParameter<IVRPEvaluator> EvaluatorParameter {
       get { return (ValueParameter<IVRPEvaluator>)Parameters["Evaluator"]; } 
+    }
+
+    IVRPEvaluator moveEvaluator;
+
+    public IVRPEvaluator MoveEvaluator {
+      get {
+        if (EvaluatorParameter.Value == null)
+          return null;
+        else {
+          if (moveEvaluator == null) {
+            moveEvaluator = EvaluatorParameter.Value.Clone() as IVRPEvaluator;
+
+            foreach (IParameter parameter in moveEvaluator.Parameters) {
+              if (parameter is ILookupParameter
+                && parameter != moveEvaluator.ProblemInstanceParameter
+                && parameter != moveEvaluator.VRPToursParameter) {
+                (parameter as ILookupParameter).ActualName =
+                  VRPMoveEvaluator.MovePrefix +
+                  (parameter as ILookupParameter).ActualName;
+              }
+            }
+          }
+
+          return moveEvaluator;
+        }
+      }
     }
 
@@ -253,4 +280,5 @@
 
     private void AttachEventHandlers() {
+      EvaluatorParameter.ValueChanged += new EventHandler(EvaluatorParameter_ValueChanged);
       BestKnownSolutionParameter.ValueChanged += new EventHandler(BestKnownSolutionParameter_ValueChanged);
       DistanceFactorParameter.ValueChanged += new EventHandler(DistanceFactorParameter_ValueChanged);
@@ -268,4 +296,8 @@
 
     #region Event handlers
+    void EvaluatorParameter_ValueChanged(object sender, EventArgs e) {
+      moveEvaluator = null;
+    }
+
     void BestKnownSolutionParameter_ValueChanged(object sender, EventArgs e) {
       EvalBestKnownSolution();
Index: branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/VehicleRoutingProblem.cs
===================================================================
--- branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/VehicleRoutingProblem.cs	(revision 5230)
+++ branches/VRP/HeuristicLab.Problems.VehicleRouting/3.4/VehicleRoutingProblem.cs	(revision 5867)
@@ -41,9 +41,9 @@
   [Creatable("Problems")]
   [StorableClass]
-  public sealed class VehicleRoutingProblem : ParameterizedNamedItem, ISingleObjectiveProblem, IStorableContent {
+  public sealed class VehicleRoutingProblem : ParameterizedNamedItem, ISingleObjectiveHeuristicOptimizationProblem, IStorableContent {
     public string Filename { get; set; }
     
     public override Image ItemImage {
-      get { return HeuristicLab.Common.Resources.VS2008ImageLibrary.Type; }
+      get { return HeuristicLab.Common.Resources.VSImageLibrary.Type; }
     }
 
@@ -52,5 +52,5 @@
       get { return (ValueParameter<BoolValue>)Parameters["Maximization"]; }
     }
-    IParameter ISingleObjectiveProblem.MaximizationParameter {
+    IParameter ISingleObjectiveHeuristicOptimizationProblem.MaximizationParameter {
       get { return MaximizationParameter; }
     }
@@ -61,5 +61,5 @@
       get { return (OptionalValueParameter<DoubleValue>)Parameters["BestKnownQuality"]; }
     }
-    IParameter ISingleObjectiveProblem.BestKnownQualityParameter {
+    IParameter ISingleObjectiveHeuristicOptimizationProblem.BestKnownQualityParameter {
       get { return BestKnownQualityParameter; }
     }
@@ -70,5 +70,5 @@
       get { return (IValueParameter<IVRPCreator>)Parameters["SolutionCreator"]; }
     }
-    IParameter IProblem.SolutionCreatorParameter {
+    IParameter IHeuristicOptimizationProblem.SolutionCreatorParameter {
       get { return SolutionCreatorParameter; }
     }
@@ -76,5 +76,5 @@
       get { return (IValueParameter<IVRPEvaluator>)Parameters["Evaluator"]; }
     }
-    IParameter IProblem.EvaluatorParameter {
+    IParameter IHeuristicOptimizationProblem.EvaluatorParameter {
       get { return EvaluatorParameter; }
     }
@@ -96,5 +96,5 @@
     }
 
-    IEvaluator IProblem.Evaluator {
+    IEvaluator IHeuristicOptimizationProblem.Evaluator {
       get { return this.Evaluator; }
     }
Index: branches/VRP/HeuristicLab/3.3/Files.txt
===================================================================
--- branches/VRP/HeuristicLab/3.3/Files.txt	(revision 5230)
+++ branches/VRP/HeuristicLab/3.3/Files.txt	(revision 5867)
@@ -11,4 +11,5 @@
 HeuristicLab.Algorithms.SimulatedAnnealing\3.3:HeuristicLab.Algorithms.SimulatedAnnealing-3.3.dll
 HeuristicLab.Algorithms.TabuSearch\3.3:HeuristicLab.Algorithms.TabuSearch-3.3.dll
+HeuristicLab.Algorithms.VariableNeighborhoodSearch\3.3:HeuristicLab.Algorithms.VariableNeighborhoodSearch-3.3.dll
 HeuristicLab.Analysis\3.3:HeuristicLab.Analysis-3.3.dll
 HeuristicLab.Analysis.Views\3.3:HeuristicLab.Analysis.Views-3.3.dll
