WO2022117766A1 - Procédé et dispositif d'allocation de tâches entre agents - Google Patents

Procédé et dispositif d'allocation de tâches entre agents Download PDF

Info

Publication number
WO2022117766A1
WO2022117766A1 PCT/EP2021/084057 EP2021084057W WO2022117766A1 WO 2022117766 A1 WO2022117766 A1 WO 2022117766A1 EP 2021084057 W EP2021084057 W EP 2021084057W WO 2022117766 A1 WO2022117766 A1 WO 2022117766A1
Authority
WO
WIPO (PCT)
Prior art keywords
agents
task
solution
tasks
petal
Prior art date
Application number
PCT/EP2021/084057
Other languages
English (en)
Inventor
Lionel GAYRAUD
Pierre Saveant
Rémi BARRERE
Original Assignee
Thales
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thales filed Critical Thales
Priority to EP21824373.1A priority Critical patent/EP4256490A1/fr
Publication of WO2022117766A1 publication Critical patent/WO2022117766A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • G06Q10/047Optimisation of routes or paths, e.g. travelling salesman problem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06313Resource planning in a project environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work

Definitions

  • TITLE Process and device for allocating tasks between agents
  • the present invention relates to a method for allocating tasks between agents for the execution of each task by an agent of a set of agents formed of A agents, A being a strictly positive integer, the tasks belonging to a set of tasks formed of T tasks to be executed by at least a subset of the set of agents, T being a strictly positive integer.
  • the invention also relates to an associated agent task allocation device and an associated computer program product.
  • the invention lies in the field of the allocation of tasks to be performed by several agents, and finds practical applications in many fields.
  • the invention applies to the allocation of cooperative tasks to be carried out by agents who are unmanned aircraft on board (drones), the tasks being for example tasks of field photography, detection of presence of particular elements, and more generally any mission task of this type of aircraft, in the civil or military domains.
  • drones unmanned aircraft on board
  • the tasks being for example tasks of field photography, detection of presence of particular elements, and more generally any mission task of this type of aircraft, in the civil or military domains.
  • the invention applies to any set of agents, whether agents of the same type (homogeneous set) or agents of different types (heterogeneous agents).
  • a task is executed by one and only one agent, but the same agent can execute several tasks.
  • the task allocation solution set consists of considering all possible task allocations to one or more agents in the agent set.
  • the problem of task allocation between agents is a known problem, which has been the subject of research, especially in the particular case where the number T of tasks is greater than the number A of agents.
  • the first resolution has the disadvantage of being slow and not predictable in time.
  • the second resolution has the disadvantage of not being optimal.
  • the object of the invention is to remedy the drawbacks of the state of the art, by proposing a fast method because it is massively parallelizable, predictable in time and with a guarantee of optimality.
  • the invention proposes, according to one aspect, a method for allocating tasks between agents for the execution of each task by an agent of a set of agents formed of A agents, A being a strictly positive integer, the tasks belonging to a set of tasks formed of T tasks to be executed by at least some of the agents, T being a strictly positive integer, the method being implemented by at least one calculation unit of a processor.
  • This method comprises steps consisting in: for at least one task allocation solution to be executed between at least some of said agents, called evaluated solution, obtaining a list of T agent indices defining the evaluated solution, each index of agent corresponding to the agent assigned to perform the task whose index is provided by the rank in said list of agents; calculating, from the list of T agent indices, one or more task petals to be performed by distinct agents, each task petal being associated with an agent identified by an index distinct from the list of T agent indices , a task petal being a list of L tasks, identified by their index in ascending order, L being a number between 1 and T;
  • for each task petal, calculating an associated petal index, and accessing a storage structure to extract, as a function of said petal index, at least one cost of execution of the tasks of the petal by the associated agent, calculating a cost of running the solution evaluated based on the running costs extracted for each petal and a given cost aggregation policy.
  • the task allocation method of the invention is massively parallelizable and the required memory size is reduced.
  • any cost calculation can be used to characterize the allocation solutions, and the method is applicable for heterogeneous agents.
  • the process for allocating tasks between agents according to the invention may also have one or more of the characteristics below, taken independently or in all technically possible combinations:
  • the method includes evaluating a plurality of solutions, and determining an optimal execution cost solution according to a given optimality criterion based on the execution costs calculated for each evaluated solution.
  • the method is implemented by a plurality of calculation units of one or more processors, said calculation units being adapted to operate in parallel, and further comprises an allocation to each calculation unit of a subset of solutions to be evaluated.
  • Each solution of said subset of solutions to be evaluated is defined by a solution index, and the method comprises a calculation, for each solution index evaluated, of the list of T indices of agents forming said solution by decomposition in base A of the solution index.
  • the method comprises, for each calculation unit, a determination of an optimal execution cost associated with the subset of solutions evaluated by said calculation unit, and an associated solution index, and a determination of an optimal solution by comparison of the optimal execution costs associated with the subsets of the solutions evaluated by each calculation unit.
  • Each calculation unit implements, for each evaluated solution, the calculation of an execution cost of said solution, then a comparison of said execution cost with an optimal reference execution cost associated with the subset of solutions evaluated by said calculation unit, and if the execution cost is better than the reference optimal execution cost according to said optimality criterion, replacing said reference optimal execution cost by said execution cost and storing the index of said solution.
  • the method comprises a prior step of calculating the costs of executing the task petals by the agents of the set of agents, and of storing the calculated costs in said storage structure.
  • the calculation of the execution costs of the task petals includes a scheduling of the task petals according to an order of arrangement by increasing sizes, for the task petals of the same size, by a lexicographic scheduling of the indices of the tasks of the petals.
  • the calculation of the petal index is performed based on the number of tasks in said task petal and the task indices of said task petal.
  • the storage structure is a cost table, indexed in ascending order of the task petal indices according to said ordering of the task petals and the agent indices of the set of agents.
  • the cost aggregation policy consists of calculating the cost of running the solution by applying a function to the running costs extracted for each petal.
  • the invention calculates the average, or the sum, or the minimum or the maximum of the execution costs extracted for each petal.
  • the invention relates to a device for allocating tasks between agents for allocating tasks between agents for the execution of each task by an agent of a set of agents formed of A agents, A being a strictly integer positive, the tasks belonging to a set of tasks formed by T tasks to be executed by at least some of the agents, T being a strictly positive integer, comprising at least one calculation unit of a processor configured to implement: for at least at least one solution for allocating the tasks to be executed between at least a part of said agents, called the evaluated solution, a module for obtaining a list of T agent indices defining the evaluated solution, each agent index corresponding to l the agent allocated to perform the task whose index is provided by the rank in said list of agents;
  • a calculation module from the list of T agent indices, of one or more task petals to be performed by distinct agents, each task petal being associated with an agent identified by a distinct index from the list of T agent indices, a task petal being a list of L tasks, identified by their index in ascending order, L being a number between 1 and T; configured to calculate, for each task petal, an associated petal index, and access a storage structure to extract, as a function of said petal index, at least one cost of execution of the tasks of the petal by the associated agent, a calculation module for calculating an execution cost of the evaluated solution based on the extracted execution costs for each petal and a given cost aggregation policy.
  • this device comprises a plurality of calculation units of one or more processors, said calculation units being adapted to operate in parallel, the device being configured to allocate to each calculation unit of a subset of solutions to be evaluated.
  • the invention relates to a computer program comprising software instructions which, when they are implemented by a programmable electronic device, implement a process for allocating tasks between agents as briefly described above. -above.
  • Figure 1 is a block diagram of a programmable electronic device configured to implement a task allocation method according to one embodiment
  • Figure 2 is a flowchart of the main steps of a first phase of a task allocation process
  • Figure 3 is a schematic example of a cost table
  • Figure 4 is a flowchart of the main steps of a second phase of a task allocation process
  • FIG 5 is a flowchart of the main steps of a parallel implementation for the evaluation of the execution costs of subsets of solutions
  • Figure 6 is a flowchart of an embodiment of the calculation of an optimal execution cost associated with a subset of tasks to be executed according to an embodiment.
  • the invention finds numerous applications, in particular in the field of the allocation of tasks to be carried out to a fleet of aircraft without pilots on board.
  • T being a strictly positive integer, for example between 12 and 15, to be performed by agents of a set of A agents, A being a strictly positive integer, for example between 2 and 5.
  • T is equal to 15 and A is equal to 4.
  • the set of tasks consists of tasks numbered by associated task indices, ranging from 0 to T-1.
  • the agent set consists of agents identified by agent indices, ranging from 0 to A-1.
  • An allocation solution consists in allocating or assigning each task t to be executed to an agent aj. If the number of agents is less than the number of tasks, at least one agent will need to perform multiple tasks.
  • a solution Sk is formed of a list of T agent indices, each agent index corresponding to the agent allocated to perform the task whose index is a function of the rank in said list of indices agents: where the task of index j is performed by the agent of index s kj in the solution Sk.
  • the space of solutions includes A T solutions.
  • the method is implemented by a programmable electronic device comprising one or more calculation processor(s), each processor comprising one or more calculation units.
  • a programmable electronic device comprising one or more calculation processor(s), each processor comprising one or more calculation units.
  • the process for allocating tasks between agents is implemented by a single programmable electronic device, for example a computer, or a computer system composed of a plurality of computing devices operating in a network.
  • FIG. 1 is a block diagram of a programmable electronic device 2 configured to implement a process for allocating tasks between agents according to one embodiment.
  • the programmable electronic device 2 is for example a computer comprising in the example a processor 4 which is a multi-core processor.
  • the processor 4 comprises several calculation units 8A, 8B, 8C, which are capable of performing calculations in parallel.
  • the programmable electronic device 2 also comprises electronic memory units 10, 12.
  • the elements of the programmable electronic device 2 are adapted to communicate via a communication bus 14. This programmable electronic device 2 is configured to implement the invention.
  • the cost storage structure 18 comprises one or more cost table(s), storing the costs associated with the “task petals” of each of the agents.
  • the processor 4 is also configured to implement a task allocation module 20 between agents, based on the costs of the cost storage structure 18 previously calculated and recorded.
  • the modules 16, 20 are implemented in the form of software instructions forming a computer program which, when executed by a computer, implements a process for allocating tasks between agents.
  • each module 16, 20 is implemented as a separate computer program.
  • the modules 16, 20 are each made in the form of programmable logic components, such as FPGAs (Field Programmable Gate Array), microprocessors, GPGPII components (General-purpose processing on graphs processing), or even dedicated integrated circuits, such as ASICs (Application Specific Integrated Circuit).
  • the computer program comprising software instructions is further able to be recorded on a medium, not shown, readable by computer.
  • the computer-readable medium is, for example, a medium capable of storing electronic instructions and of being coupled to a bus of a computer system.
  • the readable medium is an optical disc, a magneto-optical disc, a ROM memory, a RAM memory, any type of non-volatile memory (for example EPROM, EEPROM, FLASH, NVRAM), a magnetic card or an optical card.
  • the process for allocating tasks between agents comprises two phases, a first preliminary phase of calculating and memorizing a structure for memorizing the costs of execution of petals of tasks by the agents, and a second phase of effective allocation of the tasks between agents, according to the previously calculated cost storage structure.
  • FIG. 2 is a flowchart of the main steps of the first preliminary phase of calculation and memorization of a structure for memorizing the costs of execution of task petals by agents, in one embodiment.
  • the goal of the process is to allocate T tasks between A agents, according to a given optimality criterion.
  • Tasks and agents are defined according to the application of the process.
  • the tasks are identified by indices, the set of tasks to be performed is noted:
  • Agents are also identified by indices, the set of agents is noted:
  • a solution for the allocation of tasks between agents consists in designating, for each task, an agent who must execute this task.
  • a single agent is likely to perform several tasks, or even all of the tasks. Not all agents are necessarily involved in a solution.
  • the same agent is likely to execute zero, one or more tasks, i.e. a number L of tasks ranging from 0 to T.
  • a task petal of size L is mathematically expressed as following way:
  • each value p ki is a task index, 0 ⁇ p ki ⁇ T - 1, all the task indices forming a task petal being distinct, the task indices forming a petal being ordered in increasing order:
  • the method comprises a step 30 of scheduling the task petals for a set of T tasks to be executed.
  • Step 30 consists in ordering the G(T) task petals in a chosen order, which is the order of arrangement by size, i.e. the increasing order of the task petal sizes, and for the task petals of a given size L, in increasing lexicographical order of the task indices.
  • the ordering of the task petals consists in associating a petal index with each petal, the indices being increasing according to the lexicographic order explained above.
  • the task petals are traversed in this order, and for each petal, a cost of execution of this petal (ie execution of the tasks defined by the petal) by each agent of the set of agents is calculated in step calculation 32 and stored in the storage step 34 in a storage structure.
  • the storage structure is a cost table, a schematic example of which is shown in Figure 3.
  • the ordering of the petals according to the lexicographical order it is not necessary to memorize the list of task indices defining each petal. Indeed, it is possible to calculate the petal index in the lexicographical order chosen according to the length of the petal and the indices of the spots forming the petal, as explained in more detail below with reference to figure 4.
  • the cost of executing each task petal is calculated according to a chosen criterion, for example a criterion of distance, time, energy consumed, dangerousness, etc.
  • cost tables are calculated, for several selected criteria, which amounts to calculating and storing one table per criterion and per agent.
  • the execution costs according to several different criteria are combined and stored, for example by a weighted linear combination.
  • invalid cost for example the value "-1"
  • a petal can contain one or more tasks that cannot be executed by a given agent, for reasons of material capacity and/or authorization.
  • FIG. 3 schematically illustrates a table of costs 40, for T tasks and A agents, each row of this table corresponding to a petal, the petals being ordered in ascending order.
  • the agent a when we access the row of index k and the column of index j of the table 40 we obtain the cost of execution of the petal of index k in the ordering of the petals according to ascending order, by the agent a,.
  • Figure 4 is a flowchart of the main steps in costing a solution.
  • the method comprises a step 50 of obtaining an index J of the solution to be evaluated, followed by a step 52 of calculating the list of indices of agents forming the solution Sj.
  • step 52 consists in breaking down the index J of the solution to be evaluated in base A, A being the number of agents.
  • the index J is broken down into base A in the form:
  • the task to is assigned to the agent with index r 0 , the task ti to the agent with index n and so on.
  • the solution Sj can contain several times the same agent index, which indicates that said agent is responsible for carrying out several tasks of the solution.
  • a list of task petals and associated agents is extracted from the solution Sj to be evaluated in step 54 of extracting the list of task petals.
  • a task allocation solution to agents is a union of petals to be performed by agents.
  • a petal P m is obtained associated with the agent aj in the solution Sj.
  • a petal index is calculated in the petal index calculation step 58, according to the ordering of the petals defined above.
  • the calculation of a petal index from the indices of spots forming the petal and the length of the petal is performed by applying the following recursive formulas.
  • the index of the petal P denoted s(P) is given by a sum of 2 terms as explained below:
  • o LT is the index of the first petal of length L
  • d PL is the position of the petal considered among the petals of length L.
  • n,t,o,r is the number of petals of length n for a set of T tasks, which have the task of index t in position 0.
  • L kt T the number of petals of length L (among all the petals for T tasks), identical up to the (k-1)th position and having the task of index t in position k , where k varies from 0 to L-1 .
  • the solution Seas consists of the petals:
  • ⁇ 685 ( ⁇ i/ a o) u ( ⁇ 25/ a i) u ( ⁇ 20/ a z)
  • a petal execution cost is extracted from the cost storage structure (step 60), which is, in one embodiment, a cost storage table. For example, to evaluate the cost of running the S685 solution, three accesses to the cost table are performed.
  • access is fast and parallelizable.
  • an execution cost associated with the evaluated solution Sj is calculated and stored in the calculation step 62, according to a policy of aggregation of the execution costs of the petals by the agents.
  • the aggregation policy consists in carrying out a calculation, for example a sum, an average, a standard deviation, or in applying an operator, for example the "min” or the "max” consisting in retaining respectively the value minimum or the maximum value among the cost values extracted in the cost extraction step 60.
  • the cost associated with the solution is the maximum cost among the costs retrieved from the cost table.
  • the complete set of agent task allocation solutions is tested, by performing computations in parallel on a plurality of computing units.
  • the memory footprint of the process is controlled.
  • FIG. 5 is a flowchart of an embodiment of the cost evaluation phase of the allocation solutions, implemented by a plurality of N calculation units.
  • the method comprises a step 70 of assigning a subset of solutions to be evaluated to each calculation unit among the N calculation units.
  • the subset of solutions is defined by solution indices.
  • Each calculation unit implements a calculation 72 of an optimal execution cost from among the execution costs of the solutions evaluated, and a storage of this optimal execution cost and of the associated solution index (i.e. the optimal execution cost solution among the subset of solutions attributed to the calculation unit).
  • the steps described with reference to FIG. 6 are implemented by each calculation unit.
  • These steps include, for each evaluated solution S e of the subset of solutions to be evaluated, a calculation 74 of the cost of executing the solution S e .
  • a calculation 74 of the cost of executing the solution S e For example, the method described with reference to Figure 4 is implemented.
  • the execution cost obtained is then compared in the comparison step 76 with an optimal reference execution cost associated with the current calculation unit and with the subset of solutions evaluated.
  • This reference optimal execution cost is initialized to a default value. If, for example, the optimization criterion is the minimization of the execution cost, it is checked at the comparison step 76 whether the execution cost of the solution is less than the previously stored reference optimal execution cost.
  • the evaluated solution S e is better, within the meaning of the optimization criterion, than all the solutions evaluated beforehand.
  • the comparison step 76 is then followed by a step 78 of storing the execution cost of S e as the optimal reference execution cost, and the index of the solution S e as the associated optimal solution index.
  • step 80 selects a next solution from the subset of solutions to be evaluated by the current calculation unit.
  • Step 78 is also followed by step 80.
  • step 72 is finalized.
  • the optimal execution cost associated with the evaluated subset equal to the stored reference optimal execution cost, is obtained, as well as the associated solution index.
  • the optimal execution costs for each subset of evaluated solutions are compared at the comparison step 82, and the solution whose execution cost is optimal (e.g. minimum) among all the solutions evaluated in parallel is determined in step 84.
  • the quantity of stored data is minimized, since only the optimal reference execution cost is retained for each subset of solutions evaluated by each calculation unit. Indeed, the number of solutions per subset of solutions to be evaluated in parallel is chosen freely.
  • the task allocation method described makes it possible to control the memory space used, and to test, in a foreseeable time, the exhaustive set of possible solutions.
  • a fleet of 16 planes and 32 drones have to deal with targets located in 9 localities: 2 airbases, 4 outposts, 3 industrial zones.
  • 9 localities are all macrotasks.
  • the method makes it possible to distribute these 9 localities between the 4 macro-agents.
  • the process will then be used 9 times, namely once per locality, to refine the allocations according to the missions associated with the localities.
  • the task allocation process between agents makes it easy to take into account heterogeneous agents. Indeed, if some agents are not able to process certain tasks, it suffices to associate a specific cost (invalid cost) to each petal including the task or tasks which cannot be processed by the considered agent.

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Game Theory and Decision Science (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

L'invention concerne un procédé d'allocation de tâches entre agents pour exécution de chaque tâche par un agent d'un ensemble d'agents formé de A agents, A étant un entier strictement positif, les tâches appartenant à un ensemble de tâches formé de T tâches à exécuter par au moins une partie des agents, T étant un entier strictement positif, le procédé étant mis en œuvre par au moins une unité de calcul d'un processeur. Ce procédé comporte, pour au moins une solution d'allocation des tâches à exécuter entre au moins une partie desdits agents, dite solution évaluée, l'obtention (50, 52) d'une liste de T indices d'agents définissant la solution évaluée, chaque indice d'agent correspondant à l'agent alloué pour effectuer la tâche dont l'indice est fourni par le rang dans ladite liste d'agents; le calcul (54), à partir de la liste de T indices d'agents, d'un ou plusieurs pétales de tâches à effectuer des agents distincts; pour chaque pétale de tâches, le calcul (62) d'un coût d'exécution de la solution évaluée en fonction des coûts d'exécution des pétales et d'une politique d'agrégation de coûts donnée.

Description

TITRE : Procédé et dispositif d’allocation de tâches entre agents
La présente invention concerne un procédé d’allocation de tâches entre agents pour exécution de chaque tâche par un agent d’un ensemble d’agents formé de A agents, A étant un entier strictement positif, les tâches appartenant à un ensemble de tâches formé de T tâches à exécuter par au moins un sous-ensemble de l’ensemble d’agents, T étant un entier strictement positif.
L’invention concerne également un dispositif d’allocation de tâches entre agents associé et un produit programme d’ordinateur associé.
L’invention se situe dans le domaine de l’allocation de tâches à effectuer par plusieurs agents, et trouve des applications pratiques dans de nombreux domaines.
Par exemple, l’invention s’applique pour l’allocation de tâches coopératives à effectuer par des agents qui sont des aéronefs sans pilote à bord (drones), les tâches étant par exemple des tâches de prise de vue de terrain, de détection de présence d’éléments particuliers, et plus généralement toute tâche de mission de ce type d’aéronef, dans les domaines civil ou militaire.
L’invention s’applique pour un ensemble d’agents quelconque, qu’il s’agisse d’agents de même type (ensemble homogène) ou des agents de différents types (agents hétérogènes). Une tâche est exécutée par un agent et un seul, mais un même agent peut exécuter plusieurs tâches. L’ensemble de solutions d’allocations de tâches consiste à considérer toutes les allocations possibles de tâches à un ou plusieurs agents de l’ensemble d’agents.
Le problème de l’allocation de tâches entre agents est un problème connu, qui a fait l’objet de recherches, notamment dans le cas particulier où le nombre T des tâches est supérieur au nombre A d’agents.
L’article « Multi-task allocation and path planning for cooperating UAVS » de J. Bellingham et al, publié dans Cooperative Control Systems, vol.1 , pages 23-41 , Springer, Boston en 2003 formule le problème d’allocation de tâches entre agents comme un problème MMKP (« Multi-dimensional Multiple-choice Knapsack Problem »), connu dans le domaine de la recherche opérationnelle, et propose une résolution via un solveur générique de type MILP (« Mixed Integer Linear Programming ») ou bien via un algorithme heuristique n’explorant pas l’intégralité des solutions d’allocation, et ne pouvant donc garantir l’optimalité de la solution trouvée. La première résolution présente l’inconvénient d’être lente et non prédictible en temps. La seconde résolution présente l’inconvénient de ne pas être optimale. L’invention a pour objet de remédier aux inconvénients de l’état de la technique, en proposant une méthode rapide car massivement parallélisable, prédictible en temps et avec une garantie d’optimalité.
A cet effet, l’invention propose, selon un aspect, un procédé d’allocation de tâches entre agents pour exécution de chaque tâche par un agent d’un ensemble d’agents formé de A agents, A étant un entier strictement positif, les tâches appartenant à un ensemble de tâches formé de T tâches à exécuter par au moins une partie des agents, T étant un entier strictement positif, le procédé étant mis en œuvre par au moins une unité de calcul d’un processeur. Ce procédé comporte des étapes consistant à : pour au moins une solution d’allocation des tâches à exécuter entre au moins une partie desdits agents, dite solution évaluée, obtenir une liste de T indices d’agents définissant la solution évaluée, chaque indice d’agent correspondant à l’agent alloué pour effectuer la tâche dont l’indice est fourni par le rang dans ladite liste d’agents ; calculer, à partir de la liste de T indices d’agents, un ou plusieurs pétales de tâches à effectuer par des agents distincts, chaque pétale de tâches étant associé à un agent identifié par un indice distinct de la liste de T indices d’agents, un pétale de tâches étant une liste de L tâches, identifiées par leur indice dans l’ordre croissant, L étant un nombre compris entre 1 et T ;
■ pour chaque pétale de tâches, calculer un indice de pétale associé, et accéder à une structure de mémorisation pour extraire, en fonction dudit indice de pétale, au moins un coût d’exécution des tâches du pétale par l’agent associé, calculer un coût d’exécution de la solution évaluée en fonction des coûts d’exécution extraits pour chaque pétale et d’une politique d’agrégation de coûts donnée.
Avantageusement, le procédé d’allocation de tâches de l’invention est massivement parallélisable et la taille mémoire nécessaire est réduite.
Avantageusement, tout calcul de coût peut être utilisé pour caractériser les solutions d’allocation, et le procédé est applicable pour des agents hétérogènes.
Le procédé d’allocation de tâches entre agents selon l’invention peut également présenter une ou plusieurs des caractéristiques ci-dessous, prises indépendamment ou selon toutes les combinaisons techniquement envisageables :
Le procédé comporte l’évaluation d’une pluralité de solutions, et une détermination d’une solution de coût d’exécution optimal selon un critère d’optimalité donné en fonction des coûts d’exécution calculés pour chaque solution évaluée.
Le procédé est mis en œuvre par une pluralité d’unités de calcul d’un ou plusieurs processeurs, lesdites unités de calcul étant adaptées à fonctionner en parallèle, et comporte en outre une attribution à chaque unité de calcul d’un sous-ensemble de solutions à évaluer.
Chaque solution dudit sous-ensemble de solutions à évaluer est définie par un indice de solution, et le procédé comporte un calcul, pour chaque indice de solution évaluée, de la liste de T indices d’agents formant ladite solution par décomposition en base A de l’indice de solution.
Le procédé comporte, pour chaque unité de calcul, une détermination d’un coût d’exécution optimal associé au sous-ensemble de solutions évaluées par ladite unité de calcul, et un indice de solution associé, et une détermination d’une solution optimale par comparaison des coûts optimaux d’exécution associés aux sous-ensembles des solutions évaluées par chaque unité de calcul.
Chaque unité de calcul met en œuvre, pour chaque solution évaluée, le calcul d’un coût d’exécution de ladite solution, puis une comparaison dudit coût d’exécution à un coût d’exécution optimal de référence associé au sous-ensemble de solutions évaluées par ladite unité de calcul, et si le coût d’exécution est meilleur que le coût d’exécution optimal de référence selon ledit critère d’optimalité, un remplacement dudit coût d’exécution optimal de référence par ledit coût d’exécution et une mémorisation de l’indice de ladite solution.
Le procédé comporte une étape préalable de calcul des coûts d’exécution des pétales de tâches par les agents de l’ensemble d’agents, et de mémorisation des coûts calculés dans ladite structure de mémorisation.
Le calcul des coûts d’exécution des pétales de tâches comporte un ordonnancement des pétales de tâches selon un ordre de rangement par tailles croissantes, pour les pétales de tâches de même taille, par un ordonnancement lexicographique des indices des tâches des pétales.
Pour un pétale de tâches donné, le calcul de l’indice de pétale est effectué en fonction du nombre de tâches dans ledit pétale de tâches et des indices de tâches dudit pétale de tâches.
La structure de mémorisation est une table de coûts, indexée dans l’ordre croissant des indices de pétales de tâches selon ledit ordonnancement des pétales de tâches et des indices d’agents de l’ensemble des agents.
La politique d’agrégation de coûts consiste à calculer le coût d’exécution de la solution par application d’une fonction sur les coûts d’exécution extraits pour chaque pétale.
Ladite fonction calcule la moyenne, ou la somme, ou le minimum ou le maximum des coûts d’exécution extraits pour chaque pétale. Selon un autre aspect, l’invention concerne un dispositif d’allocation de tâches entre agents d’allocation de tâches entre agents pour exécution de chaque tâche par un agent d’un ensemble d’agents formé de A agents, A étant un entier strictement positif, les tâches appartenant à un ensemble de tâches formé de T tâches à exécuter par au moins une partie des agents, T étant un entier strictement positif, comportant au moins une unité de calcul d’un processeur configuré pour mettre en œuvre : pour au moins une solution d’allocation des tâches à exécuter entre au moins une partie desdits agents, dite solution évaluée, un module d’obtention d’une liste de T indices d’agents définissant la solution évaluée, chaque indice d’agent correspondant à l’agent alloué pour effectuer la tâche dont l’indice est fourni par le rang dans ladite liste d’agents ;
■ un module de calcul, à partir de la liste de T indices d’agents, d’un ou plusieurs pétales de tâches à effectuer par des agents distincts, chaque pétale de tâches étant associé à un agent identifié par un indice distinct de la liste de T indices d’agents, un pétale de tâches étant une liste de L tâches, identifiées par leur indice dans l’ordre croissant, L étant un nombre compris entre 1 et T ; configuré pour calculer, pour chaque pétale de tâches, un indice de pétale associé, et accéder à une structure de mémorisation pour extraire, en fonction dudit indice de pétale, au moins un coût d’exécution des tâches du pétale par l’agent associé, un module de calcul pour calculer un coût d’exécution de la solution évaluée en fonction des coûts d’exécution extraits pour chaque pétale et d’une politique d’agrégation de coûts donnée.
Selon un aspect, ce dispositif comporte une pluralité d’unités de calcul d’un ou plusieurs processeurs, lesdites unités de calcul étant adaptées à fonctionner en parallèle, le dispositif étant configuré pour attribuer à chaque unité de calcul d’un sous-ensemble de solutions à évaluer.
Selon un autre aspect, l’invention concerne un programme d’ordinateur comportant des instructions logicielles qui, lorsqu’elles sont mises en œuvre par un dispositif électronique programmable, mettent en œuvre un procédé d’allocation de tâches entre agents tel que brièvement décrit ci-dessus.
D’autres caractéristiques et avantages de l’invention ressortiront de la description qui en est donnée ci-dessous, à titre indicatif et nullement limitatif, en référence aux figures annexées, parmi lesquelles : [Fig 1] la figure 1 est un synoptique d’un dispositif électronique programmable configuré pour mettre en œuvre un procédé d’allocation de tâches selon un mode de réalisation ;
[Fig 2] la figure 2 est un logigramme des principales étapes d’une première phase d’un procédé d’allocation de tâches ;
[Fig 3] la figure 3 est un exemple schématique de table de coûts ;
[Fig 4] la figure 4 est un logigramme des principales étapes d’une deuxième phase d’un procédé d’allocation de tâches ;
[Fig 5] la figure 5 est un logigramme des principales étapes d’une mise en œuvre parallèle d’évaluation de coûts d’exécution de sous-ensembles de solutions ;
[Fig 6] la figure 6 est un logigramme d’un mode de réalisation du calcul d’un coût d’exécution optimal associé à un sous-ensemble de tâches à exécuter selon un mode de réalisation.
L’invention trouve de nombreuses applications, notamment dans le domaine de l’allocation de tâches à effectuer à une flotte d’aéronefs sans pilotes à bord.
On considère un ensemble de T tâches à effectuer, T étant un entier strictement positif, par exemple compris entre 12 et 15, à effectuer par des agents d’un ensemble de A agents, A étant un entier strictement positif, par exemple compris entre 2 et 5.
Par exemple, dans un cas d’application pratique, T est égal à 15 et A est égal à 4.
Selon une modélisation, l’ensemble de tâches est constitué de tâches numérotées par des indices de tâches associés, allant de 0 à T-1. De même, l’ensemble d’agents est constitué d’agents identifiés par des indices d’agent, allant de 0 à A-1 .
Une solution d’allocation consiste à allouer ou attribuer chaque tâche t à exécuter à un agent aj. Si le nombre d’agents est inférieur au nombre de tâches, un agent au moins devra exécuter plusieurs tâches.
Selon une écriture choisie, une solution Sk est formée d’une liste de T indices d’agents, chaque indice d’agent correspondant à l’agent alloué pour effectuer la tâche dont l’indice est fonction du rang dans ladite liste d’indices d’agents :
Figure imgf000007_0001
où la tâche d’indice j est effectuée par l’agent d’indice sk j dans la solution Sk.
A titre d’exemple, pour T=4 et A=3, selon cette écriture, la solution S=[0, 0,0,0] implique que les tâches to, h, ta, ts sont toutes effectuées par l’agent ao et la solution S=[0,2,2,0] implique que les tâches to et ts sont réalisées par l’agent a0, les tâches ti et t2 par l’agent as. On comprend que l’espace des solutions comprend AT solutions.
Dans un mode de réalisation, le procédé est mis en œuvre par un dispositif électronique programmable comportant un ou plusieurs processeur(s) de calcul, chaque processeur comportant une ou plusieurs unités de calcul. Dans ce mode de réalisation, avantageusement, l’allocation de tâches entre agents est parallélisée ce qui réduit de manière significative le temps de calcul global.
Dans une variante, le procédé d’allocation de tâches entre agents est mis en œuvre par un seul dispositif électronique programmable, par exemple un ordinateur, ou un système informatique composé d’une pluralité de dispositifs de calcul fonctionnant en réseau.
La figure 1 est un synoptique d’un dispositif électronique programmable 2 configuré pour mettre en œuvre un procédé d’allocation de tâches entre agents selon un mode de réalisation.
Le dispositif électronique programmable 2 est par exemple un ordinateur comportant dans l’exemple un processeur 4 qui est un processeur multi-cœurs. En d’autres termes, le processeur 4 comporte plusieurs unités de calcul 8A, 8B, 8C, qui sont susceptibles d’exécuter des calculs en parallèle. Le dispositif électronique programmable 2 comprend également des unités de mémoire électronique 10, 12. Les éléments du dispositif électronique programmable 2 sont adaptés à communiquer via un bus de communication 14. Ce dispositif électronique programmable 2 est configuré pour mettre en œuvre l’invention.
Le processeur 4, via les unités de calcul 8A, 8B, 8C, est configuré pour mettre en œuvre, lorsque le dispositif électronique programmable 2 est mis sous tension, un module 16 de calcul et mémorisation d’une structure 18 de mémorisation, par chacun des agents, de coûts d’exécution de sous-ensembles de tâches appelés « pétales de tâches », dont la définition sera détaillée ci-dessous. Dans un mode de réalisation, la structure 18 de mémorisation de coûts comporte une ou plusieurs table(s) de coûts, stockant les coûts associés aux « pétales de tâches » de chacun des agents.
Le processeur 4 est également configuré pour mettre en œuvre un module 20 d’allocation de tâches entre agents, en se basant sur les coûts de la structure 18 de mémorisation de coûts préalablement calculée et enregistrée.
Dans un mode de réalisation, les modules 16, 20 sont réalisés sous forme d’instructions logicielles formant un programme d’ordinateur, qui, lorsqu’il est exécuté par un ordinateur, met en œuvre un procédé d’allocation de tâches entre agents. Dans un mode réalisation alternatif, chaque module 16, 20 est réalisé sous forme d’un programme d’ordinateur distinct. En variante non représentée, les modules 16, 20 sont réalisés chacun sous forme de composants logiques programmables, tels que des FPGA (de l’anglais Field Programmable Gate Array), des microprocesseurs, des composants GPGPII (de l’anglais General-purpose processing on graphies processing), ou encore de circuits intégrés dédiés, tels que des ASIC (de l’anglais Application Specific Integrated Circuit).
Le programme d’ordinateur comportant des instructions logicielles est en outre apte à être enregistré sur un support, non représenté, lisible par ordinateur. Le support lisible par ordinateur est par exemple, un médium apte à mémoriser les instructions électroniques et à être couplé à un bus d’un système informatique. A titre d’exemple, le support lisible est un disque optique, un disque magnéto-optique, une mémoire ROM, une mémoire RAM, tout type de mémoire non-volatile (par exemple EPROM, EEPROM, FLASH, NVRAM), une carte magnétique ou une carte optique.
Le procédé d’allocation de tâches entre agents comporte deux phases, une première phase préalable de calcul et mémorisation d’une structure de mémorisation de coûts d’exécution de pétales de tâches par les agents, et une deuxième phase d’allocation effective des tâches entre agents, en fonction de la structure de mémorisation de coûts préalablement calculée.
La figure 2 est un logigramme des principales étapes de la première phase préalable de calcul et mémorisation d’une structure de mémorisation de coûts d’exécution de pétales de tâches par des agents, dans un mode de réalisation.
Comme indiqué ci-dessus, le procédé a pour but l’allocation de T tâches entre A agents, selon un critère d’optimalité donné. Les tâches et les agents sont définis selon l’application du procédé.
Formellement, les tâches sont identifiées par des indices, l’ensemble de tâches à exécuter est noté :
[MATH 2]
Figure imgf000009_0001
Les agents sont également identifiés par des indices, l’ensemble d’agents est noté :
[MATH 3]
Figure imgf000009_0002
Une solution pour l’allocation des tâches entre agents consiste à désigner, pour chaque tâche, un agent qui doit exécuter cette tâche. Un même agent est susceptible d’exécuter plusieurs tâches, voire la totalité des tâches. Tous les agents ne sont pas nécessairement impliqués dans une solution. Ainsi, dans le cas général, un même agent est susceptible d’exécuter zéro, une ou plusieurs tâches, i.e. un nombre L de tâches allant de 0 à T.
On définit des pétales de tâches, un pétale de tâches étant une liste de L tâches, identifiées par leur indice, dans l’ordre croissant, L étant compris entre 1 et T. Un pétale de tâches de taille L s’exprime mathématiquement de la manière suivante :
[MATH 4]
Pk = [Pfc,0< ••• > Pk,L-l\
Où chaque valeur pk i est un indice de tâche, 0 < pk i < T - 1, tous les indices de tâches formant un pétale de tâches étant distincts, les indices de tâches formant un pétale étant ordonnés dans un ordre croissant :
[MATH 5]
P ,i < Pk,j si et seulement si i < j
Pour un nombre T de tâches, le nombre total G(T) de pétales de tâches est donné par la formule :
[MATH 6]
Figure imgf000010_0001
Où ! est la factorielle de X.
Le procédé comporte une étape 30 d’ordonnancement des pétales de tâches pour un ensemble de T tâches à exécuter.
L’étape 30 consiste à ordonner les G(T) pétales de tâches dans un ordre choisi, qui est l’ordre de rangement par tailles, i.e. l’ordre croissant des tailles de pétales de tâches, et pour les pétales de tâches d’une taille L donnée, dans l’ordre lexicographique croissant des indices de tâches.
En d’autres termes, si on considère 2 pétales de tâches de longueur L, respectivement Pr = [pr j], 0 < i < L - 1 et Pq = [p^], 0 < j < L - 1, on note k le premier indice pour lequel pr k #= pq k.
Alors l’ordre des pétales est le suivant : Pq < Pr si pqik < pr k
A titre d’exemple numérique, pour L=4, si Pr = [1,2, 3, 4] et Pq = [1, 3,4,5], alors Pr < Pq, car ces deux pétales diffèrent à partir de l’indice k=1, et 2<3.
L’ordonnancement des pétales de tâches consiste à associer un indice de pétale à chaque pétale, les indices étant croissants selon l’ordre lexicographique explicité ci- dessus. Les pétales de tâches sont parcourus dans cet ordre, et pour chaque pétale, un coût d’exécution de ce pétale (i.e. d’exécution des tâches définies par le pétale) par chaque agent de l’ensemble des agents est calculé à l’étape de calcul 32 et mémorisé à l’étape de mémorisation 34 dans une structure de mémorisation.
Dans un mode de réalisation, la structure de mémorisation est une table de coûts, dont un exemple schématique est illustré à la figure 3.
Avantageusement, grâce à l’ordonnancement des pétales selon l’ordre lexicographique, il n’est pas nécessaire de mémoriser la liste des indices de tâches définissant chaque pétale. En effet, il est possible de calculer l’indice de pétale dans l’ordre lexicographique choisi en fonction de la longueur de pétale et des indices de tâches formant le pétale, comme expliqué plus en détail ci-après en référence à la figure 4.
Le coût d’exécution de chaque pétale de tâches est calculé selon un critère choisi, par exemple un critère de distance, temps, énergie consommée, dangerosité etc.
Dans un mode de réalisation, plusieurs tables de coûts sont calculées, pour plusieurs critères choisis, ce qui revient à calculer et mémoriser une table par critère et par agent.
En variante, plusieurs coûts d’exécution selon des critères choisis différents sont associés à chaque pétale et à chaque agent, dans une même table de coûts.
Selon une autre variante, les coûts d’exécution selon plusieurs critères différents sont combinés et mémorisés, par exemple par une combinaison linéaire pondérée.
Toute autre structure de mémorisation de coûts peut être utilisée.
Il est prévu d’associer un coût spécifique (coût non valide), par exemple la valeur « -1 », à chaque pétale considéré non valide ou non exécutable par un agent.
Par exemple, un pétale peut contenir une ou plusieurs tâches qui ne peuvent pas être exécutées par un agent donné, pour des raisons de capacité matérielle et/ou d’autorisation.
En complément, il est possible d’invalider certains pétales pour éviter la surcharge de certains agents au détriment des autres agents : par exemple, on peut associer un coût spécifique afin d’empêcher qu’un seul agent se charge des T tâches à exécuter, ou qu’un agent exécute plus d’un pourcentage Q des tâches à exécuter, par exemple plus de Q=80%.
La figure 3 illustre schématiquement une table de coûts 40, pour T tâches et A agents, chaque ligne de cette table correspondant à un pétale, les pétales étant ordonnés dans l’ordre croissant. Ainsi, lorsqu’on accède à la ligne d’indice k et à la colonne d’indice j de la table 40 on obtient le coût d’exécution du pétale d’indice k dans l’ordonnancement des pétales selon l’ordre croissant, par l’agent a,.
La figure 4 est un logigramme des principales étapes de l’évaluation du coût d’une solution.
Le procédé comprend une étape 50 d’obtention d’un indice J de solution à évaluer, suivie d’une étape 52 de calcul de la liste des indices d’agents formant la solution Sj.
Le calcul mis en œuvre à l’étape 52 consiste à décomposer l’indice J de la solution à évaluer en base A, A étant le nombre d’agents.
L’indice J se décompose en base A sous la forme :
[MATH 7]
J = r0 x A° + r x A1 + — I- rT-1 x AT-1
Alors la solution Sj s’écrit, selon une première écriture, sous la forme :
[MATH 8]
Figure imgf000012_0001
En d’autres termes, dans la solution Sj, la tâche to est attribuée à l’agent d’indice r0, la tâche ti à l’agent d’indice n et ainsi de suite. La solution Sj peut contenir plusieurs fois le même indice d’agent, ce qui indique que ledit agent est chargé d’effectuer plusieurs tâches de la solution.
Ensuite, une liste de pétales de tâches et des agents associés est extraite de la solution Sj à évaluer à l’étape 54 d’extraction de la liste de pétales de tâches.
En effet, selon une deuxième écriture, une solution d’allocation de tâches à des agents est une union de pétales à effectuer par des agents.
La liste des pétales et des agents associés est obtenue en parcourant la solution à évaluer Sj dans la première écriture (écrite selon [MATH 8]), pour extraire, pour chaque indice d’agent aj distinct, les indices n tels que rn=aj dans la solution Sj. On obtient un pétale Pm associé à l’agent aj dans la solution Sj. Après considération de tous les indices d’agent distincts, on obtient ASj pétales, la somme des longueurs des pétales étant égale à T, ASj étant un nombre compris entre 1 et T.
A titre d’exemple, pour J=685, pour T=6 et A=3, on obtient :
685 = 1 x 3° + 0 x 31 + 1 x 32 + 1 x 33 + 2 x 34 + 2 x 35
La solution d’indice 685 s’écrit alors selon la première écriture:
S685 = [1,0, 1,1, 2, 2]
On en extrait les 3 pétales suivants :
-[1] associé à l’agent ao
-[0,2,3] associé à l’agent ai -[4,5] associé à l’agent as
La solution Sees est la réunion des associations des pétales et agents mentionnés ci-dessus.
Pour chaque pétale extrait (étape 56), un indice de pétale est calculé à l’étape de calcul d’indice de pétale 58, selon l’ordonnancement des pétales défini ci-dessus.
Le calcul d’un indice de pétale à partir des indices de tâches formant le pétale et de la longueur du pétale est effectué en appliquant les formules récursives suivantes.
Soit un pétale de longueur
Figure imgf000013_0001
L’indice du pétale P, noté s(P) est donné par une somme de 2 termes comme explicité ci-après :
[MATH 9] s (P) — oL T + dp L
Où oL T est l’indice du premier pétale de longueur L, et dP L est la position du pétale considéré parmi les pétales de longueur L.
On trouve ces valeurs par les formules récursives suivantes :
[MATH 10]
Figure imgf000013_0002
Et
[MATH 11]
Figure imgf000013_0003
°ù an,t,o,r est le nombre de pétales de longueur n pour un ensemble de T tâches, qui ont la tâche d’indice t en position 0.
Selon une autre formule : Nn T = ,T! .
Selon une formule générale on note aL k t T le nombre de pétales de longueur L (parmi tous les pétales pour T tâches), identiques jusqu’à la (k-1)ème position et ayant la tâche d’indice t en position k, où k varie de 0 à L-1 .
On a, pour tout i :
[MATH 12] aL,i,L-l,T — 1
En d’autres termes, il n’y a qu’un seul pétale de longueur L finissant par la tâche i (i en position L-1) et commençant par (L-1 ) tâches données.
Et : [MATH 13]
Figure imgf000014_0001
Les valeurs aL t k T sont toutes facilement calculées par récurrence en utilisant les formules [MATH 12] et [MATH 13]
Pour calculer le deuxième terme de la somme fournissant l’indice de pétale, on met en œuvre la formule :
[MATH 14]
Figure imgf000014_0002
Où :
[MATH 15]
Figure imgf000014_0003
Par exemple, la solution Seas est constituée des pétales :
-[1] d’indice 1 associé à l’agent ao
-[0,2,3] d’indice 25 associé à l’agent ai
-[4,5] d’indice 20 associé à l’agent as
La solution Sees peut également s’écrire :
^685 = (^i/ ao) u (^25/ ai) u (^20/ az)
Pour chaque pétale, en fonction de l’indice de pétale calculé et de l’indice d’agent associé dans la solution Sj évaluée, un coût d’exécution de pétale est extrait de la structure de mémorisation des coûts (étape 60), qui est, dans un mode de réalisation, une table de mémorisation de coûts. Par exemple, pour évaluer le coût d’exécution de la solution S685, trois accès à la table de coûts sont effectués.
Avantageusement, l’accès est rapide et parallelisable.
Ensuite, un coût d’exécution associé à la solution évaluée Sj est calculé et mémorisé à l’étape de calcul 62, selon une politique d’agrégation des coûts d’exécution des pétales par les agents. Par exemple, la politique d’agrégation consiste à effectuer un calcul, par exemple une somme, une moyenne, un écart-type, ou à appliquer un opérateur, par exemple le « min » ou le « max » consistant à retenir respectivement la valeur minimum ou la valeur maximum parmi les valeurs de coûts extraites à l’étape d’extraction des coûts 60.
Par exemple, le coût associé à la solution est le coût maximum parmi les coûts extraits de la table de coûts.
Le coût d’exécution de la solution Sj évaluée, Coût(Sj) ainsi calculé est mémorisé suivant une stratégie définie ci-après.
Cela permet d’effectuer par la suite des comparaisons des coûts d’exécution des solutions évaluées, afin de choisir une solution qui optimise le coût selon un critère d’optimisation de coût, par exemple la solution de coût d’exécution minimal.
Dans un mode de réalisation préféré, l’ensemble complet de solutions d’allocations de tâches aux agents est testé, en effectuant des calculs en parallèle sur une pluralité d’unités de calcul.
Avantageusement, l’empreinte mémoire du procédé est maîtrisée.
La figure 5 est un logigramme d’un mode de réalisation de la phase d’évaluation des coûts des solutions d’allocation, mise en œuvre par une pluralité de N unités de calcul.
Le procédé comprend une étape 70 d’attribution d’un sous-ensemble de solutions à évaluer à chaque unité de calcul parmi les N unités de calcul. Le sous-ensemble de solutions est défini par des indices de solutions.
Chaque unité de calcul met en œuvre un calcul 72 d’un coût d’exécution optimal parmi les coûts d’exécution des solutions évaluées, et une mémorisation de ce coût d’exécution optimal et de l’indice de solution associé (i.e. indice de la solution de coût d’exécution optimal parmi le sous-ensemble de solutions attribuées à l’unité de calcul).
Pour la mise en œuvre du calcul 72 d’un coût d’exécution optimal, dans un mode de réalisation, les étapes décrites en référence à la figure 6 sont mises en œuvre par chaque unité de calcul.
Ces étapes comportent pour chaque solution évaluée Se du sous-ensemble de solutions à évaluer, un calcul 74 du coût d’exécution de la solution Se. Par exemple, le procédé décrit en référence à la figure 4 est mis en œuvre.
Le coût d’exécution obtenu est alors comparé à l’étape de comparaison 76 à un coût d’exécution optimal de référence associé à l’unité de calcul courante et au sous- ensemble de solutions évaluées.
Ce coût d’exécution optimal de référence est initialisé à une valeur par défaut. Si par exemple le critère d’optimisation est la minimisation du coût d’exécution, il est vérifié à l’étape de comparaison 76 si le coût d’exécution de la solution est inférieur au coût d’exécution optimal de référence préalablement mémorisé.
Si la réponse est oui, alors la solution évaluée Se est meilleure, au sens du critère d’optimisation, que toutes les solutions préalablement évaluées. L’étape de comparaison 76 est alors suivie d’une étape 78 de mémorisation du coût d’exécution de Se comme coût optimal d’exécution de référence, et de l’indice de la solution Se comme indice de solution optimale associé.
Si la réponse à l’étape de comparaison 76 est « non », elle est suivie de l’étape 80 de sélection d’une solution suivante du sous-ensemble de solutions à évaluer par l’unité de calcul courante.
L’étape 78 est également suivie de l’étape 80.
Lorsque toutes les solutions du sous-ensemble de solutions à évaluer par l’unité de calcul ont été testées, l’étape 72 est finalisée. Le coût d’exécution optimal associé au sous-ensemble évalué, égal au coût d’exécution optimal de référence mémorisé, est obtenu, ainsi que l’indice de solution associé.
De retour à la figure 5, les coûts d’exécution optimaux pour chaque sous- ensemble de solutions évaluées sont comparés à l’étape de comparaison 82, et la solution dont le coût d’exécution est optimal (e.g. minimal) parmi toutes les solutions évaluées en parallèle est déterminée à l’étape 84.
Avantageusement, la quantité de données mémorisées est minimisée, puisque seul le coût d’exécution optimal de référence est retenu pour chaque sous-ensemble de solutions évaluées par chaque unité de calcul. En effet, le nombre de solutions par sous- ensemble de solutions à évaluer en parallèle est choisi librement.
Avantageusement, le procédé d’allocation de tâches décrit permet de contrôler l’espace mémoire utilisé, et de tester, en un temps prévisible, l’ensemble exhaustif de solutions possibles.
Pour conserver une efficacité calculatoire, tout en effectuant une évaluation exhaustive de l’ensemble des solutions, selon le nombre d’unités de calcul disponible, le nombre de tâches et d’agents est fixé. Pour trouver des solutions à des problèmes de plus grande taille en termes de nombre de tâches et de nombre d’agents, il est possible d’envisager une approche multi-résolution, en regroupant les tâches groupes de tâches formant des macro-tâches et les agents par groupes d’agents formant des macro-agents dans un premier temps, puis affiner l’allocation des tâches par agent à l’intérieur d’une macro-tâche pour un groupe d’agents. Cette approche est appelée approche multi- résolution. Plusieurs niveaux de résolution dans une approche multi-résolution sont envisageables, et réalisables grâce au fait que le procédé d’allocation de tâches est massivement parrallélisable.
Par exemple, dans une application pratique, une flotte de 16 avions et 32 drones ont à traiter des cibles situées dans 9 localités : 2 bases aériennes, 4 postes avancés, 3 zones industrielles. Dans une première phase, on considère 4 équipes de 4 avions et 8 drones chacune, constituant ainsi 4 macro-agents. Les 9 localités sont autant de macrotâches. Le procédé permet de répartir ces 9 localités entre les 4 macro-agents. Le procédé sera ensuite utilisé 9 fois, à savoir une fois par localité, pour affiner les allocations en fonctions de missions associées aux localités.
Le procédé d’allocation de tâches entre agents permet aisément de prendre en compte des agents hétérogènes. En effet, si certains agents ne sont pas capables de traiter certaines tâches, il suffit d’associer un coût spécifique (coût non valide) à chaque pétale incluant la ou les tâches qui ne peuvent pas être traitées par l’agent considéré.

Claims

REVENDICATIONS
1. Procédé d’allocation de tâches entre agents pour exécution de chaque tâche par un agent d’un ensemble d’agents formé de A agents, A étant un entier strictement positif, les tâches appartenant à un ensemble de tâches formé de T tâches à exécuter par au moins une partie des agents, T étant un entier strictement positif, le procédé étant mis en œuvre par au moins une unité de calcul d’un processeur, et étant caractérisé en ce qu’il comporte : pour au moins une solution d’allocation des tâches à exécuter entre au moins une partie desdits agents, dite solution évaluée, obtenir (50, 52) une liste de T indices d’agents définissant la solution évaluée, chaque indice d’agent correspondant à l’agent alloué pour effectuer la tâche dont l’indice est fourni par le rang dans ladite liste d’agents ; calculer (54), à partir de la liste de T indices d’agents, un ou plusieurs pétales de tâches à effectuer par des agents distincts, chaque pétale de tâches étant associé à un agent identifié par un indice distinct de la liste de T indices d’agents, un pétale de tâches étant une liste de L tâches, identifiées par leur indice dans l’ordre croissant, L étant un nombre compris entre 1 et T ;
■ pour chaque pétale de tâches, calculer(58) un indice de pétale associé, et accéder (60) à une structure de mémorisation pour extraire, en fonction dudit indice de pétale, au moins un coût d’exécution des tâches du pétale par l’agent associé,
- calculer (62) un coût d’exécution de la solution évaluée en fonction des coûts d’exécution extraits pour chaque pétale et d’une politique d’agrégation de coûts donnée.
2. Procédé selon la revendication 1 , comportant l’évaluation (72) d’une pluralité de solutions, et une détermination (82, 84) d’une solution de coût d’exécution optimal selon un critère d’optimalité donné en fonction des coûts d’exécution calculés pour chaque solution évaluée.
3. Procédé selon la revendication 2, mis en œuvre par une pluralité d’unités de calcul d’un ou plusieurs processeurs, lesdites unités de calcul étant adaptées à fonctionner en parallèle, comportant en outre une attribution (70) à chaque unité de calcul d’un sous-ensemble de solutions à évaluer.
4. Procédé selon la revendication 3, dans lequel chaque solution dudit sous-ensemble de solutions à évaluer est définie par un indice de solution, comportant un calcul (52), pour chaque indice de solution évaluée, de la liste de T indices d’agents formant ladite solution par décomposition en base A de l’indice de solution.
5. Procédé selon la revendication 3 ou 4, comportant, pour chaque unité de calcul, une détermination (72) d’un coût d’exécution optimal associé au sous-ensemble de solutions évaluées par ladite unité de calcul, et un indice de solution associé, et une détermination (82, 84) d’une solution optimale par comparaison (82) des coûts optimaux d’exécution associés aux sous-ensembles des solutions évaluées par chaque unité de calcul.
6. Procédé selon l’une des revendications 3 à 5, dans lequel chaque unité de calcul met en œuvre, pour chaque solution évaluée, le calcul (74) d’un coût d’exécution de ladite solution, puis une comparaison (76) dudit coût d’exécution à un coût d’exécution optimal de référence associé au sous-ensemble de solutions évaluées par ladite unité de calcul, et si le coût d’exécution est meilleur que le coût d’exécution optimal de référence selon ledit critère d’optimalité, un remplacement (78) dudit coût d’exécution optimal de référence par ledit coût d’exécution et une mémorisation (78) de l’indice de ladite solution.
7. Procédé selon l’une des revendications 1 à 6, comportant une étape préalable de calcul (30, 32) des coûts d’exécution des pétales de tâches par les agents de l’ensemble d’agents, et de mémorisation (34) des coûts calculés dans ladite structure de mémorisation.
8. Procédé selon la revendication 7, dans lequel le calcul des coûts d’exécution des pétales de tâches comporte un ordonnancement (30) des pétales de tâches selon un ordre de rangement par tailles croissantes, pour les pétales de tâches de même taille, par un ordonnancement lexicographique des indices des tâches des pétales.
9. Procédé selon l’une des revendications 7 ou 8, dans lequel, pour un pétale de tâches donné, le calcul (58) de l’indice de pétale est effectué en fonction du nombre de tâches dans ledit pétale de tâches et des indices de tâches dudit pétale de tâches.
10. Procédé selon l’une des revendications 7 à 9, dans lequel ladite structure de mémorisation (18) est une table de coûts (40), indexée dans l’ordre croissant des indices de pétales de tâches selon ledit ordonnancement des pétales de tâches et des indices d’agents de l’ensemble des agents.
11. Procédé selon l’une des revendications 1 à 10, dans lequel la politique d’agrégation de coûts consiste à calculer le coût d’exécution de la solution par application d’une fonction sur les coûts d’exécution extraits pour chaque pétale. 18
12. Procédé selon la revendication 11 , dans lequel ladite fonction calcule la moyenne, ou la somme, ou le minimum ou le maximum des coûts d’exécution extraits pour chaque pétale.
13. Programme d’ordinateur comportant des instructions logicielles qui, lorsqu’elles sont exécutées par un dispositif électronique programmable, mettent en œuvre un procédé d’allocation de tâches entre agents conforme aux revendications 1 à 12.
14. Dispositif d’allocation de tâches entre agents pour exécution de chaque tâche par un agent d’un ensemble d’agents formé de A agents, A étant un entier strictement positif, les tâches appartenant à un ensemble de tâches formé de T tâches à exécuter par au moins une partie des agents, T étant un entier strictement positif, comportant au moins une unité de calcul d’un processeur caractérisé en ce qu’il est configuré pour mettre en oeuvre : pour au moins une solution d’allocation des tâches à exécuter entre au moins une partie desdits agents, dite solution évaluée, un module d’obtention d’une liste de T indices d’agents définissant la solution évaluée, chaque indice d’agent correspondant à l’agent alloué pour effectuer la tâche dont l’indice est fourni par le rang dans ladite liste d’agents ;
■ un module de calcul, à partir de la liste de T indices d’agents, d’un ou plusieurs pétales de tâches à effectuer par des agents distincts, chaque pétale de tâches étant associé à un agent identifié par un indice distinct de la liste de T indices d’agents, un pétale de tâches étant une liste de L tâches, identifiées par leur indice dans l’ordre croissant, L étant un nombre compris entre 1 et T ; configuré pour calculer, pour chaque pétale de tâches, un indice de pétale associé, et accéder à une structure de mémorisation (18) pour extraire, en fonction dudit indice de pétale, au moins un coût d’exécution des tâches du pétale par l’agent associé, un module de calcul pour calculer un coût d’exécution de la solution évaluée en fonction des coûts d’exécution extraits pour chaque pétale et d’une politique d’agrégation de coûts donnée.
15. Dispositif selon la revendication 14, comportant une pluralité d’unités de calcul d’un ou plusieurs processeurs, lesdites unités de calcul étant adaptées à fonctionner en parallèle, configuré pour attribuer à chaque unité de calcul d’un sous- ensemble de solutions à évaluer.
PCT/EP2021/084057 2020-12-04 2021-12-02 Procédé et dispositif d'allocation de tâches entre agents WO2022117766A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP21824373.1A EP4256490A1 (fr) 2020-12-04 2021-12-02 Procédé et dispositif d'allocation de tâches entre agents

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FRFR2012676 2020-12-04
FR2012676A FR3117242A1 (fr) 2020-12-04 2020-12-04 Procédé et dispositif d'allocation de tâches entre agents

Publications (1)

Publication Number Publication Date
WO2022117766A1 true WO2022117766A1 (fr) 2022-06-09

Family

ID=75850242

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2021/084057 WO2022117766A1 (fr) 2020-12-04 2021-12-02 Procédé et dispositif d'allocation de tâches entre agents

Country Status (3)

Country Link
EP (1) EP4256490A1 (fr)
FR (1) FR3117242A1 (fr)
WO (1) WO2022117766A1 (fr)

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"Cooperative Control: Models, Applications and Algorithms", vol. 1, 1 January 2003 (2003-01-01), Boston, MA, pages 1 - 19, XP055815847, ISSN: 1572-1272, ISBN: 978-1-4757-3758-5, Retrieved from the Internet <URL:http://acl.mit.edu/papers/CCCO_01_Cooperative_UAV_Control.pdf> DOI: 10.1007/978-1-4757-3758-5_2 *
ALIGHANBARI M ET AL: "Decentralized Task Assignment for Unmanned Aerial Vehicles", DECISION AND CONTROL, 2005 AND 2005 EUROPEAN CONTROL CONFERENCE. CDC-E CC '05. 44TH IEEE CONFERENCE ON SEVILLE, SPAIN 12-15 DEC. 2005, PISCATAWAY, NJ, USA,IEEE, 12 December 2005 (2005-12-12), pages 5668 - 5673, XP010884599, ISBN: 978-0-7803-9567-1 *
J. BELLINGHAM ET AL.: "publié dans Coopérative Control Systems", vol. 1, 2003, SPRINGER, pages: 23 - 41
RYAN DAVID M ET AL: "Extensions of the Petal Method for Vehicle Routing", 1 January 1993 (1993-01-01), pages 289 - 296, XP055815912, Retrieved from the Internet <URL:http://www2.imm.dtu.dk/courses/02735/hjorring.pdf> [retrieved on 20210621] *

Also Published As

Publication number Publication date
FR3117242A1 (fr) 2022-06-10
EP4256490A1 (fr) 2023-10-11

Similar Documents

Publication Publication Date Title
FR3025908B1 (fr) Mecanisme et procede pour acceder a des donnees dans une memoire partagee
US20170017880A1 (en) Solving vehicle routing problems using evolutionary computing techniques
CN102279738B (zh) 标识强连通分量的入口和出口的技术
FR3025907B1 (fr) Mecanisme et procede pour permettre une communication entre un client et un serveur en accedant a des donnees de messages en memoire partagee.
EP1043658A1 (fr) Procédé d&#39;amélioration des performances d&#39;un système multiprocesseur comprenant une file d&#39;attente de travaux et architecture de système pour la mise en oeuvre du procédé
FR3072798A1 (fr) Ordonnancement de taches dans un processeur a fils d&#39;execution multiples
CN110058936B (zh) 用于确定专用处理资源的资源量的方法、设备和计算机程序产品
FR2946442A1 (fr) Procede et dispositif de chargement et d&#39;execution d&#39;instructions a cycles deterministes dans un systeme avionique multi-coeurs ayant un bus dont le temps d&#39;acces est non predictible
FR2760548A1 (fr) Procede de planification de requetes d&#39;un satellite par recuit simule contraint
CN109189572B (zh) 一种资源预估方法及系统、电子设备和存储介质
WO2015004207A1 (fr) Procede d&#39;optimisation de traitement parallele de donnees sur une plateforme materielle
WO2013107819A1 (fr) Procédé d&#39;optimisation de traitement parallèle de données sur une plateforme matérielle.
CN110062922A (zh) 流处理系统和方法
FR2997774A1 (fr) Procede, dispositif et programme d&#39;ordinateur de placement de taches dans un systeme multi-cœurs
US20160055035A1 (en) Multiple simultaneous request resource management
EP3579108A1 (fr) Contrôleur de partage de ressources d&#39;une plate-forme informatique et procédé associé de partage des ressources
WO2022117766A1 (fr) Procédé et dispositif d&#39;allocation de tâches entre agents
WO2016198762A1 (fr) Procédé et système de détermination d&#39;une configuration de serveurs cible pour un déploiement d&#39;une application logicielle
CN110908780B (zh) 调度平台的任务梳理方法、装置、设备及存储介质
CN108664322A (zh) 数据处理方法及系统
CN109544329B (zh) 撮合匹配方法、装置和系统
FR2995424A1 (fr) Procede et dispositif de decompte du temps deporte pour unite de traitement dans un systeme de traitement de l&#39;information
Fischer et al. Deterministic massively parallel symmetry breaking for sparse graphs
KR20190040863A (ko) 네트워크에서의 랭킹 및 연결 예측을 위한 지도식 확장 랜덤 워크를 제공하는 방법 및 장치
WO2012038000A1 (fr) Procede de gestion de taches dans un microprocesseur ou un ensemble de microprocesseurs

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21824373

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2021824373

Country of ref document: EP

Effective date: 20230704