- Timestamp:
- 12/19/17 11:10:14 (7 years ago)
- Location:
- branches/2864_PermutationProblems/HeuristicLab.Problems.PFSP
- Files:
-
- 1 added
- 4 deleted
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2864_PermutationProblems/HeuristicLab.Problems.PFSP/3.3/Evaluators/MakeSpanEvaluator.cs
r15521 r15541 31 31 { 32 32 /// <summary> 33 /// A base class for operators which evaluate TSP solutions given in path representation using city coordinates.33 /// A base class for operators which evaluate PFSP solutions given in matrix representation 34 34 /// </summary> 35 [Item("MakeSpanEvaluator", "A base class for operators which evaluate TSP solutions given in path representation using city coordinates.")]35 [Item("MakeSpanEvaluator", "A base class for operators which evaluate PFSP solutions given in matrix representation.")] 36 36 [StorableClass] 37 37 public abstract class MakeSpanEvaluator : PFSPEvaluator, IMakespanEvaluator 38 38 { 39 private object locker = new object();40 41 39 public ILookupParameter<Permutation> PermutationParameter { get { return (ILookupParameter<Permutation>)Parameters["Permutation"]; } } 42 40 public ILookupParameter<JobMatrix> JobMatrixParameter { get { return (ILookupParameter<JobMatrix>)Parameters["JobMatrix"]; } } … … 49 47 : base() 50 48 { 51 Parameters.Add(new LookupParameter<Permutation>("Permutation", "The TSP solution given in pathrepresentation which should be evaluated."));52 Parameters.Add(new LookupParameter<JobMatrix>("JobMatrix", "The matrix which contains the distances between the cities."));49 Parameters.Add(new LookupParameter<Permutation>("Permutation", "The PFSP solution given in matrix representation which should be evaluated.")); 50 Parameters.Add(new LookupParameter<JobMatrix>("JobMatrix", "The matrix which contains the job-duration on the machines.")); 53 51 Parameters.Add(new LookupParameter<Permutation>("BestKnownSolution", "The currently best known solution.")); 54 52 Parameters.Add(new LookupParameter<DoubleValue>("BestKnownQuality", "The currently best known quality.")); … … 56 54 57 55 [StorableHook(HookType.AfterDeserialization)] 58 private void AfterDeserialization() 59 { 60 // BackwardsCompatibility3.3 61 #region Backwards compatible code (remove with 3.4) 62 LookupParameter<DoubleMatrix> oldDistanceMatrixParameter = Parameters["JobMatrix"] as LookupParameter<DoubleMatrix>; 63 if (oldDistanceMatrixParameter != null) 64 { 65 Parameters.Remove(oldDistanceMatrixParameter); 66 Parameters.Add(new LookupParameter<JobMatrix>("JobMatrix", "The matrix which contains the distances between the cities.")); 67 JobMatrixParameter.ActualName = oldDistanceMatrixParameter.ActualName; 68 } 69 #endregion 70 } 56 private void AfterDeserialization() { } 71 57 72 58 public static double Apply(MakeSpanEvaluator evaluator, DoubleMatrix matrix, Permutation tour) 73 59 { 74 double length = evaluator.CalculateMakespan(matrix, tour); 75 return length; 60 return evaluator.CalculateMakespan(matrix, tour); 76 61 } 77 62 … … 80 65 Permutation p = PermutationParameter.ActualValue; 81 66 DoubleMatrix c = JobMatrixParameter.ActualValue; 82 if (c == null) throw new InvalidOperationException("No coordinates weregiven.");67 if (c == null) throw new InvalidOperationException("No matrix was given."); 83 68 84 69 double makespan = CalculateMakespan(c, p); … … 93 78 } 94 79 95 protected abstract double CalculateMakespan(DoubleMatrix matrix, Permutation tour);80 protected abstract double CalculateMakespan(DoubleMatrix matrix, Permutation perm); 96 81 } 97 82 } -
branches/2864_PermutationProblems/HeuristicLab.Problems.PFSP/3.3/Evaluators/PFSPEvaluator.cs
r15521 r15541 30 30 { 31 31 /// <summary> 32 /// A base class for operators which evaluate TSP solutions.32 /// A base class for operators which evaluate PFSP solutions. 33 33 /// </summary> 34 [Item("PFSPEvaluator", "A base class for operators which evaluate TSP solutions.")]34 [Item("PFSPEvaluator", "A base class for operators which evaluate PFSP solutions.")] 35 35 [StorableClass] 36 36 public abstract class PFSPEvaluator : InstrumentedOperator, IPFSPEvaluator … … 52 52 : base() 53 53 { 54 Parameters.Add(new LookupParameter<DoubleValue>("Quality", "The evaluated quality of the TSP solution."));54 Parameters.Add(new LookupParameter<DoubleValue>("Quality", "The evaluated quality of the PFSP solution.")); 55 55 } 56 56 } -
branches/2864_PermutationProblems/HeuristicLab.Problems.PFSP/3.3/HeuristicLab.Problems.PFSP-3.3.csproj
r15521 r15541 18 18 <DebugType>full</DebugType> 19 19 <Optimize>false</Optimize> 20 <OutputPath>..\..\ bin\</OutputPath>20 <OutputPath>..\..\..\..\trunk\sources\bin\</OutputPath> 21 21 <DefineConstants>DEBUG;TRACE</DefineConstants> 22 22 <ErrorReport>prompt</ErrorReport> … … 38 38 </PropertyGroup> 39 39 <ItemGroup> 40 <Reference Include="HeuristicLab.Collections-3.3"> 41 <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Collections-3.3.dll</HintPath> 42 </Reference> 43 <Reference Include="HeuristicLab.Common-3.3"> 44 <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common-3.3.dll</HintPath> 45 </Reference> 46 <Reference Include="HeuristicLab.Common.Resources-3.3"> 47 <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Common.Resources-3.3.dll</HintPath> 48 </Reference> 49 <Reference Include="HeuristicLab.Core-3.3"> 50 <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Core-3.3.dll</HintPath> 51 </Reference> 52 <Reference Include="HeuristicLab.Data-3.3"> 53 <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Data-3.3.dll</HintPath> 54 </Reference> 55 <Reference Include="HeuristicLab.Encodings.IntegerVectorEncoding-3.3"> 56 <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Encodings.IntegerVectorEncoding-3.3.dll</HintPath> 57 </Reference> 58 <Reference Include="HeuristicLab.Encodings.PermutationEncoding-3.3"> 59 <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Encodings.PermutationEncoding-3.3.dll</HintPath> 60 </Reference> 61 <Reference Include="HeuristicLab.Encodings.ScheduleEncoding.Views-3.3"> 62 <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Encodings.ScheduleEncoding.Views-3.3.dll</HintPath> 63 </Reference> 64 <Reference Include="HeuristicLab.Operators-3.3"> 65 <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Operators-3.3.dll</HintPath> 66 </Reference> 67 <Reference Include="HeuristicLab.Optimization-3.3"> 68 <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Optimization-3.3.dll</HintPath> 69 </Reference> 70 <Reference Include="HeuristicLab.Parameters-3.3"> 71 <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Parameters-3.3.dll</HintPath> 72 </Reference> 73 <Reference Include="HeuristicLab.Persistence-3.3"> 74 <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.Persistence-3.3.dll</HintPath> 75 </Reference> 76 <Reference Include="HeuristicLab.PluginInfrastructure-3.3"> 77 <HintPath>..\..\..\..\trunk\sources\bin\HeuristicLab.PluginInfrastructure-3.3.dll</HintPath> 78 </Reference> 40 79 <Reference Include="System" /> 41 80 <Reference Include="System.Core" /> … … 49 88 </ItemGroup> 50 89 <ItemGroup> 51 <Compile Include="Analyzers\BestPFSPSolutionAnalyzer.cs" /> 52 <Compile Include="Evaluators\AwesomeMakeSpanEvaluator.cs" /> 90 <Compile Include="Evaluators\CmaxMakeSpanEvaluator.cs" /> 53 91 <Compile Include="Evaluators\MakeSpanEvaluator.cs" /> 54 92 <Compile Include="Evaluators\PFSPEvaluator.cs" /> … … 61 99 </ItemGroup> 62 100 <ItemGroup> 63 <ProjectReference Include="..\..\HeuristicLab.Collections\3.3\HeuristicLab.Collections-3.3.csproj">64 <Project>{958b43bc-cc5c-4fa2-8628-2b3b01d890b6}</Project>65 <Name>HeuristicLab.Collections-3.3</Name>66 </ProjectReference>67 <ProjectReference Include="..\..\HeuristicLab.Common.Resources\3.3\HeuristicLab.Common.Resources-3.3.csproj">68 <Project>{0e27a536-1c4a-4624-a65e-dc4f4f23e3e1}</Project>69 <Name>HeuristicLab.Common.Resources-3.3</Name>70 </ProjectReference>71 <ProjectReference Include="..\..\HeuristicLab.Common\3.3\HeuristicLab.Common-3.3.csproj">72 <Project>{A9AD58B9-3EF9-4CC1-97E5-8D909039FF5C}</Project>73 <Name>HeuristicLab.Common-3.3</Name>74 </ProjectReference>75 <ProjectReference Include="..\..\HeuristicLab.Core\3.3\HeuristicLab.Core-3.3.csproj">76 <Project>{C36BD924-A541-4A00-AFA8-41701378DDC5}</Project>77 <Name>HeuristicLab.Core-3.3</Name>78 </ProjectReference>79 <ProjectReference Include="..\..\HeuristicLab.Data\3.3\HeuristicLab.Data-3.3.csproj">80 <Project>{BBAB9DF5-5EF3-4BA8-ADE9-B36E82114937}</Project>81 <Name>HeuristicLab.Data-3.3</Name>82 </ProjectReference>83 <ProjectReference Include="..\..\HeuristicLab.Encodings.IntegerVectorEncoding\3.3\HeuristicLab.Encodings.IntegerVectorEncoding-3.3.csproj">84 <Project>{DDFB14DD-2A85-493C-A52D-E69729BBAEB0}</Project>85 <Name>HeuristicLab.Encodings.IntegerVectorEncoding-3.3</Name>86 </ProjectReference>87 <ProjectReference Include="..\..\HeuristicLab.Encodings.PermutationEncoding\3.3\HeuristicLab.Encodings.PermutationEncoding-3.3.csproj">88 <Project>{DBECB8B0-B166-4133-BAF1-ED67C3FD7FCA}</Project>89 <Name>HeuristicLab.Encodings.PermutationEncoding-3.3</Name>90 </ProjectReference>91 <ProjectReference Include="..\..\HeuristicLab.Encodings.ScheduleEncoding\3.3\HeuristicLab.Encodings.ScheduleEncoding-3.3.csproj">92 <Project>{17F3EF80-B2C3-4B8D-A4D5-BE9CE3BA2606}</Project>93 <Name>HeuristicLab.Encodings.ScheduleEncoding-3.3</Name>94 </ProjectReference>95 <ProjectReference Include="..\..\HeuristicLab.Operators\3.3\HeuristicLab.Operators-3.3.csproj">96 <Project>{23DA7FF4-D5B8-41B6-AA96-F0561D24F3EE}</Project>97 <Name>HeuristicLab.Operators-3.3</Name>98 </ProjectReference>99 <ProjectReference Include="..\..\HeuristicLab.Optimization\3.3\HeuristicLab.Optimization-3.3.csproj">100 <Project>{14AB8D24-25BC-400C-A846-4627AA945192}</Project>101 <Name>HeuristicLab.Optimization-3.3</Name>102 </ProjectReference>103 <ProjectReference Include="..\..\HeuristicLab.Parameters\3.3\HeuristicLab.Parameters-3.3.csproj">104 <Project>{56F9106A-079F-4C61-92F6-86A84C2D84B7}</Project>105 <Name>HeuristicLab.Parameters-3.3</Name>106 </ProjectReference>107 <ProjectReference Include="..\..\HeuristicLab.Persistence\3.3\HeuristicLab.Persistence-3.3.csproj">108 <Project>{102BC7D3-0EF9-439C-8F6D-96FF0FDB8E1B}</Project>109 <Name>HeuristicLab.Persistence-3.3</Name>110 </ProjectReference>111 <ProjectReference Include="..\..\HeuristicLab.PluginInfrastructure\3.3\HeuristicLab.PluginInfrastructure-3.3.csproj">112 <Project>{94186A6A-5176-4402-AE83-886557B53CCA}</Project>113 <Name>HeuristicLab.PluginInfrastructure-3.3</Name>114 </ProjectReference>115 <ProjectReference Include="..\..\HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj">116 <Project>{3540E29E-4793-49E7-8EE2-FEA7F61C3994}</Project>117 <Name>HeuristicLab.Problems.Instances-3.3</Name>118 </ProjectReference>119 </ItemGroup>120 <ItemGroup>121 101 <None Include="HeuristicLab.snk" /> 122 102 <None Include="Plugin.cs.frame" /> 123 103 <None Include="Properties\AssemblyInfo.cs.frame" /> 124 104 </ItemGroup> 105 <ItemGroup> 106 <ProjectReference Include="..\..\HeuristicLab.Problems.Instances\3.3\HeuristicLab.Problems.Instances-3.3.csproj"> 107 <Project>{3540e29e-4793-49e7-8ee2-fea7f61c3994}</Project> 108 <Name>HeuristicLab.Problems.Instances-3.3</Name> 109 </ProjectReference> 110 </ItemGroup> 111 <ItemGroup /> 125 112 <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> 126 113 <PropertyGroup> -
branches/2864_PermutationProblems/HeuristicLab.Problems.PFSP/3.3/Interfaces/IMakespanEvaluator.cs
r15521 r15541 1 using HeuristicLab.Core; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 * 5 * This file is part of HeuristicLab. 6 * 7 * HeuristicLab is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation, either version 3 of the License, or 10 * (at your option) any later version. 11 * 12 * HeuristicLab is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>. 19 */ 20 #endregion 21 22 using HeuristicLab.Core; 2 23 using HeuristicLab.Data; 3 24 using HeuristicLab.Encodings.PermutationEncoding; -
branches/2864_PermutationProblems/HeuristicLab.Problems.PFSP/3.3/JobMatrix.cs
r15521 r15541 27 27 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; 28 28 29 namespace HeuristicLab.Problems.PFSP { 30 [Item("JobMatrix", "Represents a matrix of a PFSP.")] 31 [StorableClass] 32 public sealed class JobMatrix : DoubleMatrix { 33 [StorableConstructor] 34 private JobMatrix(bool deserializing) : base(deserializing) { } 35 private JobMatrix(JobMatrix original, Cloner cloner) { 36 throw new NotSupportedException("Distance matrices cannot be cloned."); 29 namespace HeuristicLab.Problems.PFSP 30 { 31 [Item("JobMatrix", "Represents a matrix of a PFSP.")] 32 [StorableClass] 33 public sealed class JobMatrix : DoubleMatrix 34 { 35 [StorableConstructor] 36 private JobMatrix(bool deserializing) : base(deserializing) { } 37 private JobMatrix(JobMatrix original, Cloner cloner) 38 { 39 throw new NotSupportedException("Job matrices cannot be cloned."); 40 } 41 42 public JobMatrix() : base() { } 43 public JobMatrix(int rows, int columns) : base(rows, columns) { } 44 public JobMatrix(int rows, int columns, IEnumerable<string> columnNames) : base(rows, columns, columnNames) { } 45 public JobMatrix(int rows, int columns, IEnumerable<string> columnNames, IEnumerable<string> rowNames) : base(rows, columns, columnNames, rowNames) { } 46 public JobMatrix(double[,] elements) : base(elements) { } 47 public JobMatrix(double[,] elements, IEnumerable<string> columnNames) : base(elements, columnNames) { } 48 public JobMatrix(double[,] elements, IEnumerable<string> columnNames, IEnumerable<string> rowNames) : base(elements, columnNames, rowNames) { } 49 50 public override IDeepCloneable Clone(Cloner cloner) 51 { 52 // job matrices are not cloned for performance reasons 53 cloner.RegisterClonedObject(this, this); 54 return this; 55 } 37 56 } 38 public JobMatrix() : base() { }39 public JobMatrix(int rows, int columns) : base(rows, columns) { }40 public JobMatrix(int rows, int columns, IEnumerable<string> columnNames) : base(rows, columns, columnNames) { }41 public JobMatrix(int rows, int columns, IEnumerable<string> columnNames, IEnumerable<string> rowNames) : base(rows, columns, columnNames, rowNames) { }42 public JobMatrix(double[,] elements) : base(elements) { }43 public JobMatrix(double[,] elements, IEnumerable<string> columnNames) : base(elements, columnNames) { }44 public JobMatrix(double[,] elements, IEnumerable<string> columnNames, IEnumerable<string> rowNames) : base(elements, columnNames, rowNames) { }45 46 public override IDeepCloneable Clone(Cloner cloner) {47 // distance matrices are not cloned for performance reasons48 cloner.RegisterClonedObject(this, this);49 return this;50 }51 }52 57 } -
branches/2864_PermutationProblems/HeuristicLab.Problems.PFSP/3.3/PermutationFlowshopSchedulingProblem.cs
r15521 r15541 97 97 } 98 98 99 // BackwardsCompatibility3.3100 #region Backwards compatible code, remove with 3.4101 [Obsolete]102 [Storable(Name = "operators")]103 private IEnumerable<IOperator> oldOperators104 {105 get { return null; }106 set107 {108 if (value != null && value.Any())109 Operators.AddRange(value);110 }111 }112 #endregion113 114 99 [StorableConstructor] 115 100 private PermutationFlowshopSchedulingProblem(bool deserializing) : base(deserializing) { } … … 117 102 : base(original, cloner) 118 103 { 119 RegisterEventHandlers();120 104 } 121 105 public PermutationFlowshopSchedulingProblem() 122 : base(new AwesomeMakeSpanEvaluator(), new RandomPermutationCreator())106 : base(new CmaxMakeSpanEvaluator(), new RandomPermutationCreator()) 123 107 { 124 108 Parameters.Add(new OptionalValueParameter<Permutation>("BestKnownSolution", "The best known solution of this FSSP instance.")); … … 138 122 139 123 InitializeOperators(); 140 RegisterEventHandlers();141 124 } 142 125 … … 147 130 148 131 [StorableHook(HookType.AfterDeserialization)] 149 private void AfterDeserialization() 150 { 151 RegisterEventHandlers(); 152 } 153 154 private void RegisterEventHandlers() 155 { 156 SolutionCreator.PermutationParameter.ActualNameChanged += new EventHandler(SolutionCreator_PermutationParameter_ActualNameChanged); 157 Evaluator.QualityParameter.ActualNameChanged += new EventHandler(Evaluator_QualityParameter_ActualNameChanged); 158 } 159 160 private void Evaluator_QualityParameter_ActualNameChanged(object sender, EventArgs e) 161 { 162 //Nothing to do ParameterizeAnalyzers(); 163 } 164 165 private void SolutionCreator_PermutationParameter_ActualNameChanged(object sender, EventArgs e) 166 { 167 ParameterizeEvaluator(); 168 //ParameterizeAnalyzers(); 169 ParameterizeOperators(); 170 } 171 172 #region Events 173 private void ScheduleEvaluator_QualityParameter_ActualNameChanged(object sender, EventArgs eventArgs) 174 { 175 ParameterizeOperators(); 176 } 177 178 private void SolutionCreator_SchedulingEncodingParameter_ActualNameChanged(object sender, EventArgs eventArgs) 179 { 180 ParameterizeOperators(); 181 } 182 183 private void ScheduleDecoder_ScheduleParameter_ActualNameChanged(object sender, EventArgs eventArgs) 184 { 185 ParameterizeOperators(); 186 } 187 #endregion 132 private void AfterDeserialization() { } 188 133 189 134 #region Problem Instance Handling … … 202 147 if (!permut.Contains(0)) { permut = permut.Select(v => v - 1).ToArray(); } 203 148 double bestKnownQuality = MakeSpanEvaluator.Apply( 204 new AwesomeMakeSpanEvaluator(),149 new CmaxMakeSpanEvaluator(), 205 150 new DoubleMatrix(data.ProcessingTimes), 206 151 new Permutation(PermutationTypes.Absolute, permut) … … 213 158 ParameterizeSolutionCreator(); 214 159 } 215 216 160 public FSSPData Export() 217 161 { … … 251 195 private void InitializeOperators() 252 196 { 253 var operators = new HashSet<IPermutationOperator>(new IPermutationOperator[] { 254 new OrderCrossover2(), 255 new InversionManipulator(), 256 new StochasticInversionMultiMoveGenerator() 257 }, new TypeEqualityComparer<IPermutationOperator>()); 258 259 foreach (var op in ApplicationManager.Manager.GetInstances<IPermutationOperator>()) 260 operators.Add(op); 261 Operators.AddRange(operators); 262 Operators.Add(new BestTSPSolutionAnalyzer()); 197 Operators.AddRange(ApplicationManager.Manager.GetInstances<IPermutationOperator>()); 263 198 ParameterizeOperators(); 264 UpdateMoveEvaluators(); 265 } 266 267 199 } 268 200 private void ParameterizeOperators() 269 201 { … … 306 238 } 307 239 } 308 #endregion309 310 private void UpdateMoveEvaluators()311 {312 Operators.RemoveAll(x => x is ISingleObjectiveMoveEvaluator);313 foreach (var op in ApplicationManager.Manager.GetInstances<ISingleObjectiveMoveEvaluator>())314 Operators.Add(op);315 316 ParameterizeOperators();317 OnOperatorsChanged();318 }319 320 240 private void ParameterizeSolutionCreator() 321 241 { 322 SolutionCreator.LengthParameter.Value = new IntValue(JobMatrix.Columns); //Jobs242 SolutionCreator.LengthParameter.Value = new IntValue(JobMatrix.Columns); 323 243 324 244 SolutionCreator.LengthParameter.Hidden = SolutionCreator.LengthParameter.Value != null; … … 328 248 private void ParameterizeEvaluator() 329 249 { 330 if (Evaluator is AwesomeMakeSpanEvaluator)250 if (Evaluator is CmaxMakeSpanEvaluator) 331 251 { 332 252 IMakespanEvaluator evaluator = (IMakespanEvaluator)Evaluator; … … 335 255 } 336 256 } 257 #endregion 337 258 } 338 259 } -
branches/2864_PermutationProblems/HeuristicLab.Problems.PFSP/3.3/Plugin.cs
r15521 r15541 1 using HeuristicLab.PluginInfrastructure; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 * 5 * This file is part of HeuristicLab. 6 * 7 * HeuristicLab is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation, either version 3 of the License, or 10 * (at your option) any later version. 11 * 12 * HeuristicLab is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>. 19 */ 20 #endregion 21 22 using HeuristicLab.PluginInfrastructure; 2 23 3 24 namespace HeuristicLab.Problems.PFSP -
branches/2864_PermutationProblems/HeuristicLab.Problems.PFSP/3.3/Properties/AssemblyInfo.cs
r15521 r15541 1 using System.Reflection; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2016 Heuristic and Evolutionary Algorithms Laboratory (HEAL) 4 * 5 * This file is part of HeuristicLab. 6 * 7 * HeuristicLab is free software: you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation, either version 3 of the License, or 10 * (at your option) any later version. 11 * 12 * HeuristicLab is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>. 19 */ 20 #endregion 21 22 using System.Reflection; 2 23 using System.Runtime.InteropServices; 3 24 … … 33 54 // [assembly: AssemblyVersion("1.0.*")] 34 55 [assembly: AssemblyVersion("3.3.0.0")] 35 [assembly: AssemblyFileVersion("3.3.14.1 4965")]56 [assembly: AssemblyFileVersion("3.3.14.15521")] 36 57
Note: See TracChangeset
for help on using the changeset viewer.