OPTIMAL SELECTION OF BUILDING COMPONENTS USING SEQUENTIAL DESIGN VIA STATISTICAL BASED SURROGATE MODELS

A surrogate model to a building simulation model is built and used for finding a combination of building components that optimize energy use in a building. The surrogate model may be built iteratively using design points comprising a different combination of building product properties that maximize a predefined expected improvement function.

DETAILED DESCRIPTION

An embodiment of the present disclosure generates a statistical surrogate model for an energy simulation model and updates this model using new observations based on a sequential design of experiments. At the beginning of the algorithm, the energy simulation model may be executed on an original space-filling design in order to build a statistical surrogate model in the form of a response surface defined on the input space of the energy simulation model. An expected improvement function then may guide the search for the optimal combination in a sequential design step: A new design point may be defined as the vector of input parameter values that maximizes a predefined expected improvement function. The energy simulation model may be then executed at the new design point and the surrogate model may be updated to incorporate the result at the new design point. The algorithm may iterate between the surrogate model building step and the sequential design step, e.g., until the increase of the expected improvement function becomes negligible (e.g., meets a defined threshold). The statistical surrogate model may allow for faster estimation of the building's optimal energy consumption by reducing the number of energy simulation model runs required, and hence also allow for reduction in computational cost. The approach of the present disclosure in one embodiment reduces the computational complexity involved in the building simulation models.

Generally a simulation model describes an input-output relationship. As the model gets exceedingly complex, the simulation model is often treated as a “black box”. A surrogate model of the present disclosure in one embodiment may be built using the Gaussian surface approach which provides scalar output. A Gaussian process is assumed as the prior distribution of the simulation model. Given a collection of runs obtained by executing the simulation model, applying the Bayesian updating mechanism of learning, an embodiment of the present disclosure may obtain the posterior distribution of the simulation model. The posterior distribution may be then used as a surrogate model to the simulation model. For example, at any untried input values, an embodiment of the present disclosure can obtain the posterior distribution of the corresponding simulation model output. The surrogate model of the present disclosure in one embodiment may provide a mean estimate of the simulation output, and also the associated uncertainty at the new input.

In another aspect, a surrogate modeling in the present disclosure may utilize a nonparameteric model which may include space-filling designs such as maximum distance designs and Latin Hypercube designs, derived to minimize distances such as the distance between an arbitrarily selected point and the training points in the input space. In yet another aspect, an embodiment of the present disclosure may utilize a sequential design strategy of computer experiments in providing a building simulation model. Under the sequential design strategy, inputs are selected sequentially so that improvements over the current optimal input are expected to be large. A sequential design uses fewer runs of the simulation model, thus reducing building simulation related computational cost.

Generally, a methodology of the present disclosure in one embodiment may comprise an initial design of experiment, the construction of a statistical surrogate model, and a sequential design approach for search of an optimal solution. Such methodology may find an optimal combination of building envelopes that minimize energy consumption in buildings. For example, a building enclosure design using sequential design methodology via one or more statistical surrogate models of the present disclosure in one embodiment may minimize energy consumption, for instance, Energy Use Intensity (EUI), which is defined as energy use per floor area.

Consider the following scenario as an example to illustrate a methodology of the present disclosure in one embodiment. In search of an optimal envelope design, a high dimensional variable space may be considered that comprises alternative materials for the external wall insulation, roof insulation, different glazing types and different infiltration levels. The variables under consideration in this example and their corresponding example ranges are listed in Table 1. The insulation materials' R values are obtained from manufacturers' product catalogues. The upper bound of the wall insulation thickness is the thickness required to obtain an R value of R-60. The thickness range of the roof insulation is based on the thickness required to achieve an overall R value of R-5 to R-90. The infiltration range is selected based on infiltration values in reference building models for offices. The properties of the glazing materials are obtained from a database of 2695 types of glass available from manufacturers. The variables related to glass are taken as categorical variables, and can only take the combination of values represented among the 2695 types. Since optical properties of glass are interrelated, constraints on these variables are also defined. Given the above example, a formulation of an optimization problem may be defined as follows:

where, X⊂Pp, p=15 is the vector of independent variables, as listed in Table 1.
EUI:X→P is the cost function, given input vector x. L,U⊂PPare the lower and upper bounds of the variables, which are listed in Table 1.

