DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
This action is in response to the Applicant’s Remarks filed on 07/29/2026. Claims 1-5, 7-12, 14-19 are currently amended. Claims 1-20 are pending.
In view of the Applicant’s amendments, the claim objections are withdrawn.
The 35 U.S.C. 101 rejections on claims 1-20 are withdrawn because the amendments clarified how the judicial exceptions pointed towards, and functioned with, a particular machine (i.e., sequence generation model).
Applicant’s arguments with respect to the prior art rejections have been considered but are moot in view of the new grounds of rejection presented herein.
Examiner’s Notes
Examiner cites columns, paragraphs, figures and line numbers in the references as applied to the claims below for the convenience of the applicant. Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may apply as well. It is respectfully requested that, in preparing responses, the applicant fully consider the references in their entirety as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the examiner. Also note the applicable examiner’s notes stated in the Non-Final Rejection.
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
(a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
Claims 1-5, 8-12, and 15-19 are rejected under 35 U.S.C. 102(a)(1)/(a)(2) as being anticipated by Wasserkrug et al. (U.S. Publication No. 20230237222-A1, hereinafter Wasserkrug).
The applied reference has a common joint inventor (Wasserkrug) and common assignee (International Business Machines Corporation) with the instant application. Based upon the earlier effectively filed date of the reference, it constitutes prior art under 35 U.S.C. 102(a)(2). This rejection under 35 U.S.C. 102(a)(2) might be overcome by: (1) a showing under 37 CFR 1.130(a) that the subject matter disclosed in the reference was obtained directly or indirectly from the inventor or a joint inventor of this application and is thus not prior art in accordance with 35 U.S.C. 102(b)(2)(A); (2) a showing under 37 CFR 1.130(b) of a prior public disclosure under 35 U.S.C. 102(b)(2)(B) if the same invention is not being claimed; or (3) a statement pursuant to 35 U.S.C. 102(b)(2)(C) establishing that, not later than the effective filing date of the claimed invention, the subject matter disclosed in the reference and the claimed invention were either owned by the same person or subject to an obligation of assignment to the same person or subject to a joint research agreement.
Regarding Claims 1, 8, and 15:
Wasserkrug discloses specifically in claim 1, “A computer-implemented method for generating optimization solutions, the computer-implemented method comprising” (In paragraph [0039], “The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention”.);
Wasserkrug discloses specifically in claim 8, “A computer system for generating optimization solutions, the computer system comprising: a processor; a memory; and program instructions stored on a storage device, the program instructions executable by the processor to” (In paragraph [0039], “The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention”. In paragraph [0002], “a system for learning all or part of a mathematical optimization model can include a memory device to store human-specified constraint and/or objective definitions that have been programmed in a general-purpose programming language by a human user. The system may include a processor”.);
Wasserkrug discloses specifically in claim 15, “A computer program product for generating optimization solutions, the computer program product comprising program instructions stored on a storage device, the program instructions executable by a processor to” (In paragraph [0039], “The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention”. In paragraph [0007], “An exemplary computer program product may comprise program instructions executable by the processor to cause the processor to generate a formal objective model”.);
“generating an optimization solution verification program, wherein the optimization solution verification program determines if an input satisfies one or more constraints associated with an optimization issue” (Paragraph [0005] teaches the optimization solution verification program, “generating a solution to the optimization problem using the automatically generated constraint and/or objective definitions and executing a computer-readable instruction based on the solution … Generating the labeled data may also comprise inputting the values to an objective function to compute a value of the objective function, and inputting the values to the human-generated constraint definitions to determine, for each solution, whether the values satisfy the corresponding constraints”.);
“and responsive to the input satisfying the one or more constraints” (Paragraph [0005], “the labeled constraint data may comprise a value of the objective function(s) computed based on the input values of each solution variable”.);
“calculate a value for the input associated with an objective function based on the one or more constraints” (In paragraph [0007], “Generating the labeled data may also comprise inputting the values to an objective function to compute a value of the objective function, and inputting the values to the human-generated constraint and/or objective definitions to determine, for each value, whether the value satisfies its corresponding constraints and/or objectives”.);
“generating an optimization solution verification program, wherein the optimization solution verification program includes an objective function calculation and a plurality of constraint functions” (In paragraph [0005], “generating a solution to the optimization problem using the automatically generated constraint and/or objective definitions and executing a computer-readable instruction based on the solution … an objective function to compute a value of the objective function”. In paragraph [0017], “With reference now to FIG. 1, an example computing device is depicted that is configured to programmatically define constraints for an optimization problem”. In paragraph [0029], “The specific set of values for each of the variables of the objective and constraint functions may be referred to as a solution”. In paragraph [0023], “constraints may be specified as a Boolean function … code may be written for each constraint”. In paragraph [0016], “The present disclosure describes a technique for learning a formal model of an optimization model that includes constraints and objectives defined over a set of decision variables, which specify the possible decisions that can be made. In accordance with embodiments, constraints and objectives are coded in a general programming language that can be used to validate the constraints”.);
“each constraint function being configured to determine whether an input set of decision variable values satisfies a corresponding constraint of an optimization issue and” (In paragraph [0029], “The decision variables are subject to a set of constraints … The constraints may be specified as a Boolean function … code may be written for each constraint, so that for any solution of the optimization problem, it returns true if the constraint is satisfied and false otherwise”.);
“when the corresponding constraint is not satisfied” (In paragraph [0029], “constraints received at block 202 … The constraints may be specified as a Boolean expression, returning “true” if the constraint is satisfied and “false” if the constraint is not satisfied”.);
“to calculate a difference between a value associated with the input set of decision variable values and a value or range of values necessary to satisfy the corresponding constraint” (In paragraph [0030], “This data is input into the programmatic specification to compute the cost or reward for the solution and compute the value of each of the constraints and/or objectives specifications defined at block 204 to determine whether the variable values satisfy the respective constraints”. In paragraph [0031], “the data generation component can select values by sampling over a specified range of possible values in increments”.
In paragraph [0035], “FIG. 3A is an example of a constraint that is programmed … The optimal solution to this problem is an assignment of offices that minimizes the total cost”. In paragraph [0036], “constraint 304 describes a limitation … The result of the constraint 304 when the solution variables are entered is a value of true or false indicating whether the constraint is satisfied. As describe above, the objective function 302 and constraint 304 may be used to generate constraint and objective data … this data may be used to learn a formal model of the constraints and objectives, which is shown in FIG. 3B”. In paragraph [0037], “the objective function also includes an area penalty that imposes additional cost based on the total area”.);
“automatically converting program code of the optimization solution verification program into a loss function by incorporating the objective function calculation and” (In paragraph [0016], “converting the originally defined constraints in any programming language into a format that is capable of being processed by mathematical optimization engines. This formal representation of the constraints can typically be solved by optimization engines”. In paragraph [0022], “The goal of the optimization process is to determine a solution that optimizes the value of the objective function(s) (e.g., maximizes or minimizes the value of each such function). The computed value of an objective function may be referred to herein as the cost or reward depending on whether the value is to be minimized or maximized.” In paragraph [0033], “the optimization problem is solved using an optimization engine and the formal constraint model … The optimization engine generates a solution that maximizes a reward or minimizes a cost”.);
“for each constraint function of the plurality of constraint functions, a constraint-violation term based on the difference calculated by the constraint function multiplied by a coefficient” (In paragraph [0037], “The objective function 306 may be learned from the labeled constraint data … the objective function also includes an area penalty that imposes additional cost based on the total area”. In paragraph [0029], “The specific set of values for each of the variables of the objective and constraint functions may be referred to as a solution”.
In paragraph [0037], “the objective function 306 describes the total cost of office space … the goal is to find a solution minimizes the total cost of the office space”. In paragraph [0038], “the constraint 308 is substantively the same as the constraint 306 in that it imposes the same limitation on the employee assignment variable”.);
“generating a plurality of random input sets of decision variable values for the optimization issue” (In paragraph [0024], “To generate this data 128, possible solutions to the optimization problem are generated. Each possible solution includes a selected value for the each of the decision variables. The selected values for each solution may be generated randomly … The solution is also provided as input to each constraint”.);
“training a sequence generation model using the loss function and the plurality of random input sets of decision variable values” (In paragraph [0025], “As with the formal constraint model, the formal objective model describes the objective function that had been learned from the constraints and objectives data 130 and is formatted in way that is tailored to a specific optimization engine”. In paragraph [0032], “The formal model of the constraints and objectives can be generated automatically using a machine learning algorithm that are trained using the labeled constraint data”. In paragraph [0024], “The data generation component 128 the constraints 126 and the objectives are used to generate the optimization model learning data 128. To generate this data 128, possible solutions to the optimization problem are generated. Each possible solution includes a selected value for the each of the decision variables. The selected values for each solution may be generated randomly … The solution is also provided as input to each constraint”.);
“wherein the loss function is generated from the program code of the optimization solution verification program and includes the objective function calculation and the constraint-violation term corresponding to the plurality of constraint functions” (In paragraph [0035], “FIG. 3A also shows an objective function 302 that is programmed using a general-purpose programming language … the objective function describes the total cost of office space based on employee office assignments …The optimal solution to this problem is an assignment of offices that minimizes the total cost”. In paragraph [0036], “the objective function 302 and constraint 304 may be used to generate constraint and objective data, and this data may be used to learn a formal model of the constraints and objectives, which is shown in FIG. 3B”. In paragraph [0037], “The objective function 306 shown on FIG. 3B … the objective function also includes an area penalty that imposes additional cost based on the total area of all of the office spaces combined”.);
“and wherein training the sequence generation model comprises, for each of a plurality of training iterations: generating, by the sequence generation model, a candidate output sequence including respective candidate values for the decision variables values of the optimization issue” (In paragraph [0024], “The solution is also provided to each objective function to get the objective value on this solution. The result is a set of labeled constraints and objectives data 130 that includes, for each solution, the solution variables”. In paragraph [0026], “The active learning module 138 can select the input data in terms of values to all or some of the decision variables, based on the results of previous iterations of the constraints”.);
“evaluating the candidate output sequence using the loss function such that the candidate output sequence is penalized based on the constraint-violation term when the respective candidate values fail to satisfy one or more of the plurality of constraint functions and is evaluated based on the objective function calculation when the respective candidate values satisfy the plurality of constraint functions” (In paragraph [0024], “The solution is also provided to each objective function to get the objective value on this solution. The result is a set of labeled constraints and objectives data 130 that includes, for each solution, the solution variables, the resulting cost or reward, and an indication for each solution variable regarding whether its value satisfies the applicable constraint”. In paragraph [0037], “The objective function 306 shown on FIG. 3B … the objective function also includes an area penalty that imposes additional cost based on the total area of all of the office spaces combined”. In paragraph [0035], “FIG. 3A also shows an objective function … the objective function describes the total cost of office space … The optimal solution to this problem is an assignment of offices that minimizes the total cost”.);
“and updating parameters of the sequence generation model to reduce a value of the loss function, thereby training the sequence generation model to iteratively output decision variable values that both satisfy the plurality of constraint functions and optimize the objective function calculation” (In paragraph [0022], “optimization process is to determine a solution that optimizes the value of the objective function(s) (e.g., maximizes or minimizes the value of each such function) … The solution is the set of values input to the variables of the objective function”. In paragraph [0026], “The active learning module 138 can select the input data in terms of values to all or some of the decision variables, based on the results of previous iterations of the constraints and/or objectives learning algorithms”.);
“and generating an optimized solution for the optimization issue using the trained sequence generation model, wherein the optimized solution comprises a generated set of decision variable values that satisfies the plurality of constraint functions and optimizes the objective function calculation” (In paragraph [0033], “At block 208, the optimization problem is solved using an optimization engine and the formal constraint model generated at block 206 … The optimization engine generates a solution that maximizes a reward or minimizes a cost”. In paragraph [0022], “The solution is the set of values input to the variables of the objective function”. In paragraph [0024], “Each possible solution includes a selected value for the each of the decision variables”. In paragraph [0032], “The formal model of the constraints and objectives is a model in which the constraints and objectives are expressed in a specific format that is syntactically correct”.).
Regarding Claims 2, 9, and 16:
Wasserkrug discloses, “updating the program code with one or more additional constraints and/or updated objectives; and updating the loss function and retraining the sequence generation model” (In paragraph [0026], “the active learning module 138 may be configured to select additional input data to be input to the data generation component 128. The active learning module 138 can select the input data in terms of values to all or some of the decision variables, based on the results of previous iterations of the constraints and/or objectives learning algorithms 132”. Where the context given in paragraph [0025], “The constraint and/or objectives learning algorithms 132 generate a formal constraints and objectives model 134 … the formal objective model describes the objective function that had been learned from the constraints and objectives data 130 and is formatted in way that is tailored to a specific optimization engine”. And the model In paragraph [0032], “The formal model of the constraints and objectives can be generated automatically using a machine learning algorithm that are trained using the labeled constraint data”.).
Regarding Claims 3, 10, and 17:
Wasserkrug discloses, “labeling a second set of random solutions, based on the updated program code” (In paragraph [0030], “The resulting data is a set of labeled data that includes the solution (i.e., the variable values)”. In paragraph [0031], “the variable values may be selected randomly … For example, the active learning module can generate a sample solution, input the solution to the programmatic specification and generate a single instance of labeled constraint data. The active learning module may be programmed to select the next solution based on the data, constraints and objectives obtained from the previous iteration or iterations”. Where the selecting of the next solution may be random, as shown in paragraph [0024], “The selected values for each solution may be generated randomly … The result is a set of labeled constraints and objectives data”.);
“and tuning the sequence generation model based on the labeled second set of random solutions” (In paragraph [0031], “The active learning module may be programmed to select the next solution based on the data, constraints and objectives obtained from the previous iteration or iterations”. In paragraph [0032], “The formal model of the constraints and objectives can be generated automatically using a machine learning algorithm that are trained using the labeled constraint data”.).
Regarding Claims 4, 11, and 18:
Wasserkrug discloses, “wherein the generated optimized solution for the optimization issue is a set of decision variable values” (In paragraph [0016], “optimization model that includes constraints and objectives defined over a set of decision variables, which specify the possible decisions that can be made”.);
“wherein the decision variable values provide an optimized objective value when applied to the objective function within a domain space for the optimization issue” (In paragraph [0022], “The objective function(s) 124 may be specified by a developer codifying the domain knowledge of the business user and can include several decision variables. The objective function(s) is/are specified as a function in any suitable programming language based on the business objects defined, and must return a real number as a result. The goal of the optimization process is to determine a solution that optimizes the value of the objective function(s)”.);
“and in which the input set of decision variable values and the optimization solutions generated by the optimized value and satisfying the constraints are used to tune the sequence generation model in a supervised manner” (In paragraph [0016], “learning a formal model of an optimization model that includes constraints and objectives defined over a set of decision variables, which specify the possible decisions that can be made … The coded constraint specifications are then used in conjunction with a data generation procedure to generate a high quality labeled data set. This data set can then be used to learn a formal mathematical model of the constraints and objectives that is formatted in a precise manner that is tailored for the specific optimization engine to be used … the present techniques may also be coupled with active learning wherein the programmatic specification can be used to provide feedback”.).
Regarding Claims 5, 12, and 19:
Wasserkrug discloses, “wherein the optimization solution verification program is based on Python programming language code” (In paragraph [0029], “At block 202, programmatically specified constraints and objectives are received. The constraints may be specified using any general programming language such as C, C+, C++, Python, Java, and others”.).
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 1-5, 8-12, and 15-19 are rejected under 35 U.S.C. 103 as being unpatentable over Harris et al. (U.S. Publication No. 20210027182-A1, hereinafter Harris) in view of Tsai et al. (U.S. Publication No. 20240022961-A1, hereinafter Tsai).
Regarding Claims 1, 8, and 15:
Harris discloses specifically in claim 1, “A computer-implemented method for generating optimization solutions, the computer-implemented method comprising” (In paragraph [0013], “The method can be performed by one or more server computers”.);
Harris discloses specifically in claim 8, “A computer system for generating optimization solutions, the computer system comprising: a processor; a memory; and program instructions stored on a storage device, the program instructions executable by the processor to” (In paragraph [0003], “The computer system can include a system memory, one or more processors, and a computer readable storage medium. The computer readable storage medium of the computer system can store instructions that, when executed by the one or more processors, cause the one or more processors to perform certain functions for building machine learning models”.);
Harris discloses specifically in claim 15, “A computer program product for generating optimization solutions, the computer program product comprising program instructions stored on a storage device, the program instructions executable by a processor to” (In paragraph [0156], “As such, a computer readable medium according to an embodiment of the present invention may be created using a data signal encoded with such programs. Computer readable media encoded with the program code may be packaged with a compatible device or provided separately from other devices (e.g., via Internet download). Any such computer readable medium may reside on or within a single computer product (e.g. a hard drive, a CD, or an entire computer system)”. And in paragraph [0003], “The computer readable storage medium of the computer system can store instructions that, when executed by the one or more processors, cause the one or more processors to perform certain functions for building machine learning models”.);
Harris discloses, “generating an optimization solution verification program, wherein the optimization solution verification program includes an objective function calculation and a plurality of constraint functions” (In paragraph [0068], “the server computer can determine one or more inferred edge connections between the nodes of the topological graph using an optimization algorithm. The one or more inferred edge connections can reduce a cost function based on the results associated with the new set of previous requests and stored results associated with the stored set of historical requests”. In paragraph [0046], “The series of artificial intelligence algorithms can modify the training data prior to building the model … The modeling behavior tree that drives the model building process can be tuned by an optimization behavior tree based on an evaluation of the performance of the model. … the modeling behavior tree is used to monitor new training data and drive the model building process … This automatic self-correction enables the model to maintain its accuracy should characteristics of the training data shift overtime”.);
“each constraint function being configured to determine whether an input set of decision variable values satisfies a corresponding constraint of an optimization issue” (In paragraph [0090], “The model 280 may provide a continuous score … to provide decision making, a leaner (e.g., a machine learning algorithm) can be used to determine, at 208, a decision rule (e.g., a binary decision, such as Yes or No) for different scores output by the model based on predetermined goals and criteria. The server computer can generate a set of binary decision rules using the predictive model … The binary decision rules can set a threshold value for a continuous score determined by the predictive model”. In paragraph [0108], "For example, the monitoring process can track the number of new data records received and determine whether the number is greater than a predetermined threshold”.);
“and, when the corresponding constraint is not satisfied, to calculate a difference between a value associated with the input set of decision variable values and a value or range of values necessary to satisfy the corresponding constraint” (In paragraph [0108], " At 503, the monitoring process can determine whether the data storage (e.g., the training data) contains new or different information. For example, the monitoring process can track the number of new data records received and determine whether the number is greater than a predetermined threshold. If the monitor process determines that there is not new data available as training data, indicating that there is no new information (NO at 503), then the monitor process returns to receiving more new data at 502”.);
“automatically converting program code of the optimization solution verification program into a loss function by incorporating the objective function calculation and, for each constraint function of the plurality of constraint functions, a constraint-violation term based on the difference []” (In paragraph [0015], “a supervised machine learning algorithm can be used to build a model 130 based on a training sample selected from among the data records … The building (e.g., training) of the model can involve an iterative process of updating the model in order to minimize a loss function that quantifies the difference between the model's prediction and the target output values”. Further, in paragraph [0068], “the server computer can determine one or more inferred edge connections between the nodes of the topological graph using an optimization algorithm. The one or more inferred edge connections can reduce a cost function based on the results associated with the new set of previous requests and stored results associated with the stored set of historical requests”.
In paragraph [0097], “The optimization behavior can include black listed behavior (e.g., greater than two years of data, or a choice point that is not achievable)”. In paragraph [0099], “If the predetermined goals are not met (NO at 403), then the method for optimizing the model building process continues, at 405, to merge black listed behavior”.);
“generating a plurality of random input sets of decision variable values for the optimization issue” (In paragraphs [0055]-[0056], “The first graph 301 of FIG. 3 illustrates the training data expressed as a topological graph. In some embodiments, the topological graph can be created based on a training sample of the new and historical requests stored in the data storage 210. The sample can be selected from the stored requests randomly”. In paragraph [0050], “The new and historical requests being requests may have made to an operational response system (e.g., a server computer implementing a model for decision making). The new and historical requests may be stored to be used as training data for models builds”.);
“training a sequence generation model using the loss function and the plurality of random input sets of decision variable values, wherein the loss function is generated from the program code of the optimization solution verification program” (In paragraph [0015], “The building (e.g., training) of the model can involve an iterative process of updating the model in order to minimize a loss function that quantifies the difference between the model's prediction and the target output values. As such, the machine learning algorithm “learns” how to make better predictions over successive iterations”. In paragraph [0154], “Any of the software components or functions described in this application may be implemented as software code”.
In paragraph [0050], “The new and historical requests being requests may have made to an operational response system (e.g., a server computer implementing a model for decision making). The new and historical requests may be stored to be used as training data for models builds”. In paragraph [0053], “The training data for training the model can be based on both the new set of previous requests and the stored set of historical requests”. In paragraph [0056], “the topological graph can be created based on a training sample of the new and historical requests stored in the data storage 210. The sample can be selected from the stored requests randomly, or using a formula or algorithm”. In paragraph [0090], “The model 280 may provide a continuous score for a given input (e.g., request or sample)”.);
“and includes the objective function calculation and the constraint-violation term corresponding to the plurality of constraint functions” (In paragraph [0070], “The agents may explore the topological graph and may communicate path information to the other agents. The path information may comprise cost information. Least costly paths, based on a cost function, may be reinforced as approaching an optimal path”. In paragraph [0072], “The agents may continuously calculate the cost of their determined paths until their chosen path has met the predetermined cost requirement. The agents may then begin to converge to a solution … The agents may then repeat the statistically randomized search until the global optimum has been found or the goal has been sufficiently met”. In paragraph [0098], “the method determines whether predetermined goals have been achieved. The goals can be based on the evaluated performance of the predictive model build”. In paragraph [0099], “If the predetermined goals are not met (NO at 403), then the method for optimizing the model building process continues at 405, to merge black listed behavior”. In paragraph [0097], “The optimization behavior can include black listed behavior (e.g., greater than two years of data, or a choice point that is not achievable)”.);
“and wherein training the sequence generation model comprises, for each of a plurality of training iterations: generating, by the sequence generation model, a candidate output sequence including respective candidate values for the decision variables values of the optimization issue” (In paragraph [0018], “the server can perform decision making, at 102, by applying the predicted output value to a set of decision rules 140. For example, where the model predicts a person's age”.);
“evaluating the candidate output sequence using the loss function” (In paragraph [0015], “a supervised machine learning algorithm can be used to build a model 130 based on a training sample … and their corresponding output values (e.g., the corresponding person's age). The building (e.g., training) of the model can involve an iterative process of updating the model in order to minimize a loss function that quantifies the difference between the model's prediction and the target output values”.);
“such that the candidate output sequence is penalized based on the constraint-violation term when the respective candidate values fail to satisfy one or more of the plurality of constraint functions and is evaluated based on the objective function calculation when the respective candidate values satisfy the plurality of constraint functions” (In paragraph [0090], “to provide decision making, a leaner (e.g., a machine learning algorithm) can be used to determine, at 208, a decision rule (e.g., a binary decision, such as Yes or No) for different scores output by the model based on predetermined goals and criteria”. In paragraph [0098], “the method determines whether predetermined goals have been achieved. The goals can be based on the evaluated performance of the predictive model build using the modeling behavior tree. If the predetermined goals are met (YES at 403), then the method ends”. In paragraph [0099], “If the predetermined goals are not met (NO at 403), then the method for optimizing the model building process continues at 405, to merge black listed behavior”. In paragraph [0097], “The optimization behavior can include black listed behavior (e.g., greater than two years of data, or a choice point that is not achievable)”.);
“and updating parameters of the sequence generation model to reduce a value of the loss function, thereby training the sequence generation model to iteratively output decision variable values that both satisfy the plurality of constraint functions and optimize the objective function calculation” (In paragraph [0015], “The building (e.g., training) of the model can involve an iterative process of updating the model in order to minimize a loss function”. In paragraph [0016], “The model 130 can be built according to various predetermined model training settings 120 that control various parameters … The model training settings 120 can include settings for … parameters for modifying the data (e.g., normalizing or weighting certain aspects of the data)”. In paragraph [0071], “Optimal paths (e.g., inferred edge connections) may be determined based on a cost function … whether the cost function was successfully decreased for each of the respective paths determined … the path can be encouraged at the next epoch of the solution search, with the goal being to approach a global optimal path (i.e. shortest or least costly path”. In paragraph [0096], “the parameters and settings for the various algorithms can be updated to suit the different incoming data, thereby improving model performance in later builds”.
In paragraph [0090], “The model 280 may provide a continuous score … to provide decision making, a leaner (e.g., a machine learning algorithm) can be used to determine, at 208, a decision rule (e.g., a binary decision, such as Yes or No) for different scores output by the model based on predetermined goals and criteria. The server computer can generate a set of binary decision rules using the predictive model”.);
“and generating an optimized solution for the optimization issue using the trained sequence generation model, wherein the optimized solution comprises a generated set of decision variable values that satisfies the plurality of constraint functions and optimizes the objective function calculation” (In paragraph [0072], “The agents may continuously calculate the cost of their determined paths until their chosen path has met the predetermined cost requirement. The agents may then begin to converge to a solution … The agents may then repeat the statistically randomized search until the global optimum has been found”. In paragraph [0094], “After the model 280 and associated decision rules 290 are built, the server computer can update the modeling behavior tree, to obtain an optimized modeling behavior tree … The learner can add or remove information, and change AI settings or parameters, to optimize the model building process”. In paragraph [0095], “After obtaining the optimized modeling behavior tree, the server computer can build a second predictive model using the optimized modeling behavior tree … The second predictive model may provide more accurate predictions than the previous predictive model for the training sample”. In paragraph [0102], “After the model has been built and the set of decision rules has been generated, they may be used to perform decision making in an operational setting”.).
Harris does not disclose however Tsai discloses, “calculated by the constraint function multiplied by a coefficient” (In paragraph [0043], “by the throughput objection function and all the first to sixth constraints, each of the six constraints are multiplied by the corresponding penalty coefficient”. Note that objection is likely a typo for objective as shown in paragraph [0045], “by the throughput objective function”. In paragraph [0027], “during the optimizing procedure, the processing is based on the throughput objective function related to the overall throughput and the various constraints in order to maximize the overall throughput”.).
Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to further modify Harris by adopting the teaching of a constraint multiplied by a coefficient in Tsai; motivated by the common goal to optimize computer systems according to limitations provided by constraints, such as “important criterion for determining whether the optimization procedure should be ended” (Tsai [0024]).
Regarding Claims 2, 9, and 16:
Harris discloses, “updating the program code with one or more additional constraints and/or updated objectives; and updating the loss function and retraining the sequence generation model” (In paragraph [0094], “the server computer can update the modeling behavior tree, to obtain an optimized modeling behavior tree, based on the evaluated performance of the predictive model. As discussed above, the modeling behavior tree sets parameters for initializing the community detection algorithm, the optimization algorithm, and the supervised machine learning algorithm”. Further in paragraph [0015], “The building (e.g., training) of the model can involve an iterative process of updating the model in order to minimize a loss function … the machine learning algorithm “learns” how to make better predictions over successive iterations”. In paragraph [0072], “The agents may then determine a path and may determine the cost of the path and compare it to a predetermined cost requirement. The agents may continuously calculate the cost of their determined paths until their chosen path has met the predetermined cost requirement. The agents may then begin to converge to a solution and may communicate the error of the chosen solution in relation to the target goal. The agents may update a global feedback level, indicating the error gradient, for a path”, where as stated in paragraph [0071], “The cost function can be based on the training data and their corresponding results. A gradient may describe whether the cost function was successfully decreased for each of the respective paths determined by each of the agents … In this manner, new features may be added to the graph, in the form of newly inferred connections between input nodes and output nodes”.).
Regarding Claims 3, 10, and 17:
Harris discloses, “labeling a second set of random solutions, based on the updated program code” (In paragraph [0053], “In this example, the results associated with the new set of previous requests may be a scoring-value determine by the model for the corresponding request. The results associated with the new set of previous requests may also include a label”. In paragraph [0056], “The sample can be selected from the stored requests randomly”.);
“and tuning the sequence generation model based on the labeled second set of random solutions” (In paragraph [0096], “By tuning the modeling behavior tree 280, the parameters and settings for the various algorithms can be updated to suit the different incoming data, thereby improving model performance in later builds”.).
Regarding Claims 4, 11, and 18:
Harris discloses, “wherein the generated optimized solution for the optimization issue is a set of decision variable values” (In paragraph [0102], “After the model has been built and the set of decision rules has been generated, they may be used to perform decision making in an operational setting”.);
“wherein the decision variable values provide an optimized objective value when applied to the objective function within a domain space for the optimization issue” (In paragraph [0072], “The overall path that is taken by the agents when finding a solution can be determined based on the error structure (e.g., gradient) of the information space in relation to the target goal. A random search may be performed by the agents, with each of the agents initialized within a given domain of the information space”. In paragraph [0103], “The server computer can load the predictive model into a system memory ... the request may be received in a message from a client device sent over a network. In some embodiments, the server computer can extract or reformat the request to suit the model. Then, the server computer can apply the new request to the predictive model to obtain a request score. The server computer can then determine a decision based on the request score using the set of binary decision rules. The server computer can generate a response indicating the decision”. Where in paragraph [0003] defines the decision as a value, “The binary decision rules can set a threshold value for a continuous score determined by the predictive model”.);
“and in which the input set of decision variable values and the optimization solutions generated by the optimized value and satisfying the constraints are used to tune the sequence generation model in a supervised manner” (In paragraphs [0112]-[0113], “If the percentage difference between the new and old models is greater than a predetermined threshold value, indicating that there is new information (YES at 511), then the model building process continues to generate decision rules corresponding to the new model, at 512, as discussed above. Then the modeling behavior tree used to drive the model building process can be tuned using the Evolutionary Learner AI”.).
Regarding Claim 5, 12, and 19:
Harris discloses, “wherein the optimization solution verification program is based on Python programming language code” (In paragraph [0154], “Any of the software components or functions described in this application may be implemented as software code to be executed by a processor, or more than one processor, using any suitable computer language such as, for example, Java, C, C++, C #, Objective-C, Swift, or scripting language such as Perl or Python using, for example, conventional or object-oriented techniques”.).
Claims 6, 13, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Harris in view of Tsai as applied to claims 1, 8, and 15 above respectively, and further in view of Fine et al. (U.S. Publication No. 20070010975-A1, hereinafter Fine).
Regarding Claims 6, 13, and 20:
Harris discloses, “wherein the optimization solution verification program is a [] configured to receive one or more decision variables of the optimization issue as input” (In paragraph [0142], “The method can also include steps for receiving, by the server computer, a new request in real time, applying the new request to the predictive model to obtain a request score, and determining a decision based on the request score using the set of binary decision rules”. Although Harris does not explicitly disclose a spreadsheet based program, Harris more broadly discloses any suitable computer language in paragraph [0154], “Any of the software components or functions described in this application may be implemented as software code to be executed by a processor, or more than one processor, using any suitable computer language”.);
Harris as modified does not disclose however Fine discloses, “spreadsheet based program” (In paragraph [0084], “Next, at step 42 a model of the design-under-test is prepared by known methods, suitable for automated processing by a test generator. This can be done, for example, by creating spreadsheet files, which can then be parsed and processed by the test generator”.).
Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify Harris by adopting the teaching of Fine to combine a spreadsheet based program into the solution verification program; motivated by the same goal to obtain optimization of a decision making process, based on specified constraints of a given problem (Fine, Abstract).
Claims 6, 13, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Wasserkrug as applied to claims 1, 8, and 15 above respectively, and further in view of Fine.
Regarding Claims 6, 13, and 20:
Wasserkrug discloses, “wherein the optimization solution verification program is a [] configured to receive one or more decision variables of the optimization issue as input” (In paragraph [0029], “At block 202, programmatically specified constraints and objectives are received. The constraints may be specified using any general programming language such as C, C+, C++, Python, Java, and others … Each constraint describes limitations on or more decision variables that have been defined by a user with domain knowledge of the particular business problem”. Although Wasserkrug does not explicitly disclose a spreadsheet program, Wasserkrug more broadly discloses any general programming language may be used.).
Wasserkrug does not disclose however Fine discloses, “spreadsheet based program” (In paragraph [0084], “Next, at step 42 a model of the design-under-test is prepared by known methods, suitable for automated processing by a test generator. This can be done, for example, by creating spreadsheet files, which can then be parsed and processed by the test generator”.).
Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify Harris by adopting the teaching of Fine to combine a spreadsheet based program into the solution verification program; motivated by the same goal to obtain optimization of a decision making process, based on specified constraints of a given problem (Fine, Abstract).
Claims 7 and 14 are rejected under 35 U.S.C. 103 as being unpatentable over Harris in view of Tsai as applied to claims 1 and 8 above respectively, and further in view of Chandraker et al. (U.S. Publication No. 20170124433-A1, hereinafter Chandraker).
Regarding Claims 7 and 14:
Harris discloses, “wherein the sequence generation model is a []” (In paragraph [0015], “For example, the model 130 can be built using linear regression, nearest neighbor, gradient boosting, or neural network algorithms”.).
Harris as modified does not disclose however Chandraker discloses, “transformer based deep learning network” (In paragraph [0007], “A system for training a deep learning network is presented. The system includes a memory and a processor in communication with the memory, wherein the processor is configured to receive a first image and a second image, mine exemplar thin-plate spline (TPS) to determine transformations for generating point correspondences between the first and second images, use artificial point correspondences to train the deep neural network, learn and use the TPS transformation output through a spatial transformer, and apply heuristics for selecting an acceptable set of images to match for accurate reconstruction”.).
Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify Harris by adopting the teaching Chandraker to combine a transformer based deep learning network into the model; motivated by the common goal to obtain optimization of solution building, based on constraints of a given issue (Chandraker, paragraph [0025]).
Claims 7 and 14 are rejected under 35 U.S.C. 103 as being unpatentable over Wasserkrug as applied to claims 1 and 8 above respectively, and further in view of Chandraker.
Regarding Claims 7 and 14:
Wasserkrug discloses, “wherein the sequence generation model is a []” (In paragraph [0025], “The algorithm for learning the formal objective model may be any suitable machine learning algorithm, including linear regression algorithms, Support Vector Machines (SVMs), deep neural networks, and others”.).
Wasserkrug does not disclose however Chandraker discloses, “transformer based deep learning network” (In paragraph [0007], “A system for training a deep learning network is presented. The system includes a memory and a processor in communication with the memory, wherein the processor is configured to receive a first image and a second image, mine exemplar thin-plate spline (TPS) to determine transformations for generating point correspondences between the first and second images, use artificial point correspondences to train the deep neural network, learn and use the TPS transformation output through a spatial transformer, and apply heuristics for selecting an acceptable set of images to match for accurate reconstruction”.).
Therefore, it would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to modify Harris by adopting the teaching Chandraker to combine a transformer based deep learning network into the model; motivated by the common goal to obtain optimization of solution building, based on constraints of a given issue (Chandraker, paragraph [0025]).
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to Beza D Nigatu whose telephone number is (571)272-9643. The examiner can normally be reached Monday - Friday 7:30am-3:30pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Hyung Sough can be reached at (571) 272-6799. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/BEZA D NIGATU/Examiner, Art Unit 2192
/S. Sough/SPE, Art Unit 2192