# Patent

## Title
Computer method for providing optimization of design processes, with dynamic constraints

## Abstract

A computer method for providing optimization for design processes for situations wherein there is defined a functional form y=f(x,b), where x comprises a set of independent controllable variables x={x1, . . . xn}, b comprises a set of functional parameters b={b1, . . . bm}, and y comprises a dependent uncontrollable design variable, f(x,b) subject to constraints on the dependent uncontrollable design variable y. The method comprises the steps of converting the constraints on y to constraints on b by using a functional estimate of y and its design variables (parameters) b; optimizing the function f(x,b) subject to the converted constraints on its design variables (parameters) b; and generating from step (ii) a set of optimized values of b which can optimize the dependent design variable y.

## Background
CROSS-REFERENCE TO RELATED APPLICATION
The present application is related to U.S. application Ser. No. 09/696,555, filed Oct. 25, 2000, by Heching, et al., (IBM Docket YOR920000589). This application is co-pending, commonly assigned, and incorporated by reference herein.


BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates to a computer method and system for providing optimization for design processes.
2. Introduction to the Invention
The invention is introduced by first setting forth the following known construct.
Given a functional form y=f(x,b) where x is a set of independent controllable variables x={x1, . . . xn}, b is a set of design variables (functional parameters) b={b1, . . . bm}, and y is a dependent uncontrollable variable, it is desired to optimize (e.g., maximize, minimize) f(x,b), i.e. Derive a set b*={b1*, . . . , bm*} which optimizes f(x,b) for an historical dataset comprising observations of independent variables x and their corresponding dependent variable y, subject to constraints on the dependent uncontrollable variable y, say g(y)>0.
Now, if the constraints were on the design parameters b, this would be normally solved as a mathematical programming problem (linear, quadratic or nonlinear programming). Here, in contrast, the constraints are on the dependent uncontrollable variable y. Accordingly, in order to still utilize the powerful mathematical programming techniques, it is necessary to convert the constraints on y to constraints on b using the functional estimate of y and its design parameters b (e.g., g(y)=gf(x,b)>0).
In turn, operating on historical data (sets of x and associated y) thus yields complete functional description, fully satisfying the given constraints.
SUMMARY OF THE INVENTION
The present invention is cognizant of the aforementioned functional construct. Moreover, the present invention builds upon this known functional construct, but references this known construct to impose upon it novel problems, constraints, and desiderata—of the following illustrative type.
Accordingly, to compute y at a new set of controllable variables, say x′, one cannot simply plug x′ into the currently optimized f(x′,b*), which is based on the historical data, because there is no guarantee that the resulting y′ will satisfy the constraints on the dependent variable, g(y′)>0.
To insure satisfaction of the constraint at the new point x′ we propose to add f(x′,b) to the set of constraints (e.g., add gf(x′,b)>0 to the constraints), and re-run the mathematical program with the new set of constraints. Note that this may affect the resulting function f(x,b) by yielding a new set b**, even though no measurements at the new point x′ were performed or observed.
If it is desired to compute values of the dependent variable at several new points, then three cases may be considered:

    
    
        1) if the new points are ordered (e.g., forecasting), the preferred method is to perform sequential adding of the appropriate constraints;
        2) if the new points are not ordered, one can derive y for each new point based only on historical data and its own contribution to the set of constraints;
        3) alternatively, one can simultaneously derive y for all new points by adding all associated new constraints to the historical set.
    
    


We now restate these invention discoveries, by disclosing a first aspect of the present invention comprising a novel computer method for providing optimization for design processes for situations wherein there is defined a functional form y=f(x,b), where x comprises a set of independent controllable variables x={x1, . . . xn}, b comprises a set of functional parameters b={b1, . . . bm}, and y comprises a dependent uncontrollable design variable, f(x,b), subject to constraints on the dependent uncontrollable design variable y, the method comprising the steps of:

    
    
        (i) converting the constraints on y to constraints on b by using a functional estimate of y and its design variables (parameters) b;
        (ii) optimizing the function f(x,b) subject to the converted constraints on its independent design variables (parameters) b;