Table 1 below illustrates an example of the variable space for optimal building envelope design, and the ranges of the variables.

Computational cost is a limitation for efficiently employing a simulation model for building design and retrofit. Computation time of building energy simulation is dependent on the complexity of building configurations such as building geometry and mechanical systems, and the algorithm used in the simulation program. Simulation time for a single model typically ranges from a few minutes (4 to 5 minutes) to more than an hour. An exhaustive search that would run a simulation model for all possible combinations of materials/components (e.g., 2695 possible feature combinations for glass material, combined with continuous values for wall and roof materials) is expensive and may not be feasible. To overcome this difficulty, an embodiment of the present disclosure introduces a statistical surrogate modeling approach.

In the present disclosure in one embodiment, a statistical approach such as the Gaussian Response Surface Approximation (GASP) method may be used to handle computationally expensive deterministic simulation models (e.g., EnergyPlus™ simulation model). It treats the simulation model as an unknown function describing the input-output relationship between model parameters and EUI. A Gaussian process is then assigned as the prior distribution of the unknown function. Initial runs of the simulation model are selected according to a specified design criterion. The corresponding outputs, together with their inputs are then used to update the posterior distribution of the unknown function. This yields a response surface of the simulation model over the entire input parameter space, which provides the predictive distribution of the simulation model at any model input. The response surface, or the predictive distribution of the simulation model, is referred to as a statistical surrogate model to the simulation model. Evaluating the response surface is very fast, and therefore, the surrogate model may be used for further analysis, instead of the computationally expensive simulation model. For example, the response surface is evaluated in real time, for instance, given a set of input, the corresponding output is obtained in real time. In one aspect, no physical simulation need be performed when evaluating the response surface; Physical simulation is only performed during the construction of the response surface. For instance, the response surface takes a number of sets of inputs and corresponding outputs obtained by running the physical models. Then a model similar to regression models may be built to capture the relationship between the inputs and outputs. The next time a set of input is received, instead of running the physical model, the response surface model provides an estimate of the output corresponding to the given input.

where μ is the mean, σ2is the variance, and c(•,•) is the correlation function of the Gaussian process GP(μ,σ2c(•,•)). The Gaussian process models data observed over space. It has the property that the joint distribution of Y(•) at a finite set of points x1, . . . , xnhas a n-dimensional multivariate normal distribution, for which the covariance between Y(xi) and Y(xj) is equal to σ2c(xi, Xj). In the present disclosure, a separable form of the correlation function is defined as

Where: βkand αkare statistical parameters that will be estimated by the data.

Let X=(x1, . . . , xn) be a design of the input parameters (e.g., a collection of input vectors) and Y be the vector of corresponding outputs. Consider a specific input x at which Y(x) has not been observed. Let ρ be the n-dimensional vector with the i th element c(x, xi) and Σ be the n×n matrix with the (i, j) element c(xi, xj). The posterior predictive distribution for Y(x) can be written as

where

The model parameters may be estimated in the Gaussian process using a statistical software tool, e.g., R (R Core Team 2012), more specifically, mlegp function in R. Mean and variance in (1) can be evaluated at all possible input vector at negligible computational cost. This Gaussian process represents a response surface which models the input output relationship, providing a statistical surrogate model to a simulation model.

To build the initial surrogate model, an initial design is obtained for a simulation model. The initial design is set of inputs for the building energy simulation model (EnergyPlus™). With our example problem setting of 15 parameters, we will use 100 set of inputs as initial design. One set of parameter values (xδR15) is called a design point in the initial design space (Rp). The following will describe the method to obtain the initial design of 100 points as an example.

When there is no prior information on the functional behavior of the response, it is appealing to spread out design points uniformly over the input space, as interesting features of the simulation model are equally likely to appear across the input space. Briefly, design points refer to sample input points to the simulation model, e.g., various combinations of building product components. A space-filling design is used in one embodiment of the present disclosure for initial planning of an energy simulation.

For xi,xjεRP, let d be the Euclidean distance defined by

A criterion function based on d is

with a positive integer λ. Note that a design X* minimizing ((3)) for λ=∞ is called maximum distance design and satisfies

