Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SYSTEM AND METHOD FOR USER DATA INPUT TO MODIFY OPERATING MODE CONFIGURATIONS
Document Type and Number:
WIPO Patent Application WO/2020/228929
Kind Code:
A1
Abstract:
A computer-implemented method, computer program product and computer system (100) for editing a configuration of a physical entity (30) to configure a future operating mode of a physical entity. A GUI component (200) provides a visual representation of a two-dimensional state space with an optimal switching boundary (SBo) separating first and second adjoined regions (OM1o, OM2o) with each region including potential states belonging to a corresponding operating mode (OM1*, OM2*) of the physical entity in an optimal configuration. A first graphical result object (RO1) associated with the optimal switching boundary (SBo) and characterizing the optimal configuration with regards to a predefined objective is provided to the user (10). The user performs a drag action (DA1) on the optimal switching boundary (SBo) to modify the switching boundary shape resulting in a modified switching boundary (SBm) reflecting a modified configuration with a modified transition behavior of the physical entity between the corresponding operating modes (OM1*, OM2*). A second graphical result object (RO2) characterizing a modified configuration with regards to the predefined objective is then provided to the user.

Inventors:
MALAMUD SEMYON (CH)
Application Number:
PCT/EP2019/062080
Publication Date:
November 19, 2020
Filing Date:
May 10, 2019
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ECOLE POLYTECHNIQUE FED LAUSANNE EPFL (CH)
International Classes:
G05D23/19; G06F3/0484
Foreign References:
US20140039692A12014-02-06
US20150378373A12015-12-31
US20160161960A12016-06-09
Other References:
None
Attorney, Agent or Firm:
BITTNER, Peter et al. (DE)
Download PDF:
Claims:
Claims

1. A computer-implemented method (1000) for editing a configuration of a physical entity (30) to configure a future operating mode for the physical entity, the physical entity configured to operate in at least two operating modes, the method comprising: providing (1200), via a graphical user interface device (200), a visual representation (300) of a two-dimensional state space with each two-dimensional value pair (Dx, Dy) of the state space corresponding to a potential state of the physical entity (30); determining (1300) an optimal switching boundary (SBo) separating, in the visual representation, first and second adjoined regions (OMlo, OM2o) with each region including potential states belonging to a corresponding operating mode (OM1*, OM2*) for the physical entity in an optimal configuration, the optimal switching boundary being the outcome of an optimization for switching between the corresponding operating modes to achieve a predefined objective, with the optimal switching boundary (SBo) being associated with a first graphical result object (ROl) provided to a user (10) wherein the first graphical result object (ROl) represents a single optimal value (SOV) characterizing the outcome of the optimization with regards to the predefined objective; receiving (1400) for the optimal switching boundary (SBo), via a drag action (DAI), a user defined input to modify the switching boundary shape resulting in a modified switching boundary (SBm) reflecting a modified configuration with a modified transition behavior for the physical entity between the corresponding operating modes (OMl*, OM2*); determining (1500) a single modified value (SMV) reflecting the impact of the modified switching boundary (SBm) in relation to the single optimal value (SOV), by: computing for each path of a plurality of possible paths in the state space a corresponding value which is comparable with the single optimal value, wherein each possible path of the plurality is associated with a weight reflecting its probability of being realized in the real world, and averaging the computed corresponding values by taking into account the weights of the respective paths; and providing (1600) to the user (10) a second graphical result object (R02) representing the single modified value (SMV) characterizing the modified configuration with regards to the predefined objective.

2. The method of claim 1, wherein the weights of the possible paths are determined with a statistical technique selected from any one of the following: maximum likelihood estimation, Bayesian updating of probabilities, linear and non-linear regression methods, neural networks, or other parametric and non-pa rametric statistical methods.

3. The method of claim 1 or 2, wherein, in addition to the single optimal value, one or more further values of average characteristics of the optimal configuration in the form of a value vector of average characteristics of the configuration are provided to the user as a first graphical result object vector, with the determining step (1500) further comprising: determining for each value vector element corresponding to a specific characteristic of the configuration a corresponding modified value reflecting the impact of the modified switching boundary (SBm) on the specific characteristic of the configuration; and with the providing step (1600) further comprising: providing to the user a second graphical result object vector representing all determined modified values characterizing the modified configuration with regards to the predefined objective.

4. The method of any of the previous claims, further comprising: receiving (1700) a selection of the optimal configuration or of the modified configuration; and deploying (1800) the selected configuration to the physical entity (30) or to a control unit associated with the physical entity to be operated in accordance with the selected configuration.

5. The method of any of the previous claims, wherein the outcome of the optimization satisfies user-specified constraints.

6. The method of any of the previous claims, wherein the current switching boundary is represented by a polygon defining where a state transition from a potential state of the first region to a potential state in the second region indicates a transition of the physical entity from a corresponding first operating mode to a corresponding second operating mode, and wherein the received drag action modifies the location of at least one vertex of the polygon.

7. The method of any of the claims 1 to 5, wherein the received drag action modifies the switching boundary by using a drag function wherein a move of one point on the switching boundary curve triggers a movement of a neighboring subsection of the curve.

8. A computer program product comprising instructions that, when loaded into a memory of a computing device and executed by at least one processor of the computing device, execute the method steps of the computer implemented method according to any one of the previous claims.

9. A computer system (100) for editing a configuration of a physical entity (30) to configure a future operating mode of the physical entity, the physical entity configured to operate in at least two operating modes, the system comprising: a graphical user interface component (200) configured: to provide a visual representation (300) of a two-dimensional state space with each two-dimensional value pair (Dx, Dv) of the state space corresponding to a potential state of the physical entity (30) with an optimal switching boundary (SBo) separating, in the visual representation, first and second adjoined regions (OMlo, OM2o) with each region including potential states belonging to a corresponding operating mode (OM1*, OM2*) of the physical entity in an optimal configuration; to provide a first graphical result object (ROl) to the user (10), the first graphical result object associated with the optimal switching boundary (SBo) and characterizing the optimal configuration with regards to a predefined objective; to receive a drag action (DAI) performed by the user on the optimal switching boundary (SBo) to modify the switching boundary shape resulting in a modified switching boundary (SBm) reflecting a modified configuration with a modified transition behavior of the physical entity between the corresponding operating modes (OM1*, OM2*); and to provide a second graphical result object (R02) characterizing a modified configuration with regards to the predefined objective; an optimizer component (120) communicatively coupled with the graphical user interface component (200), configured: to determine the optimal switching boundary (SBo) as the outcome of an optimization for switching between the corresponding operating modes to achieve a predefined objective, and to determine a single optimal value (SOV) characterizing the outcome of the optimization with regards to the predefined objective, the single optimal value being represented by the first graphical result object; and an averager component (130) communicatively coupled with the graphical user interface component (200), configured: determine a single modified value (SMV) reflecting the impact of the modified switching boundary (SBm) in relation to the single optimal value (SOV), by: computing for each path of a plurality of possible paths in the state space a corresponding value which is comparable with the single optimal value, wherein each possible path of the plurality has the same start and end point as the modified switching boundary and is associated with a weight reflecting its probability of being realized in the real world, and averaging the computed corresponding values by taking into account the weights of the respective paths; the single modified value being represented by the second graphical result object.

