Project scheduling using relational predictive modelling

The method addresses the limitations of conventional project scheduling by using an ensemble of trained models to optimize project schedules across multiple dimensions, enhancing accuracy and efficiency through iterative refinement and user-specific training.

WO2025224349A1PCT designated stage Publication Date: 2025-10-30OFFOLIO
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
PCT/EP2025/061447
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-04-26
Filing Date
2025-04-25
Publication Date
2025-10-30

AI Technical Summary

Technical Problem

Conventional project scheduling methods struggle to accurately consider multiple characteristics simultaneously, leading to inefficiencies in achieving project objectives due to limitations in handling more than two or three specifications.

Method used

A computer-implemented method utilizing an ensemble of trained models to optimize project scheduling by iteratively applying models to subsets of specifications, allowing for the consideration and optimization of multiple dimensions such as duration, cost, dosimetry, and CO2 production, while incorporating user-specific training data to fine-tune models.

Benefits of technology

The method enables the optimization of project schedules to achieve technical objectives by considering multiple dimensions, improving accuracy and efficiency by iteratively refining model predictions based on quality assessment and data refinement.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2025061447_30102025_PF_FP_ABST
    Figure EP2025061447_30102025_PF_FP_ABST
Patent Text Reader

Abstract

The present invention relates to a computer-implemented method of optimizing a scheduling. Said scheduling comprises a hierarchy of tasks and a set of specifications, each task being associated to a vector of values. Said vector comprises a plurality of components each associated to a specification of said task. The method comprising providing an initial scheduling, comprising a hierarchy of tasks and an initial value for said vector associated to each task, and an ensemble of trained models. Each model is configured to accept as input a first scheduling and to output a second scheduling by optimizing the associated value of a respective subset of specifications of the first scheduling. The method further comprises optimizing the initial scheduling (21) by applying one or more models of said provided ensemble of trained models on the initial scheduling.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] PROJECT SCHEDULING USING RELATIONAL PREDICTIVE MODELLING

[0002] FIELD OF INVENTION

[0003] [1] The present invention relates to the field of computer programs and systems, and more specifically to a method, system and program for project management, project scheduling and automation.

[0004] BACKGROUND OF INVENTION

[0005] [2] Project scheduling is part of project management, which relates to the use of schedules to plan and subsequently report progress within the project environment to achieve the respective technical goals for each stage of the project. The project may be in particular related to manufacturing operations in a factory to fabricate an object (e.g., a mechanical part), or to energy production in a power plant. Each scheduling may have multiple characteristics to consider, for example, the time required for each task, the required time or material for each task, and interdependency between the tasks. For example, a factory may need to predict, for a specific production line, the production duration, the energy consumption, and a certain order in which the manufacturing tasks must be carried out (e.g., demoulding tasks must happen after melding tasks), or security (e.g., by ensuring that there are always enough workers / employees that watch the factory).

[0006] [3] Conventionally, project scheduling was done manually, or by the aid of a project management software. The procedure of project scheduling may in particular needs input(s) from external systems. The output of such software may be linked to a controlling system configured to automatically operate a factory or a power plant by providing a set of instructions of control signals so as to achieve the technical objective.

[0007] [4] However, such conventional solutions are not adapted to the complexity of big projects which require to consider several characteristics at the same time. The existing project management software, and humans are not capable to consider more than two or three specifications simultaneously. This negatively affects the accuracy of scheduling regarding to achieving its objective.

[0008] [5] Within this context, there is still a need for an improved method of project scheduling.

[0009] SUMMARY

[0010] [6] This invention thus relates to a computer-implemented method of optimizing a scheduling. Said scheduling comprises a hierarchy of tasks and a set of specifications, each task being associated to a vector of values, said vector comprising a plurality of components each respective to a specification of the set. The method comprises providing an initial scheduling comprising a hierarchy of tasks and an initial value for said vector associated to each task, and providing an ensemble of trained models each being configured to accept as input a first scheduling and to output a second scheduling by optimizing the associated value of a respective subset of specifications of the first scheduling. The method further comprises optimizing the initial scheduling by applying one or more models of said provided ensemble of trained models on the initial scheduling.

[0011] [7] According to other advantageous aspects of the invention, the method comprises one or more of the features described in the following embodiments, taken alone or in any possible combination.

[0012] [8] According to one embodiment, applying one or more of said provided ensemble of trained models on the initial scheduling comprises iterations of determining one or more subsets of the set of specifications to be optimized; selecting at least one model from the ensemble of trained models for each determined subset; and applying, to a current scheduling, the at least one selected model, thereby obtaining an updated scheduling; wherein the current scheduling is said initial scheduling or the updated scheduling according to a preceding iteration / repetition.

[0013] [9] According to one embodiment, for each iteration, determining one or more subsets of the set of specifications to be optimized is based on the updated scheduling of the one or more preceding iterations.

[0010] According to one embodiment, the selecting of the at least one model comprises: determining a fitting between each of the one or more determined subsets and the provided ensemble of trained models; and selecting at least one model from said ensemble based on the determined fitting.

[0014]

[0011] According to one embodiment, determining of a fitting comprises computing a cross validation.

[0015]

[0012] According to one embodiment, the set of specifications comprises one or more of: a duration, number of people, cost, dosimetry information, energy consumption, or CO2 production.

[0016]

[0013] According to one embodiment, the method further comprises fine-tuning at least one sub-ensemble of models by inputting a user specific training dataset comprising a plurality of predefined schedulings provided by the user, wherein each predefined scheduling comprising at least one specification to be fine-tuned; selecting at least one model from the ensemble of trained models which has the specification to be fine-tuned in said respective subset; and fine-tuning the at least one selected model based on the inputted user specific training data set.

[0017]

[0014] According to one embodiment, the method further comprises forming an ensemble of the fine-tuned sub-ensemble of models.

[0018]

[0015] According to one embodiment, the method further comprises visualization of the optimized scheduling.

[0019]