and

        (iii) generating from step (ii) a set of optimized values of b which can optimize the dependent design variable y.
    
    


Preferably, the method comprises a step (iv) of computing the dependent design variable y at a new set of the independent variables x, said x not being part of an historical set of x variables inherited from step (ii). In particular, this step preferably further comprises guaranteeing that the computed y satisfies the constraints on the dependent design variable y at the new set of independent variables x.
Preferably, the method can alternatively comprise a step (iv) of computing values of the dependent design variable at several new points of the independent variable x. In particular, this step preferably further comprises steps of determining that the new points are ordered, and, sequentially adding the appropriate constraints.
Preferably, moreover, the method can alternatively comprise steps of determining that the new points are not ordered, and, deriving why at each new point based only on historical data and y's own contribution to the set of constraints.
The method as summarized also includes an advantageous capability comprising the steps of computing values of the dependent design variable at several new points of the independent variables x, and, simultaneously deriving y for all new points by a step of adding all associated new constraints to the historical set.
In a second aspect of the present invention, we disclose a program storage device, readable by machine to perform method steps for providing optimization for design processes for situations wherein there is defined a functional form y=f(x,b), where x comprises a set of independent controllable variables x={x1, . . . xn}, b comprises a set of functional parameters b={b1, . . . bm}, and y comprises a dependent uncontrollable design variable f(x,b) subject to constraints on the dependent uncontrollable design variable y, the method comprising the steps of:

    
    
        (i) converting the constraints on y to constraints on b by using a functional estimate of y and its design variables (parameters) b;
        (ii) optimizing the function f(x,b) subject to the converted constraints on its design variables (parameters) b;

and

        (iii) generating from step (ii) a set of optimized values of b which optimizes the dependent design variable y.
    
    


In a third aspect of the present invention, we disclose a computer for providing optimization for design processes, the computer comprising:

    
    
        (i) means for inputting data defining a functional form y=f(x,b), where x comprises a set of independent controllable variables x={x1, . . . xn}, b comprises a set of functional parameters b={b1, . . . bm}, and y comprises a dependent uncontrollable design variable, f(x,b) subject to constraints on the dependent uncontrollable design variable y;
        (ii) means for converting the constraints on y to constraints on x by using a functional estimate of y and its design variables (parameters) b;
        (iii) means for optimizing the function f(x) subject to the converted constraints on its design variables (parameters) b;
        (iv) means for generating from element (iii) a set of optimized values of b which optimizes the dependent design variable y;

and

        (v) means for displaying the set of optimized values of b and the resulting design variable y.
    
    





BRIEF DESCRIPTION OF THE DRAWING
The invention is illustrated in the accompanying drawing, in which FIG. 1 (numerals 10-32) comprises a flow chart describing a functional operation of the subject matter.



DETAILED DESCRIPTION OF THE PRESENT INVENTION
We have asserted above that to compute y at a new set of controllable variables, say x′, one cannot simply plug x′ into the current f(x′,b*), which is based on the historical data, because there is no guarantee that the resulting y′ will satisfy the constraints on the dependent variable, g(y′)>0.
To insure satisfaction of the constraint at the new point x′, we propose to add f(x′,b) to the set of constraints (e.g., add gf(x′,b)>0 to the constraints), and re-run the mathematical program with the new set of constraints. Note that this may affect the resulting function f(x,b) even though no measurements at the new point x′ were performed or observed.
If it is desired to compute values of the dependent variable at several new points, then three cases may be considered:

    
    
        1) if the new points are ordered (e.g., forecasting), the preferred method is to perform sequential adding of the appropriate constraints;
        2) if the new points are not ordered, one can derive y for each new point based only on historical data and its own contribution to the set of constraints;
        3) alternatively, one can simultaneously derive y for all new points by adding all associated new constraints to the historical set.
    
    


