Automatic adjustment of constraints in task solution generation

By using controllers and solution generators in the computing environment to generate and adjust task solutions, the task solution design problems of complex events in the prior art are solved, and efficient and stable task processing is achieved.

CN119856159APending Publication Date: 2025-04-18INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380064846.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-09-13
Filing Date
2023-09-11
Publication Date
2025-04-18

AI Technical Summary

Technical Problem

It is difficult to design an optimal task solution for complex events in the prior art, and due to the complexity of constraints and conditions, manual intervention is often required, resulting in unstable, complex and resource-intensive solutions.

Method used

By using a controller in a computing environment to obtain data stored in the data structure, it is provided to the solution generator to generate a task solution that meets the defined criteria. If the generated solution does not meet the criteria, automatically adjust the constraints to regenerate the solution.

Benefits of technology

It reduces the use of computing resources, improves system performance, and can generate task solutions that otherwise cannot be generated, improving the efficiency and stability of task solutions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119856159A_ABST
    Figure CN119856159A_ABST
Patent Text Reader

Abstract

The controller obtains data stored in one or more data structures generated based on a defined task to be performed for a selected event. The data includes a set of constraints for a defined task. One or more task solutions generated for the defined task using the provided data are obtained. It is determined whether the one or more task solutions include task solutions that meet one or more defined criteria. Based on determining that the one or more task solutions do not include task solutions that meet the one or more defined criteria, a set of constraints is automatically adjusted to provide an adjusted set of constraints. The adjusted set of constraints is to be automatically provided to a solution generator for obtaining a task solution that meets one or more defined criteria.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] One or more aspects relate generally to dynamic processing within a computing environment, and more particularly to improving such processing.

[0002] Task solutions that specify how to perform a task for a defined event, such as a real-world event, are difficult to design. This is a result of the complexity of the tasks and / or defined events, as they have many and / or complex constraints associated with them and / or conditions that must be satisfied to successfully perform the task. Due to the numerous and / or complex constraints and / or conditions, users find it difficult to determine the optimal way to perform the task. Furthermore, due to the number and / or complexity of the constraints or conditions, there are often insufficient computing resources to determine the task solution to be employed.

[0003] Typically, in order to generate such task solutions, human intervention is widely used. The input provided during human intervention is limited to the background and personal knowledge of the person providing the input. As a result, the resulting task solutions are often unstable, too complex, error-prone and / or expensive. Therefore, there is still a need for improved task solutions for specifying how to perform tasks for defined events. Summary of the invention

[0004] By providing a computer-implemented method for dynamic processing within a computing environment, the disadvantages of the prior art are overcome and additional advantages are provided. The computer-implemented method includes obtaining, by a controller executing on one or more processors of the computing environment, data stored in one or more data structures, the one or more data structures being generated based on defined tasks to be performed for a selected event. The data includes a set of constraints for the defined tasks to be performed for the selected event. The data is provided to a solution generator to be executed on at least one processor, and the solution generator is to be used to obtain a task solution that specifies how to perform the defined task for the selected event. The task solution is to meet one or more defined criteria. Obtain one or more task solutions generated by the solution generator for the defined task. The one or more task solutions are generated using the provided data. Determine whether the one or more task solutions include the task solution that meets the one or more defined criteria. Based on determining that the one or more task solutions do not include the task solution that meets the one or more defined criteria, automatically adjust the set of constraints to provide an adjusted set of constraints. The adjusted set of constraints is to be automatically provided to the solution generator for obtaining the task solution that specifies how to perform the defined task. The task solution that specifies how to perform the defined task for the selected event is obtained, and at least an indication of the task solution that performs the defined task for the selected event is output.

[0005] By storing data in a selected form and retrieving and using the data, the use of computer resources is reduced and system performance is improved. Reducing the use of computer resources and / or improving system performance provides benefits for various technologies that use data stored in a selected form.

[0006] Automatic tuning enables the generation of task solutions that otherwise could not be generated. This reduces the use of computer resources and improves performance.

[0007] In one embodiment, the providing, the obtaining, the determining, and the automatically adjusting are iteratively performed one or more times to obtain the task solution that satisfies the one or more defined criteria. The data includes the adjusted set of constraints.

[0008] As an example, a data structure in the one or more data structures includes one or more features and one or more indicated priorities for the one or more features. At least a portion of the one or more features is specific to the selected event.

[0009] By storing data in a selected form, the use of computer resources is reduced and system performance is improved.

[0010] In one example, the one or more features include at least one default feature, at least one customized feature, and at least one feature specific to the solution generator.

[0011] As another example, another data structure in the one or more data structures includes a constraint data structure, the constraint data structure including the set of constraints for the selected event. The set of constraints includes one or more constraints for at least one of the one or more features and one or more corresponding priorities for the one or more constraints.

[0012] By storing data in a selected form, the use of computer resources is reduced and system performance is improved.

[0013] In one example, automatically adjusting the set of constraints includes automatically removing one of the constraints from the set of constraints. As an example, automatically removing one of the constraints from the set of constraints is based on a priority of the constraints in the set of constraints.

[0014] In another example, automatically adjusting the set of constraints includes automatically adjusting one or more respective priorities of one or more constraints in the set of constraints.

[0015] Automatic tuning increases the efficiency of determining task solutions and improves computer processing by, for example, reducing the use of computer resources and increasing system performance.

[0016] In one embodiment, the one or more data structures are generated by a generator executing on at least one of the one or more processors based on information obtained by the generator using one or more templates created for the defined tasks for the selected event.

[0017] As one example, the defined tasks include routing, and the selected events include events in which routing is performed.

[0018] Computer systems and computer program products related to one or more aspects are also described and may be claimed herein. Additionally, services related to one or more aspects are also described and may be claimed herein.

[0019] Additional features and advantages are realized through the techniques described herein.Other embodiments and aspects are described in detail herein and are considered a part of the claimed aspects. BRIEF DESCRIPTION OF THE DRAWINGS

[0020] One or more aspects are particularly pointed out and distinctly claimed as examples in the claims at the conclusion of the specification. The foregoing and objects, features and advantages of one or more aspects will become apparent from the following detailed description taken in conjunction with the accompanying drawings, in which:

[0021] Figure 1A An example of a computing environment that includes and / or uses one or more aspects of the present invention is depicted;

[0022] Figure 1B Describes one or more aspects of the present invention Figure 1A an example of a processing engine of a processor;

[0023] Figure 2 Describes one or more aspects of the present invention Figure 1B Further details of the processing engine;

[0024] Figure 3 depicts an example of a basic model data structure generated according to one or more aspects of the present invention;

[0025] Figure 4 depicts an example of a constraint model data structure generated according to one or more aspects of the present invention;

[0026] Figure 5 depicts an example of processing performed by an input feature auxiliary generator in accordance with one or more aspects of the present invention;

[0027] Figure 6 An example of processing performed by a constraint classifier in accordance with one or more aspects of the present invention is depicted;

[0028] Figure 7 An example of processing performed by a constraint sorter according to one or more aspects of the present invention is depicted;

[0029] Figure 8 An example of a process performed by a dynamic feedback controller according to one or more aspects of the present invention is depicted;

[0030] Fig. 9 An example of a machine learning training system for use in accordance with one or more aspects of the present invention is depicted;

[0031] Figures 10A-10C An example of dynamic processing within a computing environment related to one or more aspects of the present invention is shown; and

[0032] Fig.11 Another example of a computing environment that may incorporate and / or use one or more aspects of the present invention is depicted. DETAILED DESCRIPTION

[0033] In one or more aspects, the ability to facilitate processing within a computing environment is provided. Processing within a computing environment is facilitated by storing data in a selected form and providing the ability to retrieve and use the data. In one or more aspects, the data is used to determine an optimal solution to a defined task to be performed for a selected event, such as a complex scenario in a real-world environment, referred to herein as an optimal task solution. Example defined tasks for a selected event or complex scenario include, for example: routing within a computing environment or network; path planning for vehicles (such as delivery vehicles, emergency vehicles, and / or other vehicles); material distribution for suppliers, manufacturers, etc.; timely delivery of services in one or more environments, etc. For example, an optimal task solution specifies how a defined task (such as routing, distribution, delivery, etc.) can be performed for a selected event (such as computer network routing, vehicle route planning, material distribution for suppliers, etc.). The ability to store data in a selected form and provide retrieval and use of the data to determine an optimal task solution for performing a task for a selected event in a real-world environment can be used across complex scenarios and technologies.

[0034] By storing data in a selected form and retrieving and using the data, the use of computer resources is reduced and system performance is improved. The reduced use of computer resources and / or improved system performance provides benefits to various technologies that use data stored in a selected form. Such technologies include, but are not limited to, computer processing / routing, engineering, manufacturing, design technology (e.g., design of a product to be manufactured), medical technology, transportation technology, industrial technology, etc.

[0035] According to one or more aspects, a process for generating a task solution (e.g., an optimal task solution) for a defined task to be performed for a selected event is provided. The process performs actions including, but not limited to, obtaining data related to the defined task and / or the selected event, storing the data in a selected form, and retrieving and using the data to generate an optimal task solution. The process (referred to herein as a common process) is dynamic in that it is applicable and can be used to generate task solutions for various types of real-world events. It is common in that it is applicable to any situation where an optimizer is used to determine a task solution. The process used does not need to be changed for a specific event.

[0036] In one or more aspects, the process includes evaluating one or more task solutions to find the optimal task solution. Each task solution is based on one or more constraints. Constraints as used herein include, for example, restrictions related to an event or a task to be performed for the event, or conditions to be satisfied for an event or a task. If, based on the evaluation of one or more solutions, additional task solutions are to be evaluated, one or more constraints associated with the event are automatically adjusted, for example, without human intervention, before generating other task solutions. Automatic adjustment includes eliminating one or more constraints and / or adjusting one or more priorities associated with one or more constraints. This improves system performance by reducing the use of computer resources to determine the optimal task solution defined by one or more criteria.