[0016] In addition, the disclosure relates to a computer program comprising software code adapted to perform a method of optimizing a scheduling compliant with any of the above execution modes when the program is executed by a processor.

[0020]

[0017] The present disclosure further pertains to a non-transitory program storage device, readable by a computer, tangibly embodying a program of instructions executable by the computer to perform a method for of optimizing a scheduling, compliant with the present disclosure.

[0018] The present disclosure further pertains to a (e.g., non-transitory) computer readable storage medium having recorded thereon the computer program and / or the formed ensemble of the fine-tuned subset of models.

[0021]

[0019] Such a non-transitory program storage device can be, without limitation, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor device, or any suitable combination of the foregoing. It is to be appreciated that the following, while providing more specific examples, is merely an illustrative and not exhaustive listing as readily appreciated by one of ordinary skill in the art: a portable computer diskette, a hard disk, a ROM, an EPROM (Erasable Programmable ROM) or a Flash memory, a portable CD-ROM (Compact-Disc ROM).

[0022]

[0020] The present disclosure further pertains to a system comprising a processor coupled to a memory and preferably a graphical user interface, the memory having recorded thereon the computer program.

[0023]

[0021] It is further provided a device comprising a computer readable storage medium having recorded thereon the computer program. The device may form or serve as a non- transitory computer-readable medium, for example on a SaaS (Software as a service) or another server, or a cloud based platform, or the like. The device may alternatively comprise a processor coupled to the data storage medium. The device may thus form a computer system in whole or in part (e.g. the device is a subsystem of the overall system). The system may further comprise a graphical user interface coupled to the processor.

[0024] DEFINITIONS

[0025]

[0022] In the present invention, the following terms have the following meanings:

[0026]

[0023] The terms “adapted” and “configured” are used in the present disclosure as broadly encompassing initial configuration, later adaptation or complementation of the present device, or any combination thereof alike, whether effected through material or software means (including firmware).

[0027]

[0024] A “project” refers to a temporary and unique endeavour with a defined scope, objectives, and timeline, undertaken to deliver a specific technical outcome or result. Said project comprises a set of coordinated activities, resources, and technical objectives to achieve via a series of technical acts or tasks. Said specific technical outcome may be fabricating a technical object (e.g., mechanical part), or any other technical goal. Said specific technical outcome can be broken down into a plurality of minor objectives each respective to a subseries of said acts. Each minor objective is respective to a stage or phase of the project and in assigned to a respective deliverable. The term “project” may equivalently refer to a portfolio which is a group of projects each defined as above. Said group of projects may have a common set of specifications and / or a common objective.

[0028]

[0025] By a “task” it is meant the smallest unit of a project (or projects when a project is in the meaning of a portfolio as defined above). The task may be a sub-step of a manufacturing process, for example, moulding, unmoulding, wrenching, or any sub-steps thereof if necessary. Each task is associated with an objective and / or actions to be performed to achieve an objective. The task is considered to be performed / realized when the objective is achieved. Different tasks of a project may be defined by a user, a manager, or an engineer, as an initial step of project management. Each task is also associated with a vector of values which comprises a plurality of components and each component is associated to a specification of the task. The respective value of a component defines a value for the associated task.

[0029]

[0026] A “Work Breakdown Structure (WBS)” is a systematic and hierarchical representation of a project's scope, breaking it down into progressively smaller and more manageable elements (i.e. tasks). It involves a structured breakdown (i.e., decomposition) of the overall project objectives into distinct phases, deliverables, and work packages. The WBS serves as a foundation for project scheduling and management, providing a clear and organized framework that allows project teams to better understand, coordinate, and execute the necessary tasks. The hierarchical nature of the WBS enables a detailed and systematic exploration of project components, fostering effective communication, resource allocation, and tracking of project progress.

[0030]

[0027] By a “specification” or equivalently a “dimension” or a “characteristic” it is meant a description of a constraint, for example a time constraint, or an energy constraint; or a resource requirement as a number of people or cost / money budget. A specification is defined by a unit, and a quantity. In some examples, a specification is additionally defined by a (respective) capacity or a bounding value. Said (respective) capacity is defined by a unit and a quantity.

[0031]

[0028] By a “project scheduling’’ or a “project schedule’’ it is meant an interdependency between the series of activities and the minor objectives. A project scheduling may define how different task of projects are dependent on each other, and if a first task should be accomplished before a second task, after the second task or at the same time with the second task. In other words, scheduling comprises a hierarchy of tasks and a set of specifications. A project scheduling may be recorded as a text file, for example an Excel file or as graph using any suitably graph representation.

[0032]

[0029] By a “hierarchy of tasks” it means a network of a plurality of tasks, each task being represented as a node. Each two nodes in such a network may have directly or indirectly connected to each other via links represented by edges. Each edge connects two nodes together. By a direct connection it is meant that said two nodes are connected by a single edge. By an indirect connection it is meant that said two nodes are connected via other nodes and more than one edges. A direct or indirect connection define a type of dependency between the respective of the two nodes and therefore the two or more associated tasks.

[0033]

[0030] The term “processor” should not be construed to be restricted to hardware capable of executing software and refers in a general way to a processing device, which can for example include a computer, a microprocessor, an integrated circuit, or a programmable logic device (PLD). The processor may also encompass one or more Graphics Processing Units (GPU), whether exploited for computer graphics and image processing or other functions. Additionally, the instructions and / or data enabling to perform associated and / or resulting functionalities may be stored on any processor- readable medium such as, e.g., an integrated circuit, a hard disk, a CD (Compact Disc), an optical disc such as a DVD (Digital Versatile Disc), a RAM (Random- Access Memory) or a ROM (Read-Only Memory). Instructions may be notably stored in hardware, software, firmware or in any combination thereof.

[0031] By “providing X” for / to a method, it is meant that the method obtains or receives X or becoming able to have access to X. This may be realized, for example, when X become available by being stored / transferred / downloaded to a memory to which the method has access.

[0034] BRIEF DESCRIPTION OF THE DRAWINGS

[0035]