An initial design may be obtained for a given λ by first generating a random design and then sequentially improving the overall design via optimizing the maximum distance of one individual point while fixing the remaining points. For a design X of n runs, define Xito be a design of n−1 points (excluding the i th point), and define Xi(x) as design Xiaugmented by a new input x. Therefore the minimum distance of all the design points φλ(Xi(x)) (Equation 3) is a function of x only, as the remaining n−1 points are fixed. Now n reduced Siproblems (the problem of finding the xithat maximize the minimum distance of all the points in the initial design space) is presented as

Let x* be the solution of Siand Xi* the design Xiaugmented by x*.

Algorithm 1 illustrates a pseudo code that may implement an initial design of a surrogate model in one embodiment of the present disclosure.

Each Siis solved as one xiis updated at a time. The selection of λ may depend on the specific problem, such as the dimension and size of the design. The constrained optimization for Simay be performed, e.g., using a computer-implemented statistical tool (e.g., R Core Team), for instance, constrOptim function in R.

Once the initial design is established, for example, as described above, a sequential design process may take place. For instance, the response surface of the surrogate model is utilized to solve the global optimization problem of finding the optimal combination of building components. The search space may be explored according to a strategy that balances local and global search. On the one hand, the search should explore component combinations that promise the lowest EUI according to the surrogate model. Following this strategy would however may result in a local minimum close to observed locations in the search space. Globally, on the other hand, it may be preferable to explore areas in the search space where uncertainty about the response behavior is still great. In one embodiment of the present disclosure, the two positions may be balanced using the concept of expected improvement, e.g., by the following expectation, for a given input vector x (building component thermal parameters, to be used in the building energy simulation model):

where ymin=min{Y} is the smallest function value among all observed responses. Here, yminrepresents the smallest EUI and Y represents current EUI. The different Y values are produced by different surrogate models resulting from different design points. In the case of a Gaussian process response surface, this expectation can be computed as

using the parameter estimates derived according to Equation (1). Here, Φ is the distribution function of a standard normal distribution, and φ is the corresponding density function. Y values represent EUI, and x values represent the building component parameters.

As an example,FIGS. 5A and 5Bvisualize the tradeoff between local minima and uncertainty about the fitted surrogate model for a one-dimensional function ƒ. InFIG. 5A, the X-axis represents the input parameters in 2-dimensional (2-D) space, and the Y-axis represents the function values.FIG. 5Ashows a fitted model (dotted line) of an unobserved function (solid line) plotted along standard error estimates for fitted values (dashed line,FIG. 5A)).FIG. 5Bshows the unobserved function (solid line) contrasted with expected improvement (grey line,FIG. 5B)). InFIG. 5B, X-axis represents the input parameters in 2-dimensional (2-D) space, and the Y-axis represents the expected improvement. Red dots represent the observed responses that have been obtained by evaluating ƒ at selected sample points. Based on the fitted response surface (dotted line) only, one might expect the minimum of ƒ to be at x=9.4. However, the uncertainty about the response, expressed as the standard error of the fitted value {circumflex over (μ)}(x), is greatest between 2 and 4 (dashed line inFIG. 5A). The expected improvement according to Equation (7) is represented as a grey line inFIG. 5B. Balancing uncertainty about the response and a small value of {circumflex over (μ)}(x) leads the search algorithm to suggest a new exploration point at x=2.6, the point at which the expected improvement is maximized.

To find the x* which maximizes the expected improvement, available functions for optimization of continuous functions with constraints, such as the function optim( ) in R may be used, using the method=“L-BFGS-B” option for the Brouden, Fletcher, Goldfarb and Shanno method with box constraints. In this particular example, however, the variables encountered are discrete, and only K=2695 distinct combinations of these variables (“slices”) were used. The combination of variables that leads to the greatest expected improvement may thus found in two stages. Let X(k)be the feasible space of parameter values in which the variables corresponding to the discrete product (e.g., glass) characteristics are fixed at combination k, kε1, . . . , K. In the first stage, for each k, an expected improvement may be maximized over all continuous variables. In the second stage, the maximum expected improvement may be compared across all slices and the combination with the greatest expected improvement may be chosen.