[0037] refer to Figure 1A An embodiment of a computing environment incorporating and using one or more aspects of the present invention is described. By way of example, the computing environment may be of various architectures and types, including, but not limited to: personal computing, client-server, distributed, virtual, simulated, partitioned, non-partitioned, cloud-based, grid, time-sharing, clustered, peer-to-peer, mobile, having one node or multiple nodes, having one processor or multiple processors, and / or any other type of environment and / or configuration capable of executing, for example, a process (or processes) of storing data in a selected manner as described herein and retrieving and using the data to generate an optimal task solution for a selected event, etc. Aspects of the present invention are not limited to a particular architecture or environment.

[0038] refer to Figure 1A In one example, computing environment 100 includes a computer system 102, shown, for example, in the form of a general purpose computing device. Computer system 102 may include, but is not limited to, one or more processors or processing units 104 (e.g., central processing units (CPUs) and / or special purpose processors, etc.), memory 106 (e.g., system memory, main memory, main storage, central storage, or storage), and one or more input / output (I / O) interfaces 108 coupled to each other via one or more buses and / or other connections. For example, processor 104 and memory 106 are coupled to I / O interface 108 via one or more buses 110, and processors 104 are coupled to each other via one or more buses 111.

[0039] Bus 111 is, for example, a memory or cache coherent bus, and bus 110 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example and not limitation, these architectures include Industry Standard Architecture (ISA), Micro Channel Architecture (MCA), Enhanced ISA (EISA), Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI).

[0040] The memory 106 may include, for example, a cache 112, such as a shared cache, which may be coupled to a local cache 114 of one or more processors 104 via, for example, one or more buses 111. In addition, the memory 106 may include one or more programs or applications 116, at least one operating system 118, a solution generator 120 used in one or more aspects of the present invention to generate one or more task solutions for defined tasks for selected events, one or more data structures 121 used in accordance with one or more aspects of the present invention for storing data, and one or more computer-readable program instructions 122. The computer-readable program instructions 122 may be configured to perform the functions of embodiments of aspects of the present invention.

[0041] In one or more examples, the solution generator 120 is or includes an optimizer, and therefore, references to an optimizer are used herein; however, an optimizer is only one example, and other computer-implemented or executable solution generators may be used without departing from one or more aspects of the invention. The solution generator may be executed on one or more processors for performing other processing of one or more aspects of the invention, or may be executed on one or more other processors distinct from the one or more processors but communicatively coupled to receive data from the one or more processors and / or provide information to the one or more processors, such as one or more task solutions generated for a defined task for a specified event.

[0042] The computer system 102 may communicate with one or more external devices 130, such as a user terminal, a tape drive, a pointing device, a display, and one or more data storage devices 134, etc., via, for example, the I / O interface 108. The data storage device 134 may store one or more programs 136, one or more computer-readable program instructions 138, and / or data, etc. The computer-readable program instructions may be configured to perform the functions of embodiments of aspects of the present invention.

[0043] The computer system 102 may also communicate via, for example, the I / O interface 108 with a network interface 132, which enables the computer system 102 to communicate with one or more networks, such as a local area network (LAN), a general wide area network (WAN), and / or a public network (e.g., the Internet), thereby providing communications with other computing devices or systems.

[0044] The computer system 102 may include and / or be coupled to removable / non-removable, volatile / non-volatile computer system storage media. For example, it may include and / or be coupled to a non-removable, non-volatile magnetic media (commonly referred to as a "hard drive"), a disk drive for reading from and writing to a removable, non-volatile disk (e.g., a "floppy disk"), and / or an optical drive for reading from or writing to a removable, non-volatile optical disk (such as a CD-ROM, DVD-ROM, or other optical media). It should be understood that other hardware and / or software components may be used in conjunction with the computer system 102. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.

[0045] The computer system 102 may operate with numerous other general or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and / or configurations suitable for use with the computer system 102 include, but are not limited to, personal computer (PC) systems, server computer systems, thin clients, fat clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments including any of the above systems or devices, etc.

[0046] In one or more aspects, various processing engines are used to store data and retrieve and use the data. For example, refer to Figure 1B In one example, one or more processors (e.g., one or more processors 104) include one or more processing engines, including, for example: an input feature auxiliary generator 150 for initializing a specific event (e.g., a complex scenario or problem) and for initially creating default and customized features for one or more data structures for storing data representing the specific event; a constraint classifier 160 for generating one or more constraints corresponding to the features and continuing to maintain one or more data structures; a constraint sorter 170 for continuing to maintain one or more data structures and specifying an order for releasing constraints for, for example, a solution generator; and a dynamic feedback controller 180 for providing results of one or more processing iterations regarding the search for an optimal task solution for the event.

[0047] refer to Figure 2 Further details related to each processing engine are described. In one example, an input feature auxiliary generator 150 is used to specify one or more input features associated with an event in which an optimal task solution is to be determined. As an example, the one or more input features may include one or more costs 200 and / or one or more custom characteristics 202 associated with the event and / or the task to be performed for the event. Since the input features depend on the event, additional, fewer and / or other features may be included without departing from one or more aspects of the present invention.

[0048] In one example of a transport route event, the input features may include, for example, transport costs, labor costs, and / or material handling costs, etc. In addition, for a transport route event, additional, fewer, and / or other costs and / or features may be included. The input features provided herein are only one example. In addition, other events and / or features may be provided.

[0049] In one example, the constraint classifier 160 includes one or more constraints, such as one or more custom constraints 220, one or more recommended generated constraints 222, and one or more constraints of an optimizer or other solution generator. In addition, additional, fewer, and / or other constraints may be included without departing from one or more aspects of the present invention. In one or more examples, the constraints depend on events and / or processes used to determine the optimal task solution, such as a specific optimizer or other solution generator that may be used.

[0050] The constraint sequencer 170 is used to provide an order and / or level of one or more generated release constraints 240; and the dynamic feedback controller 180 can dynamically release one or more constraints 260 and facilitate the dynamic generation and analysis of task solutions to obtain an optimal task solution 262. A task solution is considered optimal if it meets one or more criteria defined for a specified event. For example, a task solution selected from a plurality of task solutions may be optimal if: it saves the greatest amount of cost compared to other task solutions; if it can be executed faster than other task solutions; if it uses fewer resources than other task solutions; if it uses selected resources that other task solutions do not use; and / or based on other selected criteria.

[0051] According to one aspect of the invention, the input features and / or constraints are stored in one or more data structures defined and generated according to one or more aspects of the invention. Example data structures include a base model data structure and a constraint model data structure, each of which will refer to Figure 3-4 Describe in more detail.

[0052] refer to Figure 3 , describes an example of a base model data structure (baseModel) defined, generated, and used according to one or more aspects of the present invention. As an example, the base model data structure 300 includes one or more items, including but not limited to one or more features 302 and at least one optimizer item 304. Each feature 302 includes one or more elements 306. Similarly, the optimizer item 304 includes one or more elements 308. An element is, for example, a characteristic associated with a task or event, such as but not limited to cost. Each element 306, 308 has one or more placeholders 310, 312, respectively, and includes a priority attribute 314, 316, respectively. In addition, each feature 302 and optimizer item 304 includes a layer attribute 318, 320, respectively.

[0053] In addition, reference Figure 4 , describes an example of a constraint model data structure (constraintsModel) defined, generated, and used according to one or more aspects of the present invention. As an example, the constraint model data structure 400 includes one or more constraints 402. The constraints can also be a combination of constraints. Each constraint 402 can be determined by a formula, and each constraint has a layer attribute 404 and a priority attribute 406.

[0054] An example of a constraint formula is provided below:

[0055] Constraint 1: (1000 <= transaction cost. total transaction cost. price <= 3000): Attributes: {Level: 2, Priority: 1}

[0056] In this example, the feature is transaction cost (TranCost), element A is total transaction cost (TotalTranCost, which means total transaction cost), and the placeholder is price. Therefore, the formula is 1000 <= transaction cost. Total transaction cost. Price <= 3000, where, in the feature of transaction cost, the price of total transaction cost is less than or equal to 3000 and greater than or equal to 1000. Many other constraint formulas are possible and based on constraints, tasks and / or events. The formula provided in this article is only an example.

[0057] The basic model data structure 300 and the constraint model data structure 400 are used to store data, such as features and constraints, used in determining an optimal task solution for an event (eg, a complex problem). Figure 5-8 An example of a process for generating a data structure to store data and using that data to determine an optimal solution is described. For example, Figure 5describes the processing associated with obtaining / generating input data including input features for a selected event, generating a data structure such as the base model data structure 300 to store the input data, and saving the input data in the data structure; Figure 6 describes the processing associated with obtaining / generating constraint data for a selected event, generating a data structure such as constraint model data structure 400 to store the constraint data, and saving the constraint data in the data structure; Figure 7 describes the processing associated with providing priorities for constraints included in, for example, the constraint model data structure 400; and Figure 8 Processing associated with adjusting one or more constraints to obtain an optimal task solution is described.

[0058] First reference Figure 5 , one or more processors (e.g., processor 104) are used to obtain / generate input data including input features for selected events, generate a data structure such as basic model data structure 300 to store the input data, and store the input data in the data structure. As an example, an input feature auxiliary generator (e.g., input feature auxiliary generator 150) executed on at least one processor is used to obtain / generate input data, generate a data structure for storing the input data, and store the input data in the data structure. However, in other embodiments, other components or processing engines of one or more processors may be used; input feature auxiliary generator 150 is only an example.

[0059] In one embodiment, the input feature assist generator 150 determines 500 whether the user wishes to import one or more documents to define the event (e.g., a complex problem) for which a task solution is sought, or whether the event is to be defined via one or more question-answering (Q&A) sessions. This can be a query provided to the user, which is answered by the user, or the answer can be automatically determined by whether one or more documents are imported or by other means.