[0032] The present disclosure will be better understood, and other specific features and advantages will emerge upon reading the following description of particular and non-restrictive illustrative embodiments, the description making reference to the annexed drawings wherein:

[0036]

[0033] Figure 1 presents a general flowchart of the method.

[0037]

[0034] Figure 2A-D presents an example of a (visualization of) project scheduling. Figure 2A present a global view of a graphical representation of project scheduling. Figures 2B, 2C, and 2D present a zoom view of regions I, II, and III of Figure 2A, respectively.

[0038]

[0035] Figure 3 presents a schematic of an example of the method.

[0039]

[0036] Figure 4 shows an example of the system.

[0040]

[0037] Figure 5 and 6 presents flowcharts according to specific embodiment of the method.

[0041]

[0038] On the figures, the drawings are not to scale, and identical or similar elements are designated by the same references.

[0042] ILLUSTRATIVE EMBODIMENTS

[0043]

[0039] The present description illustrates the principles of the present disclosure. It will thus be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described or shown herein, embody the principles of the disclosure and are included within its scope.

[0040] All examples and conditional language recited herein are intended for educational purposes to aid the reader in understanding the principles of the disclosure and the concepts contributed by the inventor to furthering the art and are to be construed as being without limitation to such specifically recited examples and conditions.

[0044]

[0041] Moreover, all statements herein reciting principles, aspects, and embodiments of the disclosure, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.

[0045]

[0042] Thus, for example, it will be appreciated by those skilled in the art that the block diagrams presented herein may represent conceptual views of illustrative circuitry embodying the principles of the disclosure. Similarly, it will be appreciated that any flow charts, flow diagrams, and the like represent various processes which may be substantially represented in computer readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.

[0046]

[0043] The functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, a single shared processor, or a plurality of individual processors, some of which may be shared.

[0047]

[0044] It should be understood that the elements shown in the figures may be implemented in various forms of hardware, software or combinations thereof. Preferably, these elements are implemented in a combination of hardware and software on one or more appropriately programmed general-purpose devices, which may include a processor, memory and input / output interfaces.

[0048]

[0045] It is provided a computer-implemented method of optimizing a scheduling. Said scheduling comprises a hierarchy of (plurality of) tasks and a set of specifications. Each task is associated to a vector of values (i.e., ordered collection of values). Said vector comprises of a plurality of components and each component is respective to one specification of said set of specifications. The value of a vector component associated to a task defines a value for the respective specification of said task.

[0049]

[0046] The set of specifications may be considered to be a union of all related specifications for the plurality of task. In other words, the set of specifications may comprise all the specifications associated to the plurality of task so that if a specification is associated to only one task of the plurality of task, this unique specification is still comprised in the set of specifications. Therefore, it is possible that a given task is not related to one or more of the specifications (e.g., the set of specification may have dosimetry as a specification, but this specification is not related to a moulding task). The vector may have void (or any other mark value) as a value for one or more components to denote that said task is not related to the specifications respective to the components with void value.

[0050]

[0047] In examples, the set of specifications may comprise labor or human-related specifications, for example, specifications of different teams, skill, maturity, and / or efficiency. Such specifications may have a unit of hours. Alternatively, such specifications may be presented by a non-dimensional value. Said non-dimensional value may be normalized with respect to a reference value, for example the required time for finishing a task for a skilled worker. Said non-dimensional value may be bounded between an upper bound and a lower bound, for example between 1 and 10. Alternatively, or additionally, the set of specifications may comprise non-labour related specifications, for example specifications related to a material, a room, a space, a location, or a quantity. The set of specifications may comprise one or more of: a duration, number of people, cost, a dosimetry information, energy consumption, or CO2 production.

[0051]

[0048] In reference to Figure 1, in step S10, the method comprises providing an initial scheduling. The provided initial scheduling 21 comprises a plurality of tasks and associated information concerning the relation between each task and a set of specifications. More in details, the provided initial scheduling 21 comprises a hierarchy of tasks and an initial value for vector associated to each task. In other words, the method receives (e.g., upon an action by a user) an initial scheduling to be optimized by the method and an initial vector for each task (i.e., an initial ensemble of values for each task of the hierarchy, each value being associated to one specification of the set of specifications). The method may receive this initial scheduling 21 directly by a user or from a file inputted to the method, for example from a local drive or a remote server. The initial scheduling may be in the form of a WBS.

[0052]

[0049] An example of an initial scheduling, for example the provided input scheduling is presented in Figure 2A. In this figure 210 is a tabular representation of the scheduling while 220 is a graphical representation of said scheduling. The plurality of tasks are displayed in column 211 and each corresponds to specifications 212 which can be seen as vector. As seen in Figure 2B, column 211 comprises tags for each task and column 213 comprises a description for each task. Figure 2C shows in more detail specifications 212 which include Work, Non-labor cost, Labor cost, Labor Resource, Non-Labor Resource, Custom Dimensions and Resource spectrum. Figure 2D shows in more detail the visualization of the output (optimal) planning. Each task is presented by a block 221 and their interdependency in time is displayed by their position along the time axis 222 (which here shows different trimesters QI, Q2, Q3, and Q4 of each calendar ssyear).

[0053] The method further, in step S20, comprises providing an ensemble of trained models 22. Each of the trained models of said ensemble is configured to accept as input a first scheduling and to output a second scheduling. Notably, the trained models may have been previously trained. The first input scheduling and second output scheduling may comprise the same set of specifications and the same number of tasks. Each trained model has (or is in association with) a respective subset of specifications of the first scheduling (i.e., a respective subset of said set of specifications). Each trained model outputs the second scheduling by optimizing the associated values of the components of said respective subset of specifications. In other words, each of said trained models is configured to optimize one specification (i.e., dimension) through all the tasks of the first scheduling (i.e., optimize the values of the component associated to this one specification for all the vectors of the plurality of tasks) or a group / subset of the whole set of specifications respective to said trained model (i.e., optimize the values of the components associated to this group / subset of specifications for all the vectors of the plurality of tasks).

