Skip to content

JRES Solver v3.1.1

Latest

Choose a tag to compare

@popmonkey popmonkey released this 15 Jan 23:34
8c7a5be

This patch addresses some memory leaks and input validation

New in version 3

  • Maximum Busy Hours Constraint: Implemented a new global maximumBusyHours setting. This limits the total combined time a team member can be "busy" (either driving or spotting) within a sliding window, preventing overwork across multiple roles.
  • Global vs. Individual Constraints: Moved constraint definitions from individual team members to global solver settings to enforce uniform team rules:
    • Minimum Rest: minimumRestHours is now a global setting applied to all members.
    • Consecutive Stints: Replaced the per-member maxStints attribute with a global consecutiveStints setting, enforcing a consistent stint block size for all drivers.
  • Advanced Optimization Incentives: Introduced new weights to fine-tune the solver's behavior:
    • Role Coupling: roleCouplingWeight incentivizes keeping specific driver-spotter pairs together.
    • Rotation Beat: rotationBeatWeight incentivizes regular, fair rotation patterns.
  • Standardized packaging (jres_solver-[version]-[platform])
  • Output json includes all the options, settings, and solver version values used to arrive at the solution

For end users:

Note

Currently the easiest way to generate input for the tools (and library) is to use the JRES Availability Planner spreadsheet v3.0

Important

You must use the v3.0 spreadsheet. The other spreadsheets will not generate data in a format the JRES Solver v3 can handle

Check out the TOOLS documentation for standalone tools available for Windows, Linux, and MacOS (Intel and ARM)

For developers

Important

Breaking changes for library users. The input paramaters have changed.

The solver is available as a library on Windows, Linux, and MacOS (Intel and ARM)

See the main README for documentation

To develop the library, see the CONTRIBUTING documentation

What's Changed

Full Changelog: v3.1.0...v3.1.1