Computes a lower bound of the span of the chain, taking into account only
the first nonchain task.
For more accurate results, this should be called after Precedences(),
otherwise the lower bound might be lower than feasible.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-08-06 UTC."],[[["The `DisjunctivePropagator` class in C++ acts as a constraint programming propagator, refining the possible values for task start, duration, and end times."],["It employs various propagation methods, including edge-finding, precedences, and forbidden intervals, to reduce the search space for feasible solutions."],["The propagator can handle chains of tasks with precedence constraints and considers time windows for non-chain tasks during propagation."],["It offers functionalities like mirroring tasks for time symmetry and computing lower bounds for the chain span."],["Users can iteratively call the `Propagate` method to further refine task bounds and detect infeasibility."]]],[]]