[0054]

[0050] Each trained model provided to the method may be a model specially designed and / or trained in optimizing a scheduling with respect to one or more specification. By “specially designed” it is meant that the structure of the model (e.g., architecture of a machine learning model) is adapted to the respective optimization. For example, the model may be a neural network with an architecture particularly adapted / efficient for optimizing said one or more specifications, for example CO2 production, and the time need to deliver the first deliverable of the project. By “specially trained” it is meant that the model is trained using a training dataset particularly adapted for optimizing said one or more specifications. For example, the model may be trained on a training dataset with significant inclusivity of different CO2 production thereby being capable to optimize a CO2 production for an input (i.e., said first) scheduling.

[0055]

[0051] As discussed above, each of said trained models is configured to optimize the associated value of a respective subset of specifications of the first scheduling. This subset of optimization may hereinafter be referred to as “optimization subset” (of a model). By “optimizing the associated value of a specification” of a respective subset of specifications it is meant that the trained model modifies a first associated value of said specification in the first (i.e., input) scheduling to a second value in the second (i.e., output) scheduling, for all tasks of the scheduling. In other words, the trained model receives the first scheduling as input comprising, for each task, a first associated value for each specification of the respective subset of specifications and outputs the second scheduling that comprises a second value for each specification of said subset, for each task of the scheduling (i.e., the trained model generates a second scheduling, assigning a second value to each specification within the subset, for every task in the scheduling). In other words, each trained model is configured to receive as input a first scheduling, wherein a subset of specifications of the first scheduling are / is target specification(s) that the trained model is configured to predict (e.g., duration), based on the remaining explanatory specifications comprised as well in the first scheduling (e.g., effort or name). Each trained model is configured to provide as output the second scheduling comprising predicted / optimized values (i.e., second values) for the components associated to the subset of specifications while the components associated to the other specification remained unmodified.

[0056]

[0052] The trained model applies such modifications / optimizations according to an objective defined for said model during the training. The optimization subset of two distinct trained models in the ensemble of trained models 22 may have common specifications or be identical. This means that both of said two models may be used for optimizing said subset of parameters (i.e., specifications). Likewise, two trained models of the ensemble of trained models 22 may be associated to subset of specifications which shares no common specification.

[0057]