10. The system of claim 9, further comprising: a checker component (140) configured to evaluate if the modified configuration is executable under real-world conditions.

11. The system of claim 9 or 10, wherein the graphical user interface component (200) is further configured: to receive a selection for the dimensions of the two-dimensional state space.

12. The system of any of the claims 9 to 11, further configured to: receive a selection of the optimal configuration or of the modified configuration; and deploy the selected configuration (cl) to the physical entity (30) to operate the physical entity in accordance with the selected configuration.

13. The system of any of the claims 9 to 12, wherein the optimizer is configured to determine at least two optimal switching boundaries for the optimal configuration of the physical entity in case the physical entity operates in at least three operating states, wherein the received drag action affects the at least two optimal switching boundaries resulting in at least two modified switching boundaries, and wherein the averager takes into account the at least two modified switching boundaries when computing the single modified value.

14. The system of any of the claims 9 to 13, wherein received drag action modifies the switching boundary by using a magnetic drag function.

15. The system of any of the claims 9 to 14, wherein the current switching boundary (SBc) is represented by a polygon defining where a state transition from a potential state of the first region (OMlc) to a potential state of the second region (OM2c) indicates a transition of the physical entity from a corresponding first operating mode (OM1*) to a corresponding second operating mode (OM2*), and wherein the received drag action (DAI) modifies the location of at least one vertex of the polygon.

Description:
System and Method for User Data Input to Modify Operating Mode Configurations Technical Field

[0001] The present invention generally relates to electronic data processing, and more particularly, relates to methods, computer program products and systems for improving data input by a user to modify configuration settings for physical entities.

Background

[0002] In many real-world situations, human users are confronted with the technical task to select configurations of physical entities so that the physical entity switches between various operating modes to reach a desired state. Unless a human user exactly understands the behavior of the physical entity, it is difficult for the user to select an optimal configuration for the real world to achieve the desired state when there are other constraints or objectives to be met. For example, a heating curve for a smart home can easily be chosen by the user to reach a certain room temperature at a certain point in time. However, if the user is supposed to select a configuration for the heating device which achieves the desired room temperature by, at the same time, minimizing the energy consumption, then the user is confronted with a problem which cannot be solved without support of computer systems.

Summary

[0003] There is a need to provide systems and methods enabling a robust user interaction with a data input device supporting the user to select a configuration for a physical entity under given constraints. Robust user interaction, as used herein, refers to an interaction between a user and a computer system with reduced likelihood for user inputs which lead to a more or less random configuration of the physical entity in view of a particular objective without acknowledging the impact of the configuration on said objective. In other words, robust user interaction is achieved when the interaction of the user with the data input device allows the user to select a configuration based on an informed decision that takes into account the impact on the decision on a predefined objective for the physical entity.

This problem is solved by the features of the independent claims. [0004] In one embodiment, a computer-implemented method is provided for editing a configuration of a physical entity to configure a future operating mode for the physical entity. The operating mode may relate to the physical entity itself or it may relate to a component which controls the physical entity. Examples of physical entities relate to entities with a control for switching operating states of the physical entities and include (but are not limited to) electrical devices, heater devices, vehicles, devices for storing data records in data structures, etc. In the following sections the example of an electrical device (e.g., a heating control device) as a physical entity is used. However, this example is used for explanatory purposes only with no intention to limit the scope of the claims. A person skilled in the art is able to transfer the teachings to any other appropriate physical entities with respective parameters.

[0005] The user interacts with a computer system via a graphical user interface (GUI) component. Such a GUI component may be, for example, the screen of a smart phone or tablet computer with a touch screen or it may be a monitor of a personal computer which allows the manipulation of displayed graphical objects via input means such as a keyboard or mouse device. Via the GUI component a visual representation of a two-dimensional state space is provided to the user. Each two-dimensional value pair of the state space

corresponds to a potential state of the physical entity. The two dimensions of the state space correspond to two parameters along which the development of the state of the physical entity can be described. For example, the first dimension may reflect the

temperature of the physical entity and the second dimension may be the elapsed time. In such a state space, each value pair describes the object's potential temperature at a given time.

[0006] The dimensions of the two-dimensional state space may be predefined for certain configuration scenarios. For example, the GUI component may be a part of an application specific configurator where the dimensions are fixed. In one embodiment, the GUI component may be configured to receive a selection for the dimensions of the two- dimensional state space from a user or from another system. In such an embodiment, the configurator can be adapted to handle multiple configuration scenarios and the user may select a configuration scenario by selecting the dimensions of the state space from predefined configuration scenarios with predefined combinations of dimensions. [0007] An optimization module of the computer system determines an optimal switching boundary which separates, in the visual representation, first and second adjoined regions. Thereby, each of the regions includes (or represents) potential states which belong to a corresponding operating mode for the physical entity in an optimal configuration. In other words, the optimal switching boundary identifies potential states of the physical entity where a transition from a first into a second operating mode (or vice versa) occurs. For example, assuming a state space with the dimensions room temperature and time for a particular room and two operating modes (on, off) in relation to the heating system for the room, the switching boundary illustrates that for any room temperature on one side of the switching boundary the heating is in operating mode "on" (i.e., the room temperature is to be increased) whereas on the other side of the switching boundary the heating is in operating mode "off" (i.e., the room temperature is to be decreased). When this

configuration is deployed to the heating control of the corresponding room the heating system behaves in the following way. If the heating system is "off" at a given time and a room temperature value is measured at this time which corresponds to a state belonging to the "on"-operating mode, the heating system transitions into the "on" operating mode. The room temperature will then continuously increase. At some point in time the room temperature reaches a value which belongs to a value pair in the state space being associated with the "off" operating mode. This causes the heating control to switch to the "off" operating mode. That is, the switching boundary describes the borderline where a first operating mode is switched to a second operating mode in accordance with configuration as defined by the switching border. It is to be noted that one visual representation may include multiple switching boundaries with each switching boundary separating two adjacent operating modes. For example, with regards to the heating example, there may be a higher granularity for the heating control unit which can distinguish between "off", "low",

"medium" and "high" in which case three corresponding switching boundaries would exist to separate potential states for the room in accordance with the four operating modes.

[0008] The optimizer module determines the optimal switching boundary between two operating modes as the outcome of an optimization for switching between the

corresponding operating modes to achieve a predefined objective. The predefined objective is setting a constraint under which the optimization is to be performed. For example, with regards to the heating example, the objective may be that a certain room temperature should be reached at a given point in time with minimal energy consumption by the heating system. In this example, the optimizer uses an optimization algorithm which is adapted to determine the optimal switching boundary in the state space which, when deployed to the heating control system, reaches the desired room temperature at the desired point in time with minimal energy consumption. Such optimization algorithm may also take into account external parameters such as room temperature increase induced by sun radiation or the outer temperature changes, etc. It is to be noted that for each particular optimization problem a corresponding optimization algorithm is provided in accordance with respective state space dimensions and an objective for the optimization. The person skilled in the art of optimization techniques is able to select an appropriate optimization algorithm for a particular objective in relation to a particular state space. In embodiments where multiple configuration scenarios are supported by the configurator (the computer system), the optimizer has multiple optimization algorithms matching the respective state space dimensions and predefined objectives. The optimizer may receive constraints as input to the optimization which limits the optimization result with regards to the selection of the optimal switching boundary to configurations which are feasible in the real world under normal physical conditions. In other words, such constraints suppress switching between operating modes that would contradict the normal conditions.

