optimaru
Copyright 2026 The optimaru Authors

Paths below refer to the source repository,
https://github.com/optimaru/optimaru; in the Python distribution each
use-cases/<name> is the subpackage optimaru.<name with dashes as underscores>.

This product includes software derived from Timefold Solver
(https://github.com/TimefoldAI/timefold-solver), which is licensed under the
Apache License, Version 2.0. Copyright Timefold BV and contributors.
Timefold Solver is a derivative work of OptaPlanner and OptaPy, which include
copyrights of the original creator, Red Hat, Inc., affiliates, and
contributors, all licensed under the Apache License, Version 2.0.

The engine in include/optimaru/ began as a C++ reimplementation, with
modifications, of parts of the Timefold Solver core. It has since been
restructured by The optimaru Authors: its file layout, type and function
names, configuration and public C++ API are optimaru's own and no longer
follow Timefold Solver's, and large parts of it (for example the decomposed
constraint objectives, score levels, move previews, SISR and other
ruin-and-recreate operators, adaptive operator selection and the search
strategies) were written by optimaru or implement algorithms from the
published literature. Portions of the engine still derive from the Timefold
Solver originals, so the engine as a whole is distributed as a modified
derivative of Timefold Solver under the Apache License, Version 2.0, and
every engine file carries a header that says so.

The domain models, constraint definitions and, where applicable, demo data
of the following use cases are C++ and Python translations, with
modifications, of the corresponding examples in Timefold Quickstarts
(https://github.com/TimefoldAI/timefold-quickstarts), licensed under the
Apache License, Version 2.0. Timefold Quickstarts is a derivative work of
OptaPlanner Quickstarts, Copyright Red Hat, Inc., affiliates, and
contributors.

  use-cases/bed-allocation
  use-cases/conference-scheduling
  use-cases/employee-scheduling
  use-cases/facility-location
  use-cases/flight-crew-scheduling
  use-cases/food-packaging
  use-cases/maintenance-scheduling
  use-cases/meeting-scheduling
  use-cases/order-picking
  use-cases/project-job-scheduling
  use-cases/school-timetabling
  use-cases/sports-league-scheduling
  use-cases/task-assigning
  use-cases/tournament-scheduling
  use-cases/vehicle-routing

use-cases/pickup-delivery extends the vehicle-routing translation above and
is likewise a derivative of the Timefold Quickstarts vehicle-routing example.
All other directories under use-cases/ are original to optimaru.

The following benchmark harnesses transcribe the corresponding quickstart's
demo data generator or constraint scoring and are derivatives of the same
examples:

  benchmarks/bed-allocation
  benchmarks/facility-location
  benchmarks/flight-crew-scheduling
  benchmarks/project-job-scheduling
  benchmarks/school-timetabling
  benchmarks/tournament-scheduling

All other directories under benchmarks/ are original to optimaru: they call
the use-case packages under use-cases/ but do not transcribe Timefold code.

Modification notice (Apache License 2.0, section 4(b)): the engine and the
files in the directories named above that derive from the Timefold originals
were translated from Java into C++ and Python and modified by The optimaru
Authors; the changes are recorded in the version history at
https://github.com/optimaru/optimaru.
Other files in those directories (for example bindings, build files, tests
and constraints added by optimaru) are original to optimaru.

optimaru is an independent implementation and is not affiliated with or
endorsed by Timefold BV or Red Hat, Inc. "Timefold" is a trademark of
Timefold BV; other product names are trademarks of their respective owners.
These names are used here only to describe the origin of the work.

----------------------------------------------------------------------------

Third-party software compiled into the Python extensions

Every compiled extension in the wheels embeds headers from pybind11
(https://github.com/pybind/pybind11), licensed under the BSD 3-Clause License:

Copyright (c) 2016 Wenzel Jakob <wenzel.jakob@epfl.ch>, All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
   list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
   this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors
   may be used to endorse or promote products derived from this software
   without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
