Changeset 16288
- Timestamp:
- 11/08/18 17:10:53 (6 years ago)
- Location:
- branches/2931_OR-Tools_LP_MIP
- Files:
-
- 35 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2931_OR-Tools_LP_MIP/HeuristicLab.ExtLibs/HeuristicLab.OrTools/6.9.0-pre/HeuristicLab.OrTools-6.9.0-pre/Plugin.cs.frame
r16233 r16288 21 21 22 22 using System; 23 using System.IO; 24 using System.Linq; 25 using System.Runtime.InteropServices; 23 26 using HeuristicLab.PluginInfrastructure; 24 27 25 28 namespace HeuristicLab.OrTools { 29 26 30 [Plugin("HeuristicLab.OrTools", "Provides functionality of Google OR-Tools in HeuristicLab. Requires Windows 64-bit", "6.9.0.$WCREV$")] 27 31 [PluginFile("HeuristicLab.OrTools-6.9.0-pre.dll", PluginFileType.Assembly)] … … 30 34 [PluginFile("Google.OrTools.runtime.win-x64.dll", PluginFileType.NativeDll)] 31 35 [PluginFile("Google.OrTools_version.txt", PluginFileType.Data)] 36 [PluginFile("Google.Protobuf.dll", PluginFileType.Assembly)] 32 37 [PluginFile("glpk_4_65.dll", PluginFileType.NativeDll)] 33 38 [PluginFile("glpk-license.txt", PluginFileType.License)] 34 39 public class HeuristicLabOrToolsPlugin : PluginBase { 40 41 ~HeuristicLabOrToolsPlugin() { 42 OnUnload(); // HACK: remove once ticket #2961 is solved 43 } 44 45 public override void OnUnload() { 46 base.OnUnload(); 47 48 var thisClass = typeof(HeuristicLabOrToolsPlugin); 49 var dir = new FileInfo(thisClass.Assembly.Location).Directory; 50 if (dir == null) 51 return; 52 53 var nativeDlls = thisClass.GetCustomAttributes(typeof(PluginFileAttribute), true) 54 .Cast<PluginFileAttribute>() 55 .Where(pf => pf.FileType == PluginFileType.NativeDll) 56 .Select(pf => pf.FileName); 57 58 foreach (var nativeDll in dir.EnumerateFiles().Where(f => nativeDlls.Contains(f.Name))) { 59 var handle = LoadLibrary(nativeDll.FullName); 60 if (handle == IntPtr.Zero) 61 continue; 62 63 FreeLibrary(handle); // close handle obtained above 64 FreeLibrary(handle); // close implicitly obtained handle 65 } 66 } 67 68 [DllImport("kernel32.dll", SetLastError = true)] 69 [return: MarshalAs(UnmanagedType.Bool)] 70 private static extern bool FreeLibrary(IntPtr hModule); 71 72 [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Ansi)] 73 private static extern IntPtr LoadLibrary([MarshalAs(UnmanagedType.LPStr)]string lpFileName); 35 74 } 36 75 } -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.ExtLibs/HeuristicLab.OrTools/6.9.0-pre/HeuristicLab.OrTools-6.9.0-pre/Properties/AssemblyInfo.cs
r16233 r16288 54 54 // [assembly: AssemblyVersion("1.0.*")] 55 55 [assembly: AssemblyVersion("6.8.0.0")] 56 [assembly: AssemblyFileVersion("6.8.0.16 172")]56 [assembly: AssemblyFileVersion("6.8.0.16233")] -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/HeuristicLab.MathematicalOptimization-3.3.csproj
r16234 r16288 177 177 <Compile Include="Properties\AssemblyInfo.cs" /> 178 178 <Compile Include="Properties\Settings.Designer.cs"> 179 <DependentUpon>Settings.settings</DependentUpon>180 179 <AutoGen>True</AutoGen> 181 180 <DesignTimeSharedInput>True</DesignTimeSharedInput> 181 <DependentUpon>Settings.settings</DependentUpon> 182 182 </Compile> 183 183 <None Include="app.config" /> -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/LinearProgrammingAlgorithm.cs
r16233 r16288 1 using System; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2018 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; 2 23 using System.Threading; 3 24 using Google.OrTools.LinearSolver; … … 38 59 39 60 [Storable] 40 private readonlyIConstrainedValueParameter<ISolver> solverParam;61 private IConstrainedValueParameter<ISolver> solverParam; 41 62 42 63 [Storable] 43 64 private readonly IFixedValueParameter<TimeSpanValue> timeLimitParam; 65 66 public IConstrainedValueParameter<ISolver> SolverParameter { 67 get { return solverParam; } 68 set { solverParam = value; } 69 } 44 70 45 71 public LinearProgrammingAlgorithm() { … … 77 103 78 104 [StorableConstructor] 79 pr ivateLinearProgrammingAlgorithm(bool deserializing)105 protected LinearProgrammingAlgorithm(bool deserializing) 80 106 : base(deserializing) { 81 107 } 82 108 83 pr ivateLinearProgrammingAlgorithm(LinearProgrammingAlgorithm original, Cloner cloner)109 protected LinearProgrammingAlgorithm(LinearProgrammingAlgorithm original, Cloner cloner) 84 110 : base(original, cloner) { 85 111 solverParam = cloner.Clone(original.solverParam); … … 166 192 Solver.Interrupt(); 167 193 } 194 168 195 protected override void Initialize(CancellationToken cancellationToken) { 169 196 base.Initialize(cancellationToken); 170 197 } 198 171 199 protected override void Run(CancellationToken cancellationToken) => Solver.Solve(this, cancellationToken); 172 200 } -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/LinearProgrammingType.cs
r16233 r16288 1 namespace HeuristicLab.MathematicalOptimization.LinearProgramming.Algorithms { 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2018 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 namespace HeuristicLab.MathematicalOptimization.LinearProgramming.Algorithms { 2 23 3 24 public enum LinearProgrammingType { -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/Base/ExternalIncrementalSolver.cs
r16233 r16288 1 using HeuristicLab.Common; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2018 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.Common; 2 23 using HeuristicLab.Core; 3 24 using HeuristicLab.Data; … … 16 37 } 17 38 39 [StorableConstructor] 40 protected ExternalIncrementalSolver(bool deserializing) 41 : base(deserializing) { 42 } 43 18 44 protected ExternalIncrementalSolver(ExternalIncrementalSolver original, Cloner cloner) 19 45 : base(original, cloner) { -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/Base/ExternalSolver.cs
r16233 r16288 1 using HeuristicLab.Common; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2018 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.Common; 2 23 using HeuristicLab.Core; 3 24 using HeuristicLab.Data; … … 8 29 [StorableClass] 9 30 public class ExternalSolver : Solver, IExternalSolver { 10 11 31 protected const string FileDialogFilter = "Dynamic-Link Library (*.dll)|*.dll|All Files (*.*)|*.*"; 12 32 … … 15 35 16 36 public ExternalSolver() { 37 } 38 39 [StorableConstructor] 40 protected ExternalSolver(bool deserializing) 41 : base(deserializing) { 17 42 } 18 43 -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/Base/IExternalSolver.cs
r16233 r16288 1 namespace HeuristicLab.MathematicalOptimization.LinearProgramming.Algorithms.Solvers.Base { 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2018 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 namespace HeuristicLab.MathematicalOptimization.LinearProgramming.Algorithms.Solvers.Base { 2 23 3 24 public interface IExternalSolver : ISolver { -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/Base/IIncrementalSolver.cs
r16233 r16288 1 using System; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2018 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; 2 23 3 24 namespace HeuristicLab.MathematicalOptimization.LinearProgramming.Algorithms.Solvers.Base { -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/Base/ISolver.cs
r16234 r16288 1 using System.Threading; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2018 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.Threading; 2 23 using HeuristicLab.Core; 3 24 -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/Base/IncrementalSolver.cs
r16234 r16288 1 using System; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2018 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; 2 23 using System.Linq; 3 24 using System.Threading; … … 14 35 [StorableClass] 15 36 public class IncrementalSolver : Solver, IIncrementalSolver { 37 16 38 [Storable] 17 39 protected readonly IValueParameter<BoolValue> incrementalityParam; … … 26 48 [Storable] 27 49 private IndexedDataTable<double> qualityPerClock; 50 51 [StorableConstructor] 52 protected IncrementalSolver(bool deserializing) 53 : base(deserializing) { 54 } 28 55 29 56 public IncrementalSolver() { -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/Base/Solver.cs
r16234 r16288 1 using System; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2018 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; 2 23 using System.Threading; 3 24 using HeuristicLab.Common; … … 49 70 50 71 public virtual void Reset() { 72 solver?.Dispose(); 51 73 solver = null; 52 74 } -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/BopSolver.cs
r16234 r16288 1 using HeuristicLab.Core; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2018 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.Common; 23 using HeuristicLab.Core; 2 24 using HeuristicLab.MathematicalOptimization.LinearProgramming.Algorithms.Solvers.Base; 3 25 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable; … … 13 35 } 14 36 37 protected BopSolver(BopSolver original, Cloner cloner) 38 : base(original, cloner) { 39 } 40 41 [StorableConstructor] 42 protected BopSolver(bool deserializing) 43 : base(deserializing) { 44 } 45 15 46 public override bool SupportsPause => true; 16 47 -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/CoinOrSolver.cs
r16234 r16288 1 using HeuristicLab.Core; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2018 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.Common; 23 using HeuristicLab.Core; 2 24 using HeuristicLab.Data; 3 25 using HeuristicLab.MathematicalOptimization.LinearProgramming.Algorithms.Solvers.Base; … … 27 49 } 28 50 51 protected CoinOrSolver(CoinOrSolver original, Cloner cloner) 52 : base(original, cloner) { 53 } 54 55 [StorableConstructor] 56 protected CoinOrSolver(bool deserializing) 57 : base(deserializing) { 58 } 59 29 60 protected override OptimizationProblemType OptimizationProblemType => 30 61 LinearProgrammingType == LinearProgrammingType.LinearProgramming -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/CplexSolver.cs
r16234 r16288 1 using HeuristicLab.Core; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2018 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.Common; 23 using HeuristicLab.Core; 2 24 using HeuristicLab.Data; 3 25 using HeuristicLab.MathematicalOptimization.LinearProgramming.Algorithms.Solvers.Base; … … 16 38 } 17 39 40 [StorableConstructor] 41 protected CplexSolver(bool deserializing) 42 : base(deserializing) { 43 } 44 45 protected CplexSolver(CplexSolver original, Cloner cloner) 46 : base(original, cloner) { 47 } 48 18 49 protected override OptimizationProblemType OptimizationProblemType => 19 50 LinearProgrammingType == LinearProgrammingType.LinearProgramming -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/GlopSolver.cs
r16234 r16288 1 using HeuristicLab.Core; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2018 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.Common; 23 using HeuristicLab.Core; 2 24 using HeuristicLab.Data; 3 25 using HeuristicLab.MathematicalOptimization.LinearProgramming.Algorithms.Solvers.Base; … … 14 36 } 15 37 38 [StorableConstructor] 39 protected GlopSolver(bool deserializing) 40 : base(deserializing) { 41 } 42 43 protected GlopSolver(GlopSolver original, Cloner cloner) 44 : base(original, cloner) { 45 } 46 16 47 public override bool SupportsPause => true; 17 48 -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/GlpkSolver.cs
r16234 r16288 1 using HeuristicLab.Core; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2018 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.Common; 23 using HeuristicLab.Core; 2 24 using HeuristicLab.Data; 3 25 using HeuristicLab.MathematicalOptimization.LinearProgramming.Algorithms.Solvers.Base; … … 31 53 } 32 54 55 protected GlpkSolver(GlpkSolver original, Cloner cloner) 56 : base(original, cloner) { 57 } 58 59 [StorableConstructor] 60 protected GlpkSolver(bool deserializing) 61 : base(deserializing) { 62 } 63 33 64 protected override OptimizationProblemType OptimizationProblemType => 34 65 LinearProgrammingType == LinearProgrammingType.LinearProgramming -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/GurobiSolver.cs
r16234 r16288 1 using HeuristicLab.Common; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2018 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.Common; 2 23 using HeuristicLab.Core; 3 24 using HeuristicLab.Data; … … 22 43 } 23 44 45 [StorableConstructor] 46 protected GurobiSolver(bool deserializing) 47 : base(deserializing) { 48 } 49 24 50 public override bool SupportsPause => true; 25 51 -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Algorithms/Solvers/ScipSolver.cs
r16234 r16288 1 using HeuristicLab.Core; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2018 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.Common; 23 using HeuristicLab.Core; 2 24 using HeuristicLab.Data; 3 25 using HeuristicLab.MathematicalOptimization.LinearProgramming.Algorithms.Solvers.Base; … … 19 41 } 20 42 43 [StorableConstructor] 44 protected ScipSolver(bool deserializing) 45 : base(deserializing) { 46 } 47 48 protected ScipSolver(ScipSolver original, Cloner cloner) 49 : base(original, cloner) { 50 } 51 21 52 public override bool SupportsPause => true; 22 53 … … 24 55 25 56 protected override OptimizationProblemType OptimizationProblemType => 26 57 OptimizationProblemType.SCIP_MIXED_INTEGER_PROGRAMMING; 27 58 } 28 59 } -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/DoubleParam.cs
r16233 r16288 1 namespace HeuristicLab.MathematicalOptimization.LinearProgramming { 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2018 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 namespace HeuristicLab.MathematicalOptimization.LinearProgramming { 2 23 3 24 // Enumeration of parameters that take continuous values. -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/IncrementalityValues.cs
r16233 r16288 1 namespace HeuristicLab.MathematicalOptimization.LinearProgramming { 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2018 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 namespace HeuristicLab.MathematicalOptimization.LinearProgramming { 2 23 3 24 public enum IncrementalityValues { -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/IntegerParam.cs
r16233 r16288 1 namespace HeuristicLab.MathematicalOptimization.LinearProgramming { 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2018 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 namespace HeuristicLab.MathematicalOptimization.LinearProgramming { 2 23 3 24 // Enumeration of parameters that take integer or categorical values. -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/LpAlgorithmValues.cs
r16233 r16288 1 namespace HeuristicLab.MathematicalOptimization.LinearProgramming { 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2018 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 namespace HeuristicLab.MathematicalOptimization.LinearProgramming { 2 23 3 24 public enum LpAlgorithmValues { -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Problems/ILinearProgrammingProblemDefinition.cs
r16233 r16288 1 1 #region License Information 2 3 2 /* HeuristicLab 4 3 * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL) … … 19 18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>. 20 19 */ 21 22 #endregion License Information 20 #endregion 23 21 24 22 using Google.OrTools.LinearSolver; -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Problems/LinearProgrammingProblem.cs
r16233 r16288 1 1 #region License Information 2 3 2 /* HeuristicLab 4 3 * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL) … … 19 18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>. 20 19 */ 21 22 #endregion License Information 20 #endregion 23 21 24 22 using System.Drawing; … … 44 42 } 45 43 46 pr ivateLinearProgrammingProblem(LinearProgrammingProblem original, Cloner cloner)44 protected LinearProgrammingProblem(LinearProgrammingProblem original, Cloner cloner) 47 45 : base(original, cloner) { 48 46 RegisterEvents(); … … 50 48 51 49 [StorableConstructor] 52 pr ivateLinearProgrammingProblem(bool deserializing) : base(deserializing) { }50 protected LinearProgrammingProblem(bool deserializing) : base(deserializing) { } 53 51 54 52 public new static Image StaticItemImage => VSImageLibrary.Script; -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Problems/LinearProgrammingProblemDefinitionScript.cs
r16233 r16288 1 1 #region License Information 2 3 2 /* HeuristicLab 4 3 * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL) … … 19 18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>. 20 19 */ 21 22 #endregion License Information 20 #endregion 23 21 24 22 using System; … … 38 36 [StorableClass] 39 37 public sealed class LinearProgrammingProblemDefinitionScript : Script, ILinearProgrammingProblemDefinition, IStorableContent { 40 pr otectedbool SuppressEvents { get; set; }38 private bool SuppressEvents { get; set; } 41 39 42 40 [Storable] 43 private VariableStore variableStore;41 private readonly VariableStore variableStore; 44 42 45 43 public VariableStore VariableStore => variableStore; … … 49 47 50 48 [StorableConstructor] 51 pr otectedLinearProgrammingProblemDefinitionScript(bool deserializing) : base(deserializing) { }49 private LinearProgrammingProblemDefinitionScript(bool deserializing) : base(deserializing) { } 52 50 53 pr otectedLinearProgrammingProblemDefinitionScript(LinearProgrammingProblemDefinitionScript original, Cloner cloner)51 private LinearProgrammingProblemDefinitionScript(LinearProgrammingProblemDefinitionScript original, Cloner cloner) 54 52 : base(original, cloner) { 55 53 variableStore = cloner.Clone(original.variableStore); … … 65 63 private volatile ILinearProgrammingProblemDefinition compiledProblemDefinition; 66 64 67 pr otectedILinearProgrammingProblemDefinition CompiledProblemDefinition {65 private ILinearProgrammingProblemDefinition CompiledProblemDefinition { 68 66 get { 69 67 // double checked locking pattern -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Problems/LinearProgrammingProblemDefintion.cs
r16233 r16288 1 using Google.OrTools.LinearSolver; 1 #region License Information 2 /* HeuristicLab 3 * Copyright (C) 2002-2018 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 Google.OrTools.LinearSolver; 2 23 using HeuristicLab.Problems.Programmable; 3 24 -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Problems/ProblemDefinitionScriptException.cs
r16233 r16288 1 1 #region License Information 2 3 2 /* HeuristicLab 4 3 * Copyright (C) 2002-2018 Heuristic and Evolutionary Algorithms Laboratory (HEAL) … … 19 18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>. 20 19 */ 21 22 #endregion License Information 20 #endregion 23 21 24 22 using System; -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Templates/CompiledLinearProgrammingProblemDefinition.cs
r16233 r16288 1 using Google.OrTools.LinearSolver; 1 using System; 2 using System.Linq; 3 using System.Collections.Generic; 4 using Google.OrTools.LinearSolver; 5 using HeuristicLab.Common; 6 using HeuristicLab.Core; 2 7 using HeuristicLab.Data; 3 8 using HeuristicLab.MathematicalOptimization.LinearProgramming.Problems; 4 9 using HeuristicLab.Optimization; 5 10 using HeuristicLab.Problems.Programmable; 11 using Variable = Google.OrTools.LinearSolver.Variable; 6 12 7 13 namespace HeuristicLab.MathematicalOptimization.LinearProgramming { … … 10 16 private Variable x; 11 17 private Variable y; 12 18 13 19 public override void Initialize() { 14 20 // Use vars.yourVariable to access variables in the variable store i.e. yourVariable 15 21 // Add additional initialization code e.g. private variables that you need for evaluating 16 22 } 17 23 18 24 public void BuildModel(Solver solver) { 19 25 // Use vars.yourVariable to access variables in the variable store i.e. yourVariable … … 27 33 solver.Maximize(x + 10 * y); 28 34 } 29 35 30 36 public void Analyze(Solver solver, ResultCollection results) { 31 37 // Use vars.yourVariable to access variables in the variable store i.e. yourVariable … … 37 43 //results.AddOrUpdateResult("y", new DoubleValue(solver.LookupVariableOrNull("y").SolutionValue())); 38 44 } 39 45 40 46 // Implement further classes and methods 41 47 } 42 48 } 49 -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Views/LinearProgrammingProblemDefinitionScriptView.cs
r16172 r16288 28 28 29 29 namespace HeuristicLab.MathematicalOptimization.LinearProgramming.Views { 30 30 31 [View("LinearProgrammingProblemDefinitionScriptView")] 31 32 [Content(typeof(LinearProgrammingProblemDefinitionScript), IsDefaultView = true)] -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/LinearProgramming/Views/LinearProgrammingProblemView.cs
r16172 r16288 28 28 29 29 namespace HeuristicLab.MathematicalOptimization.LinearProgramming.Views { 30 30 31 [View("Linear Programming Problem View")] 31 32 [Content(typeof(LinearProgrammingProblem), true)] … … 75 76 76 77 private void LinearProgrammingProblemView_Load(object sender, EventArgs e) { 77 78 78 } 79 79 } -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/Plugin.cs.frame
r16234 r16288 23 23 24 24 namespace HeuristicLab.MathematicalOptimization { 25 25 26 [Plugin("HeuristicLab.MathematicalOptimization", "Provides support for mathematical optimization based on Google OR-Tools", "3.3.15.$WCREV$")] 26 27 [PluginFile("HeuristicLab.MathematicalOptimization-3.3.dll", PluginFileType.Assembly)] -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/Properties/Settings.Designer.cs
r16234 r16288 62 62 [global::System.Configuration.UserScopedSettingAttribute()] 63 63 [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 64 [global::System.Configuration.DefaultSettingValueAttribute("glpk 465.dll")]64 [global::System.Configuration.DefaultSettingValueAttribute("glpk_4_65.dll")] 65 65 public string GlpkLibraryName { 66 66 get { -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/Properties/Settings.settings
r16234 r16288 13 13 </Setting> 14 14 <Setting Name="GlpkLibraryName" Type="System.String" Scope="User"> 15 <Value Profile="(Default)">glpk 465.dll</Value>15 <Value Profile="(Default)">glpk_4_65.dll</Value> 16 16 </Setting> 17 17 </Settings> -
branches/2931_OR-Tools_LP_MIP/HeuristicLab.MathematicalOptimization/3.3/app.config
r16234 r16288 1 1 <?xml version="1.0" encoding="utf-8" ?> 2 2 <configuration> 3 4 <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <value>glpk465.dll</value>21 22 23 3 <configSections> 4 <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 5 <section name="HeuristicLab.MathematicalOptimization.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" /> 6 </sectionGroup> 7 </configSections> 8 <userSettings> 9 <HeuristicLab.MathematicalOptimization.Properties.Settings> 10 <setting name="ScipLibraryName" serializeAs="String"> 11 <value>scip.dll</value> 12 </setting> 13 <setting name="GurobiLibraryName" serializeAs="String"> 14 <value>gurobi80.dll</value> 15 </setting> 16 <setting name="CplexLibraryName" serializeAs="String"> 17 <value>cplex1280.dll</value> 18 </setting> 19 <setting name="GlpkLibraryName" serializeAs="String"> 20 <value>glpk_4_65.dll</value> 21 </setting> 22 </HeuristicLab.MathematicalOptimization.Properties.Settings> 23 </userSettings> 24 24 </configuration>
Note: See TracChangeset
for help on using the changeset viewer.