Optapy Versions Save

OptaPy is an AI constraint solver for Python to optimize planning and scheduling problems.

9.37.0b0

1 year ago

Upgraded to OptaPlanner 9.37.0.Final. Despite being a updated major version of OptaPlanner, the vast majority of OptaPy users are unaffected (unless you use your own Java jars with javax dependencies).

Fixes:

  • Truncating floats to 32-bits
  • Nullable variables
  • Java Stub files are now included
  • Inheritance in problem facts

8.31.1b0

1 year ago

Add support for Python 3.11 for jpyinterpreter, significantly improving Python 3.11 score calculation speeds.

Also optimize how calls are done in the interpreter, which can provide a modest improvement to score calculation speeds for some constraints.

8.30.0b0

1 year ago

Add the ConstraintVerifier API to allow testing of constraints. See https://www.optapy.org/docs/latest/constraint-streams/constraint-streams.html#constraintStreamsTesting for details.

8.28.0b0

1 year ago

This is the first release of optapy that includes jpyinterpreter, a module created to translate Python function bytecode to equivalent Java bytecode to massively increase performance by avoiding Foreign Function Interface (FFI) calls. You don't need to do anything in order to use it; it is on by default. Functions and classes that cannot be translated will be proxied to their CPython functions and types.

Bug fixes:

  • Support ValueRange, CountableValueRange and entity @value_range_provider
  • Support arbitary PythonComparable as @planning_id

8.23.0a0

1 year ago
  • Bug Fix: SolverManager solve and solveAndListen will now show exceptions
  • Bug Fix: A Uni, Bi, and Tri Constraint Stream can now join an UniConstraintStream

8.21.0a0

1 year ago

Dependency Upgrades:

JPype1 upgraded to 1.4.0, which fixes ambiguity errors when dealing with overloaded methods

New Features:

  • get_class is not longer required when interacting with SolverConfig and Constraint Streams
  • Pythonic version of Constraint Stream, Joiners, and ConstraintCollectors methods
  • New decorators @custom_shadow_variable and @variable_listener, which can be used to create a custom shadow variable that changes when a geninue @planning_variable (or another shadow variable) changes.

8.19.0a1

1 year ago
  • Remove memory leak caused by old best solution being retained until solving finishes
  • Add support for tuple and set collections, and collections that extend the collection.abc abstract base classes
  • Allow group by keys to be interacted with like normal python objects

8.19.0a0

2 years ago

New Features:

  • Ability to load a SolverConfig via XML from solver_config_create_from_xml_file(pathlib.Path)
  • Can modify the log level of optapy at runtime with logging

Fixed Bugs:

  • Logback configuration logs will no longer appear

8.17.0a0

2 years ago
  • New decorator @planning_list_variable, which can be used to model variables as an ordered disjoint set (for example, the customers to visit in vehicle routing).
  • Support for @problem_change, which allows changing the problem during solving.
  • List available subpackages in optapy.config, validate collection decorators.

8.16.1a0

2 years ago
  • Upgrade OptaPlanner version to 8.16.1.Final
  • Add @easy_score_calculator decorator
  • Add @incremental_score_calculator decorator
  • Fix bug in ScoreManager that causes an exception in concurrent requests in different threads
  • Add SolverStatus to optapy.types