Extraction method, extraction program, and information processing device
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Filing Date
- 2025-12-09
- Publication Date
- 2026-03-12
AI Technical Summary
It is challenging to apply measures from one region to another due to differing regional characteristics, and existing technologies struggle to extract the elemental structure of policies effectively, making it difficult to incorporate proven measures into local policy planning.
A method and system that extract the elemental structure of policies by analyzing flow graphs with conditional branches, allowing for the generation of policy candidate flows by combining elements from multiple existing policies, tailored to regional characteristics.
Enables the creation of policy candidate flows that are suitable for local regions by extracting path structures from existing policies, facilitating the adaptation and implementation of effective measures.
Abstract
Description
Extraction method, extraction program, and information processing device
[0001] The present invention relates to an extraction method, an extraction program, and an information processing device.
[0002] One type of workflow is the policy flow graph, which diagrams the process of assigning policy target objects, such as people, to services to achieve the policy's objectives in various fields such as medical care, nursing care, and administration.
[0003] When formulating policies, it is important to consider whether similar policies have been implemented in the past, from the perspective of administrative (political) ease of implementation. For this reason, it is becoming increasingly important to incorporate some of the policies that have proven successful in other regions.
[0004] Japanese Patent Application Laid-Open No. 2003-228647
[0005] However, when applying policies from other regions to one's own region, it can be difficult to simply apply policies from other regions to one's own region because each region has its own unique characteristics.
[0006] In response to this, it is conceivable to generate measures appropriate for one's own region by combining parts of each of the measures taken by multiple other regions.
[0007] However, the design philosophy of policies may differ from region to region, and policy planners may consider policies at their desks, making it difficult to extract the elemental structure of policies.
[0008] In one aspect, the present invention aims to provide an extraction method, an extraction program, and an information processing device that can realize extraction of the element structure of a policy.
[0009] In one embodiment of the extraction method, a computer acquires a policy that includes multiple conditional branches connected by directed edges and each node that connects to the branch destination of each of the multiple conditional branches, and performs a process of extracting, from the multiple conditional branches included in the policy, the conditional branches that are the branch source of each of the nodes.
[0010] According to one embodiment, extraction of the element structure of a policy can be realized.
[0011] FIG. 1 is a block diagram showing an example of the functional configuration of a server device. FIG. 2 is a diagram illustrating an example of a flow graph of a policy. FIG. 3 is a diagram illustrating a specific example of a flow graph of a policy. FIG. 4 is a diagram illustrating one aspect of a problem-solving approach. FIG. 5 is a flowchart showing the procedure of an extraction process. FIG. 6 is a diagram illustrating an example of an existing policy flow. FIG. 7 is a schematic diagram showing an example of extraction of a path structure. FIG. 8 is a diagram illustrating an example of a correspondence relationship between parameter types and codes. FIG. 9 is a diagram illustrating an example of a data structure related to a path structure. FIG. 10 is a flowchart showing the procedure of a generation process. FIG. 11 is a schematic diagram showing an example of a list structure. FIG. 12 is a schematic diagram explaining an example of generation of a policy candidate flow. FIG. 13 is a diagram showing clustering of branch thresholds and branch probabilities. FIG. 14 is a flowchart showing the procedure of a branch threshold setting process. FIG. 15 is a diagram showing an example of a hardware configuration.
[0012] Hereinafter, embodiments of the extraction method, extraction program, and information processing device according to the present application will be described with reference to the accompanying drawings. Each embodiment merely illustrates one example or aspect, and does not limit the range of values, functions, or usage scenarios. Furthermore, each embodiment can be appropriately combined within the scope of not causing any contradiction in the processing content.
[0013] <System Configuration> Fig. 1 is a block diagram showing an example of the functional configuration of a server device 10. The server device 10 shown in Fig. 1 provides a data-based platform that enables sharing, cross-referencing, and updating of policy flow graphs.
[0014] For example, the server device 10 can provide the functions of the data infrastructure platform as a cloud service by executing PaaS (Platform as a Service) type middleware or SaaS (Software as a Service) type applications. The server device 10 corresponds to an example of an information processing device.
[0015] As shown in Fig. 1, the server device 10 can be communicatively connected to the client terminals 30 via a network NW. For example, the network NW may be any type of communication network, whether wired or wireless, such as the Internet or a local area network (LAN). Note that Fig. 1 shows an example in which one client terminal 30 is connected to one server device 10, but any number of client terminals 30 may be connected.
[0016] The client terminal 30 is a terminal device that receives the above-mentioned data infrastructure. For example, the client terminal 30 may be used by a policy planner as an example of an entity that implements a policy, such as a local government or other related party. Note that the client terminal 30 may be realized by any computer, such as a personal computer, a smartphone, a tablet terminal, or a wearable terminal.
[0017] <Flow Graph of Policy> An example of a flow graph of the above policy is shown in Figure 2. Figure 2 is a diagram illustrating an example of a flow graph of a policy. Z1, Z2, Z3, and Z4 in Figure 2 indicate, for example, services that an administrator provides to a user. These may also be referred to as "service implementation components." Specific examples of services include, in the medical field, "interventions" to which the target object of the policy, such as a resident, is assigned, such as undergoing a health checkup or being examined by a specialist, as well as "no intervention" such as follow-up observation, but are not limited to policies in the medical field.
[0018] H1 and H2 indicate, for example, conditional branches including conditions. These may also be referred to as "conditional branch components." Specific examples of conditions, in the medical field, include an estimated glomerular filtration rate (eGFR) below a threshold, a hemoglobin A1c value (HbA1c) below a threshold, and a urinary protein value equal to or greater than a threshold, but are not limited to conditions in the medical field.
[0019] Z1, Z2, Z3, Z4, H1, and H2 may each be referred to as a "component." From the perspective of graph data, such a "component" may correspond to an example of a "node." Hereinafter, a node corresponding to a branch among the nodes may be referred to as a "branch node," and a node corresponding to a service (intervention) for achieving the objective of a policy may be referred to as a "service node." Furthermore, a connection between nodes may correspond to an example of an "edge," including a "directed edge."
[0020] In this embodiment, policy planning in the medical field will be described as an example, but the present invention is not limited to this. The above-described embodiment may be used for various policy planning such as work with conditional branching, tests, and questionnaires. In such cases, the same effects as those of the above-described embodiment can be obtained.
[0021] Figure 3 shows a specific example of a policy flow graph. As shown in Figure 3, a policy is modeled as a workflow consisting of a combination of components such as conditional branching and service implementation. Then, the number of people receiving each service is output from a model that has been trained by accumulating information on the flow of people and parameters based on actual values when each conditional branching component is used. This allows local governments to utilize policies implemented by other local governments that are suitable for their own purposes, taking into account their own resources.
[0022] In the example shown in FIG. 3 , the number of people N=1000 is input at S0. At S1, component #1 as service execution component A is set to "health check." At S2, component #2 as conditional branch component B is set to "eGFR<α." If "eGFR<α" is not satisfied (see the NO route at S2), it is determined that "no intervention" by a specialist is required for the citizen, as shown at S5.
[0023] On the other hand, if "eGFR<α" is satisfied (see the YES route at S2), then component #3 as conditional branch component C is set to "HbA1c<β" as shown at S3. If "HbA1c<β" is satisfied (see the YES route at S3), then component #4 as conditional branch component D is set to "nephrologist" as shown at S6, and it is determined that the citizen requires intervention by a "nephrologist." On the other hand, if "HbA1c<β" is not satisfied (see the NO route at S3), then it is determined that the citizen requires intervention by a "diabetes specialist" as shown at S7.
[0024] In the example shown in Figure 3, the number of people who will flow through part #1, part #2, part #3, and part #4 in that order is predicted, as indicated by the arrows. For example, in the policy flow graph shown in Figure 3, the results of assigning the number of people N = 1000 to interventions Z2 to Z4 are as follows: 50 people are assigned to intervention Z2. 150 people are assigned to intervention Z3. Furthermore, 800 people are assigned to intervention Z4.
[0025] 2 and 3, a specific example of another use of the policy flow graph will be described. The server device 10 searches the policy flow graph using attribute information of people in the organization to which the policy planner belongs. The server device 10 identifies the node to which the person is classified among the nodes located at the end of the policy flow graph. This allows the local government that applied the policy to identify medical institutions to recommend to the person, taking into account the health status of the person belonging to the local government and the local government's resources.
[0026] First, the server device 10 identifies people in the organization to which the policy planner belongs. For example, the server device 10 identifies residents of a local government. Next, the server device 10 uses attribute information of people in the organization to which the policy planner belongs to search the output policy flow graph to identify a node to which the identified person is classified among the nodes located at the end of the policy flow graph. The attribute information is biometric information identified by analyzing the person's bodily fluids. The attribute information includes estimated glomerular filtration rate, hemoglobin A1c level, urinary protein level, etc. Note that bodily fluids include blood, lymph, tissue fluid (interstitial fluid, intercellular fluid, interstitial fluid), sweat, tears, nasal mucus, urine, semen, vaginal fluid, amniotic fluid, milk, etc.
[0027] At this time, the server device 10 identifies a node into which the person is classified by comparing the person's attribute information with the conditions included in the conditional branch component. The server device 10 identifies a node into which the identified person is classified among the terminal nodes. The server device 10 then sets the medical institution indicated by the identified node into which the person is classified as a medical institution to be recommended to the identified person. The medical institution indicated by the node is a nephrologist, a diabetes specialist, etc.
[0028] Hereinafter, measures that have already been implemented and have a proven track record will be referred to as "existing measures," while measures that are listed as options for implementation when formulating measures will be referred to as "candidate measures." Furthermore, the flow graph of a measure may be abbreviated as "measure flow." Additionally, among the measure flows, the measure flow corresponding to an existing measure will be referred to as "existing measure flow," and the measure flow corresponding to a candidate measure will be referred to as "candidate measure flow."
[0029] <Data Infrastructure> In the above data infrastructure, policy flows may be shared in any framework. As just one example, the above data infrastructure allows policy flows to be shared among organizations around the world, for example, public organizations such as local governments.
[0030] A policy planner can refer to templates of existing policies from around the world shared in the data infrastructure via the client terminal 30. For example, from the perspective of administrative (political) ease of implementation, a policy candidate can be generated by incorporating portions of flow graphs from multiple existing policies among the templates collected in the data infrastructure. Such flow graphs of policy candidates may be generated automatically or manually using any technology.
[0031] <One aspect of the problem> As explained in the Background Art section above, when applying policies from other regions to one's own region, there is an aspect that makes it difficult to apply policies from other regions as they are to one's own region, because each region has different characteristics.
[0032] In response to this, it is conceivable to generate measures appropriate for one's own region by combining parts of each of the measures taken by multiple other regions.
[0033] However, the design philosophy of policies may differ from region to region, and policy planners may consider policies at their desks, making it difficult to extract the elemental structure of policies.
[0034] <One aspect of the problem-solving approach> Therefore, in this embodiment, an extraction function is provided that extracts, as a path structure, an array of conditions corresponding to a path formed by a series of branching nodes leading to the terminal node corresponding to each service included in the flow graph of existing measures collected in the data base.
[0035] Figure 4 shows one aspect of the problem-solving approach. As shown in Figure 4, the data base collects N existing policy flows f1 to fN. For each service included in each of these N existing policy flows f1 to fN, an array of conditions corresponding to the path formed by a series of branching nodes leading to the terminal node corresponding to the service is extracted.
[0036] For example, in the case of service Z1 (node n15) included in existing policy flow f1, an array of conditions is extracted corresponding to the path extending from node n10 to node n15 via nodes n11 and n12. Similarly, arrays of conditions are extracted corresponding to the paths of service Z3 (node n16), service Z1 (node n17), service Z2 (node n18), and service Z3 (node n19) included in existing policy flow f1.
[0037] In the case of service ZM (node n23) included in the existing policy flow fN, an array of conditions corresponding to the path extending from node n20 to node n23 via node n21 is extracted. Similarly, arrays of conditions corresponding to the paths of service Z3 (node n25), service ZM (node n26), and service Z2 (node n27) included in the existing policy flow fN are extracted.
[0038] Therefore, the extraction function according to this embodiment can realize extraction of a path structure as an example of an element structure of an existing measure.
[0039] In this way, a candidate policy flow can be generated by searching for a set of paths corresponding to the services that are planned to be provided when the policy is implemented from the path structure DB (DataBase) 13B, which stores a set of path structures extracted for each service.
[0040] As an example only, if service Z1, service Z2, and service ZM are specified as the services to be provided when the policy is implemented, a policy candidate flow F1 can be generated by searching for and combining path P1 of service Z1, path P2 of service Z2, and path P3 of service ZM from path structure DB13B.
[0041] By extracting the path structure for each service of the existing policy flow in this way, it is possible to generate candidate policy flows by incorporating some paths from each of the flow graphs of multiple existing policies that are suited to the regional characteristics of the planning target.
[0042] <Configuration of Server Device 10> Fig. 1 shows a schematic diagram of blocks related to the data infrastructure of the server device 10. As shown in Fig. 1, the server device 10 has a communication control unit 11, a storage unit 13, and a control unit 15. Note that Fig. 1 only shows a selection of functional units related to the data infrastructure, and the server device 10 may also be provided with functional units other than those shown.
[0043] The communication control unit 11 is a functional unit that controls communication with other devices such as the client terminal 30. As just one example, the communication control unit 11 can be realized by a network interface card such as a LAN card. In one aspect, the communication control unit 11 receives a policy generation request from the client terminal 30 requesting the generation of a policy candidate flow, or outputs the generated policy candidate flow to the client terminal 30.
[0044] The storage unit 13 is a functional unit that stores various types of data. As just one example, the storage unit 13 is realized by internal, external, or auxiliary storage of the server device 10. For example, the storage unit 13 stores a policy DB 13A that stores a set of policy flows and a path structure DB 13B that stores a set of path structures.
[0045] The control unit 15 is a functional unit that performs overall control of the server device 10. For example, the control unit 15 can be realized by a hardware processor. Alternatively, the control unit 15 can be realized by hardwired logic. As shown in FIG. 1 , the control unit 15 includes an acquisition unit 15A, an extraction unit 15B, a reception unit 15C, a generation unit 15D, a setting unit 15E, and an output unit 15F.
[0046] The acquisition unit 15A is a processing unit that acquires a policy flow. As an example, the acquisition unit 15A acquires K (any natural number) existing policy flows stored in the policy DB 13A. Note that, although an example of acquiring existing policy flows from the policy DB 13A has been given here, existing policy flows may be acquired from an external source via the network NW or from removable media (not shown).
[0047] The extraction unit 15B is a processing unit that extracts the above-mentioned path structure. FIG. 5 is a flowchart showing the procedure of the extraction process. As shown in FIG. 5, the extraction unit 15B executes loop process 1, which repeats the processes from step S101 to step S105 described below a number of times corresponding to the number K of existing policy flows acquired by the acquisition unit 15A. Furthermore, the extraction unit 15B executes loop process 2, which repeats the processes from step S101 to step S105 described below a number of times corresponding to the number L of paths included in the kth existing policy flow. In addition, the extraction unit 15B executes loop process 3, which repeats the processes from step S101 to step S104 described below a number of times corresponding to the number M of branches included in path 1 of the kth existing policy flow.
[0048] That is, the extraction unit 15B extracts a condition definition including a logical value, an operator, and a parameter type from the mth branch included in the path l of the kth existing policy flow (Step S101). At this time, if the condition ID of the condition definition extracted in Step S101 is unnumbered (Yes in Step S102), the extraction unit 15B assigns a new condition ID (Step S103). Note that if the condition ID of the condition definition extracted in Step S101 is not unnumbered (No in Step S102), the processing of Step S103 is skipped.
[0049] Then, the extraction unit 15B registers the branch threshold and the positive branch probability for the m-th branch included in the path l in association with the condition ID corresponding to the condition definition extracted in step S101 (step S104). Note that the "branch probability" here refers to the probability that an object will be assigned to a branch destination corresponding to a logical value by the branch threshold at the branch of the path.
[0050] By repeating this loop process 3, condition definitions such as logical values, operators, parameter types, etc. are extracted for each of M branches included in path 1 of the k-th existing policy flow.
[0051] Then, the extraction unit 15B registers the array of condition definitions of M branches included in the path l of the k-th existing policy flow in the path structure DB 13B as a branch sequence of the path l (Step S105).
[0052] Figure 6 is a diagram showing an example of an existing policy flow. Figure 6 shows, as merely an example, an existing policy flow f11 relating to medical follow-up for chronic kidney disease (CKD). As shown in Figure 6, the existing policy flow f11 includes a path #1 that runs from node n0 to node n2, node n6, and node n8, and then to node n10 of the service "health guidance." Furthermore, the existing policy flow f11 includes a path #2 that runs from node n0 to node n1 and node n4, and then to node n11 of the service "health guidance."
[0053] FIG. 7 is a schematic diagram showing an example of path structure extraction. FIG. 7 shows an example of extracting the structures of path #1 and path #2 of the existing policy flow f11 shown in FIG. 6. First, an example of extracting the condition definition C11 of branch node n0 of path #1 will be described. As shown in FIG. 7, path #1 is a route corresponding to the branch destination of the logical value "True" of branch node n0, so the logical value code "1" associated with the logical value "True" is extracted. Then, an operator code "LE" corresponding to the operator "≦(less than or equal to)" is extracted from the first OR condition of branch node n0, "eGFR≦30.0." Furthermore, a parameter type code corresponding to the parameter type "eGFR" is extracted from the first condition of branch node n0, "eGFR≦30.0." These parameter types and codes are expressed by the correspondence relationship shown in FIG. 8. FIG. 8 is a diagram showing an example of the correspondence relationship between parameter types and codes. As shown in FIG. 8 , the parameter type "eGFR" of the first condition "eGFR≦30.0" of branch node n0 corresponds to the parameter type code "0," so the parameter type code "0" is extracted. Furthermore, the operator code "GE" corresponding to the operator "≧ (greater than or equal to)" is extracted from the second OR condition of branch node n0, "urinary protein e≧2.00." Furthermore, the parameter type code "1" corresponding to the parameter type "urinary protein" is extracted from the second condition of branch node n0, "urinary protein e≧2.00." Through this series of processes, the condition definition C11 of branch node n0 of path #1 is extracted.
[0054] Next, an example of extracting the condition definition C12 of branch node n2 of path #1 will be described. As shown in FIG. 7 , path #1 is a route corresponding to the branch destination of the logical value "True" of branch node n2, so the logical value code "1" associated with the logical value "True" is extracted. Then, an operator code "GE" corresponding to the operator "≧ (greater than or equal to)" is extracted from the first condition "HbA1c≧6.50" of the OR conditions of branch node n2. Furthermore, a parameter type code "2" corresponding to the parameter type "HbA1c" is extracted from the first condition "HbA1c≧6.50" of branch node n2. Furthermore, an operator code "GE" corresponding to the operator "≧ (greater than or equal to)" is extracted from the second condition "fasting blood glucose≧126.00" of the OR conditions of branch node n2. Furthermore, a parameter type code "3" corresponding to the parameter type "fasting blood glucose" is extracted from the second condition of branch node n2, "fasting blood glucose ≧ 126.00". Furthermore, an operator code "EQ" corresponding to the operator "=" is extracted from the third condition of the OR conditions of branch node n2, "diabetes treatment = 1.00". Furthermore, a parameter type code "4" corresponding to the parameter type "diabetes treatment" is extracted from the third condition of branch node n2, "diabetes treatment = 1.00". Through this series of processes, condition definition C12 of branch node n2 of path #1 is extracted.
[0055] Next, an example of extracting the condition definition C13 of branch node n6 of path #1 will be described. As shown in FIG. 7 , path #1 is a route corresponding to the branch destination of the logical value "True" of branch node n6, so the logical value code "1" associated with the logical value "True" is extracted. Then, an operator code "EQ" corresponding to the operator "=" is extracted from the first condition "diabetic nephropathy = 1.00" of the OR conditions of branch node n6. Furthermore, a parameter type code "5" corresponding to the parameter type "diabetic nephropathy" is extracted from the first condition "diabetic nephropathy = 1.00" of branch node n6. Furthermore, an operator code "EQ" corresponding to the operator "=" is extracted from the second condition "health guidance category = 2.00" of the OR conditions of branch node n6. Furthermore, a parameter type code "6" corresponding to the parameter type "health guidance category" is extracted from the second condition "health guidance category = 2.00" of branch node n6. Through this series of processes, the condition definition C13 of the branch node n6 of the path #1 is extracted.
[0056] Finally, an example will be described in which the condition definition C14 of branch node n8 of path #1 is extracted. As shown in FIG. 7 , path #1 is a route corresponding to the branch destination of the logical value "True" of branch node n8, so the logical value code "1" associated with the logical value "True" is extracted. Then, the operator code "NE" corresponding to the operator "≠" is extracted from the condition "health guidance desire ≠ 0.00" of branch node n8. Furthermore, the parameter type code "7" corresponding to the parameter type "health guidance desire" is extracted from the condition "health guidance desire ≠ 0.00" of branch node n8. Through this series of processes, the condition definition C14 of branch node n8 of path #1 is extracted.
[0057] As described above, the sequence of condition definitions C11, C12, C13, and C14 corresponding to path #1 is extracted as the branch sequence of path #1.
[0058] Furthermore, in the same manner as for path #1, an array of three condition definitions corresponding to path #2 can be extracted as a branch sequence for path #2. First, an example will be described in which condition definition C21 of branch node n0 of path #2 is extracted. As shown in FIG. 7, path #2 is a route corresponding to the branch destination of the logical value "False" of branch node n0, so the logical value code "-1" associated with the logical value "False" is extracted. Then, an operator code "LE" corresponding to the operator "≦(less than or equal to)" is extracted from the first condition "eGFR≦30.0" of the OR conditions of branch node n0. Furthermore, a parameter type code "0" corresponding to the parameter type "eGFR" is extracted from the first condition "eGFR≦30.0" of branch node n0. Furthermore, an operator code "GE" corresponding to the operator "≧(greater than or equal to)" is extracted from the second condition "urinary protein e≧2.00" of the OR conditions of branch node n0. Furthermore, the parameter type code "1" corresponding to the parameter type "urinary protein" is extracted from the second condition of branch node n0, "urinary protein e≧2.00." Through this series of processes, the condition definition C21 of branch node n0 of path #2 is extracted.
[0059] Next, an example of extracting the condition definition C22 of the branch node n1 of the path #2 will be described. As shown in FIG. 7, the path #2 is a route corresponding to the branch destination of the logical value "True" of the branch node n1, so the logical value code "1" associated with the logical value "True" is extracted. Then, the operator code "LE" corresponding to the operator "≦(less than or equal to)" is extracted from the first condition "eGFR≦60.0" among the OR conditions of the branch node n1. Furthermore, the parameter type code "0" corresponding to the parameter type "eGFR" is extracted from the first condition "eGFR≦60.0" among the OR conditions of the branch node n1. Furthermore, the operator code "GE" corresponding to the operator "≧(greater than or equal to)" is extracted from the second condition "urinary protein e≧2.00" among the OR conditions of the branch node n1. Furthermore, the parameter type code "1" corresponding to the parameter type "urinary protein" is extracted from the second condition "urinary protein e≧2.00" among the OR conditions of the branch node n1. Through this series of processes, the condition definition C22 of the branch node n1 of the path #2 is extracted.
[0060] Finally, an example will be described in which the condition definition C23 of branch node n4 of path #2 is extracted. As shown in FIG. 7, path #2 is a route corresponding to the branch destination of the logical value "False" of branch node n4, so the logical value code "-1" associated with the logical value "False" is extracted. Then, the operator code "EQ" corresponding to the operator "=" is extracted from the condition of branch node n4, "Remote instruction available = 1.00." Furthermore, the parameter type code "14" corresponding to the parameter type "Remote instruction available" is extracted from the condition of branch node n4, "Remote instruction available = 1.00." Through this series of processes, the condition definition C23 of branch node n4 of path #2 is extracted.
[0061] As described above, the sequence of the condition definitions C21, C22, and C23 corresponding to the path #2 is extracted as the branch sequence of the path #2.
[0062] The above path structure is structured and registered for each service in step S105 shown in Fig. 5. That is, the extraction unit 15B registers, as a branch sequence, an array of condition definitions corresponding to a path formed by a series of branch nodes leading to an end node corresponding to a service.
[0063] FIG. 9 is a diagram illustrating an example of a data structure related to a path structure. As shown in FIG. 9, service #1 is associated with path #1, path #2, ..., path #K, which are formed by a series of branch nodes leading up to the terminal node corresponding to service #1. Furthermore, an array of a condition definition for condition ID "a1", a condition definition for condition ID "-a2", a condition definition for condition ID "a3", ..., a condition definition for condition ID "aN" is associated with path #1 and registered as a branch sequence seq1. Branch thresholds and positive branch probabilities of one or more measures are associated and registered with these condition IDs "a1", "-a2", "a3", ..., and "aN". In the example shown in FIG. 9, this means that the condition definitions for condition ID "a1", "-a2", and "aN" are common between measures i and k, but the branch thresholds and positive branch probabilities are registered individually for measures i and k.
[0064] The extracted paths, i.e., the array of condition definitions (condition IDs), can be displayed in the order corresponding to the directed edges, for example, in the hierarchical order of the tree structure. In this case, when displaying the threshold values of the conditions at the branches, statistical values, such as the average and median, for each measure shown in Figure 9 can also be displayed.
[0065] Returning to the explanation of FIG. 1 , the reception unit 15C is a processing unit that receives various requests from the client terminal 30. As just one example, the reception unit 15C can receive a policy generation request from the client terminal 30, which requests the generation of a policy candidate flow. As just one example, such a policy generation request may include the specification of one or more services that are planned to be provided when the policy is implemented. Hereinafter, the services that are planned to be provided when the policy is implemented may be referred to as "services that are planned to be provided."
[0066] The generation unit 15D is a processing unit that generates a policy candidate flow. As just one example, the generation unit 15D lists condition IDs to be assigned to branches included in the path of the policy candidate flow in order from the start point of the path of the policy candidate flow in accordance with the branch sequence of the service to be provided among the branch sequences included in the path structure DB 13B.
[0067] Fig. 10 is a flowchart showing the procedure of the generation process. Fig. 11 is a schematic diagram showing an example of a list structure. The process shown in Fig. 10 is merely an example and is executed when a policy generation request is received by the receiving unit 15C.
[0068] As illustrated in FIG. 10, the generating unit 15D executes the process of step S301 for the first element of the path of the policy candidate flow to be generated.
[0069] That is, the generation unit 15D searches for a pair of two condition IDs having the same operator and parameter type but different signs of logical values among the condition definitions at the beginning of the branch sequences corresponding to the above-mentioned planned service among the branch sequences included in the path structure DB 13B. Furthermore, as shown in FIG. 11 , the generation unit 15D registers the pair of two condition IDs obtained by the search in step S301 in a list, and sets the depth in the tree structure of the list, i.e., the index i that identifies the so-called layer, to “1.”
[0070] Subsequently, when there are no more condition ID pairs to be registered in the list of i=1 in the path structure DB 13B (Yes in step S302), the generating unit 15D executes the process of step S303.
[0071] That is, the generation unit 15D searches the branch sequence corresponding to the service to be provided for a pair of two condition IDs that matches the array of condition IDs in the i-th list from the starting point to the i-th hierarchy, that is, up to the hierarchy deep enough that condition ID pairs have already been listed, and that have the same operator and parameter type but different logical value signs in the i+1-th condition definition.Then, as shown in FIG. 11, the generation unit 15D registers the pair of two condition IDs obtained by the search in step S303 in a list.
[0072] Then, when there is no array of condition IDs in the path structure DB 13B that matches the array of condition IDs in which the sign of the logical value of the i-th condition ID is "positive" (Yes in step S304), the generation unit 15D executes the processing of step S305.
[0073] That is, the generation unit 15D searches the branch sequence corresponding to the service to be provided for a pair of two condition IDs that matches the array of condition IDs in the i-th list from the starting point to the i-th hierarchy, that is, up to the hierarchy deep enough that condition ID pairs have already been listed, and that have the same operator and parameter type but different logical value signs in the i+1-th condition definition.The generation unit 15D then registers the two condition ID pairs obtained by the search in step S305 in a list, as shown in FIG.
[0074] Thereafter, when there is no more array of condition IDs in the path structure DB 13B that matches the array of condition IDs in which the sign of the logical value of the i-th condition ID is "negative" (Yes in step S306), the generation unit 15D executes the following process: That is, the generation unit 15D increments the index i that identifies the hierarchy of the list (step S307), and proceeds to the process of step S303.
[0075] The processes from step S303 to step S307 are repeated until no more entries are registered in the list. As a result, the array of condition IDs is listed as an instance of the graph structure of the policy candidate flow F. At this time, each time multiple candidates are searched for as pairs of condition IDs whose logical values have opposite signs, a policy candidate flow with a different array of condition IDs is obtained, the number of which corresponds to the number of candidates.
[0076] FIG. 12 is a schematic diagram illustrating an example of generating a policy candidate flow. As shown in FIG. 12, among the branch sequences included in the path structure DB 13B, the branch sequences corresponding to the services to be provided are matched from the beginning, and possible combinations of positive and negative branches are stored as a tree structure. For example, a condition ID pair in which the branch sequences from the starting point to the i-th branch match and the logical value sign of the i+1-th branch is reversed is searched for and stored as a list. In this way, possible condition ID combinations are listed from the top of the tree structure, and the one to which the service is assigned is selected as the end. At this time, each time multiple candidates for a condition ID pair with reversed logical values are searched for, such as C1 and C1 in the example of FIG. 12, the condition ID array is duplicated for each candidate, and the graph structure of the policy candidate flow F is listed as an instance.
[0077] In this way, when multiple nodes are specified as services to be provided, the generation unit 15D refers to the path structure DB 13B, which stores each node in association with the extracted branch source condition, and generates a candidate policy flow that includes the specified multiple nodes and conditional branches corresponding to the specified multiple nodes.
[0078] 1, the setting unit 15E is a processing unit that sets a threshold value for the branching condition included in the policy candidate flow. Here, the policy candidate flow generated by the generation unit 15D is an instance of a graph structure in which multiple paths are combined, and at this point, no threshold value is set for the branching condition of each path.
[0079] As shown in Figure 9, the condition ID for such branching can be set using the branching threshold and branching probability extracted for each measure when extracting the path structure to set the threshold for the candidate measure flow. However, if there are many variations in the branching threshold, the number of combinations can become enormous.
[0080] From this perspective, the setting unit 15E can obtain clusters of thresholds and probabilities by modeling and clustering the joint distribution of branching thresholds and branching probabilities for the branches of the candidate policy flows generated by the generation unit 15D.
[0081] FIG. 13 is a diagram illustrating clustering of branching thresholds and branching probabilities. As shown in FIG. 13, the setting unit 15E generates a two-dimensional histogram H1 by mapping each of the branching thresholds and branching probabilities associated with the condition IDs of the branches of the policy candidate flow generated by the generation unit 15D. The setting unit 15E then performs smoothing and labeling on the two-dimensional histogram H1. This results in seven initial clusters with IDs "1" to "7." The setting unit 15E then calculates the initial number of clusters obtained from the two-dimensional histogram H1 and a representative value, such as the average value, for each cluster. The setting unit 15E then performs clustering by fitting a Gaussian mixture distribution to estimate the number of clusters and the distribution of each cluster. The setting unit 15E then generates a tree to which the average values (thresholds, probabilities) are applied for the number of cluster combinations.
[0082] By such clustering, the setting unit 15E narrows down the branch thresholds and branch probabilities that are candidates to be set for the branches of the policy candidate flows to clusters.
[0083] Furthermore, the branch of the policy candidate flow also includes the condition ID of the OR condition. In this way, in the branch of the OR condition, the multiple conditions included in the OR condition are sorted in a specific order. As just one example, in the condition definition of the condition ID, the multiple conditions included in the OR condition can be sorted in ascending order of the parameter type code (see Figure 8). Furthermore, the condition definition of the condition ID of the branch including the OR condition among the branches of the policy candidate flow can be converted into an expression of an AND condition.
[0084] Then, the setting unit 15E calculates branching parameters, i.e., branching thresholds, for the policy candidate flow that satisfy the policy goal and constraints based on regional data including information on resources that can provide each service. The problem of calculating this branching threshold is a nonlinear and discontinuous problem because it involves dividing a sequence of discrete data points into two sets using a threshold for each feature. Therefore, by formulating the problem as a combinatorial optimization problem, the branching thresholds for each branch of the policy candidate flow can be calculated according to a mathematical optimization algorithm such as a genetic algorithm.
[0085] For example, an objective function, such as an evaluation function, is set that includes a branch threshold for the branch of the policy candidate flow as a variable. Furthermore, constraints that restrict the range in which the variables can be manipulated include an "effect target" calculated by multiplying the number of people allocated to a service by an effect coefficient, a "cost constraint" calculated by multiplying the number of people allocated to a service by a cost coefficient, and a "resource constraint" that sets the resources that can be provided for each service. After formulating these objective functions and constraints, a combination of variables that satisfies the constraints and optimizes the objective function is calculated using GA or the like. The branch threshold for each branch of the policy candidate flow is calculated using the combination of variables calculated in this way.
[0086] Since calculating the branching thresholds for each branch of the policy candidate flow using such mathematical optimization would be computationally expensive, the calculation of the branching thresholds can be made more efficient as follows: That is, the target value P of the allocation ratio of objects to the service to be provided for each service to be provided based on the above-mentioned effect target and the above-mentioned constraints is calculated. d It is also possible to calculate the branch threshold of each branch of the policy candidate flow by using a linear programming method or the like, and then calculate the branch threshold of each branch of the policy candidate flow based on the target value of such allocation ratio. For example, the setting unit 15E can optimize the branch threshold of each branch of the policy candidate flow by training a gradient method and a regression model.
[0087] 14 is a flowchart showing the procedure of the branch threshold setting process, as shown in FIG 14. The setting unit 15E sets an initial value to the branch threshold of each node of the policy candidate flow (step S501).
[0088] Next, the setting unit 15E applies the target data to the policy candidate flow for which the branching threshold value obtained in step S501 or step S507 is set, thereby obtaining the branching probability p of each node of the policy candidate flow and the allocation ratio P of the service to be provided. s (Step S502). The "target data" referred to here refers to feature data relating to objects, e.g., residents, belonging to the local government for which the user making the policy generation request, e.g., the policy planner, is planning a policy. For example, data may be provided in which feature values for each parameter type used for determining the conditions at branching, i.e., feature values for each feature type, are associated with each object. By applying such target data to the policy candidate data, the objects are allocated to branch destinations corresponding to the feature values of each object according to the branch threshold of each branch node, and finally, the objects are allocated to the terminal service to be provided. As a result, the branch probability p of each branch node is calculated, and the allocation ratio P to each service to be provided is calculated. s is calculated.
[0089] Here, the allocation ratio and branch probability of the service to be provided will be explained. When focusing on the branch probability of one branch node in the policy candidate flow, the allocation ratio to the service to be provided can be expressed by the linear expression of the following formula (1). j,i " and "v j,i " is a constant. Note that "i" in the following formula (1) is an index that identifies a branch node included in the policy candidate flow, and "j" in the following formula (1) is an index that identifies a node of a service to be provided included in the policy candidate flow.
[0090] P sj =u j,i *p i +v j,i ...Formula (1)
[0091] The change in allocation ratio in response to a change in branch probability is calculated using the following formula (2): In the formula (2), "N" indicates the number of branch nodes included in the policy candidate flow, and "M" indicates the number of services to be provided included in the policy candidate flow.
[0092]
[0093] Allocation ratio P of services to be provided s The target value P d For L, the branching probability p of each node can be calculated by gradient descent. In this case, the derivative of the loss function L defined by the following formula (3) can be expressed by the following formula (4). Furthermore, the differential relationship between the branching probability of the node and the allocation ratio of the provided service can be calculated by the above formula (2).
[0094]
[0095] From the above formula (4) and formula (2), the following formula (5) can be obtained as an update formula for the branching probability of the node. The first term in the following formula (5) is expressed by the following formula (6). Furthermore, the second term in the following formula (5) is expressed by the following formula (7). Note that "α" in the following formula (5) indicates the learning rate.
[0096]
[0097] Next, the setting unit 15E adds the branching thresholds and branching probabilities obtained in step S502 to the training data for each node in the policy candidate flow, and trains parameters of a regression model that outputs an estimated value of the branching threshold from the branching threshold (step S503). As one example of such a regression model, a GPR (Gaussian Process Regression) model can be used.
[0098]
[0099] Then, the setting unit 15E sets the target value P dand the current allocation ratio P of the service to be provided calculated in step S502. s The difference between these is calculated (step S504).
[0100] At this time, if the difference calculated in step S504 is not equal to or less than the threshold value (No in step S505), the setting unit 15E executes the following process. d The branch probability adjustment for each node is calculated from the difference with respect to (step S506) according to the above formula (7).
[0101] Then, the setting unit 15E calculates the branching threshold for the probability obtained by adding the adjustment to the current branching probability of each node using the regression model, and updates the branching threshold (step S507).
[0102] For example, in the GPR model shown in the above equation (8), the branch threshold calculated in step S502 is input with the adjustment amount calculated in step S506 added according to the above equation (5), and the input branch threshold is updated according to the above equation (9), and the updated branch threshold is output.
[0103]
[0104] After the process of step S507 is executed, the process proceeds to step S502. Thereafter, the processes of steps S502 to S507 are repeated until the difference calculated in step S504 becomes equal to or less than the threshold value (step S505: No). When the difference calculated in step S504 becomes equal to or less than the threshold value (step S505: Yes), the process ends.
[0105] In this way, the setting unit 15E calculates the allocation probability of each node included in the generated policy candidate flow using a machine learning model that outputs the allocation probability of each node included in the input policy flow in accordance with the input of the policy flow. Furthermore, when the allocation probability of each of the specified multiple nodes is specified, the setting unit 15E determines the condition of the conditional branch included in the generated policy candidate flow so that the error between the calculated allocation probability and the specified allocation probability is small.
[0106] The output unit 15F is a processing unit that outputs various types of information to the client terminal 30. In one aspect, the output unit 15F can display the policy candidate flow generated by the generation unit 15D, i.e., an instance of a graph structure, on the client terminal 30. In addition, the output unit 15F can also display on the client terminal 30 the policy candidate flow in which the branch threshold is set by the setting unit 15E for each branch node of the policy candidate flow generated by the generation unit 15D.
[0107] <One aspect of the effect> As described above, the server device 10 according to this embodiment extracts, as a path structure, an array of conditions corresponding to a path formed by a series of branch nodes leading to a terminal node corresponding to each service included in the flow graph of existing measures collected in the data base.
[0108] Therefore, the server device 10 according to the present embodiment can extract a path structure as an example of an element structure of a measure. Furthermore, the server device 10 can generate a candidate measure flow by searching the path structure DB 13B, which stores a set of path structures extracted for each service, for a set of paths corresponding to the service to be provided when the measure is implemented.
[0109] Although the embodiments of the disclosed device have been described above, the present invention may be embodied in various different forms other than the above-described embodiments. Therefore, other embodiments included in the present invention will be described below.
[0110] <Distribution and Integration> The components of each device shown in the figure do not necessarily have to be physically configured as shown. In other words, the specific form of distribution and integration of each device is not limited to that shown, and all or part of the devices can be functionally or physically distributed and integrated in any unit depending on various loads, usage conditions, etc. For example, the acquisition unit 15A, extraction unit 15B, reception unit 15C, generation unit 15D, setting unit 15E, or output unit 15F may be connected to the server device 10 as external devices via a network. As just one example, the acquisition unit 15A and extraction unit 15B and the reception unit 15C, generation unit 15D, setting unit 15E, and output unit 15F may be realized by separate server devices. Furthermore, the acquisition unit 15A, extraction unit 15B, reception unit 15C, generation unit 15D, setting unit 15E, or output unit 15F may each be included in separate devices, and may be connected to a network to cooperate with each other to realize the functions of the server device 10.
[0111] <Hardware Configuration> The various processes described in the above embodiments can be realized by executing a prepared program on a computer such as a personal computer, a workstation, etc. Therefore, an example of a computer that executes an extraction program having the same functions as those in the first and second embodiments will be described below with reference to FIG.
[0112] Fig. 15 is a diagram showing an example of a hardware configuration. As shown in Fig. 15, a computer 100 has an operation unit 110a, a speaker 110b, a camera 110c, a display 120, and a communication unit 130. The computer 100 also has a CPU 150, a ROM 160, a HDD 170, and a RAM 180. These units 110 to 180 are connected via a bus 140.
[0113] As shown in Fig. 15, the HDD 170 stores an extraction program 170a that performs the same functions as the acquisition unit 15A and extraction unit 15B described in the first embodiment. This extraction program 170a may be integrated or separated, similar to the components of the acquisition unit 15A and extraction unit 15B described in Fig. 1. In other words, the HDD 170 does not necessarily have to store all of the data described in the first embodiment, as long as the data used for processing is stored in the HDD 170.
[0114] Under such an environment, the CPU 150 reads the extraction program 170a from the HDD 170 and loads it into the RAM 180. As a result, the extraction program 170a functions as an extraction process 180a, as shown in FIG. 15 . The extraction process 180a loads various data read from the HDD 170 into an area of the storage area of the RAM 180 allocated to the extraction process 180a, and executes various processes using the loaded data. For example, examples of processes executed by the extraction process 180a include the processes shown in FIG. 5 . Note that the CPU 150 does not necessarily need to operate all of the processing units shown in the first embodiment above; it is sufficient that the processing units corresponding to the processes to be executed are virtually implemented.
[0115] The extraction program 170a does not necessarily have to be stored in the HDD 170 or the ROM 160 from the beginning. For example, each program may be stored on a "portable physical medium" such as a flexible disk, a so-called FD, a CD-ROM, a DVD disk, a magneto-optical disk, or an IC card that is inserted into the computer 100. The computer 100 may then retrieve and execute each program from such a portable physical medium. Alternatively, each program may be stored in another computer or server device connected to the computer 100 via a public line, the Internet, a LAN, a WAN, or the like, and the computer 100 may retrieve and execute each program from such a computer or server device.
[0116] REFERENCE SIGNS LIST 10 Server device 11 Communication control unit 13 Storage unit 13A Policy DB 13B Path structure DB 15 Control unit 15A Acquisition unit 15B Extraction unit 15C Reception unit 15D Generation unit 15E Setting unit 15F Output unit 30 Client terminal
Claims
1. The computer Acquire a policy including a plurality of conditional branches connected by directed edges and each node connected to a branch destination of each of the plurality of conditional branches; extracting a conditional branch that is a branch source of each of the nodes from among the plurality of conditional branches included in the policy; An extraction method comprising:
2. The extraction method according to claim 1, characterized in that the extraction process includes a process of extracting, for each terminal node included in the policy, an array of conditions corresponding to a path formed by a series of multiple conditional branches leading to the terminal node.
3. 3. The extraction method according to claim 2, wherein the extraction process includes a process of extracting a logical value, an operator, and a type of a parameter defined in the condition from each of the plurality of conditional branches.
4. 3. The extraction method according to claim 2, wherein the computer further executes a process of displaying the array of conditions in hierarchical order of a tree structure.
5. The extraction method described in claim 1, characterized in that when multiple nodes are specified, the computer further executes a process of referring to a memory unit that stores each node in association with the extracted branch source condition, and generating a measure that includes the specified multiple nodes and conditional branches corresponding to the specified multiple nodes.
6. calculating an allocation probability of each node included in the policy generated by the generating process using a machine learning model that outputs an allocation probability of each node included in the policy input in response to the input of the policy; determining a condition for a conditional branch included in the policy generated by the generating process so that an error between the calculated allocation probability and the specified allocation probability becomes small when the allocation probability for each of the specified nodes is specified; The extraction method according to claim 5, further comprising the steps of:
7. On the computer, Acquire a policy including a plurality of conditional branches connected by directed edges and each node connected to a branch destination of each of the plurality of conditional branches; extracting a conditional branch that is a branch source of each of the nodes from among the plurality of conditional branches included in the policy; An extraction program characterized by executing a process.
8. Acquire a policy including a plurality of conditional branches connected by directed edges and each node connected to a branch destination of each of the plurality of conditional branches; extracting a conditional branch that is a branch source of each of the nodes from among the plurality of conditional branches included in the policy; An information processing device having a control unit that executes processing.