[0009] Besides the optimal switching boundary, the optimizer provides a further outcome of the optimization in the form of a single optimal value characterizing the outcome of the optimization with regards to the predefined objective. A value characterizing the outcome of the optimization can be the actual value of the objective or any useful characteristic of the optimal configuration. In the above heating system example, such single optimal value may be the expected energy consumption of the heating system when being operated in accordance with said optimal configuration (as defined by the optimal switching boundary).

The GUI component provides a first graphical result object to the user wherein the first graphical result object represents the single optimal value. In addition, other graphical objects could be presented, given by the numerical values of averages of different characteristics of the physical entity under the selected configuration. At this stage, the user is presented with an optimal configuration for the physical entity that, if deployed, potentially results in a sequence of operating mode transitions to achieve the objective of the optimization. It may also occur that the objective can be achieved without an operating mode transition. For example, a temperature value may be achieved without a need to switch on a respective heating system, or it may only be switched on once and heat until the temperature objective is achieved. In such cases, the switching border of the configuration is defined in a way the physical entity operates in the same mode all the time.

[0010] However, it may well be that the optimal configuration does not meet the user's preferences or expectations and the user wants to modify the configuration into a configuration more in line with the personal preferences of the user. Nevertheless, the user may be interested in comparing a modified configuration with the optimal configuration at least with regards to the single optimal value to be able to take an informed decision about which configuration should finally be deployed (to the physical entity itself or to a control component associated with the real world). The user may be willing to accept some deviation from the single optimal value in accordance with the personal preferences. For this reason, the computer system needs to be able to provide information to the user which allows to compare the user modified configuration with the optimal configuration in this regard. In addition, the user may also want to compare other averages of different characteristics of the physical entity under the selected modified configuration. In this case, the system may provide further optimal values which are directed to other aspects of the configuration than the single optimal value.

[0011] For modifying a configuration, the user can make use of standard user interface functions provided via the GUI component. The GUI component receives from the user a drag action in relation to the optimal switching boundary which was provided as result of the previous optimization steps. Such a drag action defines a user defined input for the computer system to modify the switching boundary shape resulting in a modified switching boundary. The modified switching boundary reflects a modified configuration with a modified transition behavior for the physical entity between the corresponding operating modes. For example, if a section of the optimal switching boundary is dragged to the left or right within the visual representation of the state space, the potential states which fall into the region between the resulting modified switching boundary and the optimal switching boundary and which belonged to the first operating mode now belong to the second operating mode. In one implementation for performing the drag action, the current switching boundary may be represented by a polygon defining where a state transition from a potential state of the first region to a potential state of the second region indicates a transition of the physical entity from a corresponding first operating mode to a

corresponding second operating mode. In this implementation, the received drag action modifies the location of at least one vertex of the polygon. In another implementation, the received drag action modifies the switching boundary by using a magnetic drag function. Further implementations may be chosen by a person skilled in user interaction design.

[0012] In the following procedure, the computer system supports the user in assessing the modified configuration in comparison with the optimal configuration to finally select the configuration which appears appropriate to the user. For this, the computer system has an averager module which determines a single modified value reflecting the impact of the modified switching boundary in relation to the single optimal value. In other words, the single modified value is a value which is comparable with the single optimal value and allows the user to see in which direction the modified configuration will affect the optimal outcome of the optimization with regards to the given objective. The single modified value is then determined by averaging across a plurality of possible paths in the state space wherein each possible path is associated with a weight reflecting the probability of the given path to be realized in the real world. In other words, the averager computes for each of the possible paths (of the plurality) a corresponding value which is comparable with the single optimal value and then averages across all computed corresponding values taking into account the weights of the respective possible paths. The weights of the possible paths may be set manually by a user or they may be automatically determined with an appropriate statistical technique, such as, for example, a maximum likelihood estimation or Bayesian updating. A possible path can reflect any random switching behavior between the respective operating modes to finally arrive at the desired state of the physical entity (e.g., reaching a given room temperature at a given time). For each of the paths in the plurality of possible paths, the average module determines a characteristic value with regards to the original optimization objective. For example, if the original objective was to minimize energy consumption, the averager computes for each path the energy consumption associated with the path. Some of the possible paths may have a higher probability to be realized than other possible paths.

For example, a particular path for a house temperature with the temperature suddenly falling from 20 degrees to 10 degrees in 1 hour is possible, but is highly unlikely. Which paths are likely is determined by the constraints in the physical world received by the averager as an input (e.g., outside temperature, insulation characteristics, etc.). As a consequence, a low probability will be assigned to this particular path. This is reflected by the weights associated with the paths which are used to compute the single modified value as a weighted average across all paths of the plurality.

[0013] Finally, the GUI component provides a second graphical result object to the user representing the single modified value which characterizes the modified configuration with regards to the predefined objective. In addition, other graphical objects may be presented, given by the numerical values of averages of different characteristics of the physical entity under the selected configuration. These additional objects facilitate comparison of the user- modified configuration with the optimal configuration.

[0014] As a consequence, based on the first and second graphical objects (as well as, potentially, additional graphical objects) the user can immediately assess the impact of the modification applied the optimal switching boundary and make an informed decision when selecting either the optimal configuration or of the modified configuration for deployment. The selected configuration may then be deployed directly to the physical entity or to a control unit associated with the physical entity which is then operated in accordance with the selected configuration.

[0015] In one embodiment, a checker component of the computer system may be used to evaluate if a modified configuration is executable under real-world conditions before the modified configuration is deployed to the physical entity. Configurations failing this consistency check may be rejected by the GUI right away as non-deployable configurations. As used herein, the configuration is considered to be executable under real-world conditions when the corresponding deployed switching boundary can be interpreted by the physical entity in such a way that it leads to the switching between the respective operating modes in accordance with the deployed switching boundary to achieve a given target.

[0016] In one embodiment, a computer system is provided for editing a configuration of a physical entity to configure a future operating mode of the physical entity. The computer system supports the user in pursuing the technical task to define a configuration for the physical entity which satisfies the user's preferences and comes close to the optimal configuration. To achieve this goal the user interacts with the graphical user interface to modify the optimal configuration by applying a drag action as defined by the independent claims. The system provides feedback to the user in the form of graphical result objects which allow the user to compare the optimal configuration with the modified configuration and come to an informed decision about which configuration should be deployed to the physical entity.

[0017] Further aspects of the invention will be realized and attained by means of the elements and combinations particularly depicted in the appended claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only, and are not restrictive of the invention as described.

Brief Description of the Drawings

[0018]

FIG. 1 includes a simplified block diagram of a computer system for editing a configuration of a physical entity according to an embodiment;

