Model
This section describes the routing model, developed as visualization for the research project.
Algorithm
Because it is likely that the number of countries will remain more or less the same, the set of countries can be seen as a limited data set. Therefore, the algorithm is based on calculation instead of optimization. Given that a limited data set is not infinite, the results will in fact be optimal rather than sub-optimal.
Input values
- Language This parameter represents the language additional locations should speak and is given by the user. Based on this parameter, the list of locations to search in will be filtered from the complete list of locations (also see List of locations filtered on language).
- Current list of combinations Initially, the current list of combinations contains the combination of current locations, as given by the user, or the complete filtered list of countries.
-
Number of current locations This parameter represents the number of locations in each combination in the current list of combinations. Initially, this number is the number of current locations, when the user has given current locations, or ‘1’ when the list contains the complete filtered list of locations.
RANGE: 1 to 4 -
Number of locations requested This parameter represents the total number of locations to be found per resulting combination, as requested by the user.
RANGE: 2 to 5 - List of locations filtered on language This list contains all locations from the data source, after filtering on the language requested by the user, and will be used to search additional locations.
-
Number of overlapping work hours This parameter represents the requested number of overlapping work hours for two successive locations within one resulting combination.
RANGE: -3 to 9 -
Offset in time zone difference The user can choose whether the overlap in work hours has to be taken exact or with an offset of two hours in both directions.
RANGE: 0 or 2
Output
The output of the algorithm is a list of combinations of locations matching the parameters. A score, indicating the fit with the requested overlap in work hours, and the total number of developers in the locations per combination are used to sort the list.
Steps
- Loop combinations and list of locations to find match
- Check differences in time zones
- Check absence of location in combination
- Check absence of new combination in result list
- Calculate score (fit with requested overlap)
- Add new combination to new result list
- Increase number of locations
- Repeat until requested number of locations reached
- Sort result list descending by score and number of developers
More detail can be found in the research report, which can be downloaded here.