Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.Optimization/3.3/HeuristicLab.Optimization-3.3.csproj @ 6345

Last change on this file since 6345 was 6042, checked in by abeham, 14 years ago

#1425

  • Changed LocalImprovementOperators
    • Changed interface (made Problem a property, added a property that denotes the type of the problem that it can be applied on, added some general parameters)
    • Added some parameters and wiring
    • Changed move discovery and parameterization and added a helper class to ease finding compatible move operators
    • Discovering only IMultiMoveOperators and IExhaustiveMoveOperators and putting the multi move ones first
    • Fixed bug in Apply method that could create an endless string of nested execution contexts
    • Removed all problem specific analyzers in the two local improvement operators and only left the BestAverageWorstQualityAnalyzer since it doesn't make any sense to perform diversity or allele analysis during local improvement in the most common case and those analyzers take a lot of time (one can always add them manually should he/she be interested). The analyzers in the VNS's Analyzer parameter are left untouched.
  • Removed shaking operator and interface from VNS plugin and added that to Optimization and Optimization.Operators
  • Changed some ValueParameters to ConstrainedValueParameters and added type discovery to fill them (using the ProblemType property to get compatible local improvement operators)
  • Added missing GPL license headers
  • Changed some ValueParameters to the new FixedValueParameters
  • Added an additional encoding specific ShakingOperator to each encoding and added that to each problem
    • reason is that only the problem/encoding can really decide if a shaking operator is meaningful or not
  • Fixed an unrelated bug in the BestAverageWorstQualityAnalyzer that I encountered (and made the fix backwards compatible)
    • Also added a snippet for creating the backwards compatible comment marker and region
  • Fixed the operator graph of the VNS main loop
    • The condition to continue only when the local search was not successful is not necessary and is not part of the VNS definition as far as I know it (only condition to break the inner loop is when k reaches k_max)
  • Changed the ShakingOperator to input current index and output the maximum number of neighborhoods instead of a boolean that indicates that the last index has been reached since the maximum number is a little more generally useful and equally powerful in modeling
    • Remodeled the VNS main loop to check for k < k_max in order to continue the inner loop
  • other changes that I forgot...

Still necessary

  • test, test, test
  • check for backwards compatible breakers
  • add a maximum evaluated solutions stop criterion
  • optionally: implement fast problem specific local search improvement operators that do not build on the whole generic overhead (e.g. a 2-opt TSP specific local search operator). The idea of VNS is really to converge to a local optimum which is difficult to achieve using the current rather limited termination options