[0060] In one example, if one or more documents are imported, a formatted document used by a user to define events and custom features in a prescribed format is imported 502 into the input feature assistance generator 150. In one or more examples, a default template may be established to define events, such as a routing template for routing within a network, a path planning template for a vehicle, a delivery template for a service, etc. Otherwise, the input feature assistance generator 150 provides one or more interactive question-and-answer sessions 504 for determining the event for which a task solution is sought.

[0061] Based on the interactive question-answer session, the input feature auxiliary generator 150 determines 506 whether the user is looking for a solution to an existing event. If so or based on the imported document, the input feature auxiliary generator 150 automatically generates 510 one or more input features for the selected event. For example, for the path planning event, one or more recommended features, such as one or more costs (e.g., transportation costs, labor costs, material costs) can be automatically generated. In addition, fewer and / or other features can be generated for the path planning event, and / or other existing events can be selected.

[0062] Furthermore, in one embodiment, if the input feature auxiliary generator 150 determines that a custom event is being selected, the input feature auxiliary generator 150 obtains 520 one or more custom features from the user based on a prescribed custom feature format provided by, for example, the input feature auxiliary generator 150. In one embodiment, custom features may also be input for existing events. Other variations are also possible.

[0063] In one embodiment, based on determining the input features or based on automatically generating existing event features, the input feature auxiliary generator 150 provides 530 another question-answering session, referred to herein as attention Q&A, for obtaining an initial tier and / or priority for one or more features. In another embodiment, the initial tier and / or priority are obtained by using default values, or the initial tier and / or priority are automatically generated based on machine learning related to the event. In one example, the input feature auxiliary generator 150 determines 540 whether a feature corresponds to a constraint, for example based on the attention Q&A 530, and automatically generates a tier and / or priority based on this.

[0064] As an example, each feature has a tier, and each element of the feature has a priority. In addition, each constraint has an attribute field that includes tier and priority attributes. Based on, for example, the attention Q&A 530, the input feature auxiliary generator 150 initially suggests tiers for the features (e.g., for features corresponding to the constraint; all features; selected features, etc.). For example, if there is a material handling cost feature and other features during the Q&A, and the customer answers that material handling cost is classified as the first feature of all features, then according to this one example rule, the tier of material handling cost will be tier 1, and the rest will be greater than tier 1. In addition, for each element of the feature, a priority is suggested based on the importance of the element, for example, as determined from the attention Q&A 530. Other possibilities and examples are possible.

[0065] The input feature auxiliary generator 150 generates 550 a data structure (e.g., a basic model data structure 300) to store the input / imported information and, for example, layers / priorities. The input data is stored in the data structure in an organizational structure defined for the data structure, see Figure 3 An example of this data structure is described.

[0066] In one embodiment, constraint data is determined and stored in another data structure, such as constraint model data structure 400, based on input data stored in the data structure. Figure 6 An embodiment of this process is described with reference to Figure 6 , one or more processors (e.g., processor 104) are used to obtain / generate constraint data for selected events, generate a data structure (such as constraint model data structure 400) to store the constraint data, and store the constraint data in the data structure. As an example, a constraint classifier (e.g., constraint classifier 160) executed on at least one processor is used to obtain / generate constraint data for selected events, generate a data structure to store the constraint data, and store the constraint data in the data structure. However, in other embodiments, other components or processing engines of one or more processors may be used; constraint classifier 160 is only an example.

[0067] In one embodiment, the constraint classifier 160 reads 600 a data structure (e.g., the base model data structure 300) generated by the input feature auxiliary generator 150 and, based on the data stored in the data structure for the selected event, generates 610 one or more feature elements and constraints. For example, the constraint classifier includes processing logic by which a default event and a selected intent regarding a task to be performed for the event are converted into elements of a default feature and a recommended constraint for the event.

[0068] Additionally, in one embodiment, a selected optimizer (e.g., the example solution generator 120) is used to generate various solutions to perform the defined tasks for the selected event and determine the optimal solution, and thus, in one example, the optimizer may have its own elements and / or constraints to include, such as an upper bound on the run time, upper and lower bounds on the target range, etc. Thus, in one embodiment, the constraint classifier 160 generates 620 one or more elements and / or constraints for the optimizer. Example optimizers include, but are not limited to, the Optimizer provided by International Business Machines Corporation of Armonk, New York. Decision Optimization; Gurobi provided by Gurobi Optimization, LLC; and IBM provided by International Business Machines Corporation, Armonk, New York Optimizer. Although an example optimizer is shown, other optimizers may be used without departing from aspects of the invention. as well as is a trademark or registered trademark of International Business Machines Corporation in at least one jurisdiction.

[0069] The constraint classifier 160 determines 630 whether additional elements or constraints exist. This is based on, for example, input indicating additional elements or constraints, prompts for additional elements or constraints, etc. If one or more additional custom elements or constraints exist, the constraint classifier 160 obtains 640 custom elements or constraints for one or more selected features. For example, for constraints that are not generated by embedded logic, the user can select the corresponding feature and enter other feature elements or constraints according to a specified format.

[0070] Thereafter, or if no additional elements or constraints are present, the constraint classifier 160 writes the data to a data organization structure, such as the constraint model data structure 400 .

[0071] In one embodiment, based on data stored by constraint classifier 160 in a data structure such as constraint model data structure 400, processing is performed to update information providing, for example, level and / or priority information. Figure 7 An embodiment of this process is described with reference to Figure 7 , one or more processors (e.g., processor 104) are used to update data. As an example, a constraint sorter (e.g., constraint sorter 170) executed on at least one processor is used to update information that provides, for example, level and / or priority information. However, in other embodiments, other components or processing engines of one or more processors may be used; constraint sorter 170 is only one example.

[0072] refer to Figure 7In one embodiment, the constraint sorter 170 reads 700 data stored in a data structure such as the constraint model data structure 400 through the constraint classifier 160, and automatically generates 710 a recommended constraint level. For example, there may be multiple constraint levels, and based on the obtained data (e.g., from the constraint model data structure 400, other data, etc.) or the learned processing, the constraint sorter 170 generates a recommended constraint level (e.g., level 1, level 2, etc.). In other embodiments, there is only one level, and the constraints are at the same level. Other variations are also possible. As an example, a recommended constraint level may be automatically generated based on the layer of features in the constraint and / or the priority of elements in the constraint. For example, the higher the layer of features in the constraint (i.e., the layer with a higher number), the higher the level number of the constraint. Next, the higher the priority number of the element in the constraint, the higher the level number of the constraint. Any selected technique may be used to automatically determine the level based on the layer number and / or priority number. For example, constraints may be assigned a level number that is the same as the layer number; a level number is assigned based on the larger of the layer number and the priority number; any constraint with a level x is assigned a level y; any constraint with an element of priority z is assigned a level w, etc. Many techniques are possible. In one example, the higher the level number, the lower the priority of the constraint (e.g., in one example, level 2 has a lower priority than level 1). Manually adjusting the level of a constraint is also acceptable. Other variations are also possible.

[0073] In addition, in one embodiment, the constraint sorter 170 determines 720 whether custom priorities exist. For example, the constraint sorter 170 determines whether the user has a suggested priority for one or more constraints based on the user's understanding of the event. In one instance, determining whether there are one or more custom priorities to be applied is based on an indication of these custom priorities received by the constraint sorter 170 or based on an indication received from an interactive question-and-answer session with the user. If there are one or more custom priorities, these priorities can be obtained, for example, from the interactive question-and-answer session 730; obtained by input from the user; and / or obtained by other mechanisms.

[0074] Based on obtaining one or more customized priorities or if no customized priorities exist, the constraint sorter 170 updates 740 the priority of the constraint. For example, based on whether there is a specified priority from a user and a recommended priority, the priority of the constraint is updated. In one example, the constraint sorter 170 can update the recommended level of the constraint based on the updated priority. The constraint sorter 170 saves 750 at least the priority information in a data structure such as the constraint model data structure 400.

[0075] In one embodiment, based on data stored in a data structure such as constraint model data structure 400 by constraint sequencer 170, processing is performed to facilitate generating one or more solutions to a specified event. Figure 8 An embodiment of this process is described with reference to Figure 8 , one or more processors (e.g., processor 104) are used to perform processing to facilitate generating one or more solutions. As an example, a dynamic feedback controller (e.g., dynamic feedback controller 180) executed on at least one processor is used to perform processing to facilitate generating one or more solutions. However, in other embodiments, other components or processing engines of one or more processors may be used; dynamic feedback controller 180 is only one example.

[0076] refer to Figure 8 In one embodiment, the dynamic feedback controller 180 reads 800 the data structure information provided by the constraint sorter 170, such as the updated data in the constraint model data structure 400. The dynamic feedback controller 180 sends 810 the current constraints to a solution generator, such as the solution generator 120. An example of a solution generator is a selected optimizer. The selected optimizer receives the data and generates one or more solutions (e.g., task solutions). The dynamic feedback controller 180 obtains one or more task solutions and determines 820 whether a satisfactory result (e.g., an optimal solution) has been generated. The determination is based on defined criteria, such as whether one of the task solutions meets a specific threshold; runs within a specific time period; or uses a specific number of resources; etc. If no result is found, that is, no task solution is considered satisfactory (e.g., optimal) because the task solution does not meet the defined criteria, the dynamic feedback controller 180 automatically adjusts the set of constraints. For example, the dynamic feedback controller 180 automatically releases 830 one or more constraints based on priority. As an example, the constraint with the highest level number relative to other constraints has the lowest priority and is therefore selected to be released; any constraint with a level greater than a predetermined number is selected for release; any constraint with a priority lower than the selected priority is selected for release; and so on. The dynamic feedback controller 180 sends 810 the updated information to the optimizer to generate one or more other task solutions. Processing continues to query 820. However, if a satisfactory task solution is obtained because one of the solutions meets the defined criteria, the dynamic feedback controller 180 outputs 840 an indication of the optimal solution, such as a condition value (e.g., a constraint of the final result), and provides the result of the associated cost function. For example, the user is notified of the solution to be used to perform the task for the selected event.