FIG. 2 is a simplified flow chart illustrating a computer-implemented method editing a configuration of a physical entity according to an embodiment;

FIGs. 3 and 4 show simplified views of graphical user interfaces according to various embodiments;

FIGs. 5A and 5B illustrate embodiments of a drag action; and

FIG. 6 is a diagram that shows an example of a generic computer device and a generic mobile computer device, which may be used with the techniques described herein.

Detailed Description

[0019] FIG. 1 includes a simplified block diagram of a computer system 100 with a graphical user interface GUI 200 for editing a configuration for a physical entity 30 operating in at least two different modes according to an embodiment. FIG. 1 will be described in the context of the flow chart of FIG. 2 illustrating a respective computer method 1000 for editing the configuration according to an embodiment. For this reason, the following description includes reference numbers for both figures. The following description is explaining the embodiments of the invention by way of example. The chosen example of a building temperature regulation as illustrated in FIG. 3 is not intended to limit the scope of the claims to physical entities which are buildings (e.g., smart houses). Rather, additional examples will show that the inventive concept is applicable to any physical entity operating in at least two different modes according to a configuration describing its potential future states.

[0020] The computer system 100 supports the user 10 in selecting a configuration for the physical entity which is finally to be deployed to control the future operating modes of the physical entity. The configuration is defined on the basis of a two-dimensional state space with each two-dimensional value pair (Dx, Dy) of the state space corresponding to a potential state for the physical entity 30. Each dimension corresponds to a parameter which is used for defining a potential state. For example, the Dy dimension may reflect a time scale and the Dx dimension may reflect a temperature scale. Any appropriate pair of dimensions which is suitable to define a respective potential state for the physical entity 30 can be used for defining the state space. As mentioned earlier, in one embodiment, the GUI 200 may be configured to receive 1100 a selection for the dimensions of the two-dimensional state space from a user or from another system. A particular configuration for the physical entity further includes a switching boundary SBo (or SBm) separating the state space into two adjoined regions OMlo, OM2o (or OMlm, OM2m) with each region including potential states belonging to a corresponding operating mode OM1*, OM2* for the physical entity. In FIG. 1, the first operating mode OM1* relates to the region left to the switching boundary and the second operating mode OM2* relates to the region right the switching boundary. In other words, a particular configuration defines for the physical entity under which conditions a switch can occur from one operating mode to the other operating mode. The configuration is provided 1200 to the user 10 as a visual representation via a graphical user interface device 200 in the form of a two-dimensional plane representing the state space (defined by the dimensions of the configuration) with a curve representing the switching boundary between operating modes.

[0021] For example, for the physical entity 30 there may be multiple configurations with different dimensions. The physical entity may be configured (as already mentioned) in the dimensions of time and temperature, but there may be another configuration using the dimensions of light intensity and energy for the same physical entity but with a different control purpose. The user can initially select the dimensions to be used for controlling the operating modes of the physical entity. For example, a plurality of predefined state space dimension pairs for said physical entity may be offered to the user from which the user can select one pair of dimensions as the basis for the configuration.

[0022] The GUI 200 component is communicatively coupled with a computing unit 101 via the interface 110. For example, the GUI 200 can be an integral input/output (I/O)

component of the computer system 100 wherein the communication between GUI 200 and computing component 101 may be implemented via an internal bus. Alternatively, the GUI 200 can be implemented via a mobile device (e.g., a smartphone or a tablet computer) which is communicatively coupled with the computing component 101 via a network (e.g., a wireless local area network). Alternatively, the computer system 100 itself can be such mobile device integrating all functions of the GUI 200 and the computing component 101.

[0023] The computing component 101 includes an optimizer module 120. The optimizer 120 determines 1300 an optimal switching boundary SBo for the given state space Dx/Dy. That is, the optimal switching boundary SBo separates first and second adjoined regions OMlo, OM2o with each region including the potential states belonging to the first and second operating modes OM1*, OM2*, respectively, for the physical entity in an optimal configuration. Thereby, the optimal switching boundary SBo is the outcome of an

optimization for switching between the corresponding operating modes to achieve a predefined objective. For example, the predefined objective can be to reach a target room temperature starting from the current room temperature at a particular future time point with the constraint that the energy consumption of the corresponding heating system (i.e., the physical entity) should be minimized. The operating modes of the used heating system may be "on" or "off". It is to be noted that there may be more operating modes available which implies multiple switching boundaries. For example, the operating modes may be "off", "low", "medium", "high" with three corresponding switching boundaries between the modes.

[0024] To solve such an optimization problem, the optimizer uses a corresponding optimization algorithm OA1. The optimizer may have multiple optimization algorithms which can be configured for solving different optimization problems associated with various available state space dimension pairs for the physical entity. It is to be noted that a person skilled in the art of optimization can use any appropriate optimization algorithm to solve a particular optimization problem which is associated with the parameter dimensions of the respective state space. The optimizer finally determines the optimal switching boundary SBo with regards to the given objective. Further, the optimizer 120 determines a single optimal value SOV characterizing the outcome of the optimization with regards to the predefined objective. For example, in the case that the objective was to reach said target temperature with minimal energy consumption, the optimization algorithm OA1 also provides the overall energy consumption value of the heating system which is associated with the optimal switching boundary. A visual representation of the single optimal value SOV is then provided to the user 10 via the GUI 200 in the form of a first graphical result object ROl. The representation illustrates for the user that the optimal switching boundary is associated with the first graphical result object ROl. Therefore, the graphical result object represents a benchmark value for the user with regards to any user modification which may be applied to the optimal configuration because it represents the optimal achievable value with regards to the objective of the optimization.

[0025] The user can now change the optimal configuration as determined by the optimizer 120 by applying a drag action DAI to optimal switching boundary SBo. For example, the drag action may be received 1400 by a touch screen of the GUI 200 component or it may be received 1400 via a respective mouse control signal in response to the user's interaction with the GUI 200. The received signal is interpreted by the GUI 200 as a user defined input to modify the switching boundary shape (of the optimal switching boundary) resulting in a modified (user defined) switching boundary SBm. As a modified shape of the switching boundary changes the regions which are associated with the respective operating modes OM1*, OM2* for the physical entity 30, the modified shape reflects a modified configuration with a modified transition behavior for the physical entity between the corresponding operating modes OM1*, OM2*. In the example of FIG. 1, at a given Dy value, the transition between OM1* and OM2*in accordance with the modified configuration (illustrated by the modified switching boundary SBm) occurs at lower Dx values than for the optimal configuration (illustrated by SBo). In other words, the entire region OM2m reflecting the second operating mode in accordance with the modified configuration is shifted to the left (i.e., lower Dx values). As a consequence, the first operating mode in accordance with modified configuration now includes all potential states associated with the region OMlm.

The drag action DAI can be implemented in various ways. For example, the switching boundary may be represented by a polygon defining where a state transition from a potential state of the first region to a potential state of the second region indicates a transition of the physical entity from a corresponding first operating mode to a

