======================
New Features
++++++++++++
- Support for the new runOptmodel CAS action is added
- Nonlinear optimization model building support is added for both SAS 9.4 and
SAS Viya solvers
- Abstract model building support is added when using SAS Viya solvers
- New object types, :class:`Set`, :class:`SetIterator`, :class:`Parameter`,
:class:`ParameterValue`, :class:`ImplicitVar`, :class:`ExpressionDict`, and
:class:`Statement` are added for abstract model building
- :meth:`Model.to_optmodel` method is added for exporting model objects into
PROC OPTMODEL code as a string
- Wrapper functions :func:`read_table` and :func:`read_data` are added to
read CASTable and DataFrame objects into the models
- Math function wrappers are added
- :code:`_expr` and :code:`_defn` methods are added to all object types for
producing OPTMODEL expression and definitions
- Multiple solutions are now returned when using `solveMilp` action and
can be retrieved by using :meth:`Model.get_solution` method
- :meth:`Model.get_variable_value` is added to get solution values of abstract
variables
Changes
+++++++
- Variable and constraint naming schemes are replaced with OPTMODEL equivalent
versions
- Variables and constraints now preserve the order in which they are inserted to the
problem
- :meth:`Model.to_frame` method is updated to reflect changes to VariableGroup and
ConstraintGroup orderings
- Two solve methods, `solve_on_cas` and
`solve_on_viya` are merged into :meth:`Model.solve`
- :meth:`Model.solve` method checks the available CAS actions and uses
the runOptmodel action whenever possible
- As part of the merging process, :code:`lp` and :code:`milp` arguments are
replaced with :code:`options` argument in :meth:`Model.solve` and
:meth:`Model.to_optmodel`
- An optional argument :code:`frame` is added to :meth:`Model.solve` for
forcing use of MPS mode and `solveLp`-`solveMilp` actions
- Minor changes are applied to `__str__` and `__repr__` methods
- Creation indices for objects are being kept by using the return of the
:func:`register_name` function
- Objective constant values are now being passed by using new CAS action arguments
when posssible
- A linearity check is added for models
- Test folder is added to the repository
Bug Fixes
+++++++++
- Nondeterministic behavior when generating MPS files is fixed.
Notes
+++++
- Abstract and nonlinear models can be solved on Viya only if the runOptmodel
action is available on the CAS server.
- Three new examples are added which demonstrate abstract model building.
- Some minor changes are applied to the existing examples.