This document describes how ALICE handles out-of-sequence statuses for the purposes of Managing the on-going execution of a project:
- Conflict resolution approach
- Detailed Examples
- Adjacency Constraints
Overview of the problem
Throughout the ALICE planning process, the planner uses Recipes and Supports to define the work required as well as the constraints that govern it, in order to complete the construction of their project.
In some cases, those constraints may describe strong construction practicality preferences rather than rules that cannot be broken.
A recipe may indicate that “in-slab MEPs” must be installed after “Rebar bottom Layer” but before “Rebar top Layer”. However, while it may be very awkward, it could still be possible on-site to perform the work out of sequence and install the “in-slab MEPs” after the top layer of rebar in special circumstances.
Without proper handling of those exceptions in Manage, ALICE may see this as a breach of the construction rules and cause future simulations to be infeasible.
Conflict resolution approach
The general approach to support/precedence conflict resolution that we have adopted is as follows:
The completed out-of-sequence activity is recorded per the status data provided by the user
The downstream and upstream constraints (predecessors and successors) are joined as if the out-of-sequence activity became a zero-duration joining point.
This is better explained via the image below, where we see that any of the downstream activities on to the left of the out-of-sequence activity can still delay any of the ones on the right.
This becomes a bit more complex when different relationship types and lags are involved, so the next section will detail our approach to resolve the conflict in those cases.
For all the examples below, the following rules are followed:
A precedence needs to be reconnected so it won’t cause infeasibility
All relation types need to be treated accordingly (FS, FF, SF, SS)
New lag should be the sum of all lags
Violation of fixed relations (FaS, FaF, SaF, SaS) should be handled
The blue arrow is the new logic relationship assumed after a violation of the red one
What about Adjacency Constraints?
Since Completed tasks become new “entry points” in the case of adjacency constraints, the user should expect that completing an element in the middle of an adjacency chain will open up the possibility to work on any of the elements adjacent to it.
Author: Mazen Faloughi