The Pairing Optimizer is a tool from where you can auto-generate pairings with a certain level of optimization.
You need to enable the Pairing Optimizer in the User Group in order to see it. Select the Miscellaneous dropdown, then grant access to PairingOptimization.
Select Crew Pairing Optimization
Click the Crew Pairing Optimization button in the lower Gantt window to access it.
Crew Complement
The Crew Complement must have the HR type checked corresponding to the Complement. If only Pilot or Cabin, check the corresponding field.
Note: Versions prior to 21.5 need to have both options checked for combined pairings.
Select a Period
Field | Description |
Load | This loads data directly from the database. |
Gantt | This uses the Aircraft for the zoomed period you have loaded into the Gantt. The flights used for the optimization is controlled by the filter in General options. |
Template
Multiple templates can be created. We now refer to the section inside the ‘Template’ border of the tool.
Template Creation Steps
- Click the Add button.
- Enter a template name under the Name field.
- Click the Save button.
Template Deletion Steps
- Select a template to be deleted from the dropdown under the Select field.
- Click the Delete button.
- Click the Save button.
Copy a Template Steps
You can copy an existing Template by clicking the Copy button. A copy is created with the original name + "- Copy".
Rename the template then click the Save button.
Parameters
Parameters should be always configured under a template. Click the Select field within the Template section and a template name should be visible.
Here are the options in the Parameters section:
Algorithm Options
Field | Description |
Generation Option | Select the type of pairings to be generated:
|
Parallel Legality Check | The resulting pairings after the generation phase will be checked in parallel, which most of the type translates into a better time performance of the legality check process. |
Filter No Positions | This filter is used if you don't allow some flights from you own timetable to be used as positioning/deadhead flights. The flights that are used for positioning/deadheading will get a roster designator from the Leg Filter. |
Apply N-OC Legalities on Run | This option includes the legality in the run. This is similar to the run option "Apply Legalities". |
Add Deadheads On Run | A positioning sector will be created if the pairing is incomplete after the pairing generation and/or legality checks. The system will create a Reference activity of one hour length and add it to the pairing with minimum rest to the next flight. The user need to correct that kind of pairings manually. Note: The connection time is controlled by the "Max Layover time". |
Create Longer Pairings On Run | When Run button is checked and Round Trip Pairings option has been selected under the ‘Generation Option’, longer pairings will be created. |
Generation Options
Field | Description |
Filter | Filter the flights from the loaded schedule to used by the tool. This is a Leg Filter. Note: You will get a better generation if you apply a filter. |
HR Types | This is a mandatory field. Select the Human Resources Types to be used by the tool, such as Pilots, Cabin Crew, etc. HR Types come from HR Types. Notes
|
Bases | This is a mandatory field. This selected bases and they must remain the same at any time point within the flight schedule used. |
Ignore Covered Activities | This ignores the flights, from the used flight schedule, which are covered by pairings saved into the database. |
Use Covered Activities Only, For Positioning | Only uses a flight for positioning if it is already covered. It considers the pairings already created in the Gantt before the optimizer generates any, so that the user can select to not "double cover" these flights. Notes
|
Max Carry In Search [h] | This defines the period, in hours, before the schedule to be optimized, where the tool should look for flights to cover carry in. |
Max Carry Out Search [h] | This defines the period, in hours, after the schedule to be optimized, where the tool should look for flights to cover carry outs. |
Pairing Parameters
Field | Description |
Max Pairing Length | Maximum allowed pairing length from first departure time to last arrival time. Note: If the parameter to cover more than one day will increase the processing time dramatically. |
Max Duty Time [h] | Maximum allowed duty time from check-in to check-out. |
Max Duties | Maximum number of duties per day allowed within a pairing. If you want a two-day pairing, you shall use Max duties in "Longer Pairings". |
Max Sectors/Duty | Maximum number of flights a duty can contain. Note: Must be greater than one otherwise, you will get the error "Sequence contains no elements". |
Min Sit Time [min] | Minimum sitting time/transition time allowed when there is a tail change. Note: Sit time, also known as Turn Around Time, is the time between STA and STD. |
Max Sit Time [min] | Maximum sitting time allowed. Note: Must be greater or equal sit time (connection time). |
Min Layover Time [min] | Minimum layover time allowed. Note: Must be greater than Maximum sit time (connection time). |
Max Layover Time | Maximum layover time allowed. Note: Must be greater or equal to Min Layover time. |
Max Positions Outside of FDP/Pairing | Defines how many flights within a pairing can be used for positioning outside FDP for crews. |
Hotel Reference Activity fill-in | This option will fill in hotel activities in the pairing if the break is larger than the Min layover time |
Connection Times
The Connection Times can be specified to a very detailed level. By right-click in the grid, you can add, delete, and move rows.
The conditions will read from top and down. The first condition met will apply.
Field | Description |
Act Type 1 and Act Type 2 | This specifies the connection time between Activity 1 and 2. |
Flight Type 1 and 2 | This specifies the connection time between Flight Type 1 and 2. |
Stations | The connection time at a station. |
A/C Type 1 and 2 | This specifies the connection time between A/C Type 1 and 2. |
Apply only on AC change | Check this if the rule only apply to Aircraft change (Tail change). |
Flight No 1 and 2 | Both of these columns may contain comma-separated lists of FlightIDs: 'Flight No 1' may contain a list of incoming flights, and 'Flight No 2' may contain a list of outgoing flights.
If 'Flight No 1' contains a comma-separated list of one or more flight IDs, then that means that the connection time-constraint only applies to connections where the incoming flight is one of the flights in the list. If 'Flight No 1' is left empty, then the applicability of the connection time-constraint is not modified.
Similarly, if 'Flight No 2' contains a comma-separated list of flight IDs, then that means that the connection time-constraint only applies to connections where the outgoing flight is one of the flights in the list. If 'Flight No 2' is left empty, then the applicability of the connection time-constraint is not modified.
Example: If 'Flight No 1' is set to "AB001" and 'Flight No 2 is set to "AB002, AB003", then the connection time-constraint only applies to connections where the incoming flight is "AB001" and the outgoing flight is either "AB002" or "AB003". |
Min / Max Time | Min/max connection time in hh:mm.
Note: You need to have a realistic value; otherwise, no pairings will be generated. The default max connection time should cover the majority of your pairings, e.g. 01:00. If you have individual flights with higher connection time, you should create a separate rule. |
Deadhead Time before Dep | This parameter is only available in older versions. This parameter control the max. connection time between a Deadhead and a flight before Departure. Notes
|
Deadhead Time after Arr | This parameter is only available in older versions. This parameter control the max. connection time between a flight and a deadhead after Arrival. Notes
|
Optimization Options
Field | Description |
Max Positions/Activity | Defines the maximum allowed number of set of crews to be positioned on a flight. Notes
|
Max Vehicle Change Time With Penalty [min] | Defines the maximum time in minutes of connection until a tail change will be penalized. Note: The penalty will set under 'Cost Parameters'. Example of Usage If the value is set to 60, it represents that any connection which will involve a tail change for the crew will be penalized if it is under 60 minutes. |
Use Crew Sets Penalty’ & ‘Base’ & ‘Max Head Count SCS W/O Penalty | Decides if headcount penalty should be used. If the head count penalty is used, there is the option to select how many head counts are allowed for each base without penalty. Notes
|
Time Window Size | dd:hh:mm |
Cost Parameters
Note: The costs are mathematical costs. This mean that a high number is a high penalty, it doesn't relate to money or time.
Field | Description |
Pairing Cost | Mathematical cost of a pairing. |
Position Penalty/Minute | Mathematical cost per minute when covering a flight with more than one set of crews. |
Sit Connection/Minute | Mathematical cost per minute of a sit connection. |
Layover Cost/Minute | Mathematical cost per minute of a layover. |
Fix Cost/Layover | Fix mathematical cost per layover. |
Position Penalty | Mathematical cost for penalizing flights, which are covered with more than one set of crews. |
A/C Change Penalty | Vehicle Change Time With Penalty [min]. |
D/H Penalty | Mathematical cost for penalizing deadheads. |
SCS Penalty | Mathematical cost for penalizing head counts, which over the threshold defined in ‘Max Head Count W/O Penalty’. |
Virtual and Real Cost
With the introduction of version 21.6, it is possible to use Virtual and Real Cost in the optimization. fixed cost accrued by each pairing. We recommend 1000 or higher.
Longer Pairing
Field | Description |
Pairing Length [h] | Defines the maximum allowed pairing length. Note: This parameter must be equal or greater than "Pairing Parameters - Max Duty Time". |
Max Duties | Defines Maximum number of duties allowed in the pairing. This parameter currently works together with the "Paring Parameter - Max pairing length". E.g. if Max Duties is 2 and "Paring Parameter - Max pairing length" is 48, then you will get a 2 days parting. |
No Layover After Base | Decides if there can be a layover at the base. |
Use Time Windows | Time Windows are used to speed up the optimization and is in general needed to get a solution within a reasonable time frame (if the input data contains a large number of flights, or the period over which we optimize is long). |
Time Window Size | DD:HH:MM |
Legality Rules Parameter
Rules Selection
In the dropdown under the Legality Groups, one or multiple rules belonging to different groups can be shown under the Available Rules section label after the Show Rules button is clicked. The rules to be used by the tool should be marked and moved to the right side list (‘Rules To Use’) via the controls in between lists.
Max FDP Rules
If FDP Rules are used (if ‘Max Positions Outside Of FDP/Pairing’ from ‘Pairing Parameters’ is greater than zero) then the rule(s), which constraints maximum FDP should be moved from ‘Selected Rules’ to ‘Rules To Use’.
Built In Rules
You can use both N-OC's legalities and built in rules. This is a high-performance boost for CPO if built in rules are used instead of N-OC's legalities.
Field | Description |
Min Rest | Min rest Home Base in minutes. Rest away from Home Base. |
Min FDP | Available tables from the company legality.
|
Meal Stop | Meal Time. Max FDP Before Meal. |
Consecutive Night Duties | Max Sectors in Consecutive Night Duties. Note: The Optimizer can be made to mimic the FAR117.27 rule, about max consecutive night duties. Max Consecutive Night Night Duty Start Night Duty End |
Max Flight Time | Setting up Max Flight Time with the appropriate table, the Optimizer should be able to mimic the rule regarding max flight time in FAR117. |
Note: In the presence of union, and/or other rules, the Mimer Legality Check might still be needed in addition to this. In cases with no transatlantic flights and no other limiting rule sets, a legal solution should be provided without clicking the Apply Legalities button, given that the parameters in built in rules are set up correctly.
Deadheads
Field | Description |
Load from Dataservice | This option will allow you to read Deadhead flights from a central NB database.
|
Airline | Airlines to read from the dataservice. |
Flight Number | Flight numbers to read from the dataservice. |
CPO Runs
To run the tool either click the Run button or go step-by-step with the buttons below the Run button. The process can be stopped by clicking the Stop button at any point.
Run
This is doing a complete run based on user inputs.
When this button is clicked, the pairing generation takes place, then legalities are applied on the generated pairings. If Add Deadheads On Run checkbox under ‘Algorithm Options’ is checked, the deadheads will be added to create pairings with the uncovered legs. Otherwise, it will jump to the optimization phase. If Round Trip Pairings is selected as a generation option and Create Longer Pairings On Run is checked (both can be found in the ‘Algorithm Options’ tab), the longer pairings out of the round trip pairings will be created.
Generate Pairings
Generates pairings based on the user inputs. Pairings generated here might be illegal.
Apply Legalities
Used for applying legalities on the generated pairings. This works only after Generate Pairings button has been clicked.
Add Deadheads
Used for adding deadheads on the uncovered legs. This button can be used either after ‘Generate Pairings’ or after ‘Apply Legalities’.
Optimize
Used for optimizing pairings. It can be used either after ‘Generate Pairings’, after ‘Apply Legalities’, or after ‘Add Deadheads’.
Create Long Pairings
Used to create longer pairing out of round trips pairings: Three stages take place:
- Pairing Generation
- Legality Checks
- Pairing Optimization.
This button can only be used after Optimize button if the generation option is ‘Round Trip Pairings’.
Stop
Used to cancel any process within the tool. Button is available only if a process is going on.
Statistics
When the run has finished, you will see the result in the Statistics window. If you have two parameter settings, you will see statistics for each line.
Field | Description |
Row | Sequence number if the run is repeated. |
Activities | Number of all loaded flights. |
Generated Pairings | The following options are available:
|
Uncovered Activities | Number of uncovered activities. |
Generation Time | Initial generation time. |
Mimer Time | Legality calculation time. |
Opt Time | Pairing Optimization time. |
Pairing Length Data | Number of duties. Max/Avg and Min hours. |
Flights/Pairing | Average number of flights per pairing. |
Duties/Pairing | Average number of duties per pairing. |
Duty Data | Number of duties. Max/Avg and Min hours. |
BLH UTC | Total BLH in UTC per Base. Pairing with Max/Avg/Min. |
BLH Local | Total BLH in Local per Base. Pairing with Max/Avg/Min. |
Layover Length Data | Number of layovers. Max/avg/min length. |
Flights with Position Data | Number of flights used for positioning. |
A/C Change Connection Data | Number pairings with aircraft change. |
Penalized A/C Change Connection Data | Number pairings with aircraft change that has been penalized. |
Sit Connection Data | Turn around times. Number of TA/Man/Avg/Min. |
Additional Legs | Number of Deadheads/Carry in/Carry out. |
Production Days | Total production days per base. |
Print Statistics
There is currently no option to print the statistics. You can click on a row so it is highlighted in blue, press CTRL+C to copy and then paste into Excel or Word using CTRL+V or the paste command from the menu.
Load the Gantt
You can either click the Clear Statistics or Show On Gantt buttons. If you make a new run without saving, the new result overwrites the previous result.