As a specific example, consider the case of constrained linear regression where the constraint is on the dependent variable. In this case, the functional form is: y=b1x1+b2x2+e, where y represents the dependent variable (say overall design quality), x1 is an independent variables (say design efficiency), x2 is another independent variable (say design simplicity), b1 and b2 are model coefficients (to be determined), and e is a residual noise (to be minimized via adjustments of b1 and b2).
Historical data provide a set of y values and a numerical “design” matrix X, consisting of two columns (for x1 and x2). To perform the regression using the given set of observations y and the “design” matrix X, one preferably minimizes the square error (y−Xb,y−Xb) where b is a vector of b1 and b2. The regression preferably searches for optimal values of b which minimize the squared error. In addition, there are constraints on y, for example, y>0 (if y represents design quality than y>0 insures no negative quality values). One may also have constraints on x, for example x1>0 (if x1 represents design efficiency than x>0 insures no negative efficiency. The constraints on x1 are typical for linear programming problems. The constraints on y can be included only by replacing them with their functional estimates Xb. The problem, then, can be solved via linear programming routines, yielding optimized values of b1 and b2.
If, however, it is wished to predict y for a new point, not included in the historical set X (e.g., design quality computation at a new efficiency and simplicity levels), using the parameters derived from the historical data by plugging x1′ and x2′ result in y′=b1x1′+b2x2′ where y′ may be negative. In this case, the solution does not satisfy at least one constraint and is therefore incorrect. The solution provided in this invention guarantees consistent results satisfying all constraints. The solution entails adding a new constraint for the new point (e.g., b1x1′+b2x2′>0). Note that here a constraint has been added at a point that has not yet been observed, i.e., we are proposing to modify the resulting function (i.e., modify the coefficients b) to guarantee consistency, without observing y at the new point. In other words, we are adding a new constraint at the new point without adding the corresponding error term to the squared error to be minimized.
It is well understood that the computer system and method of the present invention can be implemented using a plurality of separate dedicated or programmable integrated or other electronic circuits or devices (e.g., hardwired or logic circuits such as discrete element circuits, or programmable logic devices such as PLDs, PLA, PALs, or the like). A suitably programmed general purpose computer, e.g., a microprocessor, microcontroller, or other processor devices (CPU or MPU), either alone or in conjunction with one or more peripheral (e.g., integrated circuit) data and signal processing devices can be used to implement the invention. In general, any device or assembly of devices on which a finite state machine capable of implementing the flow charts shown in the figure.

## Claims

1. A computer method for providing optimization for design processes for situations wherein there is defined a functional form y=f(x,b), where x comprises a set of independent controllable variables x={x1, . . . xn}, b comprises a set of functional parameters b={b1, . . . bm },and y comprises a dependent uncontrollable design variable, f(x,b) subject to constraints on the dependent uncontrollable design variable y, the method comprising:
converting, by said computer, the constraints on y to constraints on b by using a functional estimate of y and the design variables (parameters) b; 
optimizing, by said computer, the function f(x,b) subject to the converted constraints on the design variables (parameters) b; and 
generating, by said computer, from the optimizing function a set of optimized values of b which can optimize the dependent design variable y.

2. A computer method according to claim 1, further comprising:
computing, by said computer, the dependent design variable y at a new set of the independent variables x, said x not being part of an historical set of x variables inherited from the electronically optimizing the function.

3. A computer method according to claim 2, further comprising:
guaranteeing, by said computer, that the computed y satisfies the constraints on the dependent design variable y at the new set of independent variables.

4. A computer method according to claim 1, further comprising:
computing, by said computer, values of the dependent design variable at several new points of the independent variable x.

5. A computer method according to claim 4, further comprising:
determining, by said computer, that the new points are ordered; and 
sequentially adding, by said computer, the appropriate constraints.

6. A computer method according to claim 4, further comprising:
determining, by said computer, that the new points are not ordered; and 
deriving, by said computer, y at each new point based only on historical data and a contribution of y to the set of constraints.

7. A computer method according to claim 4, further comprising:
simultaneously deriving y for all new points by a step of adding all associated new constraints to the historical set.

8. A program storage device, readable by machine to perform method steps for providing optimization for design processes for situations wherein there is defined a functional form y=f(x,b), where x comprises a set of independent controllable variables x={x1, . . . xn}, b comprises a set of functional parameters b={b1, . . . bm}, and y comprises a dependent uncontrollable design variable, f(x,b) subject to constraints on the dependent uncontrollable design variable y, the method comprising:
converting, by said program storage device, the constraints on y to constraints on b by using a functional estimate of y and the design variables (parameters) b; 
optimizing, by said program storage device, the function f(x,b) subject to the converted constraints on the design variables (parameters) b; and 
generating, by said program storage device, from the optimizing, by said program storage device, the function, a set of optimized values of b which can optimize the dependent design variable y.

9. A computer for providing optimization for design processes, the computer comprising:
means for inputting data defining a functional form y=f(x,b), where x comprises a set of independent controllable variables x={x1, . . . xn}, b comprises a set of functional parameters b={b1, . . . bm}, and y comprises a dependent uncontrollable design variable, f(x,b) subject to constraints on the dependent uncontrollable design variable y; 
means for converting the constraints on y to constraints on x by using a functional estimate of y and the functional design variables (parameters) b; 
means for optimizing the function f(x,b) subject to the converted constraints on the functional design parameters b; 
means for generating, from the means for optimizing, a set of optimized values of the parameters b which optimizes the dependent design variable y; and 
means for displaying the set of optimized values of the parameters b and the resulting design variable y.

10. A method for optimizing design process, comprising: operating a computer to:
provide an independent controllable variable and a functional design parameter that together are a function of a dependent uncontrollable design variable, wherein the function is subject to constraints on the dependent uncontrollable design variable; 
convert the constraint on the uncontrollable design variable to a constraint on the functional design parameter by using a functional estimate of the uncontrollable design variable and the functional design parameter; and 
optimize the function subject to the converted constraint on the functional design parameter.

11. The method of claim 10, further comprising:
operating a computer to generate an optimized value of the functional design parameter which can optimize the dependent uncontrollable design variable.

12. The method of claim 10, further comprising:
computing the dependent uncontrollable design variable at a set of independent variables, said set of independent variables being different from an historical set of independent variables inherited from the operating a computer to optimize the function.

13. The method of claim 12, further comprising:
verifying that the computed dependent uncontrollable design variable satisfies the constraints on the dependent uncontrollable design variable at the new set of independent variables.

14. The method of claim 1, further comprising:
computing values of the dependent uncontrollable design variable at several new points of the independent variable.

15. The method of claim 14, further comprising:
determining that the new points are ordered; and 
sequentially adding the appropriate constraints.

16. The method of claim 14, further comprising:
determining that the new points are not ordered; and 
deriving the dependent uncontrollable design variable at each new point based only on historical data and the contribution by the dependent uncontrollable design variable to the set of constraints.

17. The method of claim 14, further comprising:
simultaneously deriving the dependent uncontrollable design variable for all new points by electronically adding all associated new constraints to the historical set.

18. A computer-readable medium having computer-executable instructions for performing a method for optimizing design process, comprising:
providing an independent controllable variable and a functional design parameter that together are a function of a dependent uncontrollable design variable, wherein the function is subject to constraints on the dependent uncontrollable design variable; 
converting the constraint on the uncontrollable design variable to a constraint on the functional design parameter by using a functional estimate of the uncontrollable design variable and the functional design parameter; and 
optimizing the function subject to the converted constraint on the functional design parameter.

19. The computer-readable medium of claim 18, further comprising:
generating an optimized value of the functional design parameter which can optimize the dependent uncontrollable design variable.

20. The computer-readable medium of claim 18, further comprising:
computing the dependent uncontrollable design variable at a set of independent variables, said set of independent variables being different from an historical set of independent variables inherited from the operating a computer to optimize the function.