Patent Publication Number: US-11663494-B2

Title: Systems and methods for hierarchical multi-objective optimization

Description:
STATEMENT OF GOVERNMENT INTEREST 
     This invention was made with government support under Contract No. DE-AC02-06CH11357 awarded by the United States Department of Energy to UChicago Argonne, LLC, operator of Argonne National Laboratory. The government has certain rights in the invention. 
    
    
     TECHNICAL FIELD 
     The present invention relates generally to systems and methods of design optimization. Certain embodiments relate to hierarchical multi-objective optimization. 
     BACKGROUND 
     Various optimization problems involve simultaneous optimization of multiple objectives (e.g., obtaining parameters or simultaneously capturing several properties of a material). However, computational approaches, such as assigning a weight to each objective or Pareto optimization, to solving such problems can often require a user to provide an arbitrary set of weights or select from a pool of solutions, which can result in suboptimal, compromise solutions. 
     SUMMARY 
     At least one aspect relates to a system. The system can include one or more processors configured to access at least one first candidate input, generate a first candidate output by providing the at least one first candidate input as input to a first objective function of a plurality of objective functions, determine whether the first candidate output satisfies a first objective condition associated with the first objective function, assign, responsive to the first candidate output not satisfying the first objective condition, a first penalty to the at least one first candidate input and/or performing early termination of evaluation of the at least one first candidate input, responsive to the first candidate output satisfying the first objective condition: generate a second candidate output by providing the at least one first candidate input as input to a second objective function of the plurality of objective functions, and assign, responsive to the second candidate output not satisfying a second objective condition associated with the second objective function, a second penalty value to the at least one first candidate input and/or performing early termination, evaluate a convergence condition using the at least one first candidate input and each penalty value associated with the at least one first candidate input, adjust, responsive to the at least one first candidate input not satisfying the convergence condition, the at least one first candidate input to generate at least one second candidate input to evaluate using the plurality of objective functions, and output, responsive to the at least one first candidate input satisfying the convergence condition, the at least one first candidate input. The use of the penalty values and/or early termination can enable efficient use of computational resources. 
     At least one aspect relates to a method for hierarchical multi-objective optimization. The method can include accessing, by one or more processors, at least one first candidate input, generating, by the one or more processors, a first candidate output by providing the at least one first candidate input as input to a first objective function of a plurality of objective functions, determining, by the one or more processors, whether the first candidate output satisfies a first objective condition associated with the first objective function, assign, by the one or more processors responsive to the first candidate output not satisfying the first objective condition, a first penalty to the at least one first candidate input and/or performing early termination, responsive to the first candidate output satisfying the first objective condition: generating, by the one or more processors, a second candidate output by providing the at least one first candidate input as input to a second objective function of the plurality of objective functions, and assigning, by the one or more processors responsive to the second candidate output not satisfying a second objective condition associated with the second objective function, a second penalty value with the at least one first candidate input and/or performing early termination, evaluating, by the one or more processors, a convergence condition using the at least one first candidate input and each penalty value associated with the at least one first candidate input, adjusting, by the one or more processors responsive to the at least one first candidate input not satisfying the convergence condition, the at least one first candidate input to generate at least one second candidate input to evaluate using the plurality of objective functions, and outputting, by the one or more processors responsive to the at least one first candidate input satisfying the convergence condition, the at least one first candidate input. The use of the penalty values and/or early termination can enable efficient use of computational resources. 
     At least one aspect relates to a method. The method can include optimizing a plurality of objective functions by iteratively: selecting an objective function from the plurality of objective functions based at least on a hierarchy assigned to the plurality of objective functions; applying a set of parameters to the selected objective function to generate an output of the selected objective function; responsive to the output not satisfying a tolerance condition for the output, assigning a penalty to the set of parameters and/or performing early termination, and evaluating a convergence condition using the set of parameters and the penalty; responsive to the output satisfying the tolerance condition, evaluating one or more additional objective functions of the plurality of objective functions using the set of parameters in an order corresponding to the hierarchy or evaluating the convergence condition responsive to the selected objective function being a final objective function of the plurality of objective functions; modifying the set of parameters using a genetic algorithm responsive to the set of parameters not satisfying the convergence condition; and outputting the set of parameters responsive to the set of parameters satisfying the convergence condition. The use of the penalties and/or early termination can enable efficient use of computational resources. 
     It should be appreciated that all combinations of the foregoing concepts and additional concepts discussed in greater detail below (provided such concepts are not mutually inconsistent) are contemplated as being part of the subject matter disclosed herein. In particular, all combinations of claimed subject matter appearing at the end of this disclosure are contemplated as being part of the subject matter disclosed herein. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The foregoing and other features of the present disclosure will become more fully apparent from the following description and appended claims, taken in conjunction with the accompanying drawings. Understanding that these drawings depict only several implementations in accordance with the disclosure and are therefore, not to be considered limiting of its scope, the disclosure will be described with additional specificity and detail through use of the accompanying drawings. 
         FIG.  1    is a block diagram of a multi-objective hierarchical optimization system. 
         FIG.  2    depicts charts of optimization of multiple objectives for modelling coarse grained water. 
         FIGS.  3 A- 3 D  depict charts of optimization of multiple objectives for modelling WSe 2 . 
         FIG.  4    is a flow diagram of a method for multi-objective hierarchical optimization. 
     
    
    
     DETAILED DESCRIPTION 
     Embodiments described herein relate generally to methods of design optimization using multi-objective hierarchical optimization. Multi-objective hierarchical optimization can be used to systematically evaluate multiple objectives associated with computational optimization, without requiring arbitrary weights to be assigned to the objectives to determine whether the optimization is proceeding effectively. 
     Various problems, including in material design and engineering, can involve simultaneous optimization of many properties, such as composition, topology, mechanics, or stability. For example, such multi-objective considerations may arise in solving problems such as identifying a best composition of alloys that result in a strong yet lightweight material, or identifying cost efficient materials that are best for long-term applications under extreme temperatures. 
     Existing optimization algorithms, such as genetic algorithms, Monte Carlo methods, or decision tree searching, are design to work well for a single objective, where the objective can represent a score that indicates a quality of a candidate solution. For problems involving multiple objectives, some approaches assign weight to each objective (e.g., assign a higher weight to a more important objective), and then sum the results for each objective into a combined score. In such approaches, one or a small number of properties may be predicted well based on the objectives corresponding to the properties, whereas several others may tend to suffer heavily during the optimization process, which can result in suboptimal outputs or computational resources or time required to reach an optimal solution being greater. As such, it can be difficult to reliably determine estimates for multiple objectives concurrently, including for optimizing the model for and properties of materials. 
     For example, the weight-based approach can have weights that are arbitrarily assigned, as there is no systematic manner to do the assignments, and an optimization algorithm can tend to select a compromised candidate that is “good at nothing” if the relatively differences between weights are more or less equal, or tend to optimize only a highest-weighted objective if the weights are relatively different from one another. Pareto optimization approaches can require a user to select an appropriate model, from a large pool of candidates, that best represents the compromise between various objectives (e.g., beyond three objectives, there are generally no established guidelines for choosing the appropriate model). 
     Systems and methods performed in accordance with the present solution can enable improved optimization of problems involving multiple objectives by implementing a hierarchy for sequentially evaluating the objectives, along with defined target values for each objective (e.g., as compared to arbitrary weights). This can enable the systems and methods to process the objectives in a systematic manner, providing a solution approach applicable to various types of model or property optimization, which can enable reduced computational resource usage to effectively achieve optimization. As described herein, systems and methods in accordance with the present solution can be implemented to solve a variety of computational problems, including but not limited to optimizing interatomic potentials for molecular simulations, optimization involving long evaluation times (e.g., calculation of dynamic properties of materials), modelling molecular systems such as coarse grained water, or modelling multicomponent systems such as WSe 2 , and performing such optimizations for a large number of objectives, including but not limited to objectives such as phonon dispersion, equations of state, cohesive energy, dynamic stability, melting points, densities in various phases and at various temperatures, and various other such properties. 
       FIG.  1    depicts a system  100  for hierarchical optimization of multiple objectives. The system  100  includes one or more processors  104  and memory  108 , which can be implemented as one or more processing circuits. The processor  104  may be a general purpose or specific purpose processor, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGAs), a group of processing components, or other suitable processing components. The processor  104  may be configured to execute computer code or instructions stored in memory  108  (e.g., fuzzy logic, etc.) or received from other computer readable media (e.g., CDROM, network storage, a remote server, etc.) to perform one or more of the processes described herein. The memory  108  may include one or more data storage devices (e.g., memory units, memory devices, computer-readable storage media, etc.) configured to store data, computer code, executable instructions, or other forms of computer-readable information. The memory  108  may include random access memory (RAM), read-only memory (ROM), hard drive storage, temporary storage, non-volatile memory, flash memory, optical memory, or any other suitable memory for storing software objects and/or computer instructions. The memory  108  may include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described in the present disclosure. The memory  108  may be communicably connected to the processor  104  and may include computer code for executing (e.g., by processor  104 ) one or more of the processes described herein. The memory  108  can include various modules (e.g., circuits, engines) for completing processes described herein. The one or more processors  104  and memory  108  may include various distributed components that may be communicatively coupled by wired or wireless connections; for example, various portions of system  100  may be implemented using one or more client devices remote from one or more server devices. The memory  108  can include various software or firmware engines, modules, scripts, databases, or other computer code to implement the various components described herein, including the training database  112 , parameter set generator  116 , function evaluator  120 , objective functions  124 , hierarchy data structure  128 , objective conditions  132 , penalty scores  136 , reward scores  140 , outputter  144 , and parameter modifier  156 , or features or functions thereof. 
     The system  100  can include a training database  112 . The training database  112  can include candidate inputs, such as candidate data points, that can be used to perform a multiple objective optimization (e.g., optimize objective functions  124 ). For example, the candidate data points can be represented using a data structure that includes one or more data point values for each of one or more parameters that are to be provided as inputs to the optimization. The candidate data points can represent material properties, environmental properties, or various other properties of the models or systems to be optimized. 
     The system  100  can include a parameter set generator  116 . The parameter set generator  116  can identify candidate data points from the training database  112  to use for the optimization. The parameter set generator  116  can randomly select candidate data points from the training database  112 . The parameter set generator  116  can generate candidate data points based on first principles associated with the problem to be optimized, such as surrogate functions or other models associated with the problem to be optimized, which can enable more effective optimization (e.g., by starting from input values that may be reasonably close to the optimal values). 
     The system  100  can include a function evaluator  120 . Briefly, the function evaluator  120  can provide candidate inputs (e.g., a set of candidate data point(s)) as input to one or more objective functions  124 . The function evaluator  120  can perform a trial (e.g., iteration of evaluation) of each set of candidate data point(s) received from the training database  112  or the parameter set generator  116  by providing the set of candidate data point(s) to each objective function  124  to be evaluated for a particular multiple objective optimization. 
     The objective functions  124  can each represent a particular objective of the multi-objective optimization. The objective functions  124  can be equations, algorithms, procedures, filters, characteristics, or any other functions that receive input, such as data points from the parameter set generator  116 , and process the input to provide one or more outputs. The objective functions  124  can represent properties of materials to be modeled or optimized. The objective functions  124  can include functions such as error in relative equations of state, stability of materials or particular layers of materials, or phonon dispersion. The objective functions  124  can generate qualitative outputs, such as rankings, orderings, or classifications. The objective functions  124  may include probabilistic or statistical functions. The objective functions  124  can generate temporal data (e.g., multiple output data points each assigned to a respective point in time). The objective functions  124  can be based on outputs from other objective functions  124 , such as to indicate an ordering of outputs from other objective functions  124  (e.g., relative ordering of densities at various temperatures as shown in Table 1 below) or to provide a statistical measure, such as standard deviation, of outputs from one or more other objective functions  124 . 
     The system  100  can include a hierarchy data structure  128 . The hierarchy data structure  128  can indicate an order (e.g., relative order) in which to evaluate the objective functions  124  using inputs from the parameter set generator  116 . The hierarchy data structure  128  can assign ranks to each objective function  124  to indicate the order in which to evaluate each objective function  124 . As described further herein, because the objective functions  124  are evaluated according to the hierarchy data structure  128 , higher ranked objective function(s)  124  may be evaluated while lower ranked objective function(s)  124  may not be evaluated if the output from the higher ranked objective function(s)  124  does not meet appropriate tolerances (e.g., objective conditions  132 ), which can cause the system  100  to terminate evaluation of the objective functions  124  using a selected at least one candidate data point before evaluating the remaining, lower ranked objective function(s)  124 . The system  100  can update the hierarchy data structure  128  responsive to user input. The system  100  can maintain multiple hierarchy data structures  128 , each assigned to a respective multiple objective optimization, enabling the system  100  to perform optimizations of problems associated with various sets of objective functions  124 . The hierarchy data structure  128  can be used in combination with other systems, such as weighting or Pareto based optimizations. For instance, each objective function  124  may correspond to a single material property, but can also be a group of correlated material properties combined using the weighting approach (e.g., root mean square deviation of atomic positions compared to target structure and energy of structure represented by a set of atomic positions can be grouped to describe a property named geometry of structure plus strength of structure). 
     For example, the hierarchy data structure  128  can indicate a first objective function  124  to evaluate first, a second objective function  124  to evaluate subsequent to evaluating the first objective function  124  (e.g., if output from the first objective function  124  meets appropriate tolerances), a third objective function  124  to evaluate subsequent to evaluating the first and second objective functions  124  (e.g., if output from the first and second objective functions  124  each meet appropriate tolerances), and so on for each objective function  124  to be evaluated for a particular multi-objective optimization. The hierarchy data structure  128  may order the objective functions  124  based on at least one of an importance criteria of each objective function  124  and a measure of computational resources required to evaluate each objective function  124 . 
     The hierarchy data structure  128  can be determined responsive to user input. For example, the system  100  can receive user input indicating one or more objective functions  124  to evaluate with relatively higher priority as compared to other objective functions  124  (e.g., via a user input device or a network communications device, not depicted). The system  100  can determine the hierarchy data structure  128  based on at least one of the importance criteria (e.g., importance score) or the measure of computational resources associated with each objective function  124 . For example, the system  100  can determine the importance criteria using the user input, a predefined importance criteria maintained in memory  108 , or any combination thereof. The system  100  can determine the measure of computational resources by executing the objective function  124  (e.g., providing random or test input to the function  124 ) and monitoring computational resources used by the objective function  124  to generate output, by retrieving a predefined estimate of the measure of computational resources maintained in memory  108 , or any combination thereof. 
     The system  100  can include objective conditions  132  that correspond to respective objective functions  124 . The objective conditions  132  can be values or combinations of values such as thresholds, tolerances or target values that the system  100  attempts to achieve to optimize the corresponding objective functions  124 . Each objective condition  132  can be assigned to a particular objective function  124 , such as by a mapping maintained in memory  108 . The objective conditions can be evaluated using the output of the objective functions  124  as well as parameters determined based on the output, such as standard deviations of the output (e.g., standard deviations of the output determined responsive to using the function evaluator  120  to cause the objective function  124  to generate multiple outputs using the at least one candidate data point, such as for multiple outputs as a function of time). 
     The system  100  can evaluate outputs of the objective functions  124  that the function evaluator  120  generates by applying data points from the parameter set generator  116  to the objective functions  124  to evaluate the objective conditions  132 . The function evaluator  120  can compare the output from the objective function  124  to corresponding objective conditions  132  (e.g., compare to minimum and/or maximum threshold values defining a tolerance range) and determine the output to satisfy the objective conditions  132  responsive to the output meeting the objective conditions  132  (e.g., the output being less than the maximum threshold value and greater than the minimum threshold value). For example, for a particular objective function  124 , the corresponding objective condition  132  can include a minimum threshold value and a maximum threshold value, and the function evaluator  120  can determine the objective condition  132  to be satisfied responsive to output from the function evaluator  120  for the objective function  124  to be greater than the minimum threshold value and less than the maximum threshold value. Table 1 below provides an example of fifteen objective functions ordered in a hierarchy (e.g., based on a hierarchy data structure  128 ) and objective conditions associated with each respective objective function. As shown in Table 1, the objective conditions can be tolerances for each output generated by each objective function, include tolerances for values of the outputs as well as associated standard deviations: 
     
       
         
           
               
             
               
                 TABLE 1 
               
             
            
               
                   
               
               
                 Hierarchical ranks of each objective function and corresponding tolerances 
               
               
                 conditions for fifteen objectives of a multi-objective optimization. 
               
            
           
           
               
               
               
            
               
                 Rank 
                 Objective Function 
                 Objective Conditions 
               
               
                   
               
            
           
           
               
               
               
            
               
                 1 
                 Minimized structure of ice I h , equation of state 
                 RMSD &lt; 0.7 Å, ΔE &lt; 0.1 eV 
               
               
                 2 
                 Time averaged density of ice I h , T = 273 K, P = 1 bar (ρ Ih, 273 K, 1 bar ) 
                 |ρ predicted  − ρ exp | &lt; 2%, SD &lt; 0.01% 
               
               
                 3 
                 Time averaged density of ice I h , T = 253 K, P = 1 bar (ρ Ih, 253 K, 1 bar ) 
                 |ρ predicted  − ρ exp | &lt; 2%, SD &lt; 0.01% 
               
               
                 4 
                 Time averaged density of ice I h , T = 213 K, P = 1 bar (ρ Ih, 213 K, 1 bar ) 
                 |ρ predicted  − ρ exp | &lt; 2%, SD &lt; 0.01% 
               
               
                 5 
                 Relative ordering of ρ Ih, 1 bar   
                 ρ Ih, 273 K, 1 bar  &lt; ρ Ih, 253 K, 1 bar  &lt; ρ Ih, 253 K, 1 bar   
               
               
                 6 
                 Time averaged density of liquid, T = 338 K, P = 1 bar (ρ liq, 338 K, 1 bar ) 
                 |ρ predicted  − ρ exp | &lt; 2%, SD &lt; 0.01% 
               
               
                 7 
                 Time averaged density of liquid, T = 273 K, P = 1 bar (ρ liq, 273 K, 1 bar ) 
                 |ρ predicted  − ρ exp | &lt; 1.5%, SD &lt; 0.01% 
               
               
                 8 
                 Stability of ice I h -liquid interface, melting point of ice I h  (T m ) 
                 T m  within 20 K 
               
               
                 9 
                 Enthalpy of melting of ice I h  (ΔH melt ) 
                 |ΔH predicted  − ΔH exp | &lt; 30% 
               
               
                 10 
                 Time averaged density of liquid, T = 300 K, P = 1 bar (ρ liq, 300 K, 1 bar ) 
                 |ρ predicted  − ρ exp | &lt; 1.5%, SD &lt; 0.01% 
               
               
                 11 
                 Time averaged density of liquid, T = 277 K, P = 1 bar (ρ liq, 277 K, 1 bar ) 
                 |ρ predicted  − ρ exp | &lt; 1%, SD &lt; 0.01% 
               
               
                 12 
                 Time averaged density of liquid, T = 263 K, P = 1 bar (ρ liq, 263 K, 1 bar ) 
                 |ρ predicted  − ρ exp | &lt; 3.5%, SD &lt; 0.02% 
               
               
                 13 
                 Time averaged density of liquid, T = 253 K, P = 1 bar (ρ liq, 253 K, 1 bar ) 
                 |ρ predicted  − ρ exp | &lt; 4%, SD &lt; 0.02% 
               
               
                 14 
                 Relative ordering of ρ liq, 1 bar  at T = 253, 263, 273, 277, 300, 338 K 
                 no more than 1 wrong order 
               
               
                 15 
                 Enthalpy and free energy difference between ice I h  and I c   
                 (for ML-BOP dih  only) 
               
               
                   
               
            
           
         
       
     
     The system  100  can maintain penalty scores  136  and reward scores  140 . At least one penalty score  136  or reward score  140  can be assigned to each set of candidate data point(s) that the parameter set generator  116  provides to the function evaluator  120  (e.g., for each trial of a set of candidate data point(s)). For example, the function evaluator  120  can receive at least one first candidate data point from the training database  112  or the parameter set generator  116 , apply the at least one first candidate data point to a selected objective function  124  to cause the selected objective function  124  to generate an output using the at least one first candidate data point, evaluate the output using the objective conditions  132  corresponding to the selected objective function  124 , assign a reward score  140  to the at least one first candidate data point responsive to the output satisfying the objective conditions  132  corresponding to the selected objective function  124 , and assign a penalty score  136  to the at least one first candidate data point responsive to the output not satisfying the objective conditions  132  corresponding to the selected objective function  124 . 
     The penalty scores  136  and reward scores  140  can be predetermined values. The penalty scores  136  and reward scores  140  can be predetermined values specific to corresponding objective functions  124  or objective conditions  132 . The penalty scores  136  (or reward scores  140 ) can be determined at least based on a difference between the output of the objective function  124  and thresholds or target values indicated by the objective conditions  132 ; for example, greater penalty scores  136  may be assigned based on differences between the output and the objective conditions  132  being greater. 
     The function evaluator  120  can provide at least one of the at least one first candidate data point or the output generated using the at least one first candidate data point (e.g., first candidate output) to an outputter  144 . The outputter  144  can determine whether the at least one first candidate data point qualifies as an optimum of the multiple objective functions  124 , or cause the system  100  to continue to evaluate candidate data points in order to detect the optimum of the multiple objective functions  124 . 
     The outputter  144  can maintain at least one convergence condition  148 . The convergence condition  148  can indicate whether the at least one first candidate data point satisfies requirements for the optimum of the multiple objectives  124 . The convergence condition  148  can include or be based on the objective conditions  132 . While  FIG.  1    depicts the at least one convergence condition  148  as being implemented by the outputter  144  separately from the objective conditions  132 , the at least one convergence condition  148  may be evaluated by the function evaluator  120  evaluating the objective conditions  132 . The outputter  144  can maintain a record of the result of evaluating the convergence condition  148  for each at least one candidate data point, which can enable monitoring of how modifications to the candidate data points affects the pathway towards identifying the optimum of the multiple objective functions  124 . 
     For example, the convergence condition  148  can be satisfied based at least on the outputs of the objective functions generated using the function evaluator  120  each satisfying respective objective conditions  132 . The convergence condition  148  can be satisfied based on minimization, maximization, or minimization of a difference with respect to a target value, each output of each respective objective function  124 . The convergence condition  148  can be satisfied based on differences between the candidate data points evaluated during a current iteration and one or more previous iterations being less than a threshold difference, which can indicate that the system  100  has converged to the solution that optimizes the objective functions  124 . The outputter  144  can retrieve each penalty score  136  and reward score  140  assigned to the at least one candidate data point to evaluate the convergence condition  148 , such as by detecting convergence as reward scores increase or not detecting convergence as penalty scores increase. 
     Responsive to determining that the at least one first candidate data point does not satisfy the convergence condition  148 , the outputter  144  can trigger evaluation of different candidate data points. For example, the outputter  144  can cause the parameter set generator  116  to retrieve (e.g., from the training database  112 ) at least one second candidate data point different from the at least one first candidate data point to provide to the function evaluator  120 , or can cause a parameter modifier  156  to modify the at least one first candidate data point to modify the at least one first candidate data point to generate the at least one second candidate data point. 
     Responsive to determining that the at least one first candidate data point does satisfy the convergence condition  148 , the outputter  144  can provide an optimized output indicative of an optimum of the objective functions  124 . The output can include the at least one first candidate data point. The output can include the outputs of each objective function  124  generated using the at least one first candidate data point. 
     The outputter  144  may include an optimizer  152 , which can further optimize the at least one first candidate data point responsive to determining that the at least one first candidate data point satisfies the convergence condition  148 . For example, the optimizer  152  can apply any of a variety of optimization algorithms (e.g., local optimization algorithms) to the at least one first candidate data point to generate the optimized output, such as by restricting a search space to a threshold distance and performing the local optimization within the threshold distance. 
     The parameter modifier  156  can modify the at least one first candidate data point to generate at least one second candidate data point to be further evaluated by the function evaluator  120 . The parameter modifier  156  can modify values of one or more of the at least one first candidate data point to generate the at least one second data point. The parameter modifier  156  can selectively modify values of the one or more at least one first candidate data point, such as values more strongly associated with objective conditions  132  that were not satisfied by the output generated using the at least one first candidate data point. 
     The parameter modifier  156  can apply one or more genetic operations  160  to the at least one first candidate data point to generate the at least one second candidate data point. For example, a crossover operation can be performed in which one or more features (e.g., data points) of at least one third candidate data point are combined with the at least one first candidate data point. Performing the crossover may include identifying the at least one third candidate data point randomly, or using reward scores or penalty scores assigned to the at least one third candidate data point. Performing the crossover may include substituting one or more data points of the at least one third candidate data point for one or more data points of the at least one first candidate data point, or performing an average of data points. The parameter modifier  156  can apply a mutation operation to the at least one first candidate data point to generate the at least one second candidate data point. For example, the parameter modifier  156  can evaluate a mutation probability threshold for one or more data points of the at least one first candidate data points, and modify the one or more data points responsive to a randomly generated probability score meeting or exceeding the probability threshold. The parameter modifier  156  can modify the one or more data points by adjusting a value of the one or more data points. The parameter modifier  156  can adjust the value using a predetermined adjustment value, using a randomly generated adjustment value, or a combination thereof (e.g., applying an adjustment value randomly selected from a predetermined range of adjustment values). 
     The function evaluator  120  can evaluate the at least one second candidate data point by providing the at least one second candidate data point as input to the objective functions  124 , and evaluating the outputs of the objective functions  124  using the objective conditions  132 . The system  100  can iteratively evaluate numerous sets of candidate data points, using the hierarchy data structure  128 , to arrive at the optimum of the multiple objective optimization indicated by the objective functions  124 . 
       FIG.  2    depicts optimization  200  of models for coarse grain water. For example, the optimization  200  of the models can be performed by using the hierarchy of objective functions shown in Table 1. The optimized models (e.g., models using bond order potential (BOP) trained by machine learning using hierarchical multi-objective optimization; Stillinger-Weber (mW) models trained by machine learning using hierarchical multi-objective optimization) are compared to expected, demonstrating the effectiveness of training using hierarchical multi-objective optimization for density at various temperatures. 
       FIGS.  3 A- 3 D  depict optimization  300  of models of WSe 2 . For example, optimization  300  can include optimization of energies, structures, and temperature dependent transformations of a small Selenium cluster, including phonon dispersion, equations of state, cohesive energy, and dynamic stability of WSe 2 . Optimization  300  can be performed to optimize a model of WSe 2  in a space of over twenty four dimensions (e.g., BOP model), and is shown in comparison to density functional theory (DFT) modelling, demonstrating the effectiveness of using the hierarchical multi-objective optimization. 
       FIG.  4    depicts a method  400  for hierarchical multiple objective optimization. The method  400  can be performed using various systems described herein, including the system  100 . Various steps in the method  400  may be repeated, omitted, performed in various orders, or otherwise modified. 
     At  405 , a set of parameters to use to optimize the objectives is selected. The set of parameters can represent candidate data points to be provided as input to the objective functions of the optimization to determine if outputs of the objective functions generated using the candidate data points represent an optimum of the objective functions. The set of parameters can be selected from a training database of parameters. The set of parameters can be randomly selected (or generated). The candidate data points can represent material properties, environmental properties, or various other properties of the models or systems to be optimized. The set of parameters can be determined based on first principles associated with the problem to be optimized, such as surrogate functions or other models associated with the problem to be optimized. 
     At  410 , an objective function is identified using a hierarchy of objective functions. The hierarchy can rank each of the multiple objective functions of the optimization to indicate an order in which to evaluate the objective functions, such as to indicate first, second, third, etc. functions to evaluate. By arranging the objective functions in the hierarchy, early termination of evaluation of relatively poor candidate data points can be performed, reducing resource expenditure on evaluating less important and/or more computationally intensive objective functions that are ranked lower in the hierarchy. The objective function can be identified by retrieving an index of the objective function from a hierarchy data structure (e.g., based on an index of a previously evaluated objective function) that represents the hierarchy. The hierarchy can be generated or updated responsive to user input. As described further below, the objective function can be identified responsive to a previously evaluated objective function satisfying corresponding objective conditions. 
     At  415 , the set of parameters is applied as an input to the identified objective function. The identified objective function can generate at least one output (e.g., at least one candidate output) responsive to the set of parameters. The objective function can generate the at least one output to include values such as thermodynamic properties, kinetic properties, material properties, errors in relative equations of state, stability of materials or particular layers of materials, phonon dispersion, rankings, orderings, or classifications. The objective function can generate the at least one output responsive to multiple operations using the input, such as to provide statistical measures such as standard deviation. 
     At  420 , it is determined whether one or more objective conditions associated with the objective function are satisfied. The one or more objective conditions can be identified based on a mapping (e.g., database, lookup table) that relates objective conditions to objective functions. The objective conditions can be evaluated using the output generated by the objective function responsive to the set of parameters. The objective conditions can include various tolerances, threshold values, or, target values to be achieved for the output as well as values determined based on multiple outputs, such as standard deviations. As an example, the output can be compared to a minimum threshold value and a maximum threshold value of the objective condition assigned to the objective function, and the objective condition can be determined to be satisfied responsive to the output being greater than the minimum threshold value and less than the maximum threshold value. The objective condition can be determined to not be satisfied responsive to outputs of the objective function not satisfying each objective condition assigned to the objective function, such if a value of the output meets appropriate thresholds (e.g., as shown for the second objective function relating to time averaged density of ice I h  in Table 1, the time averaged density may be within two percent of an expected value, but a standard deviation of the density values may be greater than a 0.01 percent threshold for standard deviation, resulting in the objective conditions not being satisfied). 
     At  425 , early termination of evaluation of the set of parameters can be performed responsive to the objective conditions not being satisfied. As discussed above, this can allow for resource expenditure on evaluating further objective functions to be avoided for relatively poor candidates. For example, if the multiple objective optimization includes a hierarchy for optimizing six objective functions, but the output of the third objective function does not meet objective conditions assigned to the third objective function, evaluation of the fourth, fifth, and sixth objective functions in the hierarchy may be skipped by proceeding to determine whether convergence has been achieved rather than identifying and evaluating the fourth (and fifth and sixth) objective functions. 
     At  430 , a penalty score can be assigned to the set of parameters (e.g., responsive to determining to perform early termination), which can be used for determining whether the output generated using the set of parameters has converged to an optimum. The penalty score can be a predetermined value assigned to the objective function and retrieved from a penalty score database responsive to the output of the objective function not satisfying the objective conditions. The penalty score can be determined based at least on a difference between the output and thresholds or target values of the objective conditions; for example, greater penalty scores may be assigned based on differences between the output and the objective conditions being greater. 
     At  435 , a reward score can be assigned to the set of parameters responsive to the set of parameters (e.g., the output generated therefrom) satisfying the objective conditions. The reward score can be used to promote solutions that satisfy the objective conditions. The reward score can be a predetermined value assigned to the objective function and retrieved from a reward score database responsive to the output of the objective function satisfying the objective conditions. The reward score can be determined based on a difference between the output and thresholds or target values of the objective conditions; for example, greater reward scores may be assigned based on differences between the output and the objective conditions being lesser. 
     At  440 , it can be determined whether an additional objective function is to be evaluated. It can be determined whether an additional objective function is to be evaluated responsive to the previously evaluated objective function satisfying the corresponding objective conditions (e.g., such that early termination is not performed). For example, the multiple objective optimization may include several objective functions to be evaluated using the set of parameters according to the order indicated by the hierarchy. Responsive to determining that an additional objective function is to be evaluated (e.g., using the hierarchy; or by maintaining a count of objective functions that are evaluated, incrementing the count each time iteration, and comparing the count to a maximum count), the additional objective function can be identified using the hierarchy and evaluated using the set of parameters as described above. For example, if the multiple objective optimization includes four objective functions to evaluate, it can be determined to evaluate additional objective functions until the fourth objective function in the hierarchy has been evaluated. As such, several iterations of objective function evaluations may be performed until early termination is performed or each objective function of the multiple objective functions is evaluated. 
     At  445 , it can be determined whether the output generated using the set of parameters and the objective functions has converged. Convergence can be determined based on one or more convergence conditions. The convergence conditions may include the objective conditions used to evaluate the output of the objective functions. For example, the output can be determined to have converged responsive to each of the objective conditions for each of the objective functions being satisfied. Convergence may additionally or alternatively be determined responsive to a change in the outputs generated by the objective functions changing less than a threshold amount over one or more iterations of evaluating the objective functions using sets of parameters (e.g., the sets of parameters and the resulting outputs of the objective functions). The reward scores and penalty scores assigned to the outputs can be used to detect convergence to the optimum, such as to rank sets of parameters that result in outputs that satisfy at least some objective conditions. 
     At  450 , responsive to determining that the output has not converged, the set of parameters can be modified. Modifying the set of parameters can include retrieving a different set of parameters from the training database. Modifying the set of parameters can include randomly modifying at least one parameter (e.g., at least one candidate data point) of the set of parameters. Modifying the set of parameters can include modifying one or more parameters based on the performance of the one or more parameters with respect to the objective conditions or the convergence conditions, such as to modify parameter(s) more strongly correlated with outputs that resulted in early termination or non-convergence. 
     Modifying the set of parameters can include applying genetic operations to one or more parameters of the set of parameters. For example, a crossover operation can be performed in which one or more features (e.g., data points) of at least one third candidate data point are combined with at least one first candidate data point of the set of parameters. Performing the crossover may include identifying the at least one third candidate data point randomly, or using reward scores or penalty scores assigned to the at least one third candidate data point. Performing the crossover may include substituting one or more data points of the at least one third candidate data point for one or more data points of the at least one first candidate data point, or performing an average of data points. A mutation operation may be performed in which one or more data points of the set of parameters are modified. For example, a mutation probability threshold for one or more data points of the set of parameters can be evaluated, and the one or more data points can be modified responsive to a randomly generated probability score meeting or exceeding the probability threshold. The one or more data points can be modified by adjusting a value of the one or more data points. The value can be adjusted using a predetermined adjustment value, using a randomly generated adjustment value, or a combination thereof (e.g., applying an adjustment value randomly selected from a predetermined range of adjustment values). 
     At  455 , responsive to determining that the output has converged, local optimization can be performed. Local optimization can be performed to further optimize the output within a region around the output (e.g., a region in a multi-variable parameter space around the set of parameters used to generate the output). For example, any of a variety of optimization algorithms (e.g., local optimization algorithms) can be applied to the at least one first candidate data point to generate the optimized output, such as by restricting a search space to a threshold distance and performing the local optimization within the threshold distance. 
     At  460 , the optimized output can be provided. The optimized output can be provided by being used to update an output data structure that includes fields for the set of parameters and the output (e.g., output for each objective function used for the optimization). The optimized output can be provided by presenting the output and/or the set of parameters using a display device. The optimized output can be provided by being transmitted to a remote electronic device. 
     Definitions. 
     As utilized herein, the terms “approximately,” “about,” “substantially”, and similar terms are intended to have a broad meaning in harmony with the common and accepted usage by those of ordinary skill in the art to which the subject matter of this disclosure pertains. It should be understood by those of skill in the art who review this disclosure that these terms are intended to allow a description of certain features described and claimed without restricting the scope of these features to the precise numerical ranges provided. Accordingly, these terms should be interpreted as indicating that insubstantial or inconsequential modifications or alterations of the subject matter described and claimed are considered to be within the scope of the disclosure as recited in the appended claims. 
     The term “coupled,” as used herein, means the joining of two members directly or indirectly to one another. Such joining may be stationary (e.g., permanent or fixed) or moveable (e.g., removable or releasable). Such joining may be achieved with the two members coupled directly to each other, with the two members coupled to each other using a separate intervening member and any additional intermediate members coupled with one another, or with the two members coupled to each other using an intervening member that is integrally formed as a single unitary body with one of the two members. Such members may be coupled mechanically, electrically, and/or fluidly. 
     The term “or,” as used herein, is used in its inclusive sense (and not in its exclusive sense) so that when used to connect a list of elements, the term “or” means one, some, or all of the elements in the list. Conjunctive language such as the phrase “at least one of X, Y, and Z,” unless specifically stated otherwise, is understood to convey that an element may be either X, Y, Z; X and Y; X and Z; Y and Z; or X, Y, and Z (i.e., any combination of X, Y, and Z). Thus, such conjunctive language is not generally intended to imply that certain embodiments require at least one of X, at least one of Y, and at least one of Z to each be present, unless otherwise indicated. 
     References herein to the positions of elements (e.g., “top,” “bottom,” “above,” “below,” etc.) are merely used to describe the orientation of various elements in the FIGURES. It should be noted that the orientation of various elements may differ according to other exemplary embodiments, and that such variations are intended to be encompassed by the present disclosure. 
     The hardware and data processing components used to implement the various processes, operations, illustrative logics, logical blocks, modules and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a general purpose single- or multi-chip processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, or, any conventional processor, controller, microcontroller, or state machine. A processor also may be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. In some embodiments, particular processes and methods may be performed by circuitry that is specific to a given function. The memory (e.g., memory, memory unit, storage device, etc.) may include one or more devices (e.g., RAM, ROM, Flash memory, hard disk storage, etc.) for storing data and/or computer code for completing or facilitating the various processes, layers and modules described in the present disclosure. The memory may be or include volatile memory or non-volatile memory, and may include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described in the present disclosure. According to an exemplary embodiment, the memory is communicably connected to the processor via a processing circuit and includes computer code for executing (e.g., by the processing circuit and/or the processor) the one or more processes described herein. 
     The present disclosure contemplates methods, systems and program products on any machine-readable media for accomplishing various operations. The embodiments of the present disclosure may be implemented using existing computer processors, or by a special purpose computer processor for an appropriate system, incorporated for this or another purpose, or by a hardwired system. Embodiments within the scope of the present disclosure include program products comprising machine-readable media for carrying or having machine-executable instructions or data structures stored thereon. Such machine-readable media can be any available media that can be accessed by a general purpose or special purpose computer or other machine with a processor. By way of example, such machine-readable media can comprise RAM, ROM, EPROM, EEPROM, or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code in the form of machine-executable instructions or data structures and which can be accessed by a general purpose or special purpose computer or other machine with a processor. Combinations of the above are also included within the scope of machine-readable media. Machine-executable instructions include, for example, instructions and data which cause a general purpose computer, special purpose computer, or special purpose processing machines to perform a certain function or group of functions. 
     Although the figures and description may illustrate a specific order of method steps, the order of such steps may differ from what is depicted and described, unless specified differently above. Also, two or more steps may be performed concurrently or with partial concurrence, unless specified differently above. Such variation may depend, for example, on the software and hardware systems chosen and on designer choice. All such variations are within the scope of the disclosure. Likewise, software implementations of the described methods could be accomplished with standard programming techniques with rule-based logic and other logic to accomplish the various connection steps, processing steps, comparison steps, and decision steps. 
     It is important to note that the construction and arrangement of the fluid control systems and methods of fluid control as shown in the various exemplary embodiments is illustrative only. Additionally, any element disclosed in one embodiment may be incorporated or utilized with any other embodiment disclosed herein. Although only one example of an element from one embodiment that can be incorporated or utilized in another embodiment has been described above, it should be appreciated that other elements of the various embodiments may be incorporated or utilized with any of the other embodiments disclosed herein.