# Class FrequencyConstraint (1.15.0)

1.15.0 (latest) 1.14.0 1.13.0 1.12.0 1.11.2 1.10.0 1.9.1 1.8.5 1.7.0 1.6.0 1.5.0 1.4.3 1.3.2 1.2.0 1.1.3 1.0.1 0.1.1

    FrequencyConstraint(mapping=None, *, ignore_unknown_fields=False, **kwargs)

One may further constrain the frequency and duration of the breaks
specified above, by enforcing a minimum break frequency, such as
"There must be a break of at least 1 hour every 12 hours". Assuming
that this can be interpreted as "Within any sliding time window of
12h, there must be at least one break of at least one hour", that
example would translate to the following `FrequencyConstraint`:

::

{
min_break_duration { seconds: 3600 } # 1 hour.
max_inter_break_duration { seconds: 39600 } # 11 hours (12 - 1 = 11).
}

The timing and duration of the breaks in the solution will respect
all such constraints, in addition to the time windows and minimum
durations already specified in the `BreakRequest`.

A `FrequencyConstraint` may in practice apply to non-consecutive
breaks. For example, the following schedule honors the "1h every
12h" example:

::

     04:00 vehicle start
      .. performing travel and visits ..
     09:00 1 hour break
     10:00 end of the break
      .. performing travel and visits ..
     12:00 20-min lunch break
     12:20 end of the break
      .. performing travel and visits ..
     21:00 1 hour break
     22:00 end of the break
      .. performing travel and visits ..
     23:59 vehicle end

| ## Attributes ||
|---|---|
| **Name** | **Description** |
| `min_break_duration` | `google.protobuf.duration_pb2.Duration` Required. Minimum break duration for this constraint. Nonnegative. See description of `FrequencyConstraint`. |
| `max_inter_break_duration` | `google.protobuf.duration_pb2.Duration` Required. Maximum allowed span of any interval of time in the route that does not include at least partially a break of `duration >= min_break_duration`. Must be positive. |