corresponding second operating mode. The received drag action may then modify the location of at least one vertex of the polygon. In another implementation, the received drag action may modify the switching boundary by using a magnetic drag function wherein a move of one point on the switching boundary curve triggers a movement of a neighboring subsection of the curve. Such implementations and further alternative embodiments for drag action applied to a curve are well known by a person skilled in the art of graphical editing methods.

[0026] This interaction enables the user to modify the optimal configuration by a simple drag action DAI. This feature is advantageous to support the user in selecting a

configuration for the physical entity which is in line with the user's preferences while taking into account the original objective leading to the optimal configuration. For example, the user may be concerned that he may return earlier than expected from work and the room may still be at a too low temperature to feel comfortable. For that reason, the user may modify the optimal configuration in a way that an already convenient temperature is reached earlier than it would be reached with the optimal configuration. Thereby the target temperature is still to be reached at the originally foreseen time point. However, the user is still interested to see the impact on the energy consumption for the modified configuration. This information supports the user with a robust data input method to finally select a configuration as a tradeoff between the user's preferences and the original objective used for the optimization. Although the final decision is taken by the user, the disclosed data input method provides to the user technical information which enables the user to compare the technical implications by the modified configuration on the physical entity before finally selecting a configuration for deployment to the physical entity - namely to which extent the modified configuration deviates from the optimal configuration, and how changes in the switching boundary affect changes of average characteristics (i.e., the respective single modified values) of the modified configuration.

[0027] To achieve this effect, the computer system 100 further includes an averager module 130 which determines 1500 a single modified value SMV reflecting the impact of the modified switching boundary SBm in relation to the single optimal value SOV. The single modified value SMV provides the measure for the deviation of the modified configuration from the optimal configuration with regards to the objective for the previous optimization.

In other words, the single modified value is a measure to which extent the modified configuration performs worse than the optimal configuration under the given objective. The single modified value SMV is computed by the averaging function A1 across a plurality of possible paths PI to Pn in the state space wherein each possible path is associated with a weight reflecting its probability of being realized in the real world. The skilled person is aware of statistical techniques to determine the weights of the possible paths including, but not limited to, maximum likelihood estimation and Bayesian updating of probabilities, linear and non-linear regression methods, neural networks, or other parametric and non- parametric statistical methods. It is to be noted that any possible path can be potentially considered by the averager 130 including paths which are completely random.

[0028] For each path, the modified single value is computed and then taken into account with the respective weight. In the example with the optimization objective of minimal energy consumption, the averager computes the expected energy consumption as an average of the expected energy consumption values for each path included in the plurality of possible paths. This can be achieved by determining the phases for the respective path where the heating system is in the operating mode "on" and computing the integral for the energy consumption during these phases. The more likely the path is to happen in the real world, the higher is the weight of the respective energy consumption value in the averaging operation Al. This example is described in more detail in the context of FIG. 3.

[0029] Finally, the GUI 200 provides 1600 to the user 10 a second graphical result object R02 representing the single modified value SMV characterizing the modified configuration with regards to the predefined objective. In other words, the computer system 100 provides to the user a single value which is associated with the modified configuration (i.e., the modified switching boundary SBm as input by the user) and which is comparable to the single optimal value associated with the optimal configuration. This indicates to the user a quantitative measure about the degree of deterioration in the performance of the physical entity when switching operating states in accordance with the modified solution in comparison with the optimal configuration.

[0030] In one embodiment, in addition to the single optimal value SOV, the optimizer 120 may determine one or more further optimal values characterizing the outcome of the optimization with regards to the predefined objective in the form of an optimal value vector. Such vector may be provided to the user as a first graphical result object vector. In the determining 1500 step, the average 130 may determining for each optimal value vector element a corresponding modified value reflecting the impact of the modified switching boundary SBm in relation to the respective further optimal value. The GUI 200 may then provide to the user a second graphical result object vector representing all determined modified values characterizing the modified configuration with regards to the predefined objective. This embodiment allows the evaluation of multiple characteristic values which may be produced as an outcome of the optimization algorithm OA1.

[0031] Once the graphical result objects ROl and R02 have been provided to the user, the user can make a selection of the optimal configuration or of the modified configuration via a corresponding selection function offered by the user interface (e.g., via the GUI 200). Of course, before making the selection the user may have gone through multiple iterations of configuration modifications. If no modification meets the expectations of the user, the user may select the optimal configuration. Otherwise, the modified configuration may be selected. Once the selection is received 1700, the computer system 100 can deploy 1800 the selected configuration to the physical entity 30 or to a control unit associated with the physical entity to be operated in accordance with the selected configuration.

[0032] Thereby, average characteristics of the configuration may be ranked by their importance. For example, corresponding graphical result object vectors can reflect such an importance ranking by ordering the average characteristics in the vector in accordance with the importance. Typically, the importance ranking is defined by a user (e.g., by a respective domain expert). The immediate visual feedback in response to the modification of a switching boundary, leading to a change in the operating mode configurations, leading to a change of the initial average characteristics (optimal single values) of the physical entity, finally leading to new average characteristics (modified single values averaged across all possible paths, weighted by the corresponding probabilities) shown to the user, makes the GUI useful for the user by supporting robust configuration editing.

[0033] Thereby, both the optimization problem selecting the optimal switching boundary and the user modifications applied to the switching boundary must be feasible in the real world in that they lead to executable configuration when deployed to the physical entity:

The desired operating mode must be possible to achieve under normal physical conditions. For example, a device working in an operating mode of consuming non-renewable energy can only switch to an operating mode of using solar energy if there is sufficient solar light intensity available for this purpose; a device for storing a data structure can enter an operating mode of saving this data structure only if there is enough memory space on the device; etc.

[0034] Advantageously, such constraints form inputs to the optimization algorithm OA1 when determining the optimal switching boundary. With regards to the averager function A1 a consistency check 142 taking into account such constraints 141 can be performed by a checker component 140 to evaluate if a modified configuration overall is executable under real-world conditions: Usually, such evaluation reduces to verifying that some observable physical characteristics of the physical entity and its environment satisfy certain inequality constrains. Configurations failing this consistency check 142 may be rejected by the GUI right away as non-deployable configurations. In such cases, the GUI may automatically switch back to the optimal configuration (e.g., by performing an undo action on the previous drag action) and inform the user, that the intended modification of the configuration is not allowed. That is, in addition to the averaging function, the system may further include a checking function that verifies whether a user modified configuration is feasible, and sends an error message El if the configuration is not feasible under real-world conditions.

[0035] FIG. 3 illustrates a graphical user interface 300 used for temperature regulation in a smart house. The example further expands on the example already used in the description of FIGs. 1 and 2. The physical entity in this example can be considered to be the heating of the smart house. In this scenario, the dimensions of the two-dimensional state space are the room temperature T (inside the house) and the time left until a target temperature is to be reached. For example, the time left value "0" may be the point in time te when the user expects to return to the house. In the example, the configuration to control the heating system starts three hours before this time point at ts. The target temperature Th in the example is 22 degrees. The objective for the optimal heating control is to reach the target temperature with a minimal energy consumption by controlling the heating during the time interval [ts, te].