[0077] An example of a process for obtaining an optimal task solution to be used to perform one or more tasks for a selected event is described above. One or more aspects of the process may use machine learning. For example, machine learning may be used to determine how to prioritize constraints; change one or more priorities; determine layers and / or levels; determine which constraints should be released; and / or perform other tasks of the process. The system is trained to perform the analysis and learn from the input data and / or the choices made.

[0078] Fig. 9 is an example of a machine learning training system 900 that can be used in one or more aspects to perform cognitive analysis of various inputs, including data from one or more data structures such as a basic model data structure 300 and / or a constraint model data structure 400 and / or other data. In one or more embodiments of the present invention, the training data used to train the model includes, for example, data related to one or more events, such as data used to fill data structures, etc. The program code in an embodiment of the present invention performs cognitive analysis to generate one or more training data structures, including algorithms used by the program code to predict the state of a given event. Machine learning (ML) solves problems that cannot be solved using digital means alone. In this ML-based example, the program code extracts various attributes from ML training data 910 (e.g., historical data collected from various data sources related to the event), which can reside in one or more databases 920 including event or task-related data and general data. Features 915 are used to develop a predictor function h(x) (also called a hypothesis), which the program code uses as a machine learning model 930.

[0079] In identifying various event states, features, constraints, and / or behaviors that indicate states in the ML training data 910, in embodiments of the present invention, the program code may utilize various techniques to identify attributes. Embodiments of the present invention utilize varying techniques to select attributes (elements, patterns, features, constraints, etc.), including but not limited to diffusion mapping, principal component analysis, recursive feature elimination (a brute force method for selecting attributes), and / or random forests to select attributes associated with various events. The program code may utilize a machine learning algorithm 940 to train a machine learning model 930 (e.g., an algorithm utilized by the program code), including providing weights for conclusions so that the program code can train a predictor function comprising the machine learning model 930. The conclusions may be evaluated by a quality metric 950. By selecting a different set of ML training data 910, the program code trains the machine learning model 930 to identify various attributes (e.g., features, patterns, constraints) associated with various states of events and weight these attributes.

[0080] The model generated by the program code is self-learning because the program code updates the model based on active event feedback and based on feedback received from data related to the event. For example, when the program code determines that there is a constraint that was not previously predicted by the model, the program code utilizes a learning agent to update the model to reflect the state of the event in order to improve the prediction in the future. In addition, when the program code determines that the prediction is incorrect based on receiving user feedback through an interface or based on monitoring related to the event, the program code updates the model to reflect the inaccuracy of the prediction for a given time period. The program code including the learning agent cognitively analyzes data that deviates from the modeled expectations and adjusts the model to increase the accuracy of the model, thereby driving the model forward.

[0081] In one or more embodiments, program code executed on one or more processors utilizes existing cognitive analytics tools or agents to tune models based on data obtained from one or more data sources. One or more embodiments utilize, for example, IBM The system acts as a cognitive agent. In one or more embodiments, the program code interfaces with the IBM Watson application programming interface (API) to perform cognitive analysis of the acquired data. Specifically, in one or more embodiments, a specific API of the IBM Watson API includes a cognitive agent (e.g., a learning agent) that includes one or more programs, including but not limited to a natural language classifier, retrieval and ranking (i.e., through the IBM Watson Developer Cloud TM In one embodiment, one or more programs utilize one or more of a natural language classifier, a retrieval and ranking API, and a trade-off analysis API to analyze data obtained by program code across various sources. In the case where the collected data includes audio that can be utilized by the program code, the IBM Watson application programming interface (API) can also provide audio-related API services, including but not limited to natural language processing, text-to-speech capabilities, and / or translation. IBM and IBM Watson Developer Cloud TM is a registered trademark or trademark of International Business Machines Corporation in at least one jurisdiction.

[0082] In one or more embodiments, the program code uses a neural network to analyze event-related data to generate a model for predicting the state of a given event at a given time. A neural network is a biologically inspired programming paradigm that enables computers to learn and solve artificial intelligence problems. This learning is called deep learning, which is a subset of machine learning, an aspect of artificial intelligence, and includes a set of techniques for learning in a neural network. A neural network including a modular neural network can perform pattern recognition with speed, accuracy and efficiency when the data set is multiple and scalable (including across distributed networks, including but not limited to cloud computing systems). Modern neural networks are nonlinear statistical data modeling tools. They are typically used to model complex relationships between inputs and outputs or to identify patterns in data (i.e., neural networks are nonlinear statistical data modeling or decision tools). Typically, program codes using neural networks can model complex relationships between inputs and outputs and identify patterns in data. Due to the speed and efficiency of neural networks, especially when parsing multiple complex data sets, neural networks and deep learning provide solutions to many problems in multi-source processing, and the program code in one or more embodiments implements these solutions when obtaining data and generating a model for predicting the state of a given event.

[0083] One or more aspects including identifying constraints or features for a particular event and / or identifying constraints that can be released to determine the optimal solution for the event can utilize artificial intelligence and specifically machine learning in the decision-making process. The model is trained to be able to perform specific tasks, such as but not limited to identifying features and / or constraints of a particular event and / or constraints to be released. The model is then used in one or more aspects. For example, it is used by, for example, a dynamic feedback controller 180 to inform the solution generator which constraints are to be released (or adjusted) and / or recommend constraints and / or features to be included in the basic model data structure 300 and / or the constraint model data structure 400. Other aspects can also be performed by artificial intelligence (e.g., machine learning) to, for example, recommend the order of constraints in the optimization problem.

[0084] As described herein, in one or more aspects, a process (e.g., a common process) is defined that provides an optimal solution for a selected event, such as a real-world event. An example event in which one or more aspects of the invention are used is described below. In this example, the selected event is a vehicle traveling from one destination to another, and the defined task is to route the vehicle. However, as noted herein, this is only an example. The process can be used to determine an optimal task solution for many events within the scope of use of the optimizer.

[0085] In a specific example, a series of pre-formulated interactive questions and answers are provided to confirm the user's default event, a series of default features are generated according to the default event selected by the user, and a basic model data structure (e.g., basic model data structure 300) generated by an input generator such as input feature auxiliary generator 150 is obtained. Example questions and answers include:

[0086] Which of the following events would you expect to use?

[0087] [1] Driving vehicle

[0088] [2] Fast shipping

[0089] [3] Custom events ....

[0091] Based on the selected [1] moving vehicle event, in one example, the following default features have been automatically generated:

[0092] – Shipping costs

[0093] – Labor costs

[0094] – Largest transport station

[0095] –....

[0096] Does it have other custom features? (yes / no) Answer: yes

[0097] Please enter custom features in the following order:

[0098] – Customized feature 1 (Answer: Material handling cost)

[0099] – Custom Features 2

[0100] – Removed feature 3 (Answer: Maximum transmission site)

[0101] –....

[0102] The currently indicated features include:

[0103] – Shipping costs

[0104] – Labor costs

[0105] – Material handling costs

[0106] –....

[0107] Please sort the above features according to the priority indicated by the properties below (unsorted features default to the lowest priority). In an example, the format is as follows:

[0108] (1) Feature 1 (Answer: Material handling cost is the highest priority)

[0109] (2) Feature 2 ....

[0111] Currently, all features and attributes are classified as follows:

[0112] (1) Material handling costs

[0113] (2) Transportation costs

[0114] (3) Labor costs ....

[0116] According to the interactive Q&A, the following basic model data structure (for example, basic model data structure 300) may be generated:

[0117] Basic model:

[0118] Material handling cost:{}:Attributes:{Layer:1}

[0119] Shipping cost:{}:Attributes:{Tier:2}

[0120] Labor cost:{}:Attribute:[Layer:2}

[0121] Optimizer:{}:Properties:{Layer:1} ....

[0123] }

[0124] If the user chooses to use a custom format document, after the user imports the document, the system (eg, input feature auxiliary generator 150 ) automatically identifies events, custom features, etc., and generates a default data structure.

[0125] After the input feature auxiliary generator 150 generates a data structure (e.g., a basic model data structure 300), the constraint classifier 160 parses the basic model data structure 300, updates a series of default elements in the basic model according to the default features of the default event and the user's attention, and generates corresponding constraint model data structures (e.g., constraint model data structure 400) feature constraints and optimizer constraints. The new basic model and constraint model data structures are, for example:

[0126] Basic model:

[0127] Material handling cost:{}:attributes:{layer:1};

[0128] ShippingCost:{}:Attributes:{Tier:2};

[0129] Labor cost:{}:attribute:{layer:2};

[0130] optimizer:{}:properties:{layer:1}; ....

[0132] }

[0133] ↓

[0134] Basic model:

[0135] Material handling cost:{}:Attributes:{Layer:1}

[0136] Shipping cost: {Total shipping cost (price): Attributes: {Priority: 1}}: Attributes: {Tier: 2}

[0137] Labor cost: {Advanced labor cost (price, HC): Attributes: {Priority: 1}, Consulting labor cost (price, HC): Attributes: {Priority: 2}, Primary labor cost (price, HC): Attributes: {Priority: 3}}: Attributes: {Tier: 2}

[0138] optimizer:{compute time(time):properties:{priority:1}}:properties:{level:1} ....

[0140] }

[0141] Constraint Model:

[0142] Constraint 1: (1000 <= transaction cost. total transaction cost. price <= 3000): Attributes: {Level: 2, Priority: 1)}

[0143] Constraint 2: (Labor Cost. Senior Labor Cost. HC) + Labor. Cost. Consulting Labor Cost. HC + Labor. Cost. Primary Labor Cost. HC > 0): Attributes: {Level: 2, Priority: 1}

[0144] Constraint 3: (100 <= optimizer.computationTime.time <= 300): Attributes: {Level: 1, Priority: 1}

