This article outlines everything you need to know to work with primary constraints for activities and milestones in ALICE:
- Primary Constraint Types
- How ALICE Resolves Constraints When Generating a Schedule
- How to Assign Constraints to Tasks/Milestones on the Plan Page
- How to Modify Constraints to Tasks/Milestones on the Explore Page
Primary Constraint Types
Primary constraints are powerful tools that control the scheduling of activities and milestones within a project. These constraints help users model the project schedule accurately, considering various project constraints and requirements. Each constraint has its use case, depending on the project's specific needs and constraints. There are two types of constraint categories in ALICE: Mandatory Restrictions and Soft Restrictions.
Constraint types and constraint dates can be assigned to both activities and milestones. Similarly, both activities and milestones do not have to have constraint types or constraint dates assigned to them.
Soft Restrictions
As Late As Possible
-
Task/milestone ideally starts on the last day of the project, given other constraints. A task that has an ALAP constraint is started as late as possible, given that it does not cause delays to any other task.
Start On
- Task/milestone ideally starts on a given date. It cannot start before this date, but it can start later. If it starts later, it starts generating penalties to push it back to its correct finish date.
Start On or After
- Task/milestone does not have an ideal start. It cannot start before this date. It can start anywhere from the starting date to infinity. In this case, all tasks/milestones connected to this task/milestone are also pushed to the future.
Start On or Before
- Task/milestone has an ideal latest start date. If it starts later than that, it starts generating penalties, which motivates the ALICE solver to avoid starting it later.
Finish On
- Task/milestone ideally finishes on a given date. It can finish after this date, but it cannot finish earlier. If it finishes later, it starts generating penalties to push it back to its correct finish date.
Finish On or After
- Task/milestone does not have an ideal finish date. It cannot finish before this date, but it can finish anywhere from the finish date to infinity.
Finish On or Before
- Task/milestone has an ideal latest finish time. If it finishes after this date, it starts generating penalties, which motivates the ALICE solver to avoid finishing it later.
Mandatory Restrictions
Mandatory Start
- Task/milestone must start on a given day. If this is not possible, the critical path and longest path are affected, breaking the logic. This means infeasibility will occur.
Mandatory Finish
- Task/milestone must finish on a given day. If this is not possible, the critical path and longest path are affected, breaking the logic. This means infeasibility will occur.
How ALICE Resolves Constraints When Generating a Schedule
Resolving Mandatory Restrictions
When generating a schedule, ALICE treats mandatory restrictions as inviolable and will not produce a schedule that violates these constraints. If a schedule cannot be produced that respects all mandatory restrictiopns, the user will receive an 'infeasible' message with instructions for how to resolve the infeasibility.
Resolving Soft Restrictions
Soft restrictions such as start on, start on-or-before, finish-on, and finish-on-or-before are treated as "ideal" but not mandatory, meaning they can be violated if there is no feasible schedule that honors them. The ALICE approach to soft restrictions gives the user more power and control to find the best schedule for their needs.
Here's what to know about soft restrictions in ALICE:
- ALICE will calculate the variance between soft restriction dates and scheduled dates for all tasks or milestones with a soft constraint. We use the term 'constraint penalties' to describe this variance.
- ALICE compares different possible solutions based on constraint penalties. Solutions with higher penalties are deemed less optimal. On the explore page, only the most optimal solutions are displayed to the user.
- The scheduling algorithm seeks to minimize the penalties to get as close as possible to the customer's ideal solution given all constraints, mandatory and soft.
Resolving Resource Constraints
When resources (crews, material or equipment) are assigned to tasks and a resource pool is defined, ALICE treats all resource requirements as inviolable and will not produce a schedule that over-allocates resources. If a schedule cannot be produced that respects all mandatory restrictions and resource requirements, the user will receive an 'infeasible' message with instructions for how to resolve the infeasibility.
Key Differences between ALICE and P6 Constraint Resolution
- With ALICE, users can have confidence that the schedule generated does not violate a rule that they defined. Primary constraints and resource constraints are always simultaneously honored, and soft restrictions are recognized as ideal and prioritized.
- ALICE will never generate a schedule that over-allocates resources, violates mandatory constraints, disregards soft restrictions.
- P6 will not simultaneously resolve primary constraints and resource constraints. If a user hits F9 on a resource loaded schedule the resource constraints are ignored and the primary constraints are honored.
- If a user chooses to "resource level" in P6, then primary constraints are ignored and resources are leveled.
- If a user chooses to "Schedule +Resource Level" at the same time in P6 then resource constraints are honored and primary constraints are ignored
How to Assign Constraints to Tasks/Milestones on the Plan Page
Constraint types and constraint dates/times can be assigned on the Plan page for both tasks and milestones. It is not required for tasks and milestones to have a constraint type or date/time assignment.
Constraint Assignment for Task or Milestone:
- In the Gantt chart, "right-click" and select "Edit Columns."
- Select "Constraint" and click "Done" to add the column to the Gantt chart, if it is not already shown on your plan page.
- Double-click on the Constraint cell to open the assignment window.
- Select the required constraint type (nine possible types):
- As late as possible
- Start On
- Start On or After
- Start On or Before
- Mandatory Start
- Finish On
- Finish On or After
- Finish On or Before
- Mandatory Finish
- Select a date for your constraint. You can optionally specify a time as well.
- Click Save to complete the process.
How to Modify Constraints to Tasks/Milestones on the Explore Page
In the Explore page, scenarios can be rapidly created to iterate different constraint type and constraint date options. Here are the conditions where primary constraints can be edited in the Milestones tab under the Create New Scenario menu:
- All milestones (with or without primary constraints assigned on the Plan page)
- Only tasks with primary constraints assigned on the Plan page
In the image below, the example project has 1 milestone that can be edited in the Explore page when running a new scenario.
Modify Constraint Type and Date/Time for Task and Milestone in Explore Page:
- In the Explore page, select +Create New Scenario
- Select Milestones tab
- Use the Search by name or ID field, Filter by type field, or scroll through to find the desired task or milestone that you are looking for
- Change the Constraint type using the dropdown
- Change the Date and/or Time
- Select Run Scenario