[0036] The optimizer now determines the optimal switching boundary SBo. A switching boundary in general for this application scenario is defined through a function T = F(time left). The optimal switching boundary SBo is given by the equation T=Fo(t). Thereby, Fo(t) is the outcome of the optimization. The lowest temperature value Tl of the optimal switching boundary SBm can be interpreted as the minimal permissible temperature for the configuration. For example, the minimal permissible temperature may be the temperature value below which the room temperature is not allowed to fall. The highest temperature value Th of SBo can be interpreted as the minimal permissible temperature value at time left "0" (e.g., the time at which the user intends to return to the house). Thereby, Th is determined by the optimization algorithm taking into account the target temperature, Tl, and further real-world conditions such as the properties of the heating system, the expected temperature influence of sunshine intensity through windows, etc.

[0037] The operating modes of the heating system are OM1* (off: do not heat the house) and OM2* (on: heat the house). It is assumed in this simplified example that during the "on"-mode the maximum heating power is applied. In a more realistic heating scenario there may be more operating states with multiple switching boundaries to allow higher granularity for the power control. In the simplified scenario of FIG. 3 switching between the operating modes OM1* and OM2* occurs in accordance with the following rules:

- OM2* ("on"): heat the house whenever the current room temperature Tc < F(time left)

- OM1* ("off"): do not heat the house when the current room temperature Tc > F(time left) During operation the current room temperature is measured via a room temperature sensor and provides the measurement value as an input to the temperature control unit which controls the heating system. [0038] It is assumed that the energy consumption by the heating system can be described as a function of some characteristics of the house such as thermal insulation of the house, efficiency of the heating system, etc.: Ec = function(house characteristics). Henceforth, for simplicity, it is assumed that these characteristics do not change over the time period for which the optimization problem is solved. Hence, they are omitted from the function arguments and it is simply referred to as Ec.

[0039] It is further assumed that during the time when the heating system is working, the inside temperature T(t) as a function of time left follows the dynamics described by the stochastic differential equation: dT(3-t) = T(3-t)(f(EC(T(3-t),t), T(3-t)) d(3-t) +v * dB(3-t)) (equation for temperature dynamics) where B(t) is a standard Brownian motion.

[0040] Here, dT(t) is the change of the temperature; dt is the change in time left; f(EC,T) is some function depending on the house characteristics and determining how quickly the temperature rises when the heating system in working; and dB(3-t) are random shocks to the house temperature, determined by the outside weather conditions and following some given (either given by the user or given by an averaging algorithm) Brownian motion (Wiener process). Furthermore, EC(T,t) = Ec if the heating is on and EC(T,t)=0 is the heating is off. The realized values of T(t), t in [3, 0] are called a path of the temperature.

[0041] Fix a switching boundary SBo described by the equation T=F(t). Given this switching boundary, the expected energy consumption over the period starting at three hours before the target time horizon is then given by