[0145] Constraint 4: (5000 < Material Handling Cost: Total Material Handling Cost. Price <= 1000): Attributes: {Level: 1, Priority: 1} ....

[0147] }

[0148] After the constraint classifier 160 generates a default data structure (e.g., constraint model data structure 400), it confirms with the user through, for example, an interactive Q&A. At this point, the user can continue to add custom feature elements or constraints. After the process is completed, the basic model data structure and constraint model data structure of the final constraint classifier 160 are generated.

[0149] Based on the existing features, the system (e.g., constraint classifier 160) automatically generates the following feature elements:

[0150] Material handling costs:

[0151] Transaction Cost: Total transaction cost. Price

[0152] Labor cost: Senior labor cost.price, Senior labor cost.HC, Consulting labor cost.price, Consulting labor cost.HC, Primary labor cost.price, Primary labor cost.HC

[0153] Optimizer: Compute time. Time ....

[0155] Do you have any other custom features? (yes / no)

[0156] Assuming the answer is yes:

[0157] Please enter your custom feature element in the following format:

[0158] -Feature Name: Element Name.Placeholder Name

[0159] -Replace feature name: element name.placeholder name == value

[0160] -Delete feature name: element name.placeholder name

[0161] …

[0162] For example, the following features were added:

[0163] Material handling cost: Total material handling cost. Price

[0164] -Labor cost: Advanced labor cost. Price == 50

[0165] -Labor cost: Consult labor cost. Price==30

[0166] -Labor cost: primary labor cost. Price==10

[0167] In one example, the following feature elements currently exist:

[0168] Material handling cost: Total material handling cost. Price

[0169] Transaction Cost: Total transaction cost. Price

[0170] Labor cost: Senior labor cost.Price==50, Senior labor cost.HC, Consulting labor cost.Price==30, Consulting labor cost.HC, Primary labor cost.Price==10, Primary labor cost.HC

[0171] Optimizer: Compute time. Time

[0172] …

[0173] After the constraint classifier 160 generates the default data structure, it confirms with the user through an interactive Q&A. At this point, the user can continue to add custom feature elements or constraints. After the process is completed, the basic model and constraint model data structures are generated.

[0174] Based on the existing features, the system (e.g., constraint classifier 160) automatically generates the following constraints:

[0175] Constraint 1:1000 <= Transaction Cost.Total Transaction Cost.Price <= 3000

[0176] Constraint 2: Labor cost. Senior labor cost. HC + labor cost. Consulting labor cost. HC + labor cost. Primary labor cost. HC > 0

[0177] Constraint 3: 100 <= optimizer.computationtime.time <= 300

[0178] Do you have any other custom constraints? (yes / no)

[0179] Assuming the answer is yes:

[0180] As an example, enter your custom constraint in the following format:

[0181] -Feature Name.Element Name.Placeholder>=

[0182] Feature Name.Element Name.Placeholder

[0183] -Minimum value <= Feature name.Element name.Placeholder <= Maximum value

[0184] -Delete constraint 1

[0185] - Update constraint 1: minimum value <= feature name.element name.placeholder <= maximum value

[0186] therefore:

[0187] -500<Material Processing Cost:Total Material Processing Cost.Price<=1000

[0188] -Labor cost. Senior labor cost. Price * Labor cost. Senior labor cost. HC + Labor cost. Consulting labor cost. Price * Labor cost. Consulting labor cost. HC + Labor cost. Primary labor cost. Price * Labor cost. Primary labor cost. HC < 500

[0189] - Update constraint 1: 3000 <= Transaction Cost.Total Transaction Cost.Price <= 5000

[0190] Based on the interactive Q&A, the constraint classifier 160 updates the base model and constraint model data structures.

[0191] After the constraint classifier 160 generates the data structure, the constraint sorter 170 parses the basic model and constraint model data structures and sorts the priorities of the constraints according to a built-in algorithm (e.g., sorting techniques such as selection sort, quick sort, etc.) to obtain new basic model and constraint model data structures.

[0192] Basic model:

[0193] Material handling cost: {Total material handling cost (price): Attributes: {Priority: 1}}: Attributes: {Tier: 1}

[0194] Transaction cost: {Total transaction cost (price): Attributes: {Priority: 1}}: Attributes: {Tier: 2}

[0195] Labor cost: {Advanced labor cost (price == 50, HC): Attribute: {Priority: 1}, Consulting labor cost (price == 30, HC): Attribute: {Priority: 2}, Primary labor cost (price == 10, HC): Attribute: {Priority: 3}}: Attribute: {Layer: 2}

[0196] optimizer:{compute time(time):properties:{priority:1}}:properties:{level:1}

[0197] …

[0198] }

[0199] Constraint Model:

[0200] Constraint 1: (500 <= transaction cost. total transaction cost. price <= 1000): Attributes: {Level: 2, Priority: 1}

[0201] Constraint 2: (Labor cost. Senior labor cost. HC + labor cost. Consulting labor cost. HC + labor cost. Primary labor cost. HC > 0): Attributes: {Level: 2, Priority: 1}

[0202] Constraint 3: (100 <= optimizer.computationTime.time <= 300): Attributes: {Level: 1, Priority: 1}

[0203] Constraint 4: (500 < Material Handling Cost: Total Material Handling Cost. Price <= 1000): Attributes: {Level: 1, Priority: 1}

[0204] Constraint 5: (Labor cost. Senior labor cost. Price * Labor cost. Senior labor cost. HC + Labor cost. Consulting labor cost. Price * Labor cost. Consulting labor cost. HC + Labor cost. Primary labor cost. Price * Labor cost. Primary labor cost. HC < 500): Attributes: {Level: 2, Priority: 1}

[0205] …

[0206] }

[0207] After the constraint sequencer 170 generates the default data structure, it confirms with the user through an interactive Q&A. At this point, the user can prioritize the constraints. After the process is complete, the basic model and constraint model data structure of the final constraint sequencer will be generated.

[0208] In one example, the current constraints and priorities are as follows:

[0209] Constraint 1: (500 <= transaction cost. total transaction cost. price <= 1000): Attributes: {Level: 2, Priority: 1}

[0210] Constraint 2: (Labor cost. Senior labor cost. HC + labor cost. Consulting labor cost. HC + labor cost. Primary labor cost. HC > 0): Attributes: {Level: 2, Priority: 1}

[0211] Constraint 3: (100 <= optimizer.computationTime.time <= 300): Attributes: {Level: 1, Priority: 1}

[0212] Constraint 4: (500 < Material Handling Cost: Total Material Handling Cost. Price <= 1000): Attributes: {Level: 1, Priority: 1}

[0213] Constraint 5: (Labor cost. Senior labor cost. Price * Labor cost. Senior labor cost. HC + Labor cost. Consulting labor cost. Price * Labor cost. Consulting labor cost. HC + Labor cost. Primary labor cost. Price * Labor cost. Primary labor cost. HC < 500): Attributes: {Level: 2, Priority: 1}

[0214] …

[0215] Do you want to adjust the priority of the constraints? (yes / no)

[0216] Assuming the answer is yes:

[0217] Please adjust the priority of the constraint according to the following format (if there is no condition, the priority will not be adjusted)

[0218] -Constraint 1: Attributes: {Layer: XX, Priority: YY}

[0219] In one example, the priorities are adjusted as follows:

[0220] -Constraint 1: Attributes: {Level: 3, Priority: 1}

[0221] -Constraint 5: Attributes: {Level: 2, Priority: 2}

[0222] According to the interactive Q&A, in one example, the constraint sequencer 170 updates the base model and constraint model data structures as follows:

[0223] Basic model:

[0224] optimizer:{compute time(time):properties:{priority:1}}:properties:{level:1}

[0225] Material handling cost: {Total material handling cost (price): Attributes: {Priority: 1}}: Attributes: {Tier: 1}

[0226] Shipping cost: {Total transaction cost (price): Attributes: {Priority: 1}}: Attributes: {Tier: 2}

[0227] Labor cost: {Advanced labor cost (price == 50, HC): Attribute: {Priority: 1}, Consulting labor cost (price == 30, HC): Attribute: {Priority: 2}, Primary labor cost (price == 10, HC): Attribute: {Priority: 3}}: Attribute: {Layer: 2}

[0228] …

[0229] }

[0230] Constraint Model:

[0231] Constraint 3: (100 <= optimizer.computationTime.time <= 300): Attributes: {Level: 1, Priority: 1}

[0232] Constraint 4: (500 < Material Handling Cost: Total Material Handling Cost. Price <= 1000): Attributes: {Level: 1, Priority: 1}

[0233] Constraint 2: (Labor cost. Senior labor cost. HC + labor cost. Consulting labor cost. HC + labor cost. Primary labor cost. HC > 0): Attributes: {Level: 2, Priority: 1}

[0234] Constraint 5: (Labor cost. Senior labor cost. Price * Labor cost. Senior labor cost. HC + Labor cost. Consulting labor cost. Price * Labor cost. Consulting labor cost. HC + Labor cost. Primary labor cost. Price * Labor cost. Primary labor cost. HC < 500): Attributes: {Level: 2, Priority: 2}

[0235] Constraint 1: (500 <= transaction cost. total transaction cost. price <= 1000): Attributes: {Level: 3, Priority: 1}

[0236] …

[0237] }

[0238] After the constraint sequencer 170 generates the final basic model and constraint model data structure, the dynamic feedback controller 180 reads the constraint model data structure and starts the model building and optimization solution process. The constraints are sent to the model for the task solution. If the optimal task solution cannot be obtained, the low priority constraints are removed in turn (for example, automatically by, for example, the dynamic feedback controller 180 without user intervention) according to the priority of the constraints, and the solution is solved again until the optimal task solution is finally obtained, the condition value (for example, the constraint of the final result) is output, and the result of the cost function is given.

[0239] An example of the optimization solution process is as follows:

[0240] Constraint 3: (100 <= optimizer.computationTime.time <= 300): Attributes: {Level: 1, Priority: 1}

