[[tennis]]
= Tennis club scheduling
:imagesdir: ../..


[[tennisProblemDescription]]
== Problem description

Every week the tennis club has four teams playing round robin against each other.
Assign those four spots to the teams fairly.

Hard constraints:

* Conflict: A team can only play once per day.
* Unavailability: Some teams are unavailable on some dates.

Medium constraints:

* Fair assignment: All teams should play an (almost) equal number of times.

Soft constraints:

* Evenly confrontation: Each team should play against every other team an equal number of times.


[[tennisProblemSize]]
== Problem size

[source,options="nowrap"]
----
munich-7teams has 7 teams, 18 days, 12 unavailabilityPenalties and 72 teamAssignments with a search space of 10^60.
----


[[tennisDomainModel]]
== Domain model

image::use-cases-and-examples/tennis-scheduling/tennisClassDiagram.png[align="center"]