E[/ 3 ° EC(T, t)dt\ = E[/ 3 °(EC if T < F(t ); 0 if T > F{t))dt ]

[0042] Here, the mathematical expectation, E[ ], is computed using the averager. The latter integrates over time left, starting at the moment three hours before the target time, and also over all (or a representative collection of) possible paths of temperature. The average distance between the actual temperature T(0) where there is no time left (i.e., when t=0) and the target temperature is given by

E[(T(0) - Target Temperature) A 2]

Here, again, E[ ] denotes the mathematical expectation: An average over the possible paths of the room temperature which can be either computed analytically using techniques from partial differential equations, or can be computed numerically as an approximation:

E[characteristic of a path] =

åover all possible paths of the temperature robability of ive th X

characteristic of a given path

[0043] Then, the user objective is to minimize

+(1-a) c E[(T(0) - Target Temperature) A 2] over all possible switching boundaries, as given by T=F(t) (that is, the optimizer minimizes the objective over the set of admissible functions F(t)) , under the assumption that the temperature dynamics depends on the heating as given by the stochastic differential equation above. Here, the weight a defines the importance of energy economization for the user in the objective function. The set of admissible functions F(t) is either specified by the user, or is defined by the physical constraints imposed on the physical entity by the real world.

[0044] The Objective(F) depends on the whole function F(t) in a very complex way. The optimizer solves the optimization problem

- to minimize the Objective(F) over the set of all admissible functions F, and

- for every admissible function F, computes Expected Energy consumption(F).

The outcome of this optimization is the optimal boundary, as given by a function T=Fo(t). This boundary is shown to the user as the curve SBo. [0045] The expected energy consumption for the optimal configuration as determined by the optimizer is then provided to the user as the graphical result object CE1.

[0046] The drag action DAI results in the modified switching boundary SBm which is given by T=Fm(t). The area OMl*/OM2* between the optimal and modified switching borders SBo and SBm is visualizing the part of the state space for which the corresponding states belong to another operating mode after the drag action DAI. Given this F(t)=Fm(t), the averager may now compute the single modified value (as well as other average characteristics of the modified configuration that can facilitate users' optimal decision) as follows: Pick two large numbers N and K and use a random number generator to produce N * K independent and identically distributed binomial random variables with mean zero and variance (3/K). Let us denote these variables by beta(n,K) for n=l,...,N and k=l,...,K.

[0047] Now, one can use a standard scheme for solving stochastic differential equations to discretize the equation: dT(3-t) = T(3-t)(f(EC(T(3-t),t), T(3-t)) d(3-t) +v * dB(3-t))

[0048] For example, if a standard first order scheme is used, one can use the solution defined by:

T(s * k,n) = T(s * (k-l),n) + T(s * (k-l),n) * (f(EC(T(s*(k-l)),3- s*(k-l)), T(s*(k-1))) s +v * beta(n,k)) where s = 3/K.

Now, one can compute the single optimal value (as well as additional average

characteristics) as follows:

F(3— s * k),· 0 if T (s * k, n) > F(3— s * k ))

The user is then prompted with the computed average characteristics in the form of the second graphical result object CE2.

[0049] Another example is illustrated in FIG. 4. The physical entity in FIG. 4 is supposed to be a data structure. A computer algorithm (for example a big data analysis algorithm) produces some results that are stored in the data structure. The data structure is initially stored in the operating memory (RAM) of a data analysis computer. Saving the data structure on the hard drive of a data storage device (which may be part of the data analysis computer or it may be a separate entity) after every update is very costly and would slow down the data analysis computer significantly. However, storing the whole data structure in RAM is also very costly because it limits the algorithm's capacity.

[0050] An optimal policy is to save the data structure on the hard drive (operating mode HD*) whenever its size S is above a function Fo(M) of the currently available operating memory M. Whenever the size S is below the function Fo(M) of the currently available operating memory M the operating mode RAM* is used. The state space of FIG. 4 has the two dimensions, available memory M (in Gigabytes GB) and the data structure size S (in Gigabytes GB). The function Fo(M) is the outcome of the optimization and represents the optimal switching boundary SBo, given by S=Fo(M). It is to be noted that a physical constraint for the optimization is always that the available memory needs to be larger than the size S of the data structure. That is, Fo(M) < M always, for all values of M. Otherwise, the operating mode RAM* could not be used.

[0051] We assume that the objective of the user is to:

Maximize over F expected, time discounted data volume V(t) processed:

Objective(

with r being the discount rate reflecting that for processing as much data as fast as possible the main interest lies in what to process right now whereas data to be processed in the future appear less relevant.

[0052] Every time the data is stored on the hard drive, it takes the algorithm c seconds of time. At the same time, the speed of execution is an increasing function G(M-S) of the available operating memory. Denote by t the physical time counted from the moment when the process starts. Let V(t) denote the volume of big data processed until time t. Then, V(t) will be monotonically increasing in t. By the assumption about the speed of execution, the volume V(t) satisfies the differential equation dV(t) = G(M(t) - S(t)) dt dS(t) = a G(M(t) - S(t)) where a is some coefficient depending on the data.

[0053] Further, c seconds are lost every time S(t) crosses the switching boundary, S(t) = F(M(t)), at which moment S(t) drops to zero (because the data is saved on the hard drive). During these c seconds, V(t) stays constant.

[0054] It is further assumed that M(t) follows a Markov stochastic process. This process is random because of some other processes running in parallel with the data-processing algorithm. The objective is then to:

Maximize over F the expected time discounted data volume V(t) processed:

Objective(F) = E[/ 0 °° e ~r t V(t)dt given the switching boundary S = F(M)] under the assumed stochastic dynamics of M(t) and S(t). Here again, E[ ] denotes the mathematical expectation, either computed analytically using techniques from partial differential equations, or approximated by an average over a set of paths of data volume V(t), t>0, weighted by the corresponding probabilities, which are in turn determined by the nature of the underlying Markov process M(t). Once the optimal switching boundary, S=Fo(M), is computed, the expected time discounted data volume may be displayed as first graphical result object DV1 to the user to reflect the outcome of the optimization.

[0055] When the user inputs a modified switching boundary SBm (given by S=Fm(M)) via a drag action, this defines a new function Fm(M), and the configuration computer system uses the checker module to check if the modified configuration is still executable in the real- world. For example, it may check if the real-world requirement that the available memory M always needs to be larger than the data structure size S is complied with. In cases where the user would modify the configuration in an impermissible way, the configuration computer system would reject the modification as a non-deployable configuration.

[0056] As above, the averager can use a random number generator to generate a large number N of sample paths of M. These sample paths are denoted by M(t,n), n=l,...,N. Then, one can compute the objective as:

Where V(t,n) solves the equation: dV(t,n) = G(M(t,n) - S(t,n)) dt except when S(t,n) crosses the modified boundary S=Fm(M), in which case V is frozen for c seconds, while S(t,n) drops to zero. and where dS(t,n) = a G(M(t,n) - S(t,n)), except when S(t,n) crosses the modified boundary S=Fm(M), in which case V is frozen for c seconds, while S(t,n) drops to zero.

Every time the user modifies the function Fm(M) even further, the Objective function E[/ 0 °° e ~r t V(_t)dt] is re-computed and the result value is shown as second result object DV2 reflecting the discounted data volume associated with the modified configuration. In addition, some other average characteristics of the configuration might be shown to the user to facilitate the evaluation of the switching boundary choice. For example, the average time discounted data structure size, E[/ 0 °° e ~r t S(_t)dt], as well as the average time discounted free memory, E[/ 0 °° e ~r t ( M(t )— S(t))dt], might be useful quantities for the efficient decision making by the user.

[0057] FIGs. 5A and 5B illustrate examples for implementing a drag function allowing the user to apply the drag action to modify the optimal switching boundary into a modified switching boundary via a corresponding user input. If FIB. 5A the optimal switching boundary M1- M2 separates the state space 601 with the dimensions Dx, Dy into the operating modes Ml* and M2*. In this example, the optimal switching boundary is represented by a polygon with vertices shown as black bullets. The user may now drag (dashed-dotted arrows) vertices of the optimal switching boundary to new locations in the state space 601 thus defining the modified switching boundary M1'- M2' which illustrates a new switching behavior between the operating modes Ml* and M2*.

[0058] FIG. 5B shows an alternative implementation where the dragging of the optimal switching boundary (solid line type 0) in state space 602 is modified in three stages to finally arrive at the modified switching boundary (line type 3). In this implementation, the user can drag any point of the current curve. In the example, the user initially drags the end point (upper circle) of the optimal switching boundary to a new position. The curve is

automatically adjusted by the configuration editor resulting in the dashed curve (line type 1). Curve editors (e.g., the editor of MICROSOFT POWERPOINT) typically provide such automatic line adjustment functions when dragging a single point of the curve. In a second step the user drags the point illustrated by the black bullet on the curve with line type 1 to a new location resulting in a further modified curve (curve with line type 2). In the final step the user drags the shaded circle on the curve with line type 2 to a new location finally arriving at the modified switching boundary with line type 3. In other words, a drag action applied by the user to define a modified configuration for the physical entity may include multiple dragging steps. The user may indicate to the GUI when the drag action is finally concluded. For example, the user may provide any kind of confirmation to the GUI to indicate to the computer system that the current modified switching boundary (line type 3) is now ready to serve as input to the averager for computing the single modified value (or a corresponding vector).

[0059] FIG. 6 is a diagram that shows an example of a generic computer device 900 and a generic mobile computer device 950, which may be used with the techniques described here. Computing device 900 is intended to represent various forms of digital computers, such as laptops, desktops, workstations, personal digital assistants, servers, blade servers, mainframes, and other appropriate computers. Generic computer device may 900 correspond to the computer system 100 of FIG. 1. Computing device 950 is intended to represent various forms of mobile devices, such as personal digital assistants, cellular telephones, smart phones, and other similar computing devices. For example, computing device 950 may be a smartphone or tablet computer which serves as the GUI 200 of FIG. 1 . In some embodiments, the computing device 950 may also include the computing unit with the optimizer and averager, and optionally, the checker module. In other embodiments, the computing unit may be implemented by the generic computer device 900. The components shown here, their connections and relationships, and their functions, are meant to be exemplary only, and are not meant to limit implementations of the inventions described and/or claimed in this document. [0060] Computing device 900 includes a processor 902, memory 904, a storage device 906, a high-speed interface 908 connecting to memory 904 and high-speed expansion ports 910, and a low speed interface 912 connecting to low speed bus 914 and storage device 906.

Each of the components 902, 904, 906, 908, 910, and 912, are interconnected using various busses, and may be mounted on a common motherboard or in other manners as

appropriate. The processor 902 can process instructions for execution within the computing device 900, including instructions stored in the memory 904 or on the storage device 906 to display graphical information for a GUI on an external input/output device, such as display 916 coupled to high speed interface 908. In other implementations, multiple processing units and/or multiple buses may be used, as appropriate, along with multiple memories and types of memory. Also, multiple computing devices 900 may be connected, with each device providing portions of the necessary operations (e.g., as a server bank, a group of blade servers, or a processing device).

[0061] The memory 904 stores information within the computing device 900. In one implementation, the memory 904 is a volatile memory unit or units. In another

implementation, the memory 904 is a non-volatile memory unit or units. The memory 904 may also be another form of computer-readable medium, such as a magnetic or optical disk.

[0062] The storage device 906 is capable of providing mass storage for the computing device 900. In one implementation, the storage device 906 may be or contain a computer-readable medium, such as a floppy disk device, a hard disk device, an optical disk device, or a tape device, a flash memory or other similar solid state memory device, or an array of devices, including devices in a storage area network or other configurations. A computer program product can be tangibly embodied in an information carrier. The computer program product may also contain instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, such as the memory 904, the storage device 906, or memory on processor 902.

[0063] The high speed controller 908 manages bandwidth-intensive operations for the computing device 900, while the low speed controller 912 manages lower bandwidth intensive operations. Such allocation of functions is exemplary only. In one implementation, the high-speed controller 908 is coupled to memory 904, display 916 (e.g., through a graphics processor or accelerator), and to high-speed expansion ports 910, which may accept various expansion cards (not shown). In the implementation, low-speed controller 912 is coupled to storage device 906 and low-speed expansion port 914. The low-speed expansion port, which may include various communication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet) may be coupled to one or more input/output devices, such as a keyboard, a pointing device, a scanner, or a networking device such as a switch or router, e.g., through a network adapter.

[0064] The computing device 900 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a standard server 920, or multiple times in a group of such servers. It may also be implemented as part of a rack server system 924. In addition, it may be implemented in a personal computer such as a laptop computer 922. Alternatively, components from computing device 900 may be combined with other components in a mobile device (not shown), such as device 950. Each of such devices may contain one or more of computing device 900, 950, and an entire system may be made up of multiple computing devices 900, 950 communicating with each other.

[0065] Computing device 950 includes a processor 952, memory 964, an input/output device such as a display 954, a communication interface 966, and a transceiver 968, among other components. The device 950 may also be provided with a storage device, such as a microdrive or other device, to provide additional storage. Each of the components 950, 952, 964, 954, 966, and 968, are interconnected using various buses, and several of the components may be mounted on a common motherboard or in other manners as appropriate.

[0066] The processor 952 can execute instructions within the computing device 950, including instructions stored in the memory 964. The processor may be implemented as a chipset of chips that include separate and multiple analog and digital processing units. The processor may provide, for example, for coordination of the other components of the device 950, such as control of user interfaces, applications run by device 950, and wireless communication by device 950. [0067] Processor 952 may communicate with a user through control interface 958 and display interface 956 coupled to a display 954. The display 954 may be, for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display) or an OLED (Organic Light Emitting Diode) display, or other appropriate display technology. The display interface 956 may comprise appropriate circuitry for driving the display 954 to present graphical and other information to a user. The control interface 958 may receive commands from a user and convert them for submission to the processor 952. In addition, an external interface 962 may be provide in communication with processor 952, so as to enable near area communication of device 950 with other devices. External interface 962 may provide, for example, for wired communication in some implementations, or for wireless communication in other implementations, and multiple interfaces may also be used.