Algorithm 2 illustrates a pseudo code for finding an optimal combination of building components in an iterative fashion. After fitting the surrogate model to the observations obtained at the initial design X, the optimization stage finds the new design point x* that maximizes the expected improvement across all slices. Slices refer to discrete variables, for example, the discrete variables may be data points in 1-D (dimension), lines in 2-D, surfaces in 3-D, and etc. A simulation model such as EnergyPlus™ then may evaluate the model at the new design point, and the new response Y(x*) is added to the data set. The surrogate model is refit to the augmented data, and the steps of optimization, model simulation and surrogate model rebuilding are iterated until one of several stopping criteria is met. A stopping criterion may be that the expected improvement is smaller than a threshold value. For example, if the expected improvement of a new variable combination is (a) less than a small fraction ta(e.g., 1%) of the current minimum EUI or (b) smaller than a pre-defined meaningful threshold tb(e.g., 0.05), the search terminates. For practical reasons and limitations on total computation time of the entire search, the search may also be stopped if it has not resulted in any actual improvement of EUI in a given number of simulations, or has exceeded an acceptable number of iterations.

The methodology of the present disclosure, including e.g., the Algorithms 1 and 2 above, may run in R (R i386) and EnergyPlus™ on, for example, Windows™ 7 machine with Intel Core Duo™ CPU @ 2.40 GHz processor.

A statistics and physics based sequential design method of the present disclosure may provide recommendation of optimal combination of building products that minimize investment and operating cost over product life span, incorporating for example, factors such as degradation of material and product properties. Material degradation affects the energy use, and therefore, the analysis in one one embodiment of the present disclosure also takes into account the material degradation and the associated uncertainty. An example objective function for such optimization may be defined as follows:

where wtrepresents energy unit price at year t; xtrepresents material properties at year t; yM(•) represents energy simulation model; and RC(•) represents retrofit cost. EU represents energy consumption under parameter set xtat year t, where parameter set xt=(xt1, xt2, . . . , xtt) includes, but not limited to:
xt1—building type (e.g., large office, full service restaurant, etc);
xt2—building size (e.g., sq. ft.);
xt3—building address (e.g., used to get weather information for the building energy simulation model)
Xt4—building built year (e.g., before 1980, after 1980, new construction)
Xt5—user preference set point temperature for summer and winter;
xt6, xt7, . . . , xtk—building components properties (each building component has a set of predefined properties).

An optimal combination of building products may be expressed as x=argminxƒ(x). In the above example objective function, in one embodiment of the present disclosure, yM(•) is evaluated by the surrogate model of the present disclosure.

FIG. 1illustrates an overview of a statistics optimization methodology of the present disclosure in one embodiment. As described in detail above, a surrogate model102may be built based on initial design and also using a sequential design technique. The surrogate model102may be initially built using a space-filling design104of experiments in the input space for initial planning of an energy simulation. The initial design may comprise space-filling design of experiments in the input space104, which is used to run a building simulation model106, which in turn produces the energy use estimation at those design points108. The space-filling design points106and the corresponding energy use estimation108are used to estimate the model parameters, e.g., in the Gaussian process, which models the an input-output relationship (the surrogate model)102. Degradation information110about various materials may be obtained from material time series data112. The surrogate model102and the degradation information110may be used to build an objective function (e.g., shown above) that incorporates the material degradation during its life cycle. Response surface of expected improvement function for cost saving over a considered time period114is obtained. As described above, the expected improvement function balances the local and global search. If the response surface114of this current simulation run does not converge (e.g., with respect to the previous response surface obtained from a previous iteration run of the simulation model), additional design points116are obtained, and the simulation model106is run with the additional design points116. The additional design points116are those that maximize the expected improvement. The energy use estimation at the new design point118output from the simulation106is used with the previous output108in modeling parameters in the Gaussian process, and the surrogate model102is updated or rebuilt with this new input-output relationship of the Gaussian process. On the other hand, if the response surface of expected improvement function for cost saving over the considered time period114converges, the last set of input combination is output120or recommended as an optimum combination of building components.

In another aspect, the iteration of rebuilding the surrogate model may stop, even if there is no convergence at114, e.g., based on a different criterion. Examples of such criterion may include, but not limited to: a defined maximum number of iterations has exceeded, no actual (or very small) improvement of EUI in a given number of iterations, and others.

