EP1588279A1 - Procede permettant de produire des solutions a un probleme concret d optimisation multicritere - Google Patents
Procede permettant de produire des solutions a un probleme concret d optimisation multicritereInfo
- Publication number
- EP1588279A1 EP1588279A1 EP04705435A EP04705435A EP1588279A1 EP 1588279 A1 EP1588279 A1 EP 1588279A1 EP 04705435 A EP04705435 A EP 04705435A EP 04705435 A EP04705435 A EP 04705435A EP 1588279 A1 EP1588279 A1 EP 1588279A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- search
- criterion
- solutions
- criteria
- solution
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/18—Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
- G06N5/046—Forward inferencing; Production systems
- G06N5/047—Pattern matching networks; Rete networks
Definitions
- the present invention relates to a method for producing solutions to a concrete problem of multi-criteria optimization.
- Multicriteria decision support offers tools and methods to model the preferences of a decision maker and compare the solutions of a multicriteria problem.
- many optimization systems would require multi-criteria modeling of the preference relationship between the solutions, which would make it possible to better model the problem encountered and to be able to respond to it with better quality solutions.
- the set of solutions is sometimes too vast and it is impossible to compare all the elements.
- the invention relates more particularly to the use of tree-like methods for solving multi-criteria optimization problems.
- the objective function largely determines the way in which the research tree is constructed and the strategy adopted for its exploration.
- the choice of these elements which constitute a strategy for finding solutions has a great influence on the efficiency of the resolution process.
- the multi-criteria case on the other hand, it is often very difficult to determine a research strategy allowing the resolution of a problem to be effective in most cases.
- the subject of the present invention is a method making it possible to produce semi-automatically or, preferably, automatically, solutions to a multi-criteria optimization problem, which can be applied effectively in most cases, that is to say capable of accelerating the convergence of the research process towards an optimal solution.
- the process according to the invention is a process according to which:
- the preference relationship between the solutions of the problem is modeled by an aggregation function H, which is preferably a Choquet integral.
- the value of an indicator is determined for each criterion as a function of the last solution found and this indicator makes it possible to determine the strategy which will be used during the following search.
- the indicator used for the dynamic choice of a strategy is the indicator of maximum utility.
- the indicator used for the dynamic choice of a strategy is the indicator of average utility.
- the local constraint posed for a search on a criterion is a constraint for improving this criterion and this constraint is posed at each search.
- the local constraint posed for a search on a criterion is a constraint for improving this criterion and this constraint is posed only when a criterion is selected several times in succession to guide the search, from the second consecutive search on this criterion.
- the strategies associated with the different criteria, the local constraints to the searches and the condition for stopping the Research processes are used to find an optimal solution to the problem and to prove the optimality of this solution.
- the modeling of the problem and the search for solutions are carried out in a constraint solver.
- the method of the invention is therefore a method of solving multi-criteria optimization problems based on the alternation of searches following different single-objective strategies
- An optimization problem is defined by a set of decision variables each taking their value from a set called domain, by a set of logical relations, these variables restricting the combinations of allowed values called constraints.
- this problem is defined by an objective function which characterizes the quality of a solution (we often speak of cost function in the case of a minimization problem and of profit function or utility function if it is a maximization problem).
- a solution to such a problem is an assignment of a value of its domain to each decision variable which satisfies all the constraints.
- the set of optimal solutions in the case of a minimization problem, corresponds to the solutions having the smallest value of the cost function among the set of existing solutions.
- the treatment of an optimization problem consists in looking for low cost solutions, if possible optimal, or if necessary in proving the absence of a solution.
- the problem is a combinatorial optimization problem.
- the domains are intervals of the set of reals, the problem is a problem of continuous optimization.
- the solution search space corresponds to the space formed by the Cartesian product of the domains of the variables.
- the solutions space corresponds to the set of solutions to the problem.
- Optimization problems are commonly encountered in most branches of industry and services.
- An example of a problem is to deliver a number of orders at low cost to geographically dispersed customers.
- the decision variables of the problem are the dates and times of delivery of these goods.
- the constraints describe the transport network, the hours of availability of customers for receiving goods, the capacity of delivery vehicles, the hours of the employees who make deliveries.
- the cost function to be minimized is calculated based on the distance traveled to satisfy orders.
- Transport problems are encountered in a wide variety of fields, including telecommunications, aeronautics, defense.
- the other main classes of optimization problems are, among others, scheduling problems (scheduling of a production chain, sequencing of tasks processed by a processor), configuration problems, scheduling problems and planning, cutting issues.
- Multi-criteria decision support techniques aim to model the preferences of an expert as faithfully as possible. Such modeling then allows the construction of suitable tools capable of assisting or replacing a decision maker on complex problems.
- Solving a multi-criteria decision problem consists in modeling the way in which an expert or a decision maker classifies a set of potential solutions (each called “alternative”) described by a set of attributes or points of view. In order to classify (or even simply choose an alternative), the "performance" (level of satisfaction) of the different possible alternatives is evaluated according to each of the points of view deemed relevant to the problem. Expert preferences are modeled using a function that aggregates the performance of the different alternatives.
- CA Compare then Aggregate
- CA aggregate then Compare
- the cost of the solution for delivering the goods may not be the only criterion of choice.
- a decision maker can then prefer a solution that offers a compromise between the different criteria to the minimum cost solution.
- Multi-criteria decision support techniques allow a number of known alternatives to be classified (for example, for the choice of a site for the establishment of a nuclear power plant). More generally, they make it possible to assess situations or the aptitude of individuals (assessment of the relevance of the response to a call for tenders, assessment of pupils, etc.).
- the problems which the invention must model and solve are multi-criteria optimization problems characterized by the fact that the solution space is modeled, as in a classic optimization problem, by a set of decision variables and constraints, and that the preference relationship between the solutions is modeled by a multi-criteria function. Solving a multi-criteria optimization problem therefore amounts to finding a preferred solution to the problem, or at least a good quality solution. In the context of multi-criteria optimization problems, an optimal solution is therefore a preferred solution. It is generally impossible to compare all the solutions of an optimization problem, and it can be noted that the introduction of multiple criteria often makes the search for an optimal solution even more complex.
- the invention therefore proposes a method making it possible to take into account the specificity of the multi-criteria optimization problems and to allow their resolution in reasonable times. This process is based on the use of tree methods for finding solutions to the problem.
- the search for a solution to an optimization problem can be carried out in different ways.
- One of the most widespread resolution methods is the separation-evaluation process (bran i and bound) which allows an implicit search of the solution space using a search tree.
- the principle of the construction of a research tree is as follows: at each node of the tree, a father sub-problem is divided into simpler child sub-problems, until the sub-problems to be solved are trivial.
- the division into sub-problems (called separation) is carried out so that a solution of a child sub-problem is solution of the father sub-problem and the union of the child sub-problems is equivalent to the father sub-problem .
- the main problem is the knot at the root of the tree. Any solution to a sub-problem is therefore a solution to the main problem.
- the node corresponding to this sub-problem is pruned from the search tree.
- the separation rule gives the way in which the nodes are separated (ie the way in which a subproblem father is divided into subproblems child). For example, we consider a delivery problem with a single vehicle, and p decision variables tj, ..., t p which represent the delivery dates of the next p orders. If you decide to make deliveries as quickly as possible, then only the order between deliveries is important: it allows you to accurately determine the date at the earliest when each delivery is made.
- a solution can therefore be obtained by determining for any couple i, j, i ⁇ j, if t t ⁇ t / or t, -> t / .
- a couple ij of variables for which we have not yet resolved this disjunction and we separate P into H (ti ⁇ tj) ⁇ At a node of the tree corresponding to the sub-problem P, we therefore select a couple ij of variables for which we have not yet resolved this disjunction and we separate P into H (ti ⁇ tj) ⁇ .
- the exploration strategy The component that determines the next node to separate is called the exploration strategy.
- the most commonly used exploration strategy is the “depth first” strategy: each time a node is created, it is separated. In this strategy we only explore the second child of a node when all the descendants of the first child have been explored. This strategy is interesting because it makes it possible to find solutions very quickly and can be easily implemented with the help of a battery.
- a second strategy is the strategy in "width first" where we separate all the nodes of a level of the tree before separating the following ones.
- a third strategy is the “best first” strategy where an evaluation function assigns a score to the nodes not yet separated, the node having obtained the best score is then selected to be separated.
- the search for a solution to an optimization problem in a search tree depends on the separation rule, the evaluation function, the exploration strategy and a heuristic criterion.
- the separation rule, the exploration strategy and the heuristic criterion determine the order in which the nodes will be constructed and therefore the order in which the solutions will be found.
- the combination of these different elements is called search strategy.
- search strategy determines the order in which the nodes will be constructed and therefore the order in which the solutions will be found.
- search strategy The combination of these different elements.
- search strategy Depending on the objective function or the criterion to be optimized, it is important to adopt a search strategy that makes it possible to quickly find good quality solutions so that you can then prune large parts of the search tree that cannot lead to better solutions. In this sense, in the following description, it will be said that a criterion "guides" a search when it is he who determines the search strategy adopted.
- a research strategy makes it possible to direct research as quickly as possible towards good quality solutions (and if possible towards an optimal solution). Finding a good solution quickly then allows, according to the principle of "branch and bound", to prune large parts of the research tree that cannot lead to better solutions.
- a strategy allowing to quickly obtain good quality solutions on one criterion can be very ineffective for another.
- the compensation phenomena and more generally the interaction between criteria often make it very difficult to define a global strategy allowing the effective resolution of a problem in all cases.
- Many methods have been developed for solving multi-criteria optimization problems. However, few of them propose to combine the efficiency of tree methods with the ability to model preferences for multi-criteria decision support techniques. Among these approaches, the invention retained the formalism of CP-Nets, flexible constraint formalism, an approach for solving multi-criteria scheduling problems and PBS formalism.
- PBS Preference Based Search
- a PBS master program selects criteria based on the preferences of the decision maker and sends them as objectives to a constraint solver.
- This algorithm actually makes several successive lexicographic optimizations for the different orders of criteria authorized by the preferences.
- PBS allows to exhibit all the preferred solutions of the problem.
- PBS uses the alternation of optimizations on the criteria to browse the search space and exhibit all the preferred solutions (and not improve a solution).
- the formalism used for modeling preferences has the advantage of being relatively simple but it does not allow a fine representation of preferences (in particular compensation phenomena).
- the method must therefore return a large number of solutions to the decision maker who will then have to do a choice among these. This may be desirable in certain cases (for searching for a trip on the Internet for example), but particularly troublesome in a context of automatic decision (automatic management of air conflicts, threat assessment and protection of a building).
- the invention therefore proposes an approach dedicated to the search for solutions in the context of solving multi-criteria optimization problems.
- the approach proposed for guiding a multi-criteria search is to define a strategy of guidance adapted by criteria and to use these different strategies for the search for multi-criteria solutions of increasing quality.
- the idea is to alternate mono-criteria searches using these strategies while imposing an improvement in the overall level of satisfaction with each new solution until the satisfaction of a given stopping condition (for example, until that the optimality of the last solution found has been proven).
- the process ends when a user-defined termination condition has been checked, (for example, when a search fails to find an improving solution).
- the variable "c" contains the index of the criterion on which we will launch a search and the variable "local” indicates whether a local constraint was raised during the last search for solutions.
- the chevrons ( ⁇ checkTermination>, ⁇ getNextCriterion>, ⁇ setLocalConstraints>) indicate the characteristic functions of the MCS algorithm which will have to be defined by the user according to his problem. The algorithm works as follows: a “while” loop is repeated until the stop condition contained in the ⁇ checkTermination> function has been checked.
- the ⁇ getNextCriterion> function determines the criterion which will guide the next search.
- One or more local constraints can be set by the ⁇ setLocalConstraints> function (in this case, the function returns the boolean value "true”).
- the search for solutions optimizing the criterion “c” is carried out by the function "maximize” according to the strategy defined for this criterion, which is given by getStrategy (c).
- the "maximize” function only searches for solutions that are generally preferred to "-y *". "Maximize” returns “nil” if no solution was found, otherwise, the variable "s *" is updated.
- MCS provides the framework for a generic algorithm, which can be configured according to the problems addressed. This process can therefore be qualified as a “framework” of which we will produce instances by defining the different functions that make it up.
- u ⁇ indicates the maximum value that can be reached on criterion i in an optimal solution.
- the detail of the content of the different components of this "-work” gives an overview of the variety of algorithms that can be constructed in this way.
- the maximize function (u [c], getStrategy (c)) launches a tree search for solutions following a strategy specified for a selected criterion, noted c.
- the optimization is carried out according to the principle of "branch and bound” by pruning the branches of the search tree that cannot lead to a more satisfactory solution both in the sense of the global preference relationship and on criterion c.
- the strategy associated with a criterion "c" would therefore, in theory, be the one that would be used if the problem to be solved was the optimization of this criterion.
- a large number of search strategies can be defined by defining several separation functions or by using different exploration strategies.
- it may also be interesting to use partial search strategies (a partial search strategy does not guarantee reaching the optimum on the selected criterion). For example, for each single-criteria search, we could: seek only one solution and not an optimal solution; specify a time contract; use a strategy combining tree search and local search or even launch a sequence of several different searches.
- the definition of the ⁇ getNextCriterion> function determines how the searches on the criteria succeed one another. Of course, it is possible to program this function so that the algorithm links the searches always in the same order. However it is more interesting to build a function which takes into account the information available at the time of the search where it is requested to make a dynamic choice. This information is, for example, the last solution found, the upper limits of performance that can be reached on each criterion, the importance of each criterion in the preference relationship. They can be used to determine on which criteria it is most interesting to launch a search.
- the term local constraint is used here to qualify a constraint which will only be valid for the time of a search, unlike the constraints of the problem which must be constantly checked.
- the addition of one or more local constraints is intended to force a search to explore parts of the search space deemed particularly interesting at a given time. In other words, forcing research to produce a solution with a particular characteristic which should make it a more satisfactory solution than those already found.
- the use of local constraints can make it possible to accelerate the convergence of the algorithm towards a good quality solution but it also presents some disadvantages, especially if one seeks an optimal solution of the problem: when a search which has been “ over-constraint ”by a local constraint does not find a solution, this does not necessarily mean that the optimal solution has been reached but that there is no better solution verifying the local constraint. By using this type of constraint, there is therefore a risk of building algorithms which do not guarantee that an optimal solution will be found.
- the ⁇ setLocalConstraints> function returns a boolean which can be taken into account in the stop condition and which allows to indicate if a local constraint has been set.
- the algorithm finishes running when the conditions contained in the ⁇ checktermination> function are satisfied or when the execution time allocated to the search has been exceeded (if a time contract has been specified).
- the MCS "frarnework" is based on principles common to multi-criteria optimization problems and therefore remains a relatively general framework for the definition of algorithms for finding solutions. We present in this section some tools for using the process: firstly in the context of a problem where preferences are modeled by an aggregation function to be maximized; then in the case where one wishes to find an optimal solution of the problem.
- the “Aggregate then Compare” (AC) approach calculates an overall score for each solution by aggregating the performance of the solutions on each criterion.
- MAUT MultiAtribute Utility Theory
- H aggregates the values of the criteria u ⁇ , ..., u initiativeand calculates the global evaluation of a solution.
- a and b be two solutions.
- the function H is such that, for any couple of solutions a and b, a preferred to b is equivalent to H (u ⁇ , ..., u ⁇ )> H ⁇ u, ..., u t b .
- Average utility indicator the value u ( is an upper limit of the maximum value that can be reached on criterion i. In most optimization problems, it is unlikely that it is always possible to find a solution that achieves this value, especially without degrading performance on the other criteria. In some cases it may therefore be more advisable to calculate the average value of the function H for values of criterion i varying between u and u t . , noted ⁇ t (H) (u *, u) can be obtained by calculating the integral
- a heuristic of choice of criterion constructed from this type of indicator returns the index of the criterion which obtained the highest value of the indicator.
- the "framework" can be used to implicitly carry out a complete search of the search tree and allow an optimal solution to be found for sure.
- a search strategy is said to be complete if it makes it possible to find a solution to a problem when it exists. Consequently, if a complete search does not find a solution, it is because there is none. In general it is said that a search is complete when it "does not forget" a solution.
- the "checkUpperBounds” function checks whether the performance of the solution "s *" on each criterion is equal to the upper bound of the performance of the criterion. Otherwise, the "local” variable allows to stop the algorithm when a search which has not been subjected to a local constraint does not find a solution (a search which does not find a solution returns "nil”). If a search on the criterion “c”, subjected to a local constraint returns “nil”, the function “setConstraint” reduces the upper bound of the criterion “c” by setting the constraint u [c] ⁇ getValue (s *, c) .
- the algorithm necessarily ends and returns an optimal solution.
- the “optimalityCondition” function also makes it possible to find the optimum when no local constraint is posed.
- ⁇ checkTermination> function is launched after each search and that it can therefore also be used to introduce new sections of the search space (for example, reducing the upper bounds of the criteria).
- Constraint Programming provides a technical framework for modeling combinatorial optimization problems. The resolution process is based on the collaboration between a process which builds a search tree for the search for solutions and a process which propagates the constraints of the problem to each node of the tree in order to reduce the search space and ensure the validity of the solutions found.
- PPC a number of tools have been designed to assist in the design of optimization algorithms. They make it relatively easy to define strategies for finding solutions to mono-objective problems. Modeling of multi-criteria preferences is also possible in this context, in particular by integrating aggregation functions such as the Choquet integral (F. Le Huédé, P. opposition, M. Grabisch, C. Labreuche and P. Savéant, Integration of a Multicriteria Décision Model in Constraint Programming, proceedings of the AIPS'02 Workshop on Planning and Scheduling with Multiple Criteria, Toulouse, France, April 23-27, 2002).
- PPC is therefore an ideal framework for the implementation of the MCS framework, because a large number of tools have already been created for modeling the constraints of the problem, modeling preferences between solutions and describing the strategies of research.
- MCS multi-tenant system
- the MCS framework makes it possible to build algorithms for finding solutions to a multi-criteria optimization problem.
- the principle of the algorithm is based on alternating single-criteria search strategies for finding a preferred solution in the sense of a multi-criteria preference relationship.
- MCS is designed to be able to work with tools from multi-criteria decision support which has significant capacities for modeling the preferences of an expert. We therefore use different search strategies, not to exhibit a large set of non-dominated solutions, but to accelerate the convergence of the algorithm to an optimal solution.
- a single-criteria search can take various forms (for example: following an incomplete strategy, being interrupted as soon as it has found a solution, etc.). Between each search, a criterion is selected by a heuristic of choice of criterion.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Software Systems (AREA)
- Computational Mathematics (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Operations Research (AREA)
- Probability & Statistics with Applications (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Le procédé conforme à l'invention est un procédé selon lequel : on établit plusieurs critères de décision et une relation de préférence basée sur ces critères entre les solutions du problème ; on établit une modélisation du problème à résoudre et il est caractérisé par le fait : que les solutions sont obtenues de manière constructive via un processus de recherche arborescente ; qu'une stratégie de recherche arborescente a été établie pour chaque critère ; que l'on alterne les stratégies pour trouver des solutions de qualité croissante ; que les stratégies sont choisies dynamiquement en fonction de la dernière solution trouvée ; que l'alternance des stratégies continue jusqu'à la satisfaction d'une condition d'arrêt ; que la dernière solution trouvée avant la vérification de la condition d'arrêt est exhibée comme la solution du problème posé.
Description
PROCÉDÉ PERMETTANT DE PRODUIRE DES SOLUTIONS À UN PROBLÈME CONCRET D'OPTIMISATION MULTICRITÈRE
La présente invention se rapporte à un procédé permettant de produire des solutions à un problème concret d'optimisation multicritère.
De nombreux problèmes industriels relèvent à la fois de la décision multicritère et de l'optimisation. D'un côté, les techniques de recherche arborescente permettent de résoudre un grand nombre de problèmes d'optimisation combinatoire ou continue dans le cas monoobjectif. L'aide à la décision multicritère, d'un autre côté, propose des outils et des méthodes pour modéliser les préférences d'un décideur et comparer les solutions d'un problème multicritère. Pourtant, de nombreux systèmes d'optimisation nécessiteraient une modélisation multicritère de la relation de préférence entre les solutions, qui permettrait de mieux modéliser le problème rencontré et de pouvoir y répondre par des solutions de meilleure qualité. De même, dans le cadre de problèmes abordés par l'aide à la décision multicritère, l'ensemble des solutions est parfois trop vaste et il est impossible d'en comparer tous les éléments.
L'invention s'intéresse plus particulièrement à l'utilisation de méthodes arborescentes pour la résolution des problèmes d'optimisation multicritère. Dans le cas mono-objectif, la fonction objectif détermine en grande partie la manière dont est construit l'arbre de recherche et la stratégie adoptée pour son exploration. Le choix de ces éléments qui constituent une stratégie de recherche de solutions a une grande influence sur l'efficacité du processus de résolution. Dans le cas multicritère, par contre, il est souvent très difficile de déterminer une stratégie de recherche permettant que la résolution d'un problème soit efficace dans la plupart des cas. La présente invention a pour objet un procédé permettant de produire semi- automatiquement ou, de préférence, automatiquement, des solutions à un problème d'optimisation multicritère, qui soit applicable de façon efficace dans la plupart des cas, c'est- à-dire capable d'accélérer la convergence du processus de recherche vers une solution optimale. Le procédé conforme à l'invention est un procédé selon lequel :
• on établit plusieurs critères de décision et une relation de préférence basée sur ces critères entre les solutions du problème ;
• on établit une modélisation du problème à résoudre et il est caractérisé par le fait :
• que les solutions sont obtenues de manière constructive via un processus de recherche arborescente ;
• qu'une stratégie de recherche arborescente a été établie pour chaque critère ;
• que l'on alterne les stratégies pour trouver des solutions de qualité croissante ; • que les stratégies sont choisies dynamiquement en fonction de la dernière solution trouvée ;
• que l'alternance des stratégies continue jusqu'à la satisfaction d'une condition d'arrêt ;
• que la dernière solution trouvée avant la vérification de la condition d'arrêt est exhibée comme la solution du problème posé.
Selon une autre caractéristique de l'invention, la relation de préférence entre les solutions du problème est modélisée par une fonction d'agrégation H, qui est, de préférence, une intégrale de Choquet .
Selon encore une autre caractéristique de l'invention, suite à chaque recherche, la valeur d'un indicateur est déterminée pour chaque critère en fonction de la dernière solution trouvée et cet indicateur permet de déterminer la stratégie qui sera utilisée lors de la recherche suivante.
Selon encore une autre caractéristique de l'invention, l'indicateur utilisé pour le choix dynamique d'une stratégie est l'indicateur d'utilité maximale.
Selon encore une autre caractéristique de l'invention, l'indicateur utilisé pour le choix dynamique d'une stratégie est l'indicateur d'utilité moyenne.
Selon encore une autre caractéristique de l'invention, on pose des contraintes locales aux différentes recherches. De façon avantageuse, la contrainte locale posée pour une recherche sur un critère est une contrainte d'amélioration de ce critère et cette contrainte est posée à chaque recherche. Alternativement, la contrainte locale posée pour une recherche sur un critère est une contrainte d'amélioration de ce critère et cette contrainte est posée uniquement lorsqu'un critère est sélectionné plusieurs fois de suite pour guider la recherche, à partir de la seconde recherche consécutive sur ce critère.
Selon encore une autre caractéristique de l'invention, les stratégies associées aux différents critères, les contraintes locales aux recherches et la condition d'arrêt du
processus de recherche sont utilisées pour trouver une solution optimale du problème et de prouver l'optimalité de cette solution.
Selon encore une autre caractéristique de l'invention, la modélisation du problème et la recherche de solutions sont réalisées dans un solveur de contraintes.
La présente invention sera mieux comprise à la lecture de la description détaillée d'un mode de mise en oeuvre, pris à titre d'exemple non limitatif.
Le procédé de l'invention est donc un procédé de résolution des problèmes d'optimisation multicritère basée sur l'alternance de recherches suivant différentes stratégies mono-objectif
(une par critère). Pour que le procédé soit efficace, le choix d'une stratégie à un moment de la recherche doit être effectué de manière adaptative en fonction des données du problème et de l'état de la recherche.
Dans un premier temps, on définit les notions importantes à la compréhension du procédé de l'invention, ainsi que les notations et appellations utilisées dans la suite de la description.
Un problème d'optimisation se définit par un ensemble de variables de décision prenant chacune leur valeur parmi un ensemble appelé domaine, par un ensemble de relations logiques, ces variables restreignant les combinaisons de valeurs permises appelées contraintes. Enfin, ce problème se définit par une fonction objectif qui caractérise la qualité d'une solution (on parle souvent de fonction de coût dans le cas d'un problème de minimisation et de fonction de profit ou fonction d'utilité s'il s'agit d'un problème de maximisation). Une solution à un tel problème est une affectation d'une valeur de son domaine à chaque variable de décision qui satisfait toutes les contraintes. L'ensemble des solutions optimales, dans le cas d'un problème de minimisation, correspond aux solutions ayant la plus petite valeur de la fonction de coût parmi l'ensemble des solutions existantes. Le traitement d'un problème d'optimisation consiste à rechercher des solutions de faible coût, si possible optimales, ou le cas échéant à prouver l'absence de solution.
Lorsque les domaines des variables sont des ensembles finis de valeurs, le problème est un problème d'optimisation combinatoire. Lorsque les domaines sont des intervalles de l'ensemble des réels, le problème est un problème d'optimisation continu. Pour un problème d'optimisation donné, l'espace de recherche de solutions correspond à l'espace formé par le produit cartésien des domaines des variables. L'espace des solutions correspond à l'ensemble des solutions du problème.
Les problèmes d'optimisation sont couramment rencontrés dans la plupart des branches de l'industrie et des services. Un exemple de problème consiste à livrer à moindre coût un certain nombre de commandes à des clients dispersés géographiquement. Les variables de décision du problème sont les dates et heures de livraison de ces marchandises. Les contraintes décrivent le réseau de transport, les horaires de disponibilité des clients pour la réception des marchandises, la capacité des véhicules de livraison, les horaires des employés qui effectuent les livraisons. La fonction de coût à minimiser est calculée en fonction de la distance parcourue pour la satisfaction des commandes.
Les problèmes de transport sont rencontrés dans des domaines très variés, parmi lesquels les télécommunications, l'aéronautique, la défense. Les autres grandes classes de problèmes d'optimisation sont, entre autres, les problèmes d'ordonnancement (ordonnancement d'une chaîne de production, séquencement des tâches traitées par un processeur), les problèmes de configuration, les problèmes d'emploi du temps et de planification, les problèmes de découpe.
Les techniques d'aide à la décision multicritère ont pour but de modéliser de la manière la plus fidèle possible les préférences d'un expert. Une telle modélisation permet ensuite la construction d'outils adaptés et capables d'assister ou de remplacer un décideur sur des problèmes complexes. Résoudre un problème de décision multicritère consiste à modéliser la manière dont un expert ou un décideur classe un ensemble de solutions potentielles (appelées chacune « alternative ») décrites par un ensemble d'attributs ou points de vue. Afin d'effectuer le classement (ou même simplement le choix d'une alternative), on évalue les « performances » (niveau de satisfaction) des différentes alternatives possibles selon chacun des points de vues jugés pertinents pour le problème. La modélisation des préférences d'un expert est réalisée à l'aide d'une fonction agrégeant les performances des différentes alternatives. Deux approches sont utilisées : l'approche « Comparer puis Agréger » (CA) consiste tout d'abord en une comparaison par paires, critère par critère, des performances des alternatives, puis en une agrégation de ces comparaisons afin d'établir la relation de préférence ; l'approche « Agréger puis Comparer » (AC) résume la valeur d'une alternative par une note globale calculée à partir des performances d'une alternative sur les différents critères. La meilleure alternative au sens des préférences de l'expert est appelée solution préférée.
Par exemple, on considère différentes solutions au problème de livraison de marchandises cité précédemment. Le coût de la solution permettant de livrer les marchandises peut ne pas être l'unique critère de choix. On peut également vouloir minimiser la durée de la livraison (la
solution la moins chère n'est pas nécessairement la plus rapide), donner la priorité à des commandes plus importantes, minimiser le nombre de livraisons en retard ou le cumul des retards lorsqu'il est impossible de tenir des délais donnés. Un décideur peut alors préférer une solution qui offre un compromis entre les différents critères à la solution de coût minimum. Les techniques d'aide à la décision multicritère permettent de classer un certain nombre d'alternatives connues (par exemple, pour le choix d'un site pour l'implantation d'une centrale nucléaire). De manière plus générale, elles permettent d'évaluer des situations ou l'aptitude des individus (évaluation de la pertinence de la réponse à un appel d'offres, évaluation d'élèves, etc.). Les problèmes que l'invention doit modéliser et résoudre sont des problèmes d'optimisation multicritère caractérisés par le fait que l'espace des solutions est modélisé, comme dans un problème d'optimisation classique, par un ensemble de variables de décision et de contraintes, et que la relation de préférence entre les solutions est modélisée par une fonction multicritère. Résoudre un problème d'optimisation multicritère revient donc à trouver une solution préférée au problème, ou au moins une solution de bonne qualité. Dans le cadre des problèmes d'optimisation multicritère, une solution optimale est donc une solution préférée. Il est en général impossible de comparer toutes les solutions d'un problème d'optimisation, et on peut noter que l'introduction de critères multiples rend souvent encore plus complexe la recherche d'une solution optimale. L'invention propose donc un procédé permettant de prendre en compte la spécificité des problèmes d'optimisation multicritère et permettre leur résolution dans des temps raisonnables. Ce procédé est basé sur l'utilisation de méthodes arborescentes pour la recherche de solutions au problème.
La recherche d'une solution à un problème d'optimisation peut être réalisée de différentes manières. Une des méthodes de résolution les plus répandues est le processus de séparation- évaluation (bran i and bound) qui permet d'effectuer un parcours implicite de l'espace des solutions à l'aide d'un arbre de recherche.
Le principe de la construction d'un arbre de recherche est le suivant : à chaque nœud de l'arbre, un sous-problème père est divisé en sous-problèmes fils plus simples, jusqu'à ce que les sous-problèmes à résoudre soient triviaux. La division en sous-problèmes (appelée séparation) est réalisée de telle sorte qu'une solution d'un sous-problème fils soit solution du sous-problème père et que l'union des sous-problèmes fils soit équivalente au sous-problème père. Le problème principal est le nœud à la racine de l'arbre. Toute solution d'un sous- problème est donc solution du problème principal. Lorsqu'un sous-problème n'a pas de
solution, le nœud correspondant à ce sous-problème est élagué de l'arbre de recherche. Si tous les fils d'un sous-problème père ont été élagués, alors il n'existe pas de solution au sous- problème père et il peut à son tour être élagué. La règle de séparation donne la manière dont les nœuds sont séparés (c'est-à-dire la manière dont un sous-problème père est divisé en sous- problèmes fils). Par exemple, on considère un problème de livraison avec un seul véhicule, et p variables de décision tj, ...,tp qui représentent les dates de livraisons des p prochaines commandes. Si l'on décide d'effectuer les livraisons aussi vite que possible, alors seul l'ordre entre les livraisons est important : il permet de déterminer de manière exacte la date au plus tôt où chaque livraison est effectuée. Une solution peut donc être obtenue en déterminant pour tout couple i,j, i<j, si tt<t/ ou t,->t/. A un nœud de l'arbre correspondant au sous-problème P, on sélectionne donc un couple ij de variables pour lequel on n'a pas encore résolu cette disjonction et on sépare P en
H (ti≥ tj)}.
Il existe diverses manières de rechercher des solutions dans un arbre de recherche en fonction de l'ordre dans lequel on construit les nœuds. Étant donné un arbre de recherche en cours de construction, il faut choisir le prochain nœud à séparer et une des décisions de séparation qui peut lui être appliquée. La composante qui détermine le prochain nœud à séparer est appelée stratégie d'exploration. La stratégie d'exploration la plus communément employée est la stratégie en « profondeur d'abord » : à chaque fois qu'un nœud est créé, il est séparé. Dans cette stratégie on n'explore le deuxième fils d'un nœud que lorsque tous les descendants du premier fils ont été explorés. Cette stratégie est intéressante car elle permet de trouver des solutions très rapidement et peut être impiémentée facilement à l'aide d'une pile. Une deuxième stratégie est la stratégie en « largeur d'abord » où l'on sépare tous les nœuds d'un niveau de l'arbre avant de séparer les suivants. De manière pratique, cette stratégie n'est jamais utilisée car elle consomme trop de mémoire. Enfin, une troisième stratégie est la stratégie du « meilleur d'abord » où une fonction d'évaluation attribue un score aux nœuds non encore séparés, le nœud ayant obtenu le meilleur score est alors sélectionné pour être séparé. Le choix de la décision de séparation appliqué à un nœud détermine l'ordre dans lequel s'enchaînent ces séparations (dans l'exemple ci-dessus,, l'ordre dans lequel on choisit les couples ij, et si on crée le nœud Pι={P0\(ti<tj)} avant le nœud P2-{E (#≥ tj)} ou l'inverse). Cet ordre, généralement choisi de manière empirique, est souvent donné par un critère heuristique. Son but est en général de précipiter la découverte d'une nouvelle solution, ou, au contraire, de détecter plus vite des contradictions prouvant qu'un nœud n'admet pas de solution.
En optimisation, on utilise le principe du « Branch and Bound » : lorsqu'une solution est trouvée, on ne sépare que les nœuds pouvant mener à une meilleure solution. A chaque nœud, la fonction d'évaluation permet de déterminer une borne (inférieure en minimisation) de la fonction objectif pour le sous-problème correspondant : c'est la meilleure valeur qui pourra être obtenue pour ce sous-problème. Si cette borne est de moins bonne qualité que la meilleure solution déjà trouvée, le nœud est élagué. Ce processus permet de ne trouver que des solutions de qualité croissante et d'éviter le parcours inutile de grandes parties de l'arbre de recherche. On a prouvé que la solution optimale a été atteinte lorsqu'on ne trouve plus de solution améliorant l'objectif. En conclusion, la recherche d'une solution à un problème d'optimisation dans un arbre de recherche dépend de la règle de séparation, de la fonction d'évaluation, de la stratégie d'exploration et d'un critère heuristique. La règle de séparation, la stratégie d'exploration et le critère heuristique déterminent l'ordre dans lequel les nœuds seront construits et donc l'ordre dans lequel les solutions seront trouvées. On appelle stratégie de recherche la combinaison de ces différents éléments. Selon la fonction objectif ou le critère à optimiser il est important d'adopter une stratégie de recherche permettant de trouver rapidement des solutions de bonne qualité pour ensuite pouvoir élaguer de grandes parties de l'arbre de recherche ne pouvant mener à de meilleures solutions. Dans ce sens, dans la suite de la description,, on dira qu'un critère « guide » une recherche lorsque c'est lui qui détermine la stratégie de recherche adoptée.
Une stratégie de recherche permet d'orienter la recherche le plus rapidement possible vers des solutions de bonne qualité (et si possible vers une solution optimale). Trouver une bonne solution rapidement permet ensuite, selon le principe du « branch and bound », d'élaguer de grandes parties de l'arbre de recherche ne pouvant mener à de meilleures solutions. Dans le cas multicritère, une stratégie permettant d'obtenir rapidement des solutions de bonne qualité sur un critère peut être très inefficace pour un autre. Ainsi, les phénomènes de compensation et plus généralement d'interaction entre critères rendent souvent très difficile la définition d'une stratégie globale permettant la résolution efficace d'un problème dans tous les cas de figure. De nombreuses méthodes ont été développées pour la résolution de problèmes d'optimisation multicritère. Néanmoins peu d'entre elles proposent de combiner l'efficacité des méthodes arborescentes à la capacité de modélisation des préférences des techniques d'aide à la décision multicritère. Parmi ces approches l'invention a retenu le formalisme des
CP-Nets, le formalisme des contraintes flexibles, une approche pour la résolution de problèmes d'ordonnancement multicritère et le formalisme PBS.
Parmi les différentes approches, les CP-nets (C. Boutilier et al., « A Constraint-Based Approach to Préférence Elicitation and Décision Making », Working Papers of the AAAI Spring Symposium on Qualitative Préférences in Délibération and Practical Reasoning, Jon Doyle and Richmond H. Thomason editors, pp. 19-28, Menlo Park, Califo nia, 1997) proposent un formalisme où les préférences sont modélisées par un ensemble de règles qui semblent engendrer néanmoins des problèmes de complexité à la fois lors de la modélisation de la relation de préférence entre les solutions et lors de la recherche de solutions (un très grand nombre de règles semblent nécessaires et difficiles à obtenir de la part d'un expert). Les problèmes de modélisation des préférences sont également abordés via l'utilisation de contraintes flexibles (S. Bistarelli et al., Semiring-Based CSPs and Nalued CSPs: Frameworks, Properties, and Comparison, CONSTRAINTS, Ν°4, 199-240, 1999). Cette approche est jugée particulièrement intéressante lorsqu'on traite des problèmes sur-contraints et qu'on cherche des solutions violant le moins possible ces contraintes. Cependant, l'approche multicritère est plus adaptée pour la modélisation des préférences en présence de critères multiples. Dans les deux cas (CP-Nets et contraintes flexibles), le problème de la recherche de solutions reste complexe et aucune approche spécifique n'a été proposée.
Une approche plus pragmatique est adoptée dans (F. Focacci and D. Godard, « A practical approach to multi-criteria optimization problems in constraint programming », Proceedings of the Fourth International Workshop on Intégration of AI and OR Techniques in Constraint
Programming for Combinatorial Optimisation Problems (CP-AI-OR'02), pp. 65-75, N.
Jussien and F. Laburthe editors, Le Croisic, France, 2002) pour résoudre un problème d'ordonnancement à trois objectifs agrégés par une somme pondérée. L'objectif de l'approche est de produire une solution de bonne qualité en un temps limité. Ainsi, à chaque fois qu'une solution est trouvée, la méthode impose soit une amélioration simultanée de tous les objectifs, soit une amélioration d'un objectif et, dans une certaine mesure, la non-dégradation des autres objectifs (on peut, par exemple, tolérer une dégradation de 10%). Selon les auteurs, les meilleurs résultats sont obtenus en utilisant successivement les différents modes de pose de contraintes d'amélioration pour différents objectifs. L'approche est intéressante car, même si c'est la même stratégie de recherche qui est utilisée pour toutes les recherches, elle met déjà en évidence l'intérêt d'alterner des optimisations sur les critères du problème pour améliorer un objectif global. Néanmoins, la méthode d'alternance des différentes recherches apparaît
avoir été conçue de manière empirique et être plus particulièrement dédiée au problème d'ordonnancement. On note également l'intérêt des contraintes sur les critères qui permettent d'accélérer la recherche mais qui peuvent également supprimer des solutions intéressantes.
Les travaux sur la programmation basée sur les préférences dans les problèmes d'optimisation combinatoire sont issus du raisonnement non-monotone. Ils permettent la modélisation de préférences (le plus souvent sous forme de règles) entre des décisions qui devront être prises au cours de la recherche de solutions (par exemple, traiter une tâche avant une autre en ordonnancement). Ces préférences sont ensuite utilisées pour déterminer l'ordre dans lequel les décisions sont prises durant la recherche, qui est réalisée par un solveur de contraintes. Ces travaux ont débouché sur la conception d'une procédure appelée "Préférence Based Search" (PBS). PBS a été développée et mise en œuvre pour la résolution de problèmes d'ordonnancement et de problèmes de configuration. Elle utilise les préférences sur les décisions à la fois pour guider la recherche et pour réduire l'espace de recherche en supprimant des solutions non préférées. Les plus récents développements sur PBS généralisent la procédure pour prendre en compte des préférences sur des critères (U. Junker, "Preference-based search and multi-criteria optimization", Proceedings of the Fourth International Workshop on Intégration ofAI and OR Techniques in Constraint Programming or Combinatorial Optimisation Problems (CP -AI-OR' 02), pp. 33-47, N. Jussien and F. Laburthe editors, Le Croisic, France, 2002). Le formalisme est étendu de manière à pouvoir exprimer qu'un critère c; est préféré à un autre c2 (cj -< ci) ou qu'un ensemble de critères doivent être équilibrés (CJ ≈CT). L'équilibre entre deux critères est établi grâce à un opérateur de type « lexi-max » (voir H. Moulin, Axioms of Coopérative Decision-Making. Cambridge Univ. Press, 1988). Pour la recherche de solutions, un programme maître PBS sélectionne des critères sur la base des préférences du décideur et les renvoie comme objectifs à un solveur de contraintes. Cet algorithme effectue en fait plusieurs optimisations lexicographiques successives pour les différents ordres de critères autorisés par les préférences. Ainsi, en utilisant le principe de la méthode « ε-contraintes » (K. M. Miettinen, Nonlinear multiobjective optimization, édition Kluwer académie publisher, 1999), PBS permet d'exhiber l'ensemble des solutions préférées du problème. PBS utilise l'alternance d'optimisations sur les critères pour parcourir l'espace de recherche et exhiber l'ensemble des solutions préférées (et non pas améliorer une solution). En effet, le formalisme utilisé pour la modélisation des préférence présente l'avantage d'être relativement simple mais il ne permet pas une représentation fine des préférences (notamment des phénomènes de compensation). La méthode doit donc renvoyer un grand nombre de solutions au décideur qui devra alors faire
un choix parmi celles-ci. Ceci peut-être souhaitable dans certains cas (pour la recherche d'un voyage sur Internet par exemple), mais particulièrement gênant dans un contexte de décision automatique (gestion automatique de conflits aériens, évaluation de la menace et protection d'un bâtiment). L'invention propose donc une approche dédiée à la recherche de solutions dans le contexte de la résolution de problèmes d'optimisation multicritère.
L'approche proposée pour le guidage d'une recherche multicritère est de définir une stratégie de guidage adaptée par critère et d'employer ces différentes stratégies pour la recherche de solutions multicritères de qualité croissante. L'idée est d'alterner des recherches mono-critères utilisant ces stratégies tout en imposant une amélioration du niveau de satisfaction global à chaque nouvelle solution jusqu'à la satisfaction d'une condition d'arrêt donnée (par exemple, jusqu'à ce qu'on ait prouvé l'optimalité de la dernière solution trouvée).
A la fin d'une recherche sur un critère, on détermine le critère qui « guidera » la prochaine recherche en fonction : de la dernière solution trouvée ; des améliorations possibles sur chaque critère ; et de la relation de préférence entre les solutions. C'est en quelque sorte le critère sur lequel on a le plus grand intérêt à s'améliorer.
A chaque recherche, pour essayer d'accroître encore la vitesse de convergence vers une bonne solution, on peut de plus imposer des améliorations sur les critères via un ensemble de contraintes additionnelles, valable uniquement le temps d'une recherche. On appellera ce type de contrainte des contraintes « locales » à une recherche. Ces contraintes « éphémères » viennent s'ajouter à la contrainte d'amélioration de la qualité globale des solutions recherchées. Elles permettent également exprimer le fait qu'il est interdit de dégrader un critère de plus de 10% au cours d'une recherche, comme présenté dans l'article Focacci- Godard 2002. Comme dans cet article, ces contraintes doivent être employées avec précaution, car elles peuvent retarder, voire empêcher la découverte de bonnes solutions (et plus particulièrement de solutions optimales).
Le processus termine lorsqu'une condition d'arrêt définie par l'utilisateur a été vérifiée, (par exemple, lorsqu'une recherche n'arrive pas à trouver de solution améliorante).
L'alternance des différentes stratégies permet ainsi de parcourir différentes régions intéressantes de l'espace de recherche alors que les contraintes ajoutées à chaque solution trouvée permettent de converger vers une solution optimale.
Le processus décrit dans les étapes précédentes, dédié à la recherche de solutions pour un problème multicritère a été nommé MCS (Multi-Criteria Search).
D'un point de vue algorithmique, les principes exposés précédemment peuvent être traduits de la manière suivante:
MCS u := (u}, ...,u„), s* := nil, s := nil, c :=0, local := false hile not(<checkTermination>(/0cα/,-s * s, u, c)) c := <getNextCriterion>(.s* u), local := <setLocalConstraints>(-s* u,c), s := maximize(u[c], getStrategy(c)), if (s ≠ nil) s* := s endif endwhile return s* end
Les critères à maximiser sont représentés par le vecteur de variables u=(u], ...,u„), la meilleure solution trouvée par l'algorithme est stockée dans la variable -s* et la variable s est utilisée pour le stockage de solutions intermédiaires. La variable « c » contient l'indice du critère sur lequel on va lancer une recherche et la variable « local » indique si une contrainte locale a été posée lors de la dernière recherche de solutions. Les chevrons (<checkTermination>, <getNextCriterion>, <setLocalConstraints>) indiquent les fonctions caractéristiques de l'algorithme MCS qui devront être définies par l'utilisateur en fonction de son problème. L'algorithme fonctionne de la manière suivante : une boucle « while » est répétée tant que la condition d'arrêt contenue dans la fonction <checkTermination> n'a pas été vérifiée. A chaque itération, la fonction <getNextCriterion> détermine le critère qui guidera la prochaine recherche. Une ou plusieurs contraintes locales peuvent être posées par la fonction <setLocalConstraints> (dans ce cas, la fonction renvoie la valeur booléenne « true »). La recherche de solutions optimisant le critère « c » est effectuée par la fonction « maximize » en fonction de la stratégie définie pour ce critère, qui est donnée par getStrategy(c). La fonction « maximize » ne recherche que des solutions globalement préférées à « -y* ». « maximize » renvoie « nil » si aucune solution n'a été trouvée, sinon, la variable « s* » est mise à jour.
MCS donne la trame d'un algorithme générique, paramétrable en fonction des problèmes abordés. Ce procédé peut donc être qualifié de « framework » dont on produira des
instances en définissant les différentes fonctions qui le composent. Dans la suite de la description, on utilise un ensemble ttl5...,wn de valeurs appelées bornes supérieures des performances sur chaque critère. Pour un critère / e l,...,n, u{ indique la valeur maximale pouvant être atteinte sur le critère i dans une solution optimale. Ces valeurs sont donc régulièrement mises à jour au fur et à mesure de la recherche de solutions, soit grâce à des fonctions qui calculent un majorant pour chaque critère, soit lorsqu'une recherche monocritère prouve qu'elle a atteint un optimum pour le critère qu'elle optimise. Le détail du contenu des différentes composantes de ce « -framework » donne un aperçu de la variété des algorithmes qui peuvent être ainsi construits. La fonction maximize(u[c], getStrategy(c)) lance une recherche arborescente de solutions suivant une stratégie spécifiée pour un critère sélectionné, noté c. Dans tous les cas, l'optimisation est réalisée suivant le principe du « branch and bound » en élaguant les branches de l'arbre de recherche ne pouvant mener à une solution plus satisfaisante à la fois au sens de la relation de préférence globale et sur le critère c. On définit donc une stratégie de recherche différente pour chaque critère. Ceci a pour but de pouvoir trouver le plus rapidement possible des solutions de bonne qualité sur un critère donné. La stratégie associée à un critère « c » serait donc, en théorie, celle qui serait utilisée si le problème à résoudre était l'optimisation de ce critère. Pour un même problème, on peut définir un grand nombre de stratégies de recherche en définissant plusieurs fonctions de séparation ou en utilisant différentes stratégies d'exploration. Selon la complexité et les contraintes temporelles du problème, il peut également être intéressant d'employer des stratégies de recherche partielle (une stratégie de recherche partielle ne garantit pas d'atteindre l'optimum sur le critère sélectionné). Par exemple, pour chaque recherche mono-critère, on pourra : ne chercher qu'une solution et non une solution optimale ; spécifier un contrat de temps ; utiliser une stratégie combinant recherche arborescente et recherche locale ou même lancer une séquence de plusieurs recherches différentes.
La définition de la fonction <getNextCriterion> détermine la manière dont les recherches sur les critères se succèdent. Bien sûr, il est possible de programmer cette fonction pour que l'algorithme enchaîne les recherches toujours dans le même ordre. Cependant il est plus intéressant de construire une fonction qui prend en compte les informations disponibles au moment de la recherche où elle est sollicitée pour effectuer un choix dynamique. Ces informations sont, par exemple, la dernière solution trouvée, les bornes supérieures des performances pouvant être atteintes sur chaque critère, l'importance de chaque critère dans la
relation de préférence. Elles peuvent permettent de déterminer sur quel critère il est le plus intéressant de lancer une recherche.
Par exemple, on considère une solution s*, on note (uj* ...,un*) la représentation de s* sur les n critères du problème et «„..., w„ les valeurs maximales pouvant être atteintes sur ces critères. Si l'on fait l'hypothèse qu'une recherche sur un critère i permettrait d'atteindre le maximum sur ce critère sans affecter les autres, on peut comparer les n solutions représentées sur l'espace des critères : (uι*, ..., Uι, ...,u„*), i=I, ...,n. La solution préférée indique alors le critère sur lequel on a le plus grand intérêt à s'améliorer.
Le terme contrainte locale est ici employé pour qualifier une contrainte qui ne sera valable que le temps d'une recherche, contrairement aux contraintes du problème qui doivent être constamment vérifiées. L'ajout d'une ou de plusieurs contraintes locales a pour but de contraindre une recherche à explorer des parties de l'espace de recherche jugées particulièrement intéressantes à un moment donné. En d'autres termes, contraindre la recherche à produire une solution ayant une caractéristique particulière qui devrait en faire une solution plus satisfaisante que celles déjà trouvées.
Par exemple, si l'heuristique de choix de critère a déterminé qu'il était plus intéressant d'améliorer la valeur uc* de la dernière solution trouvée suivant le critère « c », ajouter une contrainte « uc > uc* » ou même « uc > 1.1 x«c* » peut permettre de trouver plus rapidement une solution de meilleure qualité que la solution trouvée. En effet, le choix d'une stratégie dédiée à l'optimisation d'un critère particulier peut être plus efficace mais elle ne garantit pas de trouver en priorité des solutions améliorant ce critère.
L'utilisation de contraintes locales peut permettre d'accélérer la convergence de l'algorithme vers une solution de bonne qualité mais elle présente également quelques désavantages, surtout si l'on cherche une solution optimale du problème : lorsqu'une recherche qui a été « sur-contrainte » par une contrainte locale ne trouve pas de solution, cela ne signifie pas nécessairement que la solution optimale ait été atteinte mais qu'il n'existe pas de meilleure solution vérifiant la contrainte locale. En utilisant ce type de contrainte, on risque donc de construire des algorithmes qui ne garantissent pas de trouver une solution optimale. La fonction <setLocalConstraints> renvoie un booléen qui pourra être pris en compte dans la condition d'arrêt et qui permet d'indiquer si une contrainte locale a été posée.
L'algorithme termine son déroulement lorsque les conditions contenues dans la fonction <checktermination> sont vérifiées ou lorsque le temps d'exécution imparti à la
recherche a été dépassé (si un contrat de temps a été spécifié). Les conditions d'arrêt de l'algorithme peuvent être par exemple : « la dernière recherche n'a pas trouvé de solution (-s≈nil) », « la dernière recherche n'a pas trouvé de solution alors qu'aucune contrainte locale n'avait été posée ((s=ml)&(not(/ocα./))) ». Le « frarnework » MCS repose sur des principes communs aux problèmes d'optimisation multicritère et reste donc un cadre relativement général pour la définition d'algorithmes de recherche de solutions. On présente dans cette section quelques outils pour l'utilisation du procédé : tout d'abord dans le cadre d'un problème où les préférences sont modélisées par une fonction d'agrégation à maximiser ; puis dans le cas où l'on désire trouver une solution optimale du problème.
On va présenter maintenant quelques exemples d'heuristiques de choix de critère lorsque la modélisation des préférences est réalisée suivant l'approche « Agréger puis Comparer ».
L'approche « Agréger puis Comparer » (AC) calcule une note globale pour chaque solution par agrégation des performances des solutions sur chaque critère. Dans le contexte MAUT (MultiAtribute Utility Theory), la modélisation des préférences du décideur est réalisée grâce à une fonction d'agrégation H, qui agrège les valeurs des critères uι, ...,u„ et calcule l'évaluation globale d'une solution. Soient a et b deux solutions. On note uf,...,u° et «!*,...,«* les performances des solutions a et b sur les critères du problème. La fonction H est telle que, pour tout couple de solutions a et b, a préféré à b est équivalent à H(uξ,...,u{)>H{u ,...,ut b .
Dans ce cadre, on propose deux heuristiques de choix de critère, chacune basée sur la construction d'un indicateur. Ces indicateurs sont fonction de la dernière solution trouvée -s*, de ses performances uι*, ...,u„* sur chaque critère et des valeurs maximales ...,-.„ pouvant être atteintes sur ces critères. Dans les deux cas, l'indicateur repose sur l'hypothèse qu'une recherche sur un critère permettra de trouver une solution de meilleure qualité sur ce critère et de qualité égale sur les autres critères. On note u* - (ux*,...,u„*) et u = («„...,«„) .
• Indicateur d'utilité maximale : pour tout critère i s {l, ...,«}, l'indicateur d'utilité maximale, noté ,(H)(w*,M) , est la valeur χi(H)(u*,u) = H(ul ,...,u*_l,ui,uM,...,un) . C'est le niveau de satisfaction global qui serait atteint si une recherche sur le critère i permettait d'atteindre une solution de
niveau de satisfaction maximal sur ce critère sans dégrader la satisfaction des autres critères par rapport à la solution précédente.
Indicateur d'utilité moyenne : la valeur u( est une borne supérieure de la valeur maximum pouvant être atteinte sur le critère i. Dans la majorité des problèmes d'optimisation, il est peu probable qu'il soit toujours possible de trouver une solution qui permette d'atteindre cette valeur, surtout sans dégrader les performances sur les autres critères. Dans certain cas il peut donc être plus judicieux de calculer la valeur moyenne de la fonction H pour des valeurs du critère i variant entre u et ut . Cette valeur, notée ωt(H)(u*,u) peut être obtenue en calculant l'intégrale
afflt u' *>
Une heuristique de choix de critère construite à partir de ce type d'indicateur renvoie l'indice du critère qui a obtenu la plus forte valeur de l'indicateur.
L'intégrale de Choquet (M. Grabisch, « The application of fuzzy intégrais in multicriteria décision making », European Journal of Operational Research, 89, 1996, pp. 445-456) est une fonction d'agrégation très générale, qui contient comme cas particulier les opérateurs d'agrégation usuels tels que le minimum, le maximum, la médiane, la moyenne pondérée et la moyenne ordonnée pondérée (OWA). Elle permet de modéliser non seulement les importances des critères, mais également les phénomènes d'interactions entre les différentes coalitions de critères. Soit N= {!,...,«} l'ensemble des critères. Une mesure floue sur N associe à chaque AczN un nombre μ(A)cz[ ,\] tel que μ(0)=O, μ(N)=l etA c B => μ(A)≤ μ(B) .
On rappelle ici la définition de l'Intégrale de Choquet :
Soit μ une mesure floue sur Net u=(uj, ...,-.«). L'intégrale de Choquet Cμ du vecteur u
par rapport à μ est définie par : Cfl(u1,...,un) = ∑(uoii) ~uc(i_l))xμ(A0{{)) avec i≈l 0 ≤ uaω ≤... ≤ u ) ≤ 1 , 4a = {σ(ι),..., )}, et u = 0.
Dans le cas où l'intégrale de Choquet est utilisée comme fonction d'agrégation, les indicateurs présentés précédemment sont donc les suivants :
• Indicateur d'utilité maximale : χi(Cμ)(u*,u) = C u*,...,ui *_1,ui,u* +l,...,ul) .
Indicateur d'utilité moyenne :
Suivant la définition de ses composantes, le « framework » peut être utilisé pour implicitement effectuer un parcours complet de l'arbre de recherche et permettre de trouver une solution optimale à coup sûr. Une stratégie de recherche est dite complète si elle permet de trouver une solution à un problème lorsqu'elle existe. En conséquence, si une recherche complète ne trouve pas de solution, c'est qu'il n'en existe pas. En général on dit qu'une recherche est complète lorsqu'elle « n'oublie » pas de solution.
On peut donc dire qu'on a trouvé une solution optimale pour le problème multicritère dans deux cas :
• lorsqu'on a trouvé une solution dont la performance sur chaque critère est égale à la borne supérieure de la performance du critère ;
• lorsqu'une recherche mono-critère ayant la propriété d'être complète n'a pas trouvé de solution de meilleure qualité que les solutions trouvées lors des recherches précédentes. (Remarque : si aucune solution n'avait été trouvée auparavant, alors le problème n'admet pas de solution)
De même, dans le cadre MCS il existe deux types de recherche incomplète :
• les recherches dont la stratégie de parcours de l'arbre sont incomplètes (également appelées recherches partielles) ; • les recherches de solutions sur des problèmes plus contraints que le problème initial.
Typiquement, si une recherche « sur-contrainte » par une contrainte locale ne trouve pas de solution, on ne peut pas conclure qu'il n'existe pas de solution au problème qui soit meilleure que les solutions trouvées lors des recherches précédentes. Cela permet simplement de dire qu'il n'existe pas de solution vérifiant la contrainte posée (et éventuellement de diminuer la valeur de la borne supérieure d'un critère si la contrainte locale était une contrainte d'amélioration d'un critère). En revanche, en l'absence de contraintes locales, la recherche de l'optimum sur un critère, même si on limite le nombre de solutions trouvées, est une recherche complète, puisqu'elle garantit de trouver au moins une solution au problème si elle existe.
, _„, - -
WO 2004/070621
On propose donc une condition d'arrêt et deux fonctions pour l'ajout de contraintes locales qui, associées à des stratégies de recherche mono-critère complètes permettent de trouver une solution optimale du problème global.
Soit « s* » la dernière solution trouvée, « c » le critère sélectionné par la fonction <getNextCriterion>. La variable « u[c] » modélise le critère « c » à maximiser et la fonction getValue(s*,c) renvoie la performance de la solution «s* » pour le critère « c ». Le principe proposé est de ne poser qu'un type de contrainte lorsqu'un critère « c » a été sélectionné par la fonction <getNextCriterion> : la contrainte u[c] > getValue(s*,c). Cette contrainte est appelée contrainte d'amélioration du critère « c ». On propose deux modes pour la poser : « Un mode « systématique » : la contrainte est posée à chaque recherche.
• Un mode « consécutif» : la contrainte n'est posée que lorsque le critère « c » a été également sélectionné pour guider la recherche précédente. Lorsque MCS est utilisé avec une des deux fonctions d'ajout de contraintes locales précédentes, la fonction <checkTermination> peut être redéfinie pour que MCS ne s'arrête qu'après avoir trouvé une solution optimale. La fonction « optimalityCondition » ci-dessous assure ce rôle dans les deux cas :
optimalityCondition(Jocal,s *,s, u, c) if(c = 0) return false else if checkUpperBounds(s*,u) return true else if (s = nil) if (local) setConstraint(u[c] ≤ getValue(s * c)), returnfalse else return true endif else returnfalse endif end
Le cas c=0 permet de ne pas vérifier la condition avant la première itération. Tout d'abord, la fonction « checkUpperBounds » vérifie si la performance de la solution « s* » sur chaque critère est égale à la borne supérieure de la performance du critère. Sinon, la variable « local » permet d'arrêter l'algorithme lorsqu'une recherche qui n'a pas été soumise à une
contrainte locale ne trouve pas de solution (une recherche qui ne trouve pas de solution renvoie « nil »). Si une recherche sur le critère « c », soumise à une contrainte locale renvoie « nil », la fonction « setConstraint » réduit la borne supérieure du critère « c » en posant la contrainte u[c] ≤ getValue(s*,c). En supposant que la fonction <getNextCriterion> ne sélectionne pas un critère lorsque la performance de « -y* » sur ce critère est égale à sa borne supérieure, l'algorithme termine nécessairement et retourne une solution optimale. La fonction « optimalityCondition » permet également de trouver l'optimum lorsqu'aucune contrainte locale n'est posée.
De manière plus générale, on note que la fonction <checkTermination> est lancée après chaque recherche et qu'elle peut donc également être utilisée pour introduire de nouvelles coupes de l'espace de recherche (par exemple, réduire les bornes supérieures des critères).
La Programmation Par Contraintes (PPC) offre un cadre technique pour la modélisation des problèmes d'optimisation combinatoire. Le processus de résolution est basé sur la collaboration entre un processus qui construit un arbre de recherche pour la recherche de solutions et un processus qui propage les contraintes du problème à chaque nœud de l'arbre afin de réduire l'espace de recherche et assurer la validité des solutions trouvées. En PPC, un certain nombre d'outils ont été conçus pour l'aide à la conception d'algorithmes d'optimisation. Ils permettent de définir relativement facilement des stratégies de recherche de solutions pour les problèmes mono-objectifs. La modélisation de préférences multicritères est également réalisable dans ce cadre, notamment en intégrant des fonction d'agrégation telles que l'intégrale de Choquet (F. Le Huédé, P. Gérard, M. Grabisch, C. Labreuche and P. Savéant, Intégration of a Multicriteria Décision Model in Constraint Programming, proceedings of the AIPS'02 Workshop on Planning and Scheduling with Multiple Criteria, Toulouse, France, April 23-27, 2002).
La PPC est donc un cadre idéal pour la mise en œuvre du « framework » MCS, car un grand nombre d'outils ont déjà été créés pour la modélisation des contraintes du problèmes, la modélisation des préférences entre les solution et la description des stratégies de recherche. Dans l'objectif de faciliter l'emploi de MCS, on pourra constituer une bibliothèque contenant les différentes instances des fonctions du « framework » présentées dans la présente description.
En conclusion, le framework MCS permet de construire des algorithmes de recherche de solutions à un problème d'optimisation multicritère. Le principe de l'algorithme repose sur
l'alternance de stratégies de recherche mono-critères pour la recherche d'une solution préférée au sens d'une relation de préférence multicritère. MCS est conçu pour pouvoir fonctionner avec des outils issus de l'aide à la décision multicritère qui possède d'importantes capacités pour la modélisation des préférences d'un expert. On utilise donc différentes stratégies de recherche, non pas pour exhiber un ensemble important de solutions non dominées, mais pour accélérer la convergence de l'algorithme vers une solution optimale. Dans ce cadre, une recherche mono-critère peut prendre diverses formes (par exemple: suivre une stratégie incomplète, être interrompue dès qu'elle a trouvé une solution, etc.). Entre chaque recherche, un critère est sélectionné par une heuristique de choix de critère. Il détermine la stratégie qui sera adoptée pour la prochaine recherche de solutions. Cette sélection permet de déterminer le critère sur lequel on a le plus intérêt à s'améliorer à un moment de la recherche et de trouver plus rapidement des solutions plus satisfaisantes. L'ajout de contraintes « locales » aux différentes recherches peut également permettre d'accélérer la convergence de l'algorithme vers la solution optimale. Finalement, on définit la condition d'arrêt de l'algorithme, ce qui permet de construire des recherches partielles ou d'apporter la preuve de Poptimalité de la dernière solution trouvée.
Claims
1. Procédé pour produire des solutions à un problème concret d'optimisation multicritère selon lequel on établit plusieurs critères de décision et une relation de préférence basée sur ces critères entre les solutions du problème ; caractérisé par le fait que :
• l'on établit une modélisation du problème à résoudre
• que les solutions sont obtenues de manière constructive via un processus de recherche arborescente ; • qu'une stratégie de recherche arborescente a été établie pour chaque critère ;
• que l'on alterne les stratégies pour trouver des solutions de qualité croissante ;
• que les stratégies sont choisies dynamiquement en fonction de la dernière solution trouvée ;
• que l'alternance des stratégies continue jusqu'à la satisfaction d'une condition d'arrêt ;
• que la dernière solution trouvée avant la vérification de la condition d'arrêt est exhibée comme la solution du problème posé.
2. Procédé selon la revendication 1 caractérisé par le fait que la relation de préférence entre les solutions du problème est modélisée par une fonction d'agrégation (H).
3. Procédé selon la revendication 2 caractérisé par le fait que la fonction d'agrégation des critères H est une intégrale de Choquet (Cμ).
4. Procédé selon l'une des revendications 1 à 3 caractérisé par le fait que suite à chaque recherche, la valeur d'un indicateur est déterminée pour chaque critère en fonction de la dernière solution trouvée et que cet indicateur permet de déterminer la stratégie qui sera utilisée lors de la recherche suivante.
5. Procédé selon la revendication 4 caractérisé par le fait que l'indicateur utilisé pour le choix dynamique d'une stratégie est l'indicateur d'utilité maximale (χ, ).
6. Procédé selon la revendication 4 caractérisé par le fait que l'indicateur utilisé pour le choix dynamique d'une stratégie est l'indicateur d'utilité moyenne (ωi ).
7. Procédé selon l'une des revendications 1 à 4 caractérisé par le fait qu'on pose des contraintes locales aux différentes recherches.
8. Procédé selon la revendication 7 caractérisé par le fait que la contrainte locale posée pour une recherche sur un critère est une contrainte d'amélioration de ce critère et que cette contrainte est posée à chaque recherche.
9. Procédé selon la revendication 7 caractérisé par le fait que la contrainte locale posée pour une recherche sur un critère est une contrainte d'amélioration de ce critère et que cette contrainte est posée uniquement lorsqu'un critère est sélectionné plusieurs fois de suite pour guider la recherche, à partir de la seconde recherche consécutive sur ce critère.
10. Procédé selon l'une des revendications 1 à 9 caractérisé par le fait que les stratégies associées aux différents critères, les contraintes locales aux recherches et la condition d'arrêt du processus de recherche sont utilisées pour trouver une solution optimale du problème et pour prouver l'optimalité de cette solution.
11. Procédé selon l'une des revendications 1 à 9 caractérisé par le fait que la modélisation du problème et la recherche de solutions sont réalisées dans un solveur de contraintes.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR0300898 | 2003-01-28 | ||
| FR0300898A FR2850472B1 (fr) | 2003-01-28 | 2003-01-28 | Procede permettant de produire des solutions a un probleme concret d'optimisation multicritere |
| PCT/FR2004/000178 WO2004070621A1 (fr) | 2003-01-28 | 2004-01-27 | Procede permettant de produire des solutions a un probleme concret d'optimisation multicritere |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP1588279A1 true EP1588279A1 (fr) | 2005-10-26 |
Family
ID=32669257
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP04705435A Withdrawn EP1588279A1 (fr) | 2003-01-28 | 2004-01-27 | Procede permettant de produire des solutions a un probleme concret d optimisation multicritere |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US20060112044A1 (fr) |
| EP (1) | EP1588279A1 (fr) |
| CN (1) | CN1754164A (fr) |
| FR (1) | FR2850472B1 (fr) |
| WO (1) | WO2004070621A1 (fr) |
Families Citing this family (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20080208800A1 (en) * | 2004-07-15 | 2008-08-28 | Innovation Business Partners, Inc. | Method and System For Increasing Invention |
| DE102016224457A1 (de) * | 2016-11-29 | 2018-05-30 | Siemens Aktiengesellschaft | Verfahren zur Prüfung, Vorrichtung und Computerprogrammprodukt |
| JP6751376B2 (ja) * | 2017-08-31 | 2020-09-02 | 富士フイルム株式会社 | 最適解探索方法、最適解探索プログラム及び最適解探索装置 |
| CN110580252B (zh) * | 2019-07-30 | 2021-12-28 | 中国人民解放军国防科技大学 | 多目标优化下的空间对象索引与查询方法 |
| CN110956324B (zh) * | 2019-11-29 | 2022-06-14 | 厦门大学 | 基于改进的moea/d的主动配电网日前高维目标优化调度方法 |
| CN111948989B (zh) * | 2020-07-14 | 2022-10-28 | 武汉理工大学 | 一种柔性制造车间优化调度方法及设备 |
| US11556828B2 (en) * | 2020-07-16 | 2023-01-17 | Spotify Ab | Systems and methods for selecting content using a multiple objective, multi-arm bandit model |
| CN113282063B (zh) * | 2021-05-13 | 2023-06-23 | 北京大豪工缝智控科技有限公司 | 缝制产线的配置方法及装置 |
| CN113761717B (zh) * | 2021-08-13 | 2024-03-08 | 中南大学 | 一种用于工业优化问题的自动变量约简方法 |
| CN120805427B (zh) * | 2025-06-30 | 2026-04-10 | 华南理工大学 | 一种采用多种群多目标遗传编程算法的动态拖轮调度方法 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5717865A (en) * | 1995-09-25 | 1998-02-10 | Stratmann; William C. | Method for assisting individuals in decision making processes |
| US6757667B1 (en) * | 2000-04-12 | 2004-06-29 | Unilever Home & Personal Care Usa, Division Of Conopco, Inc. | Method for optimizing formulations |
-
2003
- 2003-01-28 FR FR0300898A patent/FR2850472B1/fr not_active Expired - Lifetime
-
2004
- 2004-01-27 EP EP04705435A patent/EP1588279A1/fr not_active Withdrawn
- 2004-01-27 US US10/543,508 patent/US20060112044A1/en not_active Abandoned
- 2004-01-27 CN CNA2004800054947A patent/CN1754164A/zh active Pending
- 2004-01-27 WO PCT/FR2004/000178 patent/WO2004070621A1/fr not_active Ceased
Non-Patent Citations (1)
| Title |
|---|
| See references of WO2004070621A1 * |
Also Published As
| Publication number | Publication date |
|---|---|
| FR2850472A1 (fr) | 2004-07-30 |
| WO2004070621A1 (fr) | 2004-08-19 |
| FR2850472B1 (fr) | 2005-05-20 |
| US20060112044A1 (en) | 2006-05-25 |
| CN1754164A (zh) | 2006-03-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11120150B2 (en) | Dynamic access control for knowledge graph | |
| Abraham et al. | Alternative routes in road networks | |
| US8131771B2 (en) | Method and computer program product for dynamic weighting of an ontological data model | |
| US20160033283A1 (en) | Efficient route planning in public transportation networks | |
| CN114008594A (zh) | 调度计算图上的操作 | |
| EP1588279A1 (fr) | Procede permettant de produire des solutions a un probleme concret d optimisation multicritere | |
| Jawarneh et al. | Sequential insertion heuristic with adaptive bee colony optimisation algorithm for vehicle routing problem with time windows | |
| Benton et al. | Anytime heuristic search for partial satisfaction planning | |
| CN109543726A (zh) | 一种训练模型的方法及装置 | |
| Vaira et al. | Genetic algorithm for VRP with constraints based on feasible insertion | |
| Balakrishnan et al. | Integrated QoUE and QoS approach for optimal service composition selection in internet of services (IoS) | |
| Oettershagen et al. | Efficient top-k temporal closeness calculation in temporal networks | |
| FR3090957A1 (fr) | dispositif et procédé d’ordonnancement de tâches | |
| Hu et al. | The bus sightseeing problem | |
| CN111686451B (zh) | 一种业务处理方法、装置、设备及计算机存储介质 | |
| Sonawani et al. | A decision tree approach to classify web services using quality parameters | |
| CA2123362A1 (fr) | Mecanisme de filtrage de regles de production et moteur d'inference pour systeme expert comportant un tel mecanisme | |
| US11526561B2 (en) | System and method for determining temporal citation count | |
| Chalyi et al. | Temporal Modeling of User Preferences in Recommender System. | |
| Fowler et al. | Branching constraint satisfaction problems and Markov decision problems compared | |
| Liu et al. | A hybrid BSO-ACS algorithm for vehicle routing problem with time windows on road networks | |
| Zang et al. | Discovering options from example trajectories | |
| CN116484086A (zh) | 一种物品推荐方法和装置 | |
| FR3122002A1 (fr) | Procede et dispositif de calcul d'un indicateur d'influence d'un critere pour l'obtention d'un score dans un systeme decisionnel multicriteres | |
| Mokarizadeh et al. | Trust and privacy enabled service composition using social experience |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| 17P | Request for examination filed |
Effective date: 20050725 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR |
|
| AX | Request for extension of the european patent |
Extension state: AL LT LV MK |
|
| DAX | Request for extension of the european patent (deleted) | ||
| 17Q | First examination report despatched |
Effective date: 20071214 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
| 18D | Application deemed to be withdrawn |
Effective date: 20080625 |