OPTANO.Modeling 2.0.0.286

The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org. Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package OPTANO.Modeling --version 2.0.0.286
NuGet\Install-Package OPTANO.Modeling -Version 2.0.0.286
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="OPTANO.Modeling" Version="2.0.0.286" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add OPTANO.Modeling --version 2.0.0.286
#r "nuget: OPTANO.Modeling, 2.0.0.286"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install OPTANO.Modeling as a Cake Addin
#addin nuget:?package=OPTANO.Modeling&version=2.0.0.286

// Install OPTANO.Modeling as a Cake Tool
#tool nuget:?package=OPTANO.Modeling&version=2.0.0.286

The OPTANO Modeling library allows you to use C# as a Modeling language for mathematical optimization (mixed integer programming (MIP) and linear programming (LP)). It has a lightweight footprint and connects to several solvers.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net40 is compatible.  net403 was computed.  net45 was computed.  net451 was computed.  net452 was computed.  net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (4)

Showing the top 4 NuGet packages that depend on OPTANO.Modeling:

Package Downloads
Optimization.Framework

The Optimization.Framework allows you to use C# as a modelling language for mathematical optimization. It furthermore allows you to use solvers as services.

OPTANO.Modeling.Gurobi The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org.

State of the Art Mathematical Programming Solver. This package ships all files to run Gurobi with OPTANO Modeling on win64 and linux64. No additional installation required. OPTANO.Modeling.Gurobi comes with a size-limited Gurobi license (Package OPTANO Modeling required). Please visit https://www.gurobi.com/partners/optano to obtain an unlimited license.

Flips

A F# library for creating and solving Linear Programming and Mixed Integer Programming Models

OPTANO.Modeling.GLPK The ID prefix of this package has been reserved for one of the owners of this package by NuGet.org.