[0053] As discussed above, each of the trained models of the provided ensemble 22 is a previously trained model. Each model of the provided ensemble 22 may be any of a random forest, support vector regression (SVR), or a Neural network. Each trained model may have been trained by using a respective training dataset and / or a respective training method (e.g., in terms of batch size, hyper-parameters, loss function, or the optimization method used for the training (like stochastic gradient descent). Said respective training method may be any know method in field of machine learning, preferably any known method for supervised learning.

[0058]

[0054] In the next step S30, being provided with the initial scheduling 21 and the ensemble of trained models 22, the method comprises optimizing the initial scheduling 21 by applying one or more of said provided ensemble of trained models on the initial scheduling. In other words, the method may select / determine one or more of the trained models of the ensemble and apply them on the initial scheduling in order to obtain an optimized output scheduling 31. The optimization of a scheduling may comprise updating / modifying one or more component values (each being respective to a specification) associated to one or more tasks. Such an updating / modification of the component values may in particular transforms a specification which is not related to a task (and has a mark value like void) to a related specification by associating a value other than the mark value to it.

[0059]

[0055] The step S300 presents the iterative nature of the method according to some embodiments. In said embodiments, the method may run the optimization in an iterative way (for example in response to updates on the constraints and timing for the project(s) - specifications). In such examples, the step S300 may provide the optimized output scheduling 31 as an initial planning to be optimized.

[0060]

[0056] This method constitutes an improved solution for project scheduling by obtaining an optimized plan (i.e., optimized scheduling 31) which is able to consider multiple dimensions / specifications of the scheduling to optimize. Unlike, the known methods in the prior art which are designed to optimize a particular aspect of the scheduling (e.g., CO2 production), the method determines the best dimensions (i.e., specifications) of the project to optimize and is able to optimize them altogether. On the other hands, as the method is not bounded to the providing of the optimizing specifications it enables enriching new dimensions which can be optimized and improve the efficiency of the final scheduling. In this aspect the method improves the initial scheduling by obtaining any technical objective attributed to the scheduling (e.g., by reducing the energy or time required, or ecological effects).

[0061]

[0057] According to one embodiment illustrated in Figure 5, applying one or more trained models of said provided ensemble of trained models 22 on the initial scheduling comprises implementing one or more iterations S300. For the first iteration, the input scheduling may be set to be the initial scheduling 21 and the outputted second scheduling will be considered as (i.e., called) the updated scheduling, so that the updated scheduling of the ilhiteration is the current scheduling to be provided as input scheduling for the following (i+l)111iteration.

[0062]

[0058] According to one embodiment illustrated in Figure 5, the step S300 of applying or more trained models of the ensemble of trained models 22 comprises first a sub- step S3100 comprising determining one or more subsets of the set of specifications to be optimized (i.e., one or more target subset of specification(s)). In one example, the one or more specifications in the target subset(s) are missing specifications from the initial planning or are specifications for which the available information is not sufficient (i.e., not sufficient for the user to understand or perform the project based on the scheduling). Step S300 comprises then a second sub-step S3200 for selecting at least one trained model from the ensemble of trained models 22 for each of the one or more target subsets of specifications. Then step 300 comprises a sub-step 3300 for applying, for each target subset, the at least one selected model of sub-step 3200 to the current scheduling so to obtain as output the updated scheduling.

[0063]

[0059] According to one embodiment, once one or more target subsets of specification(s) are determined, the sub-step S3100 is further configured to automatically select from the set of specifications (e.g., among the specifications other than the once in the target subset), for each target subset of specification(s), a second subset of specifications (i.e., dimension) to be used for the prediction of the corresponding target subset. In other words, the sub-step S3100 is configured to automatically identify the one or more target subsets specifications and, for each of them, the prediction specifications that are necessary to predict (e.g., extrapolate) the target specification(s) in the target subset of specification(s).

[0064]

[0060] The step 300 may be further configured to analyse a quality of the data (i.e., values of the components) associated to the specifications in the one or more second subsets of specifications. The quality of the data may be evaluated for each specification independently. The quality of the data evaluated on the base of the amount of missing values across the tasks of the scheduling, the correlation of each target specification to each specification in the second subset, (e.g., from statistical analysis on previously obtained data concerning the specifications), etc. The quality of the data may therefore be reflected by a quality score for each specification of the second subset, and said quality score may be obtained based on the different quality evaluation enumerated in this paragraph.

[0065]

[0061] The sub- step 3200 may be configured to select the at least one trained model for each determined (target) subset also on the base of the corresponding second subset. In one example, the initial schedule may comprise the specifications A, B, C and D. The specification A may be determined to be the target specification and is therefore comprised in the target subset, while the specifications B and D may have been considered as necessary to the prediction of the target specification A and therefore are comprised in the second subset. In this example, the trained model(s) may be chosen to be configured to receive a scheduling comprising specifications A, B and D, wherein values for specification A are partially or totally missing, said trained model being configured to use values associated with specifications B and D, at least, to predict the values of the specification A. In this example, the specification C is therefore not correlated, or not significantly correlated, to the specification A, so that its use in the prediction by the trained model is not necessary.

[0062] The step 300 may be further configured to identify the specifications in the second specifications subset, which therefore are needed for the prediction (i.e., for the application of the trained models), which however are associated with a low quality, which is insufficient to be properly exploited by a trained model from the ensemble 22, and the specifications that on the other hand have sufficient quality. For example, a threshold on the quality score may be used to assess if the quality of the specifications is low or is sufficient for inference with one trained model from the ensemble 22. The low quality specifications in the second subset are therefore requalified as current target specifications and therefore sub-step S3200 may be run again to select at least one trained model from the ensemble of trained models 22 to predict the current target specifications.

[0066]

[0063] The sub-step 3300 may be further configured to apply first, for each current target specification, the associated selected trained model so to restore the quality of the values associated to this specification. In this way, the quality of the low-quality specifications (but not the target one(s)) is first improved / restored. Then when the quality score of one current target specification exceeds the quality threshold, the specification is again considered a suitable prediction specification comprised in the second subset of specifications.

[0067]

[0064] Sub-step 300 may be further configured so that, when the quality scores associated to each of the current target specifications exceed the quality threshold (i.e., all the specifications in the second subset have reached a sufficient quality), for each one or more target subsets, the corresponding at least one trained model is applied to the current schedule in other to predict the target specifications in the corresponding target subset.

[0068]

[0065] In one embodiment illustrated in Figure 6, the step (of applying one or more trained models of said provided ensemble of trained models 22 on the initial scheduling) S300 comprises the steps S310 to S360. More in details, the step S300 comprises a first step S310 of selection of at least one target specification from the set of specifications of the initial scheduling, for example. One or more target subset of specification from the set of specifications may be defined, comprising at least one target specification. The selection of the at least one target specification may be provided by the user or be automatically selected by the step S310 by selecting the one or more specifications that are void or have an amount of missing values so elevate to would not allow the performing of the project based on such a scheduling.

[0069]

[0066] To unease the understanding of the disclosure the following steps will be described for the case of one (target) subset of specification comprising at least one target specification. It must be understood that if more than one target subset is selected, the following operations are repeated for each target subset.

[0070]

[0067] A second sub-step S320 is configured to select from the set of specifications (e.g., among the remaining specifications other than the once considered target specifications), a second subset of specifications (i.e., dimension) to be used for the prediction of the corresponding target specifications in the target subset. In other words, the sub-step S320 is configured to automatically identify the one or more prediction specifications that are necessary to predict (e.g., extrapolate) the target specification(s) in the target subset of specification(s).

[0071]

[0068] A third sub-step S330 is configured to evaluate the quality of the available values of the components (i.e., data) associated to the specifications in the second subset of specifications. The quality of the data may be evaluated for each specification independently. The quality of the data evaluated on the base of the amount of missing values across the tasks of the scheduling, the correlation of each target specification to each specification in the second subset, (e.g., from statistical analysis on previously obtained data concerning the specifications), etc. The quality of the data may therefore be reflected by a quality score for each specification of the second subset, and said quality score may be obtained based on the different quality evaluation enumerated in this paragraph. The sub-step S330 is further configured to identify the specifications in the second specifications subset, which are considered needed for the prediction (i.e., for the correct application of the trained models), but however are associated with a low quality (i.e., insufficient quality to be properly exploited by a trained model from the ensemble 22), and the specifications that on the other hand have sufficient quality. For example, a threshold on the quality score may be used to assess if the quality of a specification is low or is sufficient to perform the inference with one trained model from the ensemble 22. The low quality specifications in the second subset are therefore requalified as current target specifications.

[0072]

[0069] A fourth sub-step S340 is configured to restore the quality of the specification(s) with low quality (i.e., current target specification(s)), par example using modelling. The fourth sub-step S340 is configured to iterate the following steps: determining (S3100) a current target subset of specifications to be optimized (e.g. restored / improved) ; selecting (S3200) at least one trained model from the ensemble of trained models 22 for the current subset; and applying (S3300), to a current scheduling, the at least one selected trained model, thereby obtaining an updated scheduling.

[0073]

[0070] In one example, the fourth sub-step S340 is configured to iterate the following steps: determining a current target subset of specifications to be optimized (e.g. restored / improved) ; selecting at least one trained model from the ensemble of trained models 22 for at least one specification of the current target subset; applying, to a current scheduling, the at least one selected trained model, thereby obtaining an updated scheduling; calculating a quality score for each of the specification of the current target subset of specifications; define an updated target subset of specifications comprising the specifications of the current target subset of specifications having a quality score inferior to the predefined quality threshold; wherein the current scheduling is the updated scheduling obtained at a preceding iteration and the current target subset is the updated target subset obtained at a preceding iteration.

[0074]

[0071] For the first iteration of sub-step S340 the current target specifications is the one obtained from sub-step S330 and the current scheduling is the initial scheduling 21.

[0072] More in details, the sub-step S340 may select at least one trained model from the ensemble of trained models 22 to predict one or more of the current target specifications. In one example, one trained model is selected to restore one of the current target specifications. The selected trained models, each for one current target specification, may be applied successively one after the other. In other word, multiple iteration take place, one for each trained model selected and it is associated with a current target specification to restore. In this way, the quality of the low-quality specifications (but not the target one(s)) may be improved / restored one by one.

[0075]

[0073] When the quality score of one current target specification exceeds the quality threshold, the specification may be again considered a suitable prediction specification. Therefore, in the following iteration, the one or more restored current target specifications may be used as input data for the training model that is going to predict the current target specification still with low quality. The order in which the specifications in the current target specifications are restored (i.e., predicted) along the multiple iterations may be random or may follow a hierarchical order. In order words, the most important specifications in the initial scheduling will be predicted before the less important. The method may comprise as additional input a ranking of the specifications of the set of specifications of the initial scheduling (i.e., so that the specifications may be classed from the more to the less important for the project).

[0076]

[0074] The iterations of sub-step S340 may stop when a predefined stopping criterion is reached. One stopping criterion may be to stop the iteration when all the specifications initial in the second subset exceed the predetermined quality threshold. In other words, the iterations are stopped when all the specifications necessary to the prediction of the target subset that were found of insufficient quality in sub-step S330 have been restored / improved so that their current quality is sufficient. In another example, the iteration may be stopped when the quality of one or more specifications in the second subset couldn’t be improved to exceed the predetermined quality threshold. For example, when the variation of a quality score associated with one specification remains below a convergency threshold for at least two successive iterations.

[0075] A sub-step S350 may be performed either once the quality of all the specifications in the second subset exceed the predetermined quality threshold, or either once the quality of one or more specifications in the second subset couldn’t be improved to exceed the predetermined quality threshold. In the first case (i.e., all the specifications in the second subset with sufficient quality), the sub-step S350 is configured to select the at least one trained model for the target subset (and optionally the corresponding second subset) and to apply the trained model on the current schedule (i.e., updated schedule obtained at the last iteration of step S340) so to obtain an updated schedule. In the second case, the specifications whose quality couldn’t be sufficiently restored are considered target specifications. In other words, they are added to the target subset of specifications to be predicted obtaining a current target subset and removed from the second subset obtaining a current second subset. In this second case, the sub-step S350 is configured to select the at least one trained model for the current target subset and the corresponding current second subset and to apply the trained model on the current schedule so to obtain the updated schedule. The final updated schedule issued from sub-step S350, from the first or second case, is then considered the optimized scheduling 31.

[0077]

[0076] In one example relating to this embodiment, the initial scheduling 21 comprises a set of specifications comprising at least the following: duration, resources, network, effort, structure and name. In this initial scheduling the duration values are missing. In a first operation, the selected target specification is the duration of the task (sub- step 310). The prediction specifications (e.g., features) that are selected at sub-step S320 are the resources, network, effort, structure and name. Then sub-step S330 calculates the quality score for each of these features. For example, it may be found that the specification “effort” and the specification “resource” have both insufficient quality. The sub-step S340 selects a trained model to predict the specification “effort” when the known specifications in a scheduling are at least one among the network, structure and name. Then this trained model receives as input the initial scheduling and provides an updated scheduling wherein the values of the components associated to the effort are predicted.

[0078]

[0077] The sub-step S340 selects a trained model to predict the specification “resource” when the known specifications in a scheduling are at least one among the network, structure and name. Then this trained model receives as input the current scheduling and provides an updated scheduling wherein the values of the components associated to the resource are predicted. The quality score of the effort and resource are then calculated. Then the steps of selecting a trained model and predict the specification is repeated till both the specifications “effort” and “resource” have sufficient quality. Once all the features have sufficient quality the target specification “duration” is modelled in order to predict its values so to obtain the final optimized scheduling 31. In this case the optimized scheduling 31 comprises the values predicted for the duration but may also comprise the values predicted for the effort and the resource for the iteration when each of these specifications had reached sufficient quality.

[0079]

[0078] In examples, applying one or more of said provided ensemble of trained models on the initial scheduling comprises one or more iterations / repetitions. Each iteration may comprise determining one or more subsets of specifications to be optimized from the set of specifications. Then, during the iteration the method may select at least one trained model from the ensemble of trained models 22 for each determined subset. The iteration may then apply to the current scheduling, the at least one selected trained model, thereby obtaining as output an updated scheduling. The current scheduling is said initial scheduling or the updated scheduling according to a preceding iteration / repetition. In other words, in each iteration of these examples, the method selects an optimization subset and as well as the one or more respective trained models for the selected optimization subset. The method applies the selected trained models on the current scheduling to obtain a scheduling for the next iteration. This forms an update iteration loop starting from the initial scheduling. The determined one or more subsets for a current iteration may be distinct (e.g., with void intersection) with the respective set of the preceding iteration or any respective set of any of the preceding iterations. This may improve the computational time to obtain the optimized scheduling.

[0080]

[0079] As discussed above, the method, at each iteration, may determine one or more subsets of the set of specifications to be optimized. Such a determination may be set as default value for the method and according to the general knowledge in the field of scheduling. In other words, the method may choose a preset order of one or more optimization subsets for said iterations according to the specifications of the initial scheduling or a metadata thereof. For example, the method may have a preset order of optimization for manufacturing processes, and another for power generation processes. In examples, the method may determine exactly one specification to be optimized at each iteration.

[0081]

[0080] In examples, the method may then, for each determined (optimization) subset, selects one or more trained models from the provided ensemble 22. Alternatively, the method may receive an input from the user to select a trained model, or select a trained model from the one or more models selected by the method. In examples, the method selects exactly one model. The method may then apply the one or more selected models on the current scheduling (i.e., a latest updated scheduling available at the beginning of the iteration) to obtain an updated scheduling. Said updated scheduling is the current scheduling for the next iteration. For the first iteration, the current scheduling is the initial scheduling.

[0082]

[0081] The application of one or more selected models to the current scheduling may be in a parallel mode, or in a sequential mode. In parallel mode, the one or more selected models are applied at once (i.e., simultaneously) on the current scheduling. Each of the selected models may be responsible to update the associated value of a distinct respective subset of specifications in the current scheduling (i.e., in all tasks of the current scheduling). In sequential mode, the one or more selected models may be applied one after another on the current scheduling. In other words, the methods may apply the one or more selected models on according to an order on the current scheduling (i.e., to all tasks of the current scheduling), thereby each selected model either being applied to the current scheduling directly or to a resulting scheduling of an application of preceding selected models in said order on the current scheduling. The method may determine said order at each iteration.

[0083]

[0082] This further improves the method of project scheduling by optimizing the initial scheduling in multiple iterations. Because each iteration is only focused on optimizing an optimization subset, the method is able to use smaller models each specialized in particular specification. These smaller models are easier to train as required training data is more available. This improves the accuracy of trained models. Furthermore, applying multiple small models needs less computational resources than a big and complex model.

[0084]

[0083] In examples, for each iteration, determining one or more subsets of the set of specifications to be optimized may be based on the updated scheduling of the one or more preceding iterations (i.e., repetitions). The method may determine the one or more subsets such that each subset of a current iteration does not any common specification with some (e.g., any) determined one or more subsets of some (e.g., any) of the one or more preceding iterations. This enables the method to determine the best optimization subset for the next iteration. For example, the method may predict dosimetry after performing a prediction for the work amount. This results in an improved solution as the dosimetry is highly correlated with the work amount. Furthermore, the dosimetry is also related on work history. For example, for two rooms A and B of which A has 30-year-old history of being irradiated and B has 15-year-old irradiation history, one hour of work in room A causes 60 millisievert of radiation and in B only 30 millisievert. In another example, the method may predict first the necessary number of persons for a maintenance task.

[0085]

[0084] In examples, selecting of the at least one model may comprise determining (i.e., computing) a fitting between each of the one or more determined subsets and the provided ensemble of trained models. The method then selects said at least one model based on the determined fitting. In other words, the method, upon determining the subset of the specifications to be optimized, computes a fitting between said subset and the provided models to obtain one or more models able to optimize the determined subset. In particular, the selected models may have at least one respective specification in common with the determined subset.

[0086]

[0085] Said determining of a fitting may comprise computing a cross validation., for example using a mean square error (MSE) or any other known measure.

[0087]

[0086] In examples, the method further comprises fine-tuning at least one sub-ensemble of models by inputting (e.g., by a user) a user specific training dataset. Said dataset may comprise a plurality of predefined schedulings provided by the user. Each predefined scheduling comprises at least one specification to be fine-tuned. The method may then select at least one model from the ensemble of trained models which has the specification to be fine-tuned in said respective subset, and fine-tuning (i.e., re-training) the at least one selected model based on the inputted user specific training dataset.

[0088]

[0087] In examples, the method may form an ensemble of the fine-tuned sub-ensemble of models and / or further store the formed ensemble.

[0089]

[0088] The method may further visualize of the optimized scheduling, for example via a GUI. The user may be able to interact with the visualized scheduling using a mouse, a keyboard, and / or a haptic device.

[0090]

[0089] Figure 3 presents a schematic of an example of the method. In this figure 310 shows an initial input scheduling to the method. This input may be similar to the the one presented on Figure 2A. In other words, this input planning also comprises a plurality of tasks and specifications. This input scheduling contains the plurality of tasks with defined specifications and according to a defined dependency among them. Furthermore, 320 shows the ensemble of trained models. In ensemble 320, model 321 has been trained to predict “work” specification, model 322 to predict “cost” specification, model 323 to predict “resources” specification, and model 324 to predict “tag” specification. Block 325 shows the dataset (foundation) used for training the models of 320 (. Block 330 shows the fine-tuning by feedback 332 in response to output 333 and input 331. Blocks 410 and 420 show two formed ensembles of the fine-tuned models. Each ensemble may be finetuned according to the needs of a particular client (e.g., orgl for 410 and org2 for 420).

[0091]

[0090] Figure 4 shows an example of the system, wherein the system is a client computer system, e.g., a workstation of a user. The client computer of the example comprises a central processing unit (CPU) 1010 connected to an internal communication BUS 1000, a random-access memory (RAM) 1070 also connected to the BUS. The client computer is further provided with a graphical processing unit (GPU) 1110 which is associated with a video random access memory 1100 connected to the BUS. Video RAM 1100 is also known in the art as frame buffer. A mass storage device controller 1020 manages accesses to a mass memory device, such as hard drive 1030. Mass memory devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks 1040. Any of the foregoing may be supplemented by, or incorporated in, specially designed ASICs (application- specific integrated circuits). A network adapter 1050 manages accesses to a network 1060. The client computer may also include a haptic device 1090 such as cursor control device, a keyboard or the like. A cursor control device is used in the client computer to permit the user to selectively position a cursor at any desired location on display 1080. In addition, the cursor control device allows the user to select various commands, and input control signals. The cursor control device includes a number of signal generation devices for input control signals to system. Typically, a cursor control device may be a mouse, the button of the mouse being used to generate the signals. Alternatively or additionally, the client computer system may comprise a sensitive pad, and / or a sensitive screen.

[0092]

[0091] The computer program may comprise instructions executable by a computer, the instructions comprising means for causing the above system to perform the method. The program may be recordable on any data storage medium, including the memory of the system. The program may for example be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The program may be implemented as an apparatus, for example a product tangibly embodied in a machine- readable storage device for execution by a programmable processor. Method steps may be performed by a programmable processor executing a program of instructions to perform functions of the method by operating on input data and generating output. The processor may thus be programmable and coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. The application program may be implemented in a high- level procedural or object-oriented programming language, or in assembly or machine language if desired. In any case, the language may be a compiled or interpreted language. The program may be a full installation program or an update program. Application of the program on the system results in any case in instructions for performing the method. The computer program may alternatively be stored and executed on a server of a cloud computing environment, the server being in communication across a network with one or more clients. In such a case a processing unit executes the instructions comprised by the program, thereby causing the method to be performed on the cloud computing environment.

[0093] EXAMPLES

[0094]

[0092] The present invention is further illustrated by the following example implementation.

[0095]

[0093] The implementation outputs a project schedule by identifying the dimensions that be used in the project schedule to make accurate decisions, and enriching the initially identified dimensions through using Al models. The implementation enables capitalizing the data for the subsequent projects through lessons (i.e., models) learned. The implementation further enables detecting of the missing data and / or potential nonconformity in the data.

[0096]

[0094] The implementation is able to import project plans (as the initial scheduling) from external systems (e.g., Microsoft, Oracel, Planisware). Alternatively, the implementation may generate an initial schedule (i.e., project scheduling). The implementation, then uses artificial intelligence to identify and optimize possible dimensions in the project plan. This enriches the dimensions (i.e., specifications) to be considered and ensures taking all possible constraints that could impact the project. The implementation then simulates the practical condition of each project to be adapted (i.e., refined) to the particular needs. This adaptation re-fines the received trained models to the needs to each project. The re-fined models may be stored in a database dedicated to a group of similar projects.

[0097]

[0095] The implementation may also include visualization of the final scheduling. This visualization may be also interactive and enables a user to add / modify a value for a specification, add, or remove a task.

[0098]

[0096] In the example implementation, the scheduling comprises a set of tasks P = {Pi, P2< ■■■ > Pn where n is the total number of tasks in the scheduling. The set of specifications / dimensions is denoted by S = {S1(S2, ... , Sm} where m is the total number of specifications in the scheduling. Each task Pi, i = 1, ... , n, is related to a subset of S, such that £ 5. Each task Pt, i = 1, ... , n, is associated to the vector dLG Ikm.

[0097] The ensemble of trained models is denoted by M = } where I is the total number of models. Each model Mj, j = 1, ... , I, is respective to subset SM^ £ S as the optimization subset.

[0099]

[0098] Each model Mj is configured to act on an input scheduling as

[0100]

[0099] At each iteration t, the implementation determines a subset of S and then selects one or more models Mj such that SM^ = S^\ The implementation then applies the selected models on the current scheduling at said iteration P^\ The input scheduling of iteration t may be the output of the previous iteration t — 1. In other words, the application model Mj can be shown as

Claims

CLAIMS1. A computer-implemented method of optimizing a scheduling, said scheduling comprising a hierarchy of tasks and a set of specifications, each task being associated to a vector of values, said vector comprising a plurality of components, each component corresponding to a specification of the set of specifications, said method comprising: providing:• an initial scheduling (21) comprising a hierarchy of tasks and, for each task, an initial value for each component of said vector associated to said task (S10);• an ensemble of trained models (22) each being configured to accept as input a first scheduling and to output a second scheduling by optimizing the associated value of a respective subset of specifications of the first scheduling (S20); and optimizing (S30) the initial scheduling by applying one or more models of said provided ensemble of trained models on the initial scheduling so as to obtain an optimized scheduling (31).

2. The method according to claim 1, wherein applying one or more trained models of said provided ensemble of trained models (22) on the initial scheduling comprises iterations (S300) of: determining one or more subsets of the set of specifications to be optimized; selecting at least one trained model from the ensemble of trained models (22) for each of the one or more determined subsets; and applying, to a current scheduling, the at least one selected model, thereby obtaining an updated scheduling; wherein the current scheduling is said initial scheduling (21) or the updated scheduling according to a preceding iteration.

3. The method according to claim 2, wherein, for each iteration, determining one or more subsets of the set of specifications to be optimized is based on the updated scheduling of the one or more preceding iterations.

4. The method according to either one of claim 2 or 3, wherein the selecting of the at least one model comprises: determining a fitting between each of the one or more determined subsets and the provided ensemble of trained models (22); and selecting at least one model from said ensemble based on the determined fitting.

5. The method according to claim 4, wherein determining of a fitting comprises computing a cross validation.

6. The method according to any of claims 1 to 5, wherein the set of specifications comprises one or more of: a duration, number of people, cost, dosimetry information, energy consumption, or CO2 production.

7. The method according to any of claims 1 to 6, further comprising fine-tuning at least one sub-ensemble of models by: inputting a user specific training dataset comprising a plurality of predefined schedulings provided by said user, wherein each predefined scheduling comprising at least one specification to be fine-tuned; selecting at least one model from the ensemble of trained models which has the specification to be fine-tuned in said respective subset; and fine-tuning the at least one selected model based on the inputted user specific training data set.

8. The method according to claim 7 further comprising forming an ensemble of the fine-tuned sub-ensemble of models.

9. The method according to any of claims 1 to 8, further comprising visualization of the optimized scheduling (31).

10. A computer program product comprising instructions which, when the program is executed by a computer, cause the computer to carry out the method according to any one of claims 1 to 9.

11. A computer readable storage medium comprising instructions which, when executed by a computer, cause the computer to carry out the method of according to any of claims 1 to 9 and / or the formed ensemble of the fine-tuned subset of models according to claim 8.

12. A data processing system comprising a processor / configured to perform the method according to any of claims 1 to 9.

Citation Information

Patent Citations

  • Dynamic scheduling of distributed storage management tasks using predicted system characteristics

    US20190138247A1

  • Systems and techniques for predictive data analytics

    US20210326782A1

  • Method and system for scalable contact center agent scheduling utilizing automated ai modeling and multi-objective optimization

    US20220027837A1

  • Scheduling multiple work projects with a shared resource

    US20230095600A1

  • Systems and methods for task prediction and constraint modeling

    US20240112108A1