FIG. 2illustrates a method for initial design in statistical surrogate modeling in one embodiment of the present disclosure. For instance, the components shown inFIG. 1at122may perform the methodology. At202, initial design of experiments at various combinations of building product properties may be created by space filling design. At204, a simulation manager tool is used to obtain the energy performance simulation results at initial design points. The energy performance simulation results may be annual results, or another periodic results. At206, the initial statistical surrogate model is built based on the initial design and the associated outputs, e.g., by the Gaussian process approach as follows: y(•)˜(μ,σ2c(•,•)), where μ is the mean, σ2is the variance, and c(•,•) is the correlation function of the Gaussian process. At208, the resulting surrogate model represents a response surface, taking the following form: ŷ(x)˜N({circumflex over (μ)}(x),{circumflex over (V)}(x)). For example, ŷ(x) would represent energy consumption estimate of a building when the building components x are installed in the building, and {circumflex over (μ)}(x) would represent the mean of the estimate, and {circumflex over (V)}(x) is the variance of the estimate.

FIG. 3illustrates a method for sequential design in statistical surrogate modeling in one embodiment of the present disclosure. For instance, the components shown inFIG. 1at124may perform the methodology. The exploration of the design space for optimization may be guided by the expected improvement function in one embodiment of the present disclosure. An example of the improvement function (expected reduction in energy consumption) may include: I(x)=max (fmin−f(x), 0). Here, fminrepresents the minimum of the energy consumption computed according to the objective function using a surrogate model refitted from iteration to iteration; f(x) represents the current energy consumption computed in the current iteration according to the objective function using the current surrogate model. Expected improvement is expressed as E[I(x)]. At302, a statistical surrogate model with initial design, e.g., built in accordance with the method shown inFIG. 2, may be used. At304, additional simulation points are designed. Additional simulation points may be those that maximize an expected improvement function. At306, a simulation model (e.g., building simulation tool such as EnergyPlus™) is run with the additional simulation points as input, and energy performance simulation results are obtained as output. At308, the expected improvement function, e.g., based on an object function is evaluated. In this example, the objective function is to minimize energy consumption of the building, and expected improvement is the uncertainty in the computed energy consumption. Thus, for example, energy consumption is computed using the objective function that incorporates a surrogate model, for each surrogate model. Then energy consumption improvement (or reduction) may be compared for each of the surrogate model. At310, it is determined whether there is converging of improvement in data. If it is determined that the improvement is converging, at312, the design points used in the latest simulation are output as recommended combination of building components. If it is determined that the improvement is not converging, the logic of the method returns to304, where additional simulation points are designed, and the processing at306,308,310are repeated. The energy performance simulation results at additional design points may then be used to update the surrogate model.

