Skip to content

Tags: infiniteopt/InfiniteOpt.jl

Tags

v0.6.0

Toggle v0.6.0's commit message
[Diff since v0.5.9](v0.5.9...v0.6.0)

- `NLPExpr` is dropped in favor of `JuMP.GenericNonlinearExpr`
- `@register` has been replaced with `JuMP.@operator`
- `map_nlp_to_ast` has been discontinued
- Optimizer model API has been replaced with the more general transformation backend API. For modelling, the syntax is largely the same, but accessing methods like `optimizer_model_variable` have been changed to `transformation_variable`. The old API is still supported via deprecation and users are encouraged to run Julia in deprecation mode to update their code.
- `DomainRestrictions` have been replaced with `DomainRestriction` which enforces restrictions based on arbitrary Julia functions (similar to parameter functions). Please see the constraint guide in the documentation for details.
- `start_value_function` and `set_start_value_function` have been dropped in favor of `JuMP.start_value` and `JuMP.set_start_value`.
- Semi-infinite variables have been refactored internally to behave more consistently with point variables. The user API remains the same, though bounds and start values can now be specified.
- Point variables inherit domain info from infinite variables in a more general way. Semi-infinite and point variables defined via macros define their own info that overwrites that of the infinite variable. Semi-infinite and point variables defined functionally only modify info if specified via domain modification methods (e.g., `set_lower_bound`, `delete_lower_bound`).
- `@infinite_parameter` no longer supports `DenseAxisArray`s and `SparseAxisArray`s in favor of `Array` to significantly improve performance.
- `Collections.VectorTuple` have been refactored to focus on tuples of `Array`s and `Number`s.
- Core data structures have been  modified to simply the code base; however, users are not encouraged work directly with core data objects.

- Trained machine learning models can be embedded via the `InfiniteMathOptAI` extension.
- Transcribed values can be converted to interpolated functions via the `InfiniteInterpolations` extension.
- Semi-infinite variables can now have bounds and start values.
- Higher-order derivatives are now preserved to facilitate more accurate transformations.
- Recursion is removed to handle deeply nested nonlinear expressions without stackoverflow errors
- Non-JuMP models (e.g., ExaModels) can now be interfaced via the new transformation API.
- `set_parameter_value` now preserves the backend for efficient resolves.
- `warmstart_backend_start_values` efficiently warmstarts the backend for resolves.
- Support is added for `MOI.Parameter`.
- New examples have been added to the documentation.
- Misc. bug fixes and documentation improvements.