[0241] Constraint 4: (500 < Material Handling Cost: Total Material Handling Cost. Price <= 1000): Attributes: {Level: 1, Priority: 1}

[0242] Constraint 2: (Labor cost. Senior labor cost. HC + labor cost. Consulting labor cost. HC + labor cost. Primary labor cost. HC > 0): Attributes: {Level: 2, Priority: 1}

[0243] Constraint 5: (Labor cost. Senior labor cost. Price * Labor cost. Senior labor cost. HC + Labor cost. Consulting labor cost. Price * Labor cost. Consulting labor cost. HC + Labor cost. Primary labor cost. Price * Labor cost. Primary labor cost. HC < 500): Attributes: {Level: 2, Priority: 2}

[0244] Constraint 1: (500 <= transaction cost. total transaction cost. price <= 1000): Attributes: {Level: 3, Priority: 1}

[0245] This provides solutions to the following tasks:

[0246] {

[0247] optimizer.calculationtime.time == 277;

[0248] Material handling cost: total material handling cost. price == 699;

[0249] Labor cost.Advanced labor cost.HC==1;

[0250] Labor cost. Consulting labor cost. HC==2;

[0251] Labor cost.Primary labor cost.HC==3;

[0252] Transaction cost.Total transaction cost.Price==876

[0253] …

[0254] }

[0255] For example, if acceptable results cannot be obtained within the optimizer's time window, then:

[0256] Constraint 3: (100 <= optimizer.computationTime.time <= 300): Attributes: {Level: 1, Priority: 1}

[0257] Constraint 4: (500 < Material Handling Cost: Total Material Handling Cost. Price <= 1000): Attributes: {Level: 1, Priority: 1}

[0258] Constraint 2: (Labor cost. Senior labor cost. HC + labor cost. Consulting labor cost. HC + labor cost. Primary labor cost. HC > 0): Attributes: {Level: 2, Priority: 1}

[0259] Constraint 5: (Labor cost. Senior labor cost. Price * Labor cost. Senior labor cost. HC + Labor cost. Consulting labor cost. Price * Labor cost. Consulting labor cost. HC + Labor cost. Primary labor cost. Price * Labor cost. Primary labor cost. HC < 500): Attributes: {Level: 2, Priority: 2}

[0260] As you can see above, in one example, constraint 1 is automatically removed and the following task solution is provided:

[0261] {

[0262] optimizer.calculationtime.time == 257;

[0263] Material handling cost: total material handling cost. price == 899;

[0264] Labor cost.Advanced labor cost.HC==2;

[0265] Labor cost. Consulting labor cost. HC==4;

[0266] Labor cost.Primary labor cost.HC==9;

[0267] Transaction cost.Total transaction cost.Price==1876

[0268] …

[0269] }

[0270] In one example, if acceptable results cannot be obtained within the optimizer's time period, then:

[0271] Constraint 3: (100 <= optimizer.computationTime.time <= 300): Attributes: {Level: 1, Priority: 1}

[0272] Constraint 4: (500 < Material Handling Cost: Total Material Handling Cost. Price <= 1000): Attributes: {Level: 1, Priority: 1}

[0273] Constraint 2: (Labor cost. Senior labor cost. HC + labor cost. Consulting labor cost. HC + labor cost. Primary labor cost. HC > 0): Attributes: {Level: 2, Priority: 1}

[0274] In this example, constraint 5 is also automatically removed and the following task solution is provided in one example:

[0275] {

[0276] optimizer.calculationtime.time == 227;

[0277] Material handling cost: total material handling cost. price == 937;

[0278] Labor cost.Advanced labor cost.HC==5;

[0279] Labor cost. Consulting labor cost. HC==11;

[0280] Labor cost.Primary labor cost.HC==21;

[0281] Transaction cost.Total transaction cost.Price==2876

[0282] …

[0283] }

[0284] The above solution is considered the optimal task solution because it meets the defined criteria consistent with the remaining criteria and can be obtained within the selected time frame. Variations are possible.

[0285] As described above, a process (e.g., a common process that can be used for many scenarios or events in which an optimizer is employed) is provided that determines an optimal solution for a selected event indicated by defined criteria to perform one or more tasks for the selected event. In one or more aspects, the process provides dynamic analysis and release of constraints, thereby reducing manual intervention and quickly determining an optimal solution. As an example, the process can be included as a plug-in to an optimizer and / or a tool used by an optimizer.

[0286] One or more aspects of the present invention relate to computer technology and facilitate processing within a computer, thereby improving computer performance. By having a process of storing data in a specific format, retrieving the data, and using it to obtain a solution to a task, resources and processing time are saved and performance is improved. In addition, by having a process of automatically adjusting constraints and regenerating solutions, processing efficiency is provided, thereby saving system resources and improving performance. This improves processing within a processor, computer system, and / or computing environment.

[0287] refer to Figures 10A-10C Further details of one embodiment of facilitating processing within a computing environment related to one or more aspects of the present invention are described.

[0288] refer to Fig. 10A In one embodiment, a controller executing on one or more processors of a computing environment obtains 1000 data stored in one or more data structures, the one or more data structures being generated based on defined tasks to be performed for a selected event. In one example, the data 1002 includes a set of constraints for the defined tasks to be performed for the selected event. The data is provided 1004 to a solution generator to be executed on at least one processor. The solution generator is to be used 1006 to obtain a task solution that specifies how to perform the defined tasks for the selected event. The task solution is to satisfy 1008 one or more defined criteria.

[0289] In addition, in one example, one or more task solutions generated by a solution generator for a defined task are obtained 1010, wherein the one or more task solutions are generated using the provided data. A determination is made 1012 as to whether the one or more task solutions include a task solution that satisfies one or more defined criteria. Based on a determination that the one or more task solutions do not include a task solution that satisfies one or more defined criteria, the set of constraints is automatically adjusted 1014 to provide an adjusted set of constraints. The adjusted set of constraints is to be automatically provided 1016 to the solution generator for obtaining a task solution that specifies how to perform the defined task.

[0290] In one example, a task solution that specifies how to perform a defined task for a selected event is obtained 1018 , and at least an indication of the task solution that performs the defined task for the selected event is output 1020 .

[0291] By storing data in a selected form and retrieving and using the data, the use of computer resources is reduced and system performance is improved. In addition, automatic adjustments enable the generation of task solutions that could not otherwise be generated. The use of computer resources is reduced and performance is improved. Reducing the use of computer resources and / or improving system performance provides benefits for various technologies that use data stored in a selected form.

[0292] In one embodiment, reference Fig. 10B The providing, obtaining, determining, and automatically adjusting are iteratively performed 1030 one or more times to obtain a task solution that satisfies one or more defined criteria. In one example, the data 1032 includes an adjusted set of constraints.

[0293] As an example, a data structure in the one or more data structures includes one or more features and one or more indicated priorities for the one or more features 1040, and in one example, at least a portion of the one or more features are specific to a selected event 1042. The one or more features include, for example, at least one default feature, at least one customized feature, and at least one feature 1044 that is specific to the solution generator.

[0294] By storing data in a selected form, the use of computer resources is reduced and system performance is improved.

[0295] In one example, another of the one or more data structures includes a constraint data structure including a set of constraints for the selected event 1050. The set of constraints includes one or more constraints for at least one of the one or more features and one or more corresponding priorities 1052 for the one or more constraints.

[0296] By storing data in a selected form, the use of computer resources is reduced and system performance is improved.

[0297] As an example, automatically adjusting the set of constraints includes automatically removing 1060 one of the constraints from the set of constraints. Automatically removing the one of the constraints from the set of constraints is based on a priority of the constraints in the set of constraints 1062. As another example, automatically adjusting the set of constraints includes automatically adjusting 1064 one or more corresponding priorities of one or more constraints in the set of constraints.

[0298] Automatic tuning increases the efficiency of determining task solutions and improves computer processing by, for example, reducing the use of computer resources and increasing system performance.

[0299] In one embodiment, reference Fig. 10C , a generator executed on at least one of the one or more processors generates 1070 one or more data structures based on information obtained by the generator using one or more templates created for the defined tasks for the selected event.

[0300] As an example, the defined tasks include routing, and the selected events include events where routing is performed 1072. Other example defined tasks and / or selected events are possible.

[0301] Again, other aspects, variations and / or embodiments are possible.

[0302] Various aspects of the present invention are described by explanatory text, flow charts, block diagrams of computer systems, and / or block diagrams of machine logic, included in computer program product (CPP) embodiments. For any flow chart, depending on the technology involved, the operations may be performed in an order different from the order shown in a given flow chart. For example, two operations shown in consecutive flow chart blocks may be performed in reverse order, as a single integrated step, simultaneously, or in a manner that at least partially overlaps in time, also depending on the technology involved.

[0303] Computer program product embodiments ("CPP embodiments" or "CPP") are terms used in this disclosure to describe any collection of one or more storage media (also referred to as "media") that are collectively included in a collection of one or more storage devices that collectively include machine-readable code corresponding to instructions and / or data for performing the computer operations specified in a given CPP claim. A "storage device" is any tangible device that can retain and store instructions for use by a computer processor. A computer-readable storage medium may be an electronic storage medium, a magnetic storage medium, an optical storage medium, an electromagnetic storage medium, a semiconductor storage medium, a mechanical storage medium, or any suitable combination of the above. Some known types of storage devices that include these media include: floppy disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or Flash memory), static random access memory (SRAM), compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanical encoding device (such as a punch card or pits / islands formed in a major surface of a disk), or any suitable combination of the above. As the term is used in the present invention, computer readable storage media is not to be interpreted as storage in the form of transient signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides, light pulses through optical cables, electrical signals transmitted through wires and / or other transmission media. As will be appreciated by those skilled in the art, data is typically moved at certain occasional points in time during normal operation of the storage device, such as during access, defragmentation or garbage collection, but this does not make the storage device temporary because the data is not temporary when stored.