[0068] The memory 964 stores information within the computing device 950. The memory 964 can be implemented as one or more of a computer-readable medium or media, a volatile memory unit or units, or a non-volatile memory unit or units. Expansion memory 984 may also be provided and connected to device 950 through expansion interface 982, which may include, for example, a SIMM (Single In Line Memory Module) card interface.

Such expansion memory 984 may provide extra storage space for device 950, or may also store applications or other information for device 950. Specifically, expansion memory 984 may include instructions to carry out or supplement the processes described above, and may include secure information also. Thus, for example, expansion memory 984 may act as a security module for device 950, and may be programmed with instructions that permit secure use of device 950. In addition, secure applications may be provided via the SIMM cards, along with additional information, such as placing the identifying information on the SIMM card in a non-hackable manner.

[0069] The memory may include, for example, flash memory and/or NVRAM memory, as discussed below. In one implementation, a computer program product is tangibly embodied in an information carrier. The computer program product contains instructions that, when executed, perform one or more methods, such as those described above. The information carrier is a computer- or machine-readable medium, such as the memory 964, expansion memory 984, or memory on processor 952, that may be received, for example, over transceiver 968 or external interface 962. [0070] Device 950 may communicate wirelessly through communication interface 966, which may include digital signal processing circuitry where necessary. Communication interface 966 may provide for communications under various modes or protocols, such as GSM voice calls, SMS, EMS, or MMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others. Such communication may occur, for example, through radio-frequency transceiver 968. In addition, short-range communication may occur, such as using a

Bluetooth, WiFi, or other such transceiver (not shown). In addition, GPS (Global Positioning System) receiver module 980 may provide additional navigation- and location-related wireless data to device 950, which may be used as appropriate by applications running on device 950.

[0071] Device 950 may also communicate audibly using audio codec 960, which may receive spoken information from a user and convert it to usable digital information. Audio codec 960 may likewise generate audible sound for a user, such as through a speaker, e.g., in a handset of device 950. Such sound may include sound from voice telephone calls, may include recorded sound (e.g., voice messages, music files, etc.) and may also include sound generated by applications operating on device 950.

[0072] The computing device 950 may be implemented in a number of different forms, as shown in the figure. For example, it may be implemented as a cellular telephone 980. It may also be implemented as part of a smart phone 982, personal digital assistant, or other similar mobile device.

[0073] Various implementations of the systems and techniques described here can be realized in digital electronic circuitry, integrated circuitry, specially designed ASICs

(application specific integrated circuits), computer hardware, firmware, software, and/or combinations thereof. These various implementations can include implementation in one or more computer programs that are executable and/or interpretable on a programmable system including at least one programmable processor, which may be special or general purpose, coupled to receive data and instructions from, and to transmit data and

instructions to, a storage system, at least one input device, and at least one output device.

[0074] These computer programs (also known as programs, software, software applications or code) include machine instructions for a programmable processor, and can be implemented in a high-level procedural and/or object-oriented programming language, and/or in assembly/machine language. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, apparatus and/or device (e.g., magnetic discs, optical disks, memory, Programmable Logic Devices (PLDs)) used to provide machine instructions and/or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal. The term "machine-readable signal" refers to any signal used to provide machine instructions and/or data to a programmable processor.

[0075] To provide for interaction with a user, the systems and techniques described here can be implemented on a computer having a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user and a keyboard and a pointing device (e.g., a mouse or a trackball) by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form, including acoustic, speech, or tactile input.

[0076] The systems and techniques described here can be implemented in a computing device that includes a back end component (e.g., as a data server), or that includes a middleware component (e.g., an application server), or that includes a front end component (e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the systems and techniques described here), or any combination of such back end, middleware, or front end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network ("LAN"), a wide area network ("WAN"), and the Internet.

[0077] The computing device can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. [0078] A number of embodiments have been described. Nevertheless, it will be understood that various modifications may be made without departing from the spirit and scope of the invention.

[0079] In addition, the logic flows depicted in the figures do not require the particular order shown, or sequential order, to achieve desirable results. In addition, other steps may be provided, or steps may be eliminated, from the described flows, and other components may be added to, or removed from, the described systems. Accordingly, other embodiments are within the scope of the following claims.