In one embodiment of the present disclosure, a degradation manager component (e.g., shown inFIG. 1at110models the degradation of materials as xi,t=ρixi,t-1+εi,t, e.g., based on collected data associated with the building component materials, wherein xi,trepresent i-th building property at year t, ρirepresents annual (or periodic) degradation factor for the i-th building property, εi,trepresents error or uncertainty associated with a respective i-th building property at year t. For instance, wall insulation and roof insulation may have properties such as thickness and R-value which may degrade over usage and time; infiltration material may be measured by building infiltration factors that also may degrade over time; glass material may have u-factor and solar heat gain properties that may degrade over time. Other building materials may be also considered.

A statistical sequential design for search of good combination of the building products that minimize energy cost function in one embodiment of the present disclosure uses a surrogate model, which reduces computation time. In another aspect, the use of the statistics based surrogate model for physics based simulation models may enable real-time evaluation of energy cost function of combination of building components. Yet in another aspect, material degradation factors over the product life span may be incorporated. Still yet in another aspect, the uncertainty in the material degradation over the product life span may be incorporated. The uncertainty resulting from material degradation may be propagated by performing Monte Carlo studies or the like.FIG. 4illustrates computation of input uncertainty in material degradation in one embodiment of the present disclosure. The term at402represents initial inputs. The terms at404represent material degradation sample trajectory. The terms at406represent a surrogate model. The terms at408represent trajectory expected improvement. e.g., in Jones, Schonlau and Welch, where

In another aspect of the present disclosure, a computer aided design (CAD) interface may be provided that allows users to select building products from catalogs, e.g., by dragging and dropping the product on a building design, in obtaining suggestion on a good combination of product which minimizes the total spending on investment and operation cost. The CAD interface also may enable user to select building products from catalogs, by dragging and dropping the product on a building design, to obtain real-time evaluation of the corresponding energy performance. The CAD interface further may provide decision support on the good combination of product which minimizes the total spending on investment and operation cost. In addition, the CAD interface may allow a manufacturer to register one or more products and publish real-time energy performance evaluation to customers.

FIG. 6is a flow diagram illustrating a method for service rendering, e.g., via a CAD interface, for statistic surrogate model in one embodiment of the present disclosure. At602, ranges are defined for possible user specified input parameters. At604, space filling experiments are designed for the user specified input parameters and simulation models are run at each design point. At606, a surrogate model is built for each product with the designed experiments. The processings at602,604and606build product specific surrogate models.

At608, one or more input parameters from customers (building characteristics) are obtained for the given query product (e.g., user specified product). At610, it is determined whether the input parameter is in the current design space (i.e., the design points used to build the surrogate model. If not, the processing returns to602, where the ranges for possible user specified input parameters is redefined, and the processing of604and606repeated. If at612, it is determined that the input parameter is in the current design space, the surrogate model is used to obtain the energy performance results for the query product. At614, the energy performance results for similar products using the corresponding surrogate models are obtained. For example, the corresponding surrogate models may have been built according to the processing shown at602,604and606. At616, the energy performance of the current query product may be rated based on the annual (or specified periodic) energy consumption performance estimation compared among all similar products.

FIG. 7illustrates a method for service rendering model for building energy simulation model composer in one embodiment of the present disclosure. At702, a set of templates is maintained for different building types and different simulators. The templates include input parameter formatting information to the respective different simulators. At704, inputs are obtained. Examples of inputs may include but are not limited to, building type, square footage, building year, product properties, address of the building, environment context, and others. At706, a type of report to generate is specified, for example, detailed report, fast estimation, e.g., based on user input. At708, based on the requested report type, a building simulation tool is selected to perform the building energy simulation. At710, building simulator and simulation templates are selected based on the input values, for example, building type, building built year and address. At712, the simulation model is prepared and scaled as needed to meet the input of the building square footage, and the product properties are applied. At714, the selected building energy simulation tool is run to perform the energy performance simulation with the generated model, i.e., prepared at710and712. The building energy simulation tool may be run with a surrogate model as described above.

FIG. 8illustrates a service usage model in one embodiment of the present disclosure. For instance, the service provided according to the method shown inFIG. 8may be used for building material manufacturers. At802, one time registration of the manufacturer is performed for the evaluation service. At804, whether a manufacturer is registered is determined. If not, the registration is performed at802. At804, if the manufacturer is registered, it is determined at806, whether the product is to be registered or unregistered. For product that is to be registered, the logic of the method proceeds to808. At808, registration of the product with a provided template is performed. At810, a manufacturer provided website link is received. At812, product selection is received from a user of the manufacturer website. Building characteristics are input (e.g., building type, year of construction square footage, address (climate), and/or others. A module on a manufacturer's website may allow user input. At814, it is determined whether the product is registered. If not registered, the logic of the method returns to808. If registered, the processing proceeds to816. At816, building simulation with surrogate model (e.g., as described above) is performed, and performance rating and energy consumption information is returned. At818, if additional products remain to be evaluated, the logic of the method returns to812. Otherwise, the evaluation stops. If at806, the product is to be unregistered, at820, the product is unregistered, for example, by determining at822whether the product is currently registered, and if so at824unregistering the product.

FIG. 9is a flow diagram illustrating a service rendering model for manufacturers' websites in one embodiment of the present disclosure. At902, product property templates associated with different products are maintained and/or published. For each product, the template may be different. For a given product the template may comprise a list of properties that are related to building energy consumptions. At904, a manufacturer and associated one or more manufacturer's products may be registered based on the templates. At906, the product information for registered manufacturers is maintained and/or recorded. At908, a request is received from a manufacturer, e.g., via one or more application program interfaces for energy performance rating service. At910, it is determined whether a product associated with the request is registered. If not, the process returns to904, where the product and/or the associated manufacturer is registered. At910, if it is determined that the product is registered, at912, building energy simulation is run (e.g., with a surrogate model) as described above to compute the energy performance, and the energy performance rating of the product is returned. The ratings may be based on how the product's energy performance fares with other products or other similar products.

Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages, a scripting language such as Perl, VBS or similar languages, and/or functional languages such as Lisp and ML and logic-oriented languages such as Prolog. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).