[0304] refer to Fig.11, the computing environment 1100 includes an example of an environment for executing at least some of the computer codes involved in performing the method of the present invention (e.g., process and dynamic constraint adjustment code 1200). In addition to the block 1200, the computing environment 1100 also includes, for example, a computer 1101, a wide area network (WAN) 1102, an end-user device (EUD) 1103, a remote server 1104, a public cloud 1105, and a private cloud 1106. In this embodiment, the computer 1101 includes a processor group 1110 (including a processing circuit 1120 and a cache 1121), a communication structure 1111, a volatile memory 1112, a persistent storage device 1113 (including an operating system 1122 and the block 1200, as described above), a peripheral device group 1114 (including a user interface (UI) device group 1123, a storage device 1124, and an Internet of Things (IoT) sensor group 1125), and a network module 1115. The remote server 1104 includes a remote database 1130. The public cloud 1105 includes a gateway 1140 , a cloud orchestration module 1141 , a host physical machine group 1142 , a virtual machine group 1143 , and a container group 1144 .

[0305] Computer 1101 may take the form of a desktop computer, a laptop computer, a tablet computer, a smart phone, a smart watch or other wearable computer, a mainframe computer, a quantum computer, or any other form of computer or mobile device now known or developed in the future that is capable of running programs, accessing a network, or querying a database, such as remote database 1130. As is understood in the art of computer technology, execution of computer-implemented methods may be distributed among multiple computers and / or among multiple locations. On the other hand, in the presentation of this computing environment 1100, the detailed discussion focuses on a single computer, particularly computer 1101, to keep the presentation as simple as possible. Computer 1101 may be located in the cloud, although Fig.11 It is not shown as being in the cloud. On the other hand, computer 1101 need not be in the cloud unless it can be positively indicated to any extent.

[0306] Processor group 1110 includes one or more computer processors of any type known now or to be developed in the future. Processing circuit 1120 can be distributed over multiple packages, such as multiple coordinated integrated circuit chips. Processing circuit 1120 can implement multiple processor threads and / or multiple processor cores. Cache 1121 is a memory located in the processor chip package, typically used for data or code that threads or cores running on processor group 1110 should be able to access quickly. Cache memory is typically organized into multiple levels based on relative proximity to the processing circuit. Alternatively, some or all of the caches of the processor group may be located "off-chip". In some computing environments, processor group 1110 may be designed to use quantum bits and perform quantum computing.

[0307] Computer readable program instructions are typically loaded onto the computer 1101 to cause the processor group 1110 of the computer 1101 to perform a series of operating steps to implement a computer-implemented method, such that the instructions so executed will instantiate the method specified in the flowchart and / or illustrative description of the computer-implemented method contained in this document (collectively referred to as the "method of the present invention"). These computer readable program instructions are stored in various types of computer readable storage media, such as cache 1121 and other storage media discussed below. The program instructions and related data are accessed by the processor group 1110 to control and directly execute the method of the present invention. In the computing environment 1100, at least some of the instructions for performing the method of the present invention may be stored in a block 1200 in a persistent storage device 1113.

[0308] The communications fabric 1111 is the signaling pathways that allow the various components of the computer 1101 to communicate with each other. Typically, the fabric is comprised of switches and conductive pathways, such as those that make up a bus, a bridge, physical input / output ports, etc. Other types of signal communication pathways may be used, such as fiber optic communication pathways and / or wireless communication pathways.

[0309] The volatile memory 1112 is any type of volatile memory currently known or developed in the future. Examples include dynamic type random access memory (RAM) or static type RAM. Typically, volatile memory is characterized by random access, but this is not required unless explicitly indicated. In the computer 1101, the volatile memory 1112 is located in a single package and is internal to the computer 1101, but, alternatively or additionally, the volatile memory can be distributed over multiple packages and / or located externally relative to the computer 1101.

[0310] Persistent storage 1113 is any form of non-volatile storage for a computer known now or to be developed in the future. The non-volatility of the storage means that the stored data will be maintained regardless of whether power is supplied to the computer 1101 and / or whether power is supplied directly to the persistent storage 1113. Persistent storage 1113 may be a read-only memory (ROM), but typically at least a portion of the persistent storage allows writing of data, deletion of data, and rewriting of data. Some common forms of persistent storage include magnetic disks and solid-state storage devices. Operating system 1122 may take a variety of forms, such as various known proprietary operating systems or open source portable operating system interface type operating systems using a kernel. The code included in block 1200 typically includes at least some computer code involved in executing the method of the present invention.

[0311] The peripheral device group 1114 includes a peripheral device group of the computer 1101. The data communication connection between the peripheral device and other components of the computer 1101 can be implemented in various ways, such as a Bluetooth connection, a near field communication (NFC) connection, a cable connection (such as a universal serial bus (USB) type cable), a plug-in connection (such as a secure digital (SD) card), a connection through a local area communication network, or even a connection through a wide area network such as the Internet. In various embodiments, the UI device group 1123 may include components such as a display screen, a speaker, a microphone, a wearable device (such as goggles and smart watches), a keyboard, a mouse, a printer, a touchpad, a game controller, and a tactile device. The storage device 1124 is an external storage device (such as an external hard drive) or a pluggable storage device (such as an SD card). The storage device 1124 can be persistent and / or volatile. In some embodiments, the storage device 1124 can take the form of a quantum computing storage device for storing data in the form of quantum bits. In embodiments where computer 1101 is required to have a large amount of storage (e.g., computer 1101 locally stores and manages a large database), the storage may be provided by a peripheral storage device designed to store very large amounts of data, such as a storage area network (SAN) shared by multiple geographically dispersed computers. IoT sensor group 1125 includes sensors that can be used in IoT applications. For example, one sensor may be a thermometer and another sensor may be a motion detector.

[0312] The network module 1115 is a collection of computer software, hardware, and firmware that allows the computer 1101 to communicate with other computers via the WAN 1102. The network module 1115 may include hardware, such as a modem or a Wi-Fi signal transceiver, software for packetizing and / or depacketizing data for transmission over a communication network, and / or a web browser software for transmitting data over the Internet. In some embodiments, the network control function and the network forwarding function of the network module 1115 are executed on the same physical hardware device. In other embodiments (e.g., embodiments utilizing software defined networks (SDN)), the control function and forwarding function of the network module 1115 are executed on physically separated devices, so that the control function manages multiple different network hardware devices. Computer-readable program instructions for executing the method of the present invention can typically be downloaded to the computer 1101 from an external computer or an external storage device via a network adapter card or a network interface included in the network module 1115.

[0313] WAN 1102 is any wide area network (e.g., the Internet) capable of transmitting computer data over non-local distances by any technology for transmitting computer data now known or developed in the future. In some embodiments, WAN 1102 may be replaced and / or supplemented by a local area network (LAN) designed to transmit data between devices located in a local area such as a Wi-Fi network. WANs and / or LANs typically include computer hardware such as copper transmission cables, optical transmission fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and edge servers.

[0314] End-user device (EUD) 1103 is any computer system used and controlled by an end-user (e.g., a customer of an enterprise operating computer 1101), and may take any of the forms discussed above in connection with computer 1101. EUD 1103 typically receives helpful and useful data from the operation of computer 1101. For example, in the hypothetical case where computer 1101 is designed to provide recommendations to an end-user, the recommendations would typically be transmitted from network module 1115 of computer 1101 to EUD 1103 via WAN 1102. In this way, EUD 1103 may display or otherwise present the recommendations to the end-user. In some embodiments, EUD 1103 may be a client device, such as a thin client, a heavy client, a mainframe, a desktop, etc.

[0315] Remote server 1104 is any computer system that provides at least some data and / or functionality to computer 1101. Remote server 1104 may be controlled and used by the same entity that operates computer 1101. Remote server 1104 represents a machine that collects and stores useful data for use by other computers, such as computer 1101. For example, in the hypothetical case where computer 1101 is designed and programmed to provide recommendations based on historical data, the historical data may be provided to computer 1101 from remote database 1130 of remote server 1104.

[0316] The public cloud 1105 is any computer system that can be used by multiple entities, which provides on-demand availability of computer system resources and / or other computer capabilities (particularly data storage (cloud storage) and computing capabilities) without the need for direct active management by users. Cloud computing generally uses resource sharing to achieve consistency and economies of scale. The direct active management of the public cloud 1105 computing resources is performed by the computer hardware and / or software of the cloud orchestration module 1141. The computing resources provided by the public cloud 1105 are generally implemented by virtual computing environments running on various computers that constitute the host physical machine group 1142, which are various physical computers in and / or available for the public cloud 1105. Virtual computing environments (VCEs) are generally in the form of virtual machines from the virtual machine group 1143 and / or containers from the container group 1144. It will be appreciated that these VCEs can be stored as images and can be transferred between various physical machine hosts as images or after the VCE is instantiated. The cloud orchestration module 1141 manages the transfer and storage of images, deploys new instances of VCE, and manages active instances of VCE deployments. The gateway 1140 is a collection of computer software, hardware, and firmware that allows the public cloud 1105 to communicate over the WAN 1102 .

[0317] Some further explanation of virtualized computing environments (VCEs) will now be provided. A VCE can be stored as an "image." A new active instance of a VCE can be instantiated from an image. Two familiar types of VCEs are virtual machines and containers. Containers are VCEs that use operating system level virtualization. This refers to an operating system feature where the kernel allows multiple isolated user space instances (called containers) to exist. From the perspective of the programs running in them, these isolated user space instances typically behave like real computers. Computer programs running on a normal operating system can utilize all of the resources of that computer, such as connected devices, files and folders, network shares, CPU power, and quantifiable hardware capabilities. However, a program running within a container can only use the contents of that container and the devices assigned to that container, a feature known as containerization.