**Merged pull requests:**
- Refactor to directly support higher order derivatives (#341) (@pulsipher)
- Fix SigFig Bug (#344) (@pulsipher)
- Improve the Extensibility of Derivative Methods (#345) (@pulsipher)
- Support Expression Restrictions (#348) (@pulsipher)
- Generalize Transformation API (#349) (@pulsipher)
- Backend API Refinements (#351) (@pulsipher)
- Remove `ndarray` Keyword Argument (#356) (@pulsipher)
- Use `OrderedDict` for Array Parameter Supports (#357) (@pulsipher)
- Allow Non-Vector Input for Infinite Parameter Supports (#358) (@pulsipher)
- Improve Performance of Internal Semi-Infinite Variables (#359) (@pulsipher)
- Fix bug in `restricted_copy` (#360) (@pulsipher)
- Fix printing test for JuMP v1.23.0 (#361) (@odow)
- Improve Defaults of `JuMP.is_binary`, `JuMP.is_integer`, and `JuMP.is_fixed` (#365) (@pulsipher)
- Use invokelatest after eval to adjust to upcoming julia change (#369) (@Keno)
- Addition of three new examples under optimial control. (#370) (@dnguyen227)
- Fix Deletion of Variable Dependencies (#377) (@pulsipher)
- Update CI Versioning (#378) (@pulsipher)
- Update Optimal Control Example Documentation (#380) (@wenwen0231)
- Add InfiniteInterpolate as an extension (#382) (@wenwen0231)
- CompatHelper: bump compat for DataStructures to 0.19, (keep existing compat) (#385) (@github-actions[bot])
- Map finite parameters to JuMP.Parameters (#387) (@wenwen0231)
- Map parameter functions to JuMP.Parameters (#389) (@wenwen0231)
- Add Extension for MathOptAI (#390) (@pulsipher)
- Properly Handle Parameter Functions as JuMP.Parameters in Measures (#391) (@wenwen0231)
- Updated Versioning (#392) (@pulsipher)
- Clean Up and Simplify Dependence on Infinite Parameters (#393) (@pulsipher)
- Improve Parameter Support (#394) (@pulsipher)
- Add Support for Functions in Variable Domains and Overhaul Domain Restrictions (#395) (@pulsipher)
- Provide an API for Reformulating High Order Derivatives into 1st Order Derivatives (#396) (@pulsipher)
- Remove Parameter Numbers (#397) (@pulsipher)
- Remove Recursion from `map_expression` (#398) (@pulsipher)
- Prep for v0.6 (#399) (@pulsipher)

**Closed issues:**
- Cannot Transcribe Scalar Measures/Derivatives of Dependent Infinite Parameters (#56)
- Return Interpolated Value Functions (#82)
- Point Variable Inheritance is Invalidated with Changes to Infinite Variable Info (#148)
- Specify Exclusion Points for Constraints (#167)
- Maintain Higher-Order Derivative Representations (#197)
- Vector-Valued Nonlinear Functions (#229)
- Restrict Infinite Parameters to only use Arrays (#233)
- Allow Functional Bounds on Infinite Variables (#253)
- Support Restrictions on Expressions (#347)
- Can i write the InfiniteOpt's Model to file of nl? (#364)
- [FEATURE] Query expression and parameter function names. (#367)
- Deleting variables does not work when a constraint evaluates a variable at multiple time points (#376)
- Update example documentation (#379)
- Ability for Callback function during optimization run (#383)
- Can't install/precompile InfiniteOpt (#388)

v0.5.9

Toggle v0.5.9's commit message
[Diff since v0.5.8](v0.5.8...v0.5.9)

**Merged pull requests:**
- Switch Nonlinear API to `JuMP.GenericNonlinearExpr` (#308) (@pulsipher)
- Update for NonlinearOperator change (#321) (@odow)
- CompatHelper: bump compat for FastGaussQuadrature to 1, (keep existing compat) (#322) (@github-actions[bot])
- Prevent empty `+()` when mapping to ASTs (#324) (@pulsipher)
- Implement `constant_over_collocation` (#325) (@pulsipher)
- Fix keyword parsing with `;` in macros (#328) (@pulsipher)
- Fix Gauss Chebyshev Deprecation Error (#329) (@pulsipher)
- Add `set_optimize_hook` (#330) (@pulsipher)
- Fix typos in the JuMP README (#331) (@odow)
- Fix test for MOI v1.23.0 (#333) (@odow)
- Use New JuMP Macro API (#334) (@pulsipher)
- Fix legacy NLP interface (#340) (@pulsipher)

**Closed issues:**
- Enable Piecewise Linear Behavior in Collocation (#216)
- Fix Deprecation Warning from FastGaussQuadrature (#326)
- Failure with polynomial dynamics in OC problem (#339)

v0.5.8

Toggle v0.5.8's commit message
[Diff since v0.5.7](v0.5.7...v0.5.8)

**Closed issues:**
- Test failure on Julia 1.9 (#315)

**Merged pull requests:**
- Fix printing in JuMP v1.11.1 (#314) (@odow)
- Fix for Julia v1.9 by adding check_belongs_to_model (#316) (@odow)
- Fix Transcription w/ Constrained Nonlinear Measures (#318) (@pulsipher)
- Update JuMP Links (#319) (@pulsipher)
- Prep for v`0.5.8` (#320) (@pulsipher)

v0.5.7

Toggle v0.5.7's commit message
[Diff since v0.5.6](v0.5.6...v0.5.7)

**Closed issues:**
- Salvage value (#286)
- Support Complex Variables and Expressions (#300)
- Generative Support Generation over Empty Sets (#306)

**Merged pull requests:**
- CompatHelper: bump compat for FastGaussQuadrature to 0.5, (keep existing compat) (#297) (@github-actions[bot])
- Fix Test Coverage for NLP Change in JuMP (#298) (@pulsipher)
- Remove qt5-default from Documentation Build (#299) (@pulsipher)
- Fix Generative Supports for Empty Sets (#307) (@pulsipher)
- Fix Ambiguity with JuMP 1.10 (#310) (@pulsipher)
- Add README for JuMP Documentation (#311) (@pulsipher)
- Finalize JuMP README (#312) (@pulsipher)
- Prep `v0.5.7` Release (#313) (@pulsipher)

v0.5.6

Toggle v0.5.6's commit message
[Diff since v0.5.5](v0.5.5...v0.5.6)

**Closed issues:**
- Inconsistent Info Updates for Derivatives (#263)
- Inconsistent result in farmer problem (#269)
- Incompatible with JuMP v1.2 due to removal of nlp_data (#280)

**Merged pull requests:**
- Clarify Generation of Random Scenarios in SO Examples (#270) (@pulsipher)
- Update Links for New Organization (#275) (@pulsipher)
- Update the Tree Package Dependencies (#276) (@pulsipher)
- Update to JuMP v1.2 NLP Model Structure (#281) (@pulsipher)
- Update to Julia v1.8 (#282) (@pulsipher)
- Prep for v0.5.6 (#283) (@pulsipher)

v0.5.5

Toggle v0.5.5's commit message
[Diff since v0.5.4](v0.5.4...v0.5.5)

**Merged pull requests:**
- Fix Derivative Update Bug (#264) (@pulsipher)
- Transcription Doc Typo Fix (#265) (@pulsipher)
- Improve `DiscreteMeasureData` Tutorial (#266) (@pulsipher)
- Simplify Optimizer Model Docs (#267) (@pulsipher)
- Prep v0.5.5 (#268) (@pulsipher)

v0.5.4

Toggle v0.5.4's commit message
[Diff since v0.5.3](v0.5.3...v0.5.4)

**Closed issues:**
- Conflict with `KernelDensity` (#260)

**Merged pull requests:**
- Fix Generality of `sum` and `prod` (#261) (@pulsipher)
- Prep v0.5.4 (#262) (@pulsipher)

v0.5.3

Toggle v0.5.3's commit message
[Diff since v0.5.2](v0.5.2...v0.5.3)

**Closed issues:**
- beginner issue (ϵ not defined) (#202)
- Update to JuMP v0.23 (#222)
- Unsmooth points at the beginning and end of control function (#250)
- Cannot use `value` on Parameter Functions (#254)

**Merged pull requests:**
- Update to JuMP v0.23 (#223) (@pulsipher)
- Drop Use of `nl_` String Functions (#249) (@pulsipher)
- Update Workflows for Drafts (#256) (@pulsipher)
- CompatHelper: bump compat for "JuMP" to "1" (#257) (@github-actions[bot])
- Update Docs for JuMP v1 (#258) (@pulsipher)
- Prep for v0.5.3 (#259) (@pulsipher)

v0.5.2

Toggle v0.5.2's commit message
[Diff since v0.5.1](v0.5.1...v0.5.2)

**Merged pull requests:**
- Minor Keyword Argument Fix with 𝔼 (#191) (@pulsipher)
- Remove `max` and `min` as default NLP functions (#195) (@pulsipher)
- Require JuMP 0.22.2 for max/min fix (#200) (@pulsipher)
- Prep for v0.5.2 (#201) (@pulsipher)

v0.5.1

Toggle v0.5.1's commit message
[Diff since v0.5.0](v0.5.0...v0.5.1)

**Closed issues:**
- Update to Julia 1.6 as the LTS Version (#182)

**Merged pull requests:**
- Update to JuMP v0.22 (#177) (@pulsipher)
- CompatHelper: bump compat for "SpecialFunctions" to "2" (#178) (@github-actions[bot])
- CompatHelper: bump compat for "SpecialFunctions" to "2" for package docs (#179) (@github-actions[bot])
- Update Julia LTS (#183) (@pulsipher)
- Require at Least Julia 1.6 (#184) (@pulsipher)
- Prep for v0.5.1 (#185) (@pulsipher)
- v0.5.1 Compat fixes (#186) (@pulsipher)