OPTANO.Modeling.GLPK provides a solver adapter that connects the GLPK ( https://www.gnu.org/software/glpk/ ) to OPTANO.Modeling ( https://www.nuget.org/packages/optano.modeling ). Copyright (C) 2020 OPTANO GmbH This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.22.0.647 156 3/11/2024
3.21.0.641 600 1/3/2024
3.20.1.637 319 11/28/2023
3.19.0.633 531 10/13/2023
3.18.1.628 295 9/25/2023
3.18.0.626 428 9/8/2023
3.17.0.625 450 8/23/2023
3.16.0.613 536 5/25/2023
3.16.0.611-beta 433 3/23/2023
3.15.1.588 1,307 2/22/2023
3.15.0.580 1,140 2/10/2023
3.14.2.577 1,108 1/13/2023
3.14.0.569 683 12/23/2022
3.13.1.566 1,547 11/17/2022
3.13.0.563 1,094 11/11/2022
3.12.0.560 689 10/18/2022
3.11.0.548 3,948 7/19/2022
3.10.1.544 2,398 5/16/2022
3.10.0.538 1,755 12/17/2021
3.9.2.537 1,123 12/10/2021
3.9.1.536 602 11/17/2021
3.9.0.535 1,849 11/15/2021
3.8.1.532 2,873 10/15/2021
3.8.0.529 749 8/27/2021
3.7.0.522 8,268 4/26/2021
3.6.0.510 1,253 12/10/2020
3.5.1.504 2,263 11/23/2020
3.5.0.498 2,106 11/17/2020
3.4.1.490-beta 603 8/20/2020
3.4.0.489 3,120 7/16/2020
3.3.0.474 4,353 2/21/2020
3.2.2.468 913 1/16/2020
3.2.1.467 891 1/9/2020
3.2.0.464 960 1/8/2020
3.1.0.460 1,374 12/10/2019
3.0.1.451 6,393 5/6/2019
3.0.0.450 928 4/29/2019
2.18.0.513 885 1/13/2021
2.17.1.507 867 11/25/2020
2.16.1.452 1,972 5/6/2019
2.16.0.445 923 4/25/2019
2.15.0.435 923 4/4/2019
2.14.1.430 1,009 2/14/2019
2.14.0.429 970 1/31/2019
2.14.0.428-pre2 976 1/14/2019
2.14.0.426-pre 1,005 1/14/2019
2.12.1.423 1,225 12/19/2018
2.12.0.415 1,002 12/15/2018
2.11.3.409 1,054 12/4/2018
2.11.2.408 1,100 12/3/2018
2.11.1.407 1,096 12/2/2018
2.11.0.403 1,269 11/29/2018
2.9.0.384 3,006 9/5/2018
2.8.1.343 1,435 5/25/2018
2.8.0.338 1,243 5/16/2018
2.7.0.336 1,483 5/2/2018
2.6.0.319 1,345 3/14/2018
2.5.0.312 1,485 1/24/2018
2.4.1.311 1,459 1/24/2018
2.4.0.303 2,040 11/15/2017
2.3.0.299 1,521 10/18/2017
2.2.0.291 1,442 9/28/2017
2.1.0.289 1,779 9/5/2017
2.0.0.286 2,329 9/3/2017
2.0.0.278-alpha02 1,299 8/26/2017
2.0.0.276-alpha01 1,238 8/20/2017
1.6.1.259 1,773 8/10/2017
1.6.0.252 1,449 8/4/2017
1.5.0.247 1,498 7/13/2017
1.4.0.236 1,549 5/8/2017
1.3.0.232 1,480 4/20/2017
1.2.3.222 1,743 3/6/2017
1.2.2.216 1,621 3/4/2017
1.2.1.207 1,756 3/3/2017
1.2.0.201 1,581 2/23/2017
1.1.0.191 1,579 1/3/2017
1.0.0.172 1,590 12/23/2016
0.9.1.163 1,609 11/23/2016
0.9.0.156 7,607 11/1/2016

http://docs.optano.com/modeling/current/changelog.html

Version 2.0.0 has been tested to comply with dotnet standard 2.0.



• Breaking Change: Removed  and replaced it with @OPTANO.Modeling.Optimization.Implication
o The reasoning behind this is that we tried to create a more intuitive API. Since a  basically was a "backwards implication", and the constructor required a @OPTANO.Modeling.Optimization.Not-constraint, the final effect was not apparent.
o The new @OPTANO.Modeling.Optimization.Implication operator clearly states which constraint will be the @OPTANO.Modeling.Optimization.Implication.Premise and which one will be the @OPTANO.Modeling.Optimization.Implication.Premise.Conclusion.
• Breaking Change: The signature of @OPTANO.Modeling.Optimization.GenericVariableCollection{T} was changed.
o The DebugNameGenerator delegate's signature was changed to (index) => string.
 Previously: (index) => StringBuilder
o Initially, we tried to enforce the usage of @System.Text.StringBuilder in order to prevent the user specifying names with long chains of string + string + ...
o With the introduction of short names, this style will not affect performance in a productive environment.
o We'd still suggest using either string.Format(), string interpolation, or expressions like 'new @System.Text.StringBuilder().Append() ... Append().ToString().
• Improvement: Better handling of BigM
o BigM is required during the transformation of @OPTANO.Modeling.Optimization.OperatorExpressions, such as @OPTANO.Modeling.Optimization.Abs to 'linear expressions'.
 User can provide an optional BigM when such a @OPTANO.Modeling.Optimization.OperatorExpression is created.
o New implementation for the automatic derivation of a BigM
 When @OPTANO.Modeling.Optimization.Variables have finite bounds, the maximum row sum is computed and used as BigM
 Only when this fails, the user-provided BigM is used.
 If user does not provide a finite BigM, an @System.InvalidOperationException is thrown.
• Improvement: Centralized name-cleansing and unified behavior among different types (Variable, Constraint, Objective, VariableCollection, @OPTANO.Modeling.Optimization.OperatorConstraint)
o Also, Constraint and Objective now use the same counter for the base64 suffixes
o This prevents duplicate name issues when exporting a model to MPS.
• Improvement: Operator '==' now creates a nicer Constraint for 'Variable x == double c'
o Old: 0 <= x - c < 0 (even if c = 0).
o New: c <= x < c
• Change: Configuration.CopySolutionToModel == true in default (was false)
• Change: @OPTANO.Modeling.Optimization.Expression.Evaluate now requires the passed values for the @OPTANO.Modeling.Optimization.Variables to be within the range of [LowerBound, @OPTANO.Modeling.Optimization.Variable.UpperBound].
• Fix: Gurobi ISV Keys have not been handled correctly
• Fix: Improved the stability of he LP- and MPS Reader/Writers. They are used for im-/export of models when a solver does not provide a native API.
• Fix: In some cases the ExpressionNormalizer threw a @System.Collections.Generic.KeyNotFoundException. Cases now are handled correctly.
• Fix: ModelTransformation
o @OPTANO.Modeling.Optimization.OperatorExpressions were not remove from the Model after they were transformed
o Some helper-constraints were not marked as helper and thus not removed from the Model even though RestoreUserModelAfterSolve was set to true.
o Normalizing all @OPTANO.Modeling.Optimization.Expressions before transforming them
 Can prevent issues while encountering @OPTANO.Modeling.Optimization.Times operators during derivation of BigM
o In a helper method BigM falsely was used, when working with a 'lower bound @OPTANO.Modeling.Optimization.Constraint'.
• Fix: @OPTANO.Modeling.Optimization.Model.RemoveConstraint now also looks for @OPTANO.Modeling.Optimization.OperatorConstraints
o Before, @OPTANO.Modeling.Optimization.OperatorConstraints could not be removed from the Model.
Please also take the changes of alpha01 und alpha02 into account, when upgrading from version 1.6.