[0318] Private cloud 1106 is similar to public cloud 1105, except that the computing resources are only available to a single enterprise. Although private cloud 1106 is depicted as communicating with WAN 1102, in other embodiments, the private cloud can be completely disconnected from the Internet and can only be accessed through a local / private network. A hybrid cloud is a combination of multiple clouds of different types (e.g., private, community, or public cloud types), typically implemented separately by different vendors. Each of the multiple clouds remains an independent discrete entity, but the larger hybrid cloud architecture is tied together through standardized or proprietary technologies that support orchestration, management, and / or data / application portability between multiple constituent clouds. In this embodiment, both public cloud 1105 and private cloud 1106 are part of a larger hybrid cloud.

[0319] The computing environments described herein are merely examples of computing environments that may be used. Other environments may be used, including but not limited to non-partitioned environments, partitioned environments, cloud environments, distributed environments, non-distributed environments, virtual environments, and / or simulated environments; embodiments are not limited to any one environment. Although various examples of computing environments are described herein, one or more aspects of the present invention may be used with multiple types of environments. The computing environments provided herein are merely examples.

[0320] Each computing environment can be configured to include one or more aspects of the present invention. For example, each computing environment can be configured to provide an automatic optimization process for dynamic feedback adjustment of one or more constraints and / or perform one or more other aspects of the present invention.

[0321] In addition to the above, a service provider that provides customer environment management may also provide, commit, deploy, manage, service, etc., one or more aspects. For example, a service provider may create, maintain, support, etc. computer code and / or computer infrastructure that performs one or more aspects for one or more customers. In return, as an example, the service provider may receive payment from the customer under a subscription and / or fee agreement. Additionally, or alternatively, the service provider may receive payment from the sale of advertising content to one or more third parties.

[0322] In one aspect, an application for executing one or more embodiments may be deployed. As an example, deployment of an application includes providing a computer infrastructure operable to execute one or more embodiments.

[0323] As another aspect, a computing infrastructure may be deployed including integrating computer readable code into a computing system, wherein the code in combination with the computing system is capable of performing one or more embodiments.

[0324] As another aspect, a process for integrating computing infrastructure can be provided, the process comprising integrating computer readable code into a computer system. The computer system comprises a computer readable medium, wherein the computer medium comprises one or more embodiments. The code combined with the computer system can execute one or more embodiments.

[0325] Although various embodiments are described above, these are merely examples. For example, additional, fewer, and / or other features, constraints, tasks, and / or events may be considered. Many variations are possible.

[0326] Various aspects and embodiments are described herein. In addition, many variations are possible without departing from the spirit of various aspects of the present invention. It should be noted that, unless otherwise inconsistent, each aspect or feature and variations thereof described and / or claimed herein may be combined with any other aspect or feature.

[0327] The terms used herein are for the purpose of describing specific embodiments only and are not intended to be limiting. As used herein, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will also be understood that the terms "include" and / or "comprises", when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or combinations thereof.

[0328] The corresponding structures, materials, operations and equivalents of all functionally defined means or steps in the following claims (if any) are intended to include any structure, material or operation for performing the function in combination with other elements specifically indicated in the claims. The description of one or more embodiments is provided for the purpose of illustration and description, not exhaustive, nor is it intended to limit the invention to the form described. It is obvious to those of ordinary skill in the art that many modifications and variations can be made. The selection and description of the embodiments are to best explain the various aspects and practical applications, so that those of ordinary skill in the art can understand that the present invention can have various embodiments with various changes suitable for the desired specific use.

Claims

1. A computer-implemented method for dynamic processing within a computing environment, the computer-implemented method comprising: obtaining, by a controller executing on one or more processors of the computing environment, data stored in one or more data structures generated based on defined tasks to be performed for a selected event, the data comprising a set of constraints for the defined tasks to be performed for the selected event; providing the data to a solution generator to be executed on at least one processor, the solution generator to be used to obtain a task solution that specifies how to perform the defined task for the selected event, the task solution to satisfy one or more defined criteria; obtaining one or more task solutions generated by the solution generator for the defined task, the one or more task solutions being generated using the provided data; determining whether the one or more task solutions include the task solution that satisfies the one or more defined criteria; automatically adjusting the set of constraints to provide an adjusted set of constraints based on a determination that the one or more task solutions do not include the task solution that satisfies the one or more defined criteria, the adjusted set of constraints to be automatically provided to the solution generator for use in obtaining the task solution that specifies how to perform the defined task; obtaining the task solution that specifies how to perform the defined task for the selected event; as well as At least an indication of the task solution for performing the defined task for the selected event is output.

2. The computer-implemented method of claim 1 , further comprising: The providing, the obtaining, the determining, and the automatically adjusting are iteratively performed one or more times to obtain the task solution that satisfies the one or more defined criteria, wherein the data includes the adjusted set of constraints.

3. The computer-implemented method of claim 1 , wherein: A data structure of the one or more data structures includes one or more characteristics and one or more indicated priorities for the one or more characteristics, and wherein at least a portion of the one or more characteristics are specific to the selected event.

4. The computer-implemented method of claim 3, wherein: The one or more features include at least one default feature, at least one customized feature, and at least one feature specific to the solution generator.

5. The computer-implemented method of claim 3, wherein: Another of the one or more data structures includes a constraint data structure, which includes the set of constraints for the selected event, the set of constraints including one or more constraints for at least one of the one or more features and one or more corresponding priorities for the one or more constraints.

6. The computer-implemented method of claim 1 , wherein: Automatically adjusting the set of constraints includes automatically removing one of the constraints from the set of constraints.

7. The computer-implemented method of claim 6, wherein: Automatically removing one of the constraints from the set of constraints is based on a priority of the constraint in the set of constraints.

8. The computer-implemented method of claim 1 , wherein: Automatically adjusting the set of constraints includes automatically adjusting one or more respective priorities of one or more constraints in the set of constraints.

9. The computer-implemented method of claim 1 , further comprising: The one or more data structures are generated by a generator executed on at least one of the one or more processors based on information obtained by the generator using one or more templates created for the defined tasks for the selected event.

10. The computer-implemented method of claim 1, wherein: The defined tasks include routes, and the selected events include events in which routes are executed.

11. A computer system for dynamic processing within a computing environment, the computer system comprising: Memory; as well as One or more processors in communication with the memory, wherein the computer system is configured to perform a method comprising: obtaining, by a controller executing on at least one of the one or more processors, data stored in one or more data structures generated based on defined tasks to be performed for a selected event, the data comprising a set of constraints for the defined tasks to be performed for the selected event; providing the data to a solution generator to be executed on at least one processor, the solution generator to be used to obtain a task solution that specifies how to perform the defined task for the selected event, the task solution to satisfy one or more defined criteria; obtaining one or more task solutions generated by the solution generator for the defined task, the one or more task solutions being generated using the provided data; determining whether the one or more task solutions include the task solution that satisfies the one or more defined criteria; automatically adjusting the set of constraints to provide an adjusted set of constraints based on a determination that the one or more task solutions do not include the task solution that satisfies the one or more defined criteria, the adjusted set of constraints to be automatically provided to the solution generator for use in obtaining the task solution that specifies how to perform the defined task; obtaining the task solution that specifies how to perform the defined task for the selected event; and At least an indication of the task solution for performing the defined task for the selected event is output.

12. The computer system according to claim 11, wherein: The method further includes iteratively performing the providing, the obtaining, the determining, and the automatically adjusting one or more times to obtain the task solution that satisfies the one or more defined criteria, wherein the data includes the adjusted set of constraints.

13. The computer system according to claim 11, wherein: A data structure of the one or more data structures includes one or more characteristics and one or more indicated priorities for the one or more characteristics, and wherein at least a portion of the one or more characteristics are specific to the selected event.

14. The computer system of claim 13, wherein: The one or more features include at least one default feature, at least one customized feature, and at least one feature specific to the solution generator.

15. The computer system according to claim 13, wherein: Another of the one or more data structures includes a constraint data structure, which includes the set of constraints for the selected event, the set of constraints including one or more constraints for at least one of the one or more features and one or more corresponding priorities for the one or more constraints.

16. A computer program product for dynamic processing within a computing environment, the computer program product comprising: One or more computer-readable storage media and program instructions stored together on the one or more computer-readable storage media, the program instructions being readable by at least one processing circuit to perform a method comprising: obtaining, by a controller executing on one or more processors of the computing environment, data stored in one or more data structures generated based on defined tasks to be performed for a selected event, the data comprising a set of constraints for the defined tasks to be performed for the selected event; providing the data to a solution generator to be executed on at least one processor, the solution generator to be used to obtain a task solution that specifies how to perform the defined task for the selected event, the task solution to satisfy one or more defined criteria; obtaining one or more task solutions generated by the solution generator for the defined task, the one or more task solutions being generated using the provided data; determining whether the one or more task solutions include the task solution that satisfies the one or more defined criteria; automatically adjusting the set of constraints to provide an adjusted set of constraints based on a determination that the one or more task solutions do not include the task solution that satisfies the one or more defined criteria, the adjusted set of constraints to be automatically provided to the solution generator for use in obtaining the task solution that specifies how to perform the defined task; obtaining the task solution that specifies how to perform the defined task for the selected event; and At least an indication of the task solution for performing the defined task for the selected event is output.

17. The computer program product of claim 16, wherein: The method further includes iteratively performing the providing, the obtaining, the determining, and the automatically adjusting one or more times to obtain the task solution that satisfies the one or more defined criteria, wherein the data includes the adjusted set of constraints.

18. The computer program product of claim 16, wherein: A data structure of the one or more data structures includes one or more characteristics and one or more indicated priorities for the one or more characteristics, and wherein at least a portion of the one or more characteristics are specific to the selected event.

19. The computer program product of claim 18, wherein: The one or more features include at least one default feature, at least one customized feature, and at least one feature specific to the solution generator.

20. The computer program product of claim 18, wherein: Another of the one or more data structures includes a constraint data structure, which includes the set of constraints for the selected event, the set of constraints including one or more constraints for at least one of the one or more features and one or more corresponding priorities for the one or more constraints.