File size: 13.1 KB
RevLine 
[2834]1<?xml version="1.0" encoding="utf-8"?>
[4065]2<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
[2834]3  <PropertyGroup>
4    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
5    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
6    <ProductVersion>9.0.30729</ProductVersion>
7    <SchemaVersion>2.0</SchemaVersion>
8    <ProjectGuid>{14AB8D24-25BC-400C-A846-4627AA945192}</ProjectGuid>
9    <OutputType>Library</OutputType>
10    <AppDesignerFolder>Properties</AppDesignerFolder>
11    <RootNamespace>HeuristicLab.Optimization</RootNamespace>
12    <AssemblyName>HeuristicLab.Optimization-3.3</AssemblyName>
[5343]13    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
14    <TargetFrameworkProfile>
15    </TargetFrameworkProfile>
[2834]16    <FileAlignment>512</FileAlignment>
17    <SignAssembly>true</SignAssembly>
18    <AssemblyOriginatorKeyFile>HeuristicLab.snk</AssemblyOriginatorKeyFile>
[4065]19    <FileUpgradeFlags>
20    </FileUpgradeFlags>
21    <OldToolsVersion>3.5</OldToolsVersion>
22    <UpgradeBackupLocation />
23    <PublishUrl>publish\</PublishUrl>
24    <Install>true</Install>
25    <InstallFrom>Disk</InstallFrom>
26    <UpdateEnabled>false</UpdateEnabled>
27    <UpdateMode>Foreground</UpdateMode>
28    <UpdateInterval>7</UpdateInterval>
29    <UpdateIntervalUnits>Days</UpdateIntervalUnits>
30    <UpdatePeriodically>false</UpdatePeriodically>
31    <UpdateRequired>false</UpdateRequired>
32    <MapFileExtensions>true</MapFileExtensions>
33    <ApplicationRevision>0</ApplicationRevision>
34    <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
35    <IsWebBootstrapper>false</IsWebBootstrapper>
36    <UseApplicationTrust>false</UseApplicationTrust>
37    <BootstrapperEnabled>true</BootstrapperEnabled>
[2834]38  </PropertyGroup>
39  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
40    <DebugSymbols>true</DebugSymbols>
41    <DebugType>full</DebugType>
42    <Optimize>false</Optimize>
43    <OutputPath>bin\Debug\</OutputPath>
44    <DefineConstants>DEBUG;TRACE</DefineConstants>
45    <ErrorReport>prompt</ErrorReport>
46    <WarningLevel>4</WarningLevel>
[4065]47    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
[2834]48  </PropertyGroup>
49  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
50    <DebugType>pdbonly</DebugType>
51    <Optimize>true</Optimize>
52    <OutputPath>bin\Release\</OutputPath>
53    <DefineConstants>TRACE</DefineConstants>
54    <ErrorReport>prompt</ErrorReport>
55    <WarningLevel>4</WarningLevel>
56    <DocumentationFile>bin\Release\HeuristicLab.Optimization-3.3.XML</DocumentationFile>
[4065]57    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
[2834]58  </PropertyGroup>
[2900]59  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
60    <DebugSymbols>true</DebugSymbols>
61    <OutputPath>bin\x86\Debug\</OutputPath>
62    <DefineConstants>DEBUG;TRACE</DefineConstants>
63    <DebugType>full</DebugType>
64    <PlatformTarget>x86</PlatformTarget>
65    <ErrorReport>prompt</ErrorReport>
[4065]66    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
[2900]67  </PropertyGroup>
68  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
69    <OutputPath>bin\x86\Release\</OutputPath>
70    <DefineConstants>TRACE</DefineConstants>
71    <DocumentationFile>bin\x86\Release\HeuristicLab.Optimization-3.3.XML</DocumentationFile>
72    <Optimize>true</Optimize>
73    <DebugType>pdbonly</DebugType>
74    <PlatformTarget>x86</PlatformTarget>
75    <ErrorReport>prompt</ErrorReport>
[4065]76    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
[2900]77  </PropertyGroup>
78  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
79    <DebugSymbols>true</DebugSymbols>
80    <OutputPath>bin\x64\Debug\</OutputPath>
81    <DefineConstants>DEBUG;TRACE</DefineConstants>
82    <DebugType>full</DebugType>
83    <PlatformTarget>x64</PlatformTarget>
84    <ErrorReport>prompt</ErrorReport>
[4065]85    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
[2900]86  </PropertyGroup>
87  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
88    <OutputPath>bin\x64\Release\</OutputPath>
89    <DefineConstants>TRACE</DefineConstants>
90    <DocumentationFile>bin\x64\Release\HeuristicLab.Optimization-3.3.XML</DocumentationFile>
91    <Optimize>true</Optimize>
92    <DebugType>pdbonly</DebugType>
93    <PlatformTarget>x64</PlatformTarget>
94    <ErrorReport>prompt</ErrorReport>
[4065]95    <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
[2900]96  </PropertyGroup>
[2834]97  <ItemGroup>
98    <Reference Include="System" />
99    <Reference Include="System.Core">
100      <RequiredTargetFramework>3.5</RequiredTargetFramework>
101    </Reference>
102    <Reference Include="System.Drawing" />
103    <Reference Include="System.Xml.Linq">
104      <RequiredTargetFramework>3.5</RequiredTargetFramework>
105    </Reference>
106    <Reference Include="System.Data.DataSetExtensions">
107      <RequiredTargetFramework>3.5</RequiredTargetFramework>
108    </Reference>
109    <Reference Include="System.Data" />
110    <Reference Include="System.Xml" />
111  </ItemGroup>
112  <ItemGroup>
113    <None Include="HeuristicLabOptimizationPlugin.cs.frame" />
[5954]114    <Compile Include="Algorithms\Algorithm.cs" />
[3265]115    <Compile Include="BatchRun.cs" />
[5560]116    <Compile Include="Interfaces\IDiscreteDoubleMatrixModifier.cs" />
[5954]117    <Compile Include="Algorithms\HeuristicOptimizationEngineAlgorithm.cs" />
[5560]118    <Compile Include="Interfaces\IGlobalParticleUpdater.cs" />
[5753]119    <Compile Include="Interfaces\ILocalImprovementOperator.cs" />
[5560]120    <Compile Include="Interfaces\ILocalParticleUpdater.cs" />
[5954]121    <Compile Include="Algorithms\HeuristicOptimizationAlgorithm.cs" />
[6042]122    <Compile Include="Interfaces\IMultiNeighborhoodShakingOperator.cs" />
123    <Compile Include="MoveHelper.cs" />
[5954]124    <Compile Include="Problems\MultiObjectiveHeuristicOptimizationProblem.cs" />
125    <Compile Include="Problems\HeuristicOptimizationProblem.cs" />
126    <Compile Include="Problems\SingleObjectiveHeuristicOptimizationProblem.cs" />
[5809]127    <Compile Include="Interfaces\IHeuristicOptimizationProblem.cs" />
[5080]128    <Compile Include="Interfaces\IMultiAnalyzer.cs" />
[3750]129    <Compile Include="Interfaces\IIterationBasedOperator.cs" />
[5560]130    <Compile Include="Interfaces\IParticleCreator.cs" />
131    <Compile Include="Interfaces\IParticleUpdater.cs" />
132    <Compile Include="Interfaces\ISwarmUpdater.cs" />
133    <Compile Include="Interfaces\ITopologyInitializer.cs" />
134    <Compile Include="Interfaces\ITopologyUpdater.cs" />
[5809]135    <Compile Include="Interfaces\IMultiObjectiveHeuristicOptimizationProblem.cs" />
136    <Compile Include="Interfaces\ISingleObjectiveHeuristicOptimizationProblem.cs" />
[5954]137    <Compile Include="Problems\Problem.cs" />
[3617]138    <Compile Include="RunCollectionConstraints\RunCollectionComparisonConstraint.cs" />
139    <Compile Include="RunCollectionConstraints\RunCollectionConstraintCollection.cs" />
140    <Compile Include="RunCollectionConstraints\RunCollectionTypeCompatiblityConstraint.cs" />
141    <Compile Include="RunCollectionConstraints\RunCollectionEqualityConstraint.cs" />
[3616]142    <Compile Include="Interfaces\IAnalyzer.cs" />
[3601]143    <Compile Include="Interfaces\ISingleObjectiveReplacer.cs" />
[3356]144    <Compile Include="Interfaces\IMigrator.cs" />
[3601]145    <Compile Include="Interfaces\IReplacer.cs" />
[3378]146    <Compile Include="Interfaces\ISubScopesQualityComparator.cs" />
147    <Compile Include="Interfaces\IQualityComparator.cs" />
[3336]148    <Compile Include="Interfaces\ISelfAdaptiveManipulator.cs" />
149    <Compile Include="Interfaces\IStrategyParameterCrossover.cs" />
150    <Compile Include="Interfaces\IStrategyParameterManipulator.cs" />
151    <Compile Include="Interfaces\IStrategyParameterCreator.cs" />
[3280]152    <Compile Include="Interfaces\IRun.cs" />
[3717]153    <Compile Include="RunCollectionConstraints\IRunCollectionConstraint.cs" />
[3274]154    <Compile Include="OptimizerList.cs" />
[3267]155    <Compile Include="Experiment.cs" />
[3274]156    <Compile Include="Interfaces\IOptimizer.cs" />
[3260]157    <Compile Include="RunCollection.cs" />
158    <Compile Include="Run.cs" />
[3226]159    <Compile Include="Interfaces\IResult.cs" />
[3093]160    <Compile Include="Interfaces\IDiscreteDoubleValueModifier.cs" />
[3098]161    <Compile Include="Interfaces\IExhaustiveMoveGenerator.cs" />
[3044]162    <Compile Include="Interfaces\IMoveOperator.cs" />
[3098]163    <Compile Include="Interfaces\IMultiMoveGenerator.cs" />
164    <Compile Include="Interfaces\ISingleMoveGenerator.cs" />
[3044]165    <Compile Include="Interfaces\ISingleObjectiveMoveEvaluator.cs" />
[2997]166    <Compile Include="Interfaces\IMoveGenerator.cs" />
[3044]167    <Compile Include="Interfaces\IMoveMaker.cs" />
[2882]168    <Compile Include="Interfaces\IMultiObjectiveSelector.cs" />
169    <Compile Include="Interfaces\ISingleObjectiveSelector.cs" />
170    <Compile Include="Interfaces\IReducer.cs" />
171    <Compile Include="Interfaces\ISelector.cs" />
[2865]172    <Compile Include="Interfaces\IMultiObjectiveEvaluator.cs" />
[2864]173    <Compile Include="Interfaces\IAlgorithm.cs" />
[2865]174    <Compile Include="Interfaces\ICrossover.cs" />
[2864]175    <Compile Include="Interfaces\IEvaluator.cs" />
[2865]176    <Compile Include="Interfaces\IManipulator.cs" />
[2864]177    <Compile Include="Interfaces\IProblem.cs" />
178    <Compile Include="Interfaces\ISingleObjectiveEvaluator.cs" />
179    <Compile Include="Interfaces\ISolutionCreator.cs" />
180    <Compile Include="Interfaces\IStochasticOperator.cs" />
[3232]181    <Compile Include="Interfaces\ITabuChecker.cs" />
182    <Compile Include="Interfaces\ITabuMaker.cs" />
[3226]183    <Compile Include="Result.cs" />
[5954]184    <Compile Include="Algorithms\UserDefinedAlgorithm.cs" />
185    <Compile Include="Algorithms\EngineAlgorithm.cs" />
[2834]186    <Compile Include="HeuristicLabOptimizationPlugin.cs" />
187    <Compile Include="Properties\AssemblyInfo.cs" />
[3226]188    <Compile Include="ResultCollection.cs" />
[5954]189    <Compile Include="Problems\UserDefinedProblem.cs" />
[2834]190  </ItemGroup>
191  <ItemGroup>
192    <None Include="HeuristicLab.snk" />
193    <None Include="Properties\AssemblyInfo.frame" />
194  </ItemGroup>
195  <ItemGroup>
196    <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">
197      <Project>{958B43BC-CC5C-4FA2-8628-2B3B01D890B6}</Project>
198      <Name>HeuristicLab.Collections-3.3</Name>
199    </ProjectReference>
[3702]200    <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">
[2834]201      <Project>{0E27A536-1C4A-4624-A65E-DC4F4F23E3E1}</Project>
[3702]202      <Name>HeuristicLab.Common.Resources-3.3</Name>
[2834]203    </ProjectReference>
[3384]204    <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">
205      <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>
206      <Name>HeuristicLab.Common-3.3</Name>
[2845]207    </ProjectReference>
[2834]208    <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">
209      <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project>
210      <Name>HeuristicLab.Core-3.3</Name>
211    </ProjectReference>
[2852]212    <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj">
213      <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project>
214      <Name>HeuristicLab.Data-3.3</Name>
215    </ProjectReference>
216    <ProjectReference Include="..\..\HeuristicLab.Parameters\3.3\HeuristicLab.Parameters-3.3.csproj">
217      <Project>{56F9106A-079F-4C61-92F6-86A84C2D84B7}</Project>
218      <Name>HeuristicLab.Parameters-3.3</Name>
219    </ProjectReference>
[2834]220    <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">
221      <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project>
222      <Name>HeuristicLab.Persistence-3.3</Name>
223    </ProjectReference>
[3832]224    <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">
[2834]225      <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>
[3832]226      <Name>HeuristicLab.PluginInfrastructure-3.3</Name>
[2834]227    </ProjectReference>
228  </ItemGroup>
[4065]229  <ItemGroup>
230    <BootstrapperPackage Include="Microsoft.Net.Client.3.5">
231      <Visible>False</Visible>
232      <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
233      <Install>false</Install>
234    </BootstrapperPackage>
235    <BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
236      <Visible>False</Visible>
237      <ProductName>.NET Framework 3.5 SP1</ProductName>
238      <Install>true</Install>
239    </BootstrapperPackage>
240    <BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
241      <Visible>False</Visible>
242      <ProductName>Windows Installer 3.1</ProductName>
243      <Install>true</Install>
244    </BootstrapperPackage>
245  </ItemGroup>
[2834]246  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
247  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
248       Other similar extension points exist, see Microsoft.Common.targets.
249  <Target Name="BeforeBuild">
250  </Target>
251  <Target Name="AfterBuild">
252  </Target>
253  -->
254  <PropertyGroup>
255    <PreBuildEvent>set Path=%25Path%25;$(ProjectDir);$(SolutionDir)
256set ProjectDir=$(ProjectDir)
257set SolutionDir=$(SolutionDir)
258set Outdir=$(Outdir)
259
260call PreBuildEvent.cmd
261SubWCRev "%25ProjectDir%25\" "%25ProjectDir%25\HeuristicLabOptimizationPlugin.cs.frame" "%25ProjectDir%25\HeuristicLabOptimizationPlugin.cs"</PreBuildEvent>
262  </PropertyGroup>
263</Project>
Note: See TracBrowser for help on using the repository browser.