This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2016-124438, filed on Jun. 23, 2016, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are related to a determination process control method and a determination process control apparatus.
A technology is known, with which information desired by a user is extracted from big data such as sensor data generated from furniture, home appliances, portable terminals, and smart phones of each home or web data such as a social networking service (SNS), weather, and traffic.
The information desired by the user is defined in a “rule” for each user. A process of distributing the information or controlling the home appliances depending on different tastes or states for each user in accordance with the rule is called “rule processing”. The rule processing is performed by a server. The server determines whether all conditions in a condition set defined by the rule are satisfied, and when all conditions are satisfied, the result of the determination is notified to a home gateway (HGW). Since the HGW is installed in each home to interlock with a device such as the home appliance or furniture in the home, when the condition of the rule processing (e.g., 30° C. or higher on a fine day) is satisfied, it is possible to actuate an air conditioner.
Related technologies are disclosed in, for example, Japanese Laid-Open Patent Publication No. 2010-206569 and Japanese Laid-Open Patent Publication No. 2011-095813.
In the rule processing described above, while any one of conditions is not satisfied, the determination result is not notified to the HGW even though other conditions are satisfied. Therefore, while any one of conditions is not satisfied, determination process of other conditions is performed in vain.
According to an aspect of the present invention, provided is a determination process control apparatus including a memory and a processor coupled to the memory. The processor is configured to select a first condition on which a determination is to be performed with respect to first data to be subject to the determination from among a plurality of conditions included in a rule, on basis of first pass efficiency of each of the plurality of conditions. The processor is configured to select a second condition on which a next determination is to be performed with respect to second data to be subject to the next determination from the plurality of conditions on basis of a second pass efficiency of each of the plurality of conditions. The processor is configured to determine whether the first condition is satisfied with respect to the first data. The processor is configured to determine, upon determining that the first condition is satisfied, whether the second condition is satisfied with respect to the second data. The processor is configured to output, upon determining that all the plurality of conditions are satisfied, a notification indicating an action to be performed. The action is defined in the rule.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
Hereinafter, the embodiments will be described with reference to the accompanying drawings. In the description and the drawings, components having a similar functional configuration will be denoted by a similar reference numeral, and redundant descriptions thereof will be omitted.
In recent years, a technology for extracting valuable information by using big data having a large scale has been expected. With the technology, information desired by a user is extracted from the big data and the extracted information is provided to the user. The information desired by the user is defined in a “rule” for each user.
For example, in a case where the rule is “when it is rainy (weather) and a scheduled route is delayed (traffic information), a mail notification is made”, the “weather” and the “traffic information” represent types of data. The rule R of
A server determines whether input weather information meets the determination value of the condition A and determines whether input traffic information meets the determination value of the condition B. The server performs the action when both the conditions A and B are satisfied as a result of the determination. In this example, the action is “a mail notification is made”.
The processing server 50 inputs web data such as weather information or traffic information, and performs “rule processing” of determining whether the input data meets the conditions defined in each rule. The rule is managed by a management server 10.
The processing server 50 performs determination on the plurality of conditions defined in the rule, respectively, and when all conditions are satisfied, the processing server 50 notifies the determination result to the HGW 20. That is, when any one condition is not satisfied, the determination result is not notified to the HGW 20.
The HGW 20 is installed in each home 30. The HGW 20 is coupled with a device such as a home appliance or furniture in the home 30. The HGW 20 is coupled to the management server 10 through a network 40 such as the Internet to relay various data. Since the HGW 20 interlocks with the device such as the home appliance or the furniture in the home, when conditions (e.g., it is sunny (weather) and it is 30° C. or higher (temperature)) is satisfied in the rule processing, it is possible to actuate an air conditioner.
An example of data to be subject to determination in the first embodiment includes data which may be acquired through the network 40, such as data generated from a portable terminal and a smart phone or web data such as a social networking service (SNS), the weather, and traffic. In the first embodiment, data generated from the device such as the home appliance or the furniture in the home 30 is excluded from the data to be subject to determination.
In the rule processing, while any one of conditions is not satisfied, the processing server 50 does not perform the action such as the notification to the HGW even though other conditions are satisfied. That is, while any one of conditions is not satisfied, the result is not changed (the action is not output), regardless of the determination result of other conditions. Therefore, while any one of conditions is not satisfied in the rule processing, the processing server 50 performs the determination process of other conditions in vain.
For example, as illustrated in
The processing server 50 inputs a wide variety of data in the rule processing to perform determination on the conditions in the rule defined for each user. Therefore, when the processing server 50 performs whole rule processing, the processing may fail or costs for using the processing server 50 may increase. Accordingly, in first to third embodiments described below, proposed is a determination process control method that performs a control to preferentially perform determination on a condition, which is highly expected not to be satisfied, to reduce a load (processing amount) of the processing server 50.
First, a configuration of a determination process control system 1 according to a first embodiment will be described with reference to
The management server 10 is an example of a determination process control device that performs the determination process control method of preferably performing determination on a condition which is highly expected not to be satisfied. The management server 10 includes a rule creation unit 11, a determination order control unit 12, a storage unit 13, and a calculation unit 18.
The rule creation unit 11 provides an interface (I/F) for creating a rule from a program for each user and transfers the created rule to the determination order control unit 12.
The determination order control unit 12 sets a condition order in the rule on the basis of pass efficiency, a duplication number, a determination cost expectation value, and the like for the rule transferred from the rule creation unit 11, and deploys the set rule so as to be performed by the processing server 50. Upon receiving a notification indicating that a satisfaction state of the condition is changed from the processing server 50, the determination order control unit 12 resets the determination condition order on the basis of the pass efficiency, the duplication number, the determination cost expectation value, and the like, and redeploys the reset rule so as to be performed by the processing server 50.
The storage unit 13 stores therein an all-condition table 14, a condition type table 15, a data type table 16, and a condition combination pass efficiency table 17. Further, the storage unit 13 stores a determination order setting program.
In the first embodiment, the determination order 148 is determined based on the pass efficiency calculated by the calculation unit 18. As the pass efficiency, “pass efficiency of each of a plurality of conditions” and “pass efficiency of each of the plurality of conditions in a case of a combination with a condition selected based on the pass efficiency of each of the plurality of conditions” are used.
In the first embodiment, a condition on which determination is performed first for data to be subject to determination is selected from the plurality of conditions on the basis of the pass efficiencies of the plurality of conditions, which are derived from past determination for data. For example, in
Subsequently, on the basis of the pass efficiencies of the respective conditions in a case of being combined with the selected condition, a condition on which determination is performed subsequently for the data to be subject to determination is selected from the plurality of conditions. For example, in FIG. 8, the condition combination 171 combined with “CT0002” having the lowest pass efficiency in
Referring back to
The calculation unit 18 calculates the pass efficiency of each condition on the basis of the event log 19 and the all-condition table 14. The calculation unit 18 also calculates the pass efficiency of each condition combination on the basis of the event log 19 and the all-condition table 14.
Respective conditions defined in a rule have different level of easiness to be satisfied. The calculation unit 18 calculates a “pass efficiency” indicating the easiness to be satisfied for each condition. The pass efficiency may be calculated by “the count of satisfactions ÷ the count of data inputs”. However, the calculation of the pass efficiencies of the respective conditions is not limited to this calculation method. The pass efficiency in this case represents a ratio at which the respective conditions are satisfied for input data (that is, data for which the pass efficiency of the respective conditions is determined). The data, for which the pass efficiency is determined, is stored in the event log 19.
The data type 144, the operator 145, and the value 146 of
The pass efficiency may be considered also in a combination (hereinafter, also referred to as “combined conditions”) of one condition and another condition and in this case, the pass efficiency indicates a degree of easiness at which the combined conditions are simultaneously satisfied. The calculation unit 18 calculates the pass efficiency for the “combined conditions” to set the calculated pass efficiency in the condition combination pass efficiency table 17.
There are conditions such that even though the pass efficiencies of individual conditions are high, the pass efficiency for a combination of those conditions is low, and vice versa. For example, as in a case of “it is sunny (weather) and it is 20° C. or lower (temperature), in summer”, even any one of “it is sunny” and “it is 20° C. or lower” is well likely to occur, but both conditions are hardly satisfied simultaneously. It may be said that when the former is satisfied, the latter is difficult to be satisfied. A reverse example is a case where both the conditions are easily satisfied simultaneously, like a condition that “it is rainy and a humidity is 60% or higher”.
That is, it may be said that the pass efficiency for the combined conditions is not calculated by multiplication of the pass efficiencies for the individual conditions. This means that the pass efficiency varies depending on a satisfaction state of another condition.
The pass efficiency for combined conditions in which a plurality of conditions are combined with each other represents a ratio at which all conditions included in the combined conditions are satisfied with respect to the input data (that is, data for which the pass efficiency for the combined conditions is determined). The combined conditions are a combination of two or more conditions.
Referring back to
The HGW 20 includes a rule processor 21 and an event transfer unit 22. The event transfer unit 22 receives an action from the processing server 50 when conditions (for example, it is sunny (weather) and it is 30° C. or higher (temperature)) are satisfied in the rule processing. The rule processor 21 controls the appliances in the home in response to the reception of the action. For example, the rule processor 21 performs a control such as actuating an air-conditioner disposed in the home.
Subsequently, a hardware configuration of the management server 10 will be described with reference to
The management server 10 includes an input device 101, a display device 102, an external I/F 103, a random access memory (RAM) 104, a read-only memory (ROM) 105, a central processing unit (CPU) 106, a communication I/F 107, and a hard disk drive (HDD) 108, and the respective devices are coupled to each other through a bus B.
The input device 101 includes, for example, a keyboard or a mouse and is used for inputting each operation signal in the management server 10. The display device 102 includes a display and the like and displays various processing results. The communication I/F 107 is an interface that couples the management server 10 to the network 40. As a result, the management server 10 may perform data communication with the devices such as the processing server 50 and the HGW 20 through the communication I/F 107.
The HDD 108 is a non-volatile storage device storing therein programs and data. The stored programs and data include basic software to control the entire management server 10 and application software. For example, the HDD 108 may store therein various databases, programs and others.
The external I/F 103 is an interface with an external device. The external device includes a recording medium 103a and the like. With this, the management server 10 may perform read and/or write on the recording medium 103a through the external I/F 103. The recording medium 103a includes a compact disk (CD), a digital versatile disk (DVD), a secure digital (SD) memory card, and a universal serial bus (USB) memory.
The ROM 105 is a non-volatile semiconductor memory (storage device) which may keep internal data even though a power supply to the ROM 105 is turned off. The ROM 105 stores therein programs and data such as a network set-up. The RAM 104 is a volatile semiconductor memory (storage device) temporarily keeping programs and data. The CPU 106 is a calculation device that performs processing by reading the programs or data on the RAM 104 from the storage device (e.g., the “HDD 108” or the “ROM 105”) to implement a control of the entire device and installed functions.
With this configuration, in the management server 10 according to the first embodiment, the CPU 106 performs a rule determination order setting process by using a determination order setting program stored in the ROM 105 or the HDD 108. Each of the all-condition table 14, the condition type table 15, the data type table 16, and the condition combination pass efficiency table 17 may be stored in a storage area such as the RAM 104, the HDD 108, or a server on a cloud coupled to the management server 10 through the network 40. In the processing server 50 according to the first embodiment, the CPU performs the rule processing by using a rule processing program stored in the ROM or the HDD.
Subsequently, a transition of a determination state of a condition in a rule according to the first embodiment will be described with reference to
When the determination on a condition in the state of “not under determination” starts, the determination state of the condition is transitioned from “not under determination” to “under determination”. When it is determined that the condition is satisfied, the determination state of the condition is transitioned from “under determination” to “satisfied”. When the determination on the condition in the state of “under determination” is cancelled, the determination state of the condition is transitioned from “under determination” to the state of “not under determination”.
Even though the determination state of the condition is in the state of “satisfied”, the determination process is continued. When it is determined that the condition is not satisfied, the determination state of the condition is transitioned from “satisfied” to “under determination”. When the determination on the condition in the state of “satisfied” is cancelled, the determination state of the condition is transitioned from “satisfied” to “not under determination”.
Subsequently, the rule determination order setting process according to the first embodiment will be described with reference to
When the process starts, the determination order control unit 12 determines whether the rule includes a plurality of conditions (S10). Upon determining that the rule includes a plurality of conditions, the determination order control unit 12 selects a condition having the lowest pass efficiency by referring to the condition type table 15 (S12) and disposes the selected condition at the top of the rule. Upon determining that the rule includes a single condition, the determination order control unit 12 immediately ends the process.
For example, as illustrated in STATE_12a of
Referring back to
For example, when there are the conditions A, C, and D not yet selected as illustrated in STATE_12b of
Since there are the conditions C and D not yet selected as illustrated in STATE_12c of
Referring back to
For example, when there is only the condition C not yet selected, the condition C is disposed at the end of the rule. In this way, the determination order on the conditions of the rule is determined as illustrated in STATE_12d of
Subsequently, the rule processing according to the first embodiment will be described with reference to
When the process starts, the rule processor 51 sets only the condition at the top as in the state of “under determination” and sets other conditions in the state of “not under determination” (S20). As a result, for example, as illustrated in STATE_12e of
Subsequently, the rule processor 51 determines whether there is input data with respect to the conditions in the state of “under determination” or the state of “satisfied” (S22). S22 is repeated until input data is received with respect to the conditions in the state of “under determination” or the state of “satisfied”. Upon determining that there is input data with respect to the conditions in the state of “under determination” or the state of “satisfied”, the rule processor 51 performs determination on the conditions (S24).
Subsequently, the rule processor 51 determines whether all the conditions are satisfied (S26). Upon determining that all the conditions are satisfied, the rule processor 51 changes the state of the satisfied conditions to “satisfied” (S28). For example, as illustrated in STATE_12e of
Subsequently, the rule processor 51 determines whether there is a subsequent condition (S30). When the rule processor 51 determines that there is no subsequent condition, the event transfer unit 52 notifies the action to the HGW 20 (S32) and returns to S22. When the rule processor 51 determines that there is a subsequent condition, the rule processor 51 changes the state of the subsequent condition to “under determination” (S38) and returns to S22.
For example, as illustrated in STATE_12f of
The repeated process of
The repeated process of
In this way, when all the conditions of the rule are satisfied, it is determined that there is no subsequent condition in S30. As a result, the event transfer unit 52 notifies the action to the HGW 20 (S32).
When it is determined that any condition is not satisfied in S26, the rule processor 51 changes the state of the condition that is not satisfied to “under determination” (S34). Subsequently, the rule processor 51 changes the state of all the subsequent conditions to “not under determination” (S36) and returns to S22.
As described above, the management server 10 according to the first embodiment determines the order of the determination on the conditions of the rule so as to preferentially perform determination on the conditions with the low pass efficiency. As a result, the processing server 50 according to the first embodiment first performs determination on the conditions with the low pass efficiency in order of the conditions in the deployed rule. Until all the preceding conditions in the rule are satisfied, determination on the subsequent conditions in the rule is not performed.
There are conditions such that even though the pass efficiencies of individual conditions are high, the pass efficiency for a combination of those conditions is low, and vice versa. For example, as in a case of “it is sunny (weather) and it is 20° C. or lower (temperature), in summer”, even though any one of “it is sunny” and “it is 20° C. or lower” is well likely to occur, but both conditions are hardly satisfied simultaneously. A reverse example is a case where both the conditions are easily satisfied simultaneously, like a condition that “it is rainy and a humidity is 60% or higher”.
For example, in the case where the condition set of a certain rule is the conditions A, B, and C, it is assumed that the respective pass efficiencies are the condition A=80%, the condition B=40%, and the condition C=20%. Then, it is further assumed that the pass efficiency for the combination of the condition C and the condition A is 10%, and the pass efficiency for the combination of the condition C and the condition B is 20%. In this case, the processing server 50 first preferentially performs determination on the condition C having the lowest pass efficiency.
In the first embodiment, in the next determination, determination is performed not on the condition B having the second lowest pass efficiency as a single condition but on the condition A having a low probability to occur simultaneously with the condition C (having the low pass efficiency in combination with the condition C).
As a result, the determination process performed by the processing server 50 may be reduced to be performed on the minimum conditions, and a load (processing amount) of the processing server may be reduced. Further, since unnecessary processing is not performed, server costs may be reduced.
The deployment of the rule performed in the rule determination order setting process performed by the determination order control unit 12 and the rule processing performed by the rule processor 51 are separate processes and do not interlock with each other. Therefore, when a new rule is deployed, the determination order of the new deployed rule is used in the next rule processing after the deployment. This is identically applied to other embodiments described below.
Subsequently, rule processing according to a second embodiment will be described with reference to
When the process starts, the rule processor 51 determines whether there is a condition in the state of “under determination” in the rule (S40). When the rule processor 51 determines that there is a condition in the state of “under determination”, the rule processor 51 proceeds to S22.
Upon determining that there is no condition in the state of “under determination”, the rule processor 51 determines whether there is a condition in the state of “not under determination” (S42). Upon determining that there is no condition in the state of “not under determination”, the rule processor 51 proceeds to S32 to notify of the action, and thereafter, returns to S40.
Upon determining that there is a condition in the state of “not under determination” in S42, the rule processor 51 determines whether there are duplicated conditions (S44). The duplicated conditions are identical conditions included in plural rules in a system. For example, when two users set “when it is sunny in Tokyo” in common, the settings are duplicated conditions. The number of duplication for each identical condition is referred to as a “duplication number”.
Upon determining that there is no duplicated condition among all rules, the rule processor 51 changes a condition positioned at the top of the conditions in the state of “not under determination” to the state of “under determination” (S46) and proceeds to S22.
When the rule processor 51 determines that there are duplicated conditions among plural rules, the duplicated conditions in the respective rules is rearranged to the top (S48). Subsequently, the rule processor 51 sets the duplicated conditions of any one rule to be in the state of “under determination” and sets the duplicated conditions of the remaining rules to be in the state of “not under determination” (S50), and proceeds to S22.
For example, as illustrated in
When the rule processor 51 performs determination on the conditions of the respective rules R1, R2, and R3 for each user in order, the rule processor 51 sets the duplicated condition of any one rule to be in the state of “under determination” and sets the duplicated conditions of the remaining rules to be in the state of “not under determination”. In the rule after the consolidation of
Referring back to
Subsequently, the rule processor 51 determines whether all the condition are satisfied (S26). When the rule processor 51 determines that all the condition are satisfied, the process proceeds to S28 and when the rule processor 51 determines that the any condition is not satisfied, the process proceeds to S34.
In S28, the rule processor 51 changes the state of the satisfied conditions to “satisfied”. Subsequently, the rule processor 51 determines whether there is a subsequent condition (S30) and when the rule processor 51 determines that there is no subsequent condition, the event transfer unit 52 notifies the action to the HGW 20 (S32), and returns to S40. In S30, when the rule processor 51 determines that there is a subsequent condition, the process returns to S40.
When it is determined that any condition is not satisfied in S26 and the process thus proceeds to S34, the rule processor 51 changes the state of the condition that is not satisfied to “under determination”. Subsequently, the rule processor 51 changes the state of all the subsequent conditions to “not under determination” (S36), and the process returns to S22.
In the rule processing according to the second embodiment, in all of the case of “No” in S22 described above, the case of “Yes” in S30, and the case of “notifying the action” in S32, the process returns to S40 to repeat S40 and thereafter.
Thus, when the state of each condition is changed, the rule processor 51 may reconfirm the states of all conditions of the rule. For example, it is assumed that the determination order of the conditions in each rule is set as illustrated in rules R1 to R4 of STATE_16a of
However, the order of the rules R1 to R4 of STATE_16a of
The resetting is performed and thus, when the determination order of the conditions is changed in the rules R3 and R4 as illustrated in STATE_16c of
As described above, the similar effect to that in the first embodiment may be obtained in the second embodiment. Further, in the second embodiment, the rule processing for the duplicated conditions is consolidated and performed only once in any one rule. As a result, the load (processing amount) of the processing server may be reduced.
In accordance with the change in the satisfaction state of the conditions (e.g., the determination state is changed from the “under determination” to “satisfied”), the determination order of the conditions in each rule is reset based on the pass efficiency of each condition and the pass efficiency for each combination of conditions. As a result, by changing the determination order of the conditions in the rule so as to preferentially determine the condition with the low pass efficiency even when the condition satisfaction state is changed, the determination process may be performed by the processing server 50 on the minimum conditions. As a result, the load (processing amount) of the processing server may be reduced even in any determination state.
Finally, the rule determination order setting process according to a third embodiment will be described with reference to
In the rule determination order setting process according to the first embodiment and the second embodiment, the conditions in the rule are sequenced using the “pass efficiency”. In this regard, in the rule determination order setting process according to the third embodiment, the “determination cost expectation value” is calculated using the pass efficiency or the like, and the determination order of the conditions in the rule is determined based on the determination cost expectation value.
For example, it is assumed that the condition A is a light determination that performs only numerical comparison, and the condition B is a heavy determination that extracts a word and compares character strings in a natural language. In this case, although the condition A which is simply a light determination process needs to be first determined, when the pass efficiency of the condition B is lower than that of the condition A, the condition B is first determined, and as a result, the load on the server may become higher than the reverse order.
Therefore, in the rule determination order setting process according to the third embodiment, the determination cost expectation value of each condition is calculated to select a condition having the lowest determination cost. The determination cost expectation value depends on the type of the data used by the condition and further, a value acquired by dividing the determination cost expectation value by the duplication number is adopted. Since an input frequency or processing contents vary for each data, the determination cost expectation value depends on the type of the data used by the condition. As a result, a determination cost expectation value index per time is predetermined. Since the original cost may be reduced as the conditions are further duplicated, the determination cost expectation value index per time is divided by the duplication number.
When the rule determination order setting process illustrated in
Referring back to
By using the similar equation, the calculation unit 18 calculates the determination cost expectation value for each of patterns P2 to P6.
Referring back to
As described above, the management server 10 according to the third embodiment calculates the determination cost expectation value and deploys the rule in which the condition order having the smallest determination cost expectation value is set. As a result, the processing server 50 may first determine the condition having “lower pass efficiency”, a “larger duplication number”, and a “smaller determination cost expectation value”. Therefore, the load (processing amount) of the processing server may be reduced so that the server costs may be reduced.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to an illustrating of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2016-124438 | Jun 2016 | JP | national |