Abstract:
A computer-implemented method and system defines a uniform decision-tree formation to store decision-making processes. Each node in a decision tree represents a factor decision. All nodes of a decision tree are interlinked in a hierarchical structure based on a decision-making process. Any decision tree of the present invention can serve as a sub-tree of another decision tree. Users can convert their decision-making processes into decision trees and make collaborative decisions through network.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Field of the Invention 
         [0002]    The present invention relates generally to a system and method of digitizing decision-making processes and automation of knowledge work. This invention intends to significantly improve the efficiency of knowledge sharing and decision-making processes. 
         [0003]    2. Description of the Related Art 
         [0004]    We store our analytical logic and decision-making processes (i.e. knowledge) in our heads, documents, or packaged software application. This invention provides another way to store our knowledge. We share knowledge through discussions, documents, or packaged software applications. This invention creates another way for people to share their knowledge electronically. 
         [0005]    Currently the way people make decisions requires a great deal of effort and is slow, and also inconsistent. We often know how we derived our results. It is very useful and helpful for us to retrace thinking steps and correct them in an adaptive manner. This invention develops methods and processes that allow people to digitize their decision-making processes and make collaborative decisions or analyses using a variety of expertise through networking computers and/or mobile devices, anywhere and anytime, which ensures consistency and transparency of their decision-making or analysis processes. 
     
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         [0006]    The accompanying figures where like reference numerals refer to identical or functionally similar elements and which together with the detailed description below are incorporated in and form part of the specification, serve to further illustrate an exemplary embodiment and to explain various principles and advantages in accordance with the present invention. 
           [0007]      FIG. 1  is a block diagram showing major components of a factor-decision node, in accordance with one or more aspects of the present disclosure. 
           [0008]      FIG. 2  is a logic diagram illustrating factor-decision-action relations of a node, in accordance with one or more aspects of the present disclosure. 
           [0009]      FIG. 3  is a conceptual diagram showing a topological structure of a distributed decision tree, in accordance with one or more aspects of the present disclosure. 
           [0010]      FIG. 4  is a flow chart illustrating operations of constructing a decision tree, in accordance with one or more aspects of the present disclosure. 
           [0011]      FIG. 5  is a flow chart illustrating operations of adding a node or sub-tree, in accordance with one or more aspects of the present disclosure. 
           [0012]      FIG. 6  is a flow chart illustrating operations of copying a node or sub-tree, in accordance with one or more aspects of the present disclosure. 
           [0013]      FIG. 7  is a flow chart illustrating operations of deleting a node or sub-tree, in accordance with one or more aspects of the present disclosure. 
           [0014]      FIG. 8  is a flow chart illustrating operations of moving a node or sub-tree, in accordance with one or more aspects of the present disclosure. 
           [0015]      FIG. 9  is a flow chart illustrating operations of pasting a node or sub-tree, in accordance with one or more aspects of the present disclosure. 
           [0016]      FIG. 10  is a flow chart illustrating a decision-making process using a decision tree, in accordance with one or more aspects of the present disclosure. 
       
    
    
     DETAILED DESCRIPTION 
       [0017]    The present invention defines a uniform decision tree formation, of which nodes of all decision trees have the same components. The present invention introduces methods to define factor-decision nodes and construct decision trees or distributed decision trees using the factor-decision nodes. A decision tree can be stored in an encrypted format at multiple storage locations. Furthermore, the diagrams of present invention illustrate how to perform an analysis or decision-making process using a decision tree. 
         [0018]    Given the description herein, it would be obvious to one skilled in the art of implementing the present invention in any general computer platform including computer processors, computer servers, computer devices, smart phones, and cloud servers. 
         [0019]    Description in these terms is provided for convenience only. It is not intended that the invention be limited to applications described in this example environment. In fact, after reading the following description, this will become apparent to a person skilled in the relevant art of how to implement the invention in alternative environments. 
         [0020]      FIG. 1  is a block diagram showing major components of a factor-decision node  100 . All nodes of decision trees of the present invention are comprised of the same components that include a set of processing functions  110 , a set of input counters  115 , a set of factor functions  120 , a set of weight functions  125 , a set of decision functions  130 , a set of action functions  140 , an output function  145 , a selection function  150 , a conclusion function  155 , and a set of learning functions  135 . A function of the present invention can be an executable program, data link, constant value, control command, or database query, where the value of the function can be a number, range, fuzzy value, percentage, multiple status, text, or statistics. 
         [0021]    A set of factor functions  120 , F={F 1 , . . . F i , . . . , F n }, defines a range and values of a decision factor, where a function F i  can be defined as an executable program, data link, constant value, or database query. Users can define their own set of factor functions F. For example, a range and values of a factor for marketing experience can be F={“Less”, “Some”, “Average”, “Good”, “Excellent”}. A range and values of a factor for average incomes by ages can be F={AVG(16≦age&lt;22), AVG(22≦age&lt;30), AVG(30≦age&lt;50), AVG(50≦age&lt;60), AVG(age≧60)}, where the AVG is a database query function and the value of the AVG is depended on the range of ages. 
         [0022]    A set of action functions  140 , A={A 1 , . . . A i , . . . , A n }, defines actions for factor values, where an action function A, can be an executable program, constant value, data link, control command, or database query. The values of the action functions A map to values of a set of factor functions F of its parent node. Users can define their set of action functions A. For example, a set of actions for stock trading decisions can be A={SELL(s), HOLD(s), ACCUMULATE(s), BUY(s)}, where the s is number of shares. 
         [0023]    A set of decision functions  130 , D(F)={D 1 (F 1 ), . . . D i (F i ), . . . , D n (F n )}, defines decision relations between factor values and actions, where a decision function, D i (F i ), can be an executable program or constant value. The decision function D i (F i ) determines which action or A, is taken for a factor value of the F i  or the D i (F i )=A j . Users can define their set of decision functions D(F). For example, a decision function determines that a person has less marketing experience if his age is between 16 and 22 or D i (“16≦age&lt;22”)=“Less”, where F i =“16≦age&lt;22” and A j =“Less”. 
         [0024]    A set of factor inputs  105 , X={x 1 , . . . , x j , . . . , x m }, is collected from human inputs, child nodes, data sources, and/or software applications, where all factor inputs for a node are mapped into its factor value or x j ε{F 1 , . . . , F i , . . . , F n } and 1≦j≦m. For example, F={“Less”, “Some”, “Average”, “Good”, “Excellent”} and X={“Less”, “Some”, “Some”, “Less”, “Some”, “Less”, “Some”, “Some”, “Less”, “Some”, “Average”, “Average”, “Less”, “Less”}, where m=14. 
         [0025]    A set of input weight functions  125 , W(X)={W 1 (x 1 ), . . . W j (x j ), . . . , W m (x m )}, assigns weight values to corresponding factor inputs. Users can define their own set of weight functions W. For example, a weighed factor input value can be W j (x j )=w j ×Unit(x j ), where w j  is 0≦w j ≦1, Unit(x j )=1, and 1≦j≦m. 
         [0026]    A set of input counters  115 , N={N 1 , . . . , N i , . . . , N n }, records weighted values of each factor F i  based on factor inputs X and weights W. The input counters are used to determine which action will be an output of the node. For example, if N i &gt;0, the action D i (F i )=A j  can be an output candidate. 
         [0027]    A set of processing functions  110 , P(X, W, F)={P 1 (X, W, F 1 ), . . . P i (X, W, F i ), . . . , P n (X, W, F n )}, collects the factor inputs X from specified sources including human inputs through computer devices, data extraction functions, and/or outputs of its child nodes. The factor inputs are mapped to factor values or x j ε{F 1 , . . . , F i , . . . , F n } and 1≦j≦m. The processing function P i (X, W, F i ) calculates each weighted value N i  based on the factor inputs in the set of X and weight functions in the set of W or P i (X, W, F i )=N i , where N i =Σ j=1   m  W j (x j )| x     j     =F     i   ) and 1≦i≦n. Users can define their processing function P(X, W, F). 
         [0028]    For example,
       Assume that   W j (x j )=w j ×Unit(x j ), where 0≦w j ≦1, Unit(x j )=1, and 1≦j≦m   {w 1 , . . . w j , . . . , w m }={0.5, 0.8, 0.5, 1, 1, 0.8, 0.4, 1, 0.9, 06, 1, 0.8, 0.7, 1}   F={“Less”, “Some”, “Average”, “Good”, “Excellent”}   X={“Less”, “Some”, “Some”, “Less”, “Some”, “Less”, “Some”, “Some”, “Less”, “Some”, “Average”, “Average”, “Less”, “Less”}   W(X)={w 1 ×Unit(“Less”), w 2 ×Unit(“Some”), w 3 ×Unit(“Some”), w 4 ×Unit(“Less”), w 5 ×Unit(“Some”), w 6 ×Unit(“Less”), w 7 ×Unit(“Some”), w 8 ×Unit(“Some”), w 9 ×Unit(“Less”), w 10 ×Unit(“Some”), w 11 ×Unit(“Average”), w 12 ×Unit(“Average”), w 13 ×Unit(“Less”), w 14 (“Less”)}={0.5, 0.8, 0.5, 1, 1, 0.8, 0.4, 1, 0.9, 06, 1, 0.8, 0.7, 1}   Then the weighted values of the set of input counters N are       
 
         [0036]    N={N 1 , N 2 , N 3 , N 4 , N 5 }={4.9, 4.3, 1.8, 0, 0}. 
         [0037]    An output function R(A, N)  145  generates a set of actions, [A k , A j , . . . , A p ], as action or decision options based on weighted values in the set N, where 1≦k≦j≦p≦n. Users can define their own output function. For example, assume that a selection rule of an output function is based on N i &gt;0, A={SELL(s), HOLD(s), ACCUMULATE(s), BUY(s)}, and N=[4.9, 4.3, 1.8, 0], then R(A, N)={A 1 , A 2 , A 3 }={SELL(s), HOLD(s), ACCUMULATE(s)}. The output of the function R(A, N) of a node can be a data source of decision reports. The output of the function R(A, N) of a root node can be used to trigger actions or other decision processes. 
         [0038]    A selection function a(t)  150  collects a final action A r  that is chosen at time t from either a selection process or its parent node, where A r ε{A k  . . . A j , . . . , A p } and k≦r≦p. The action A r  is mapped to a factor F i  or A r =D i (F i ). The factor F i  maps to an action A i  of its child nodes, where the action A i  may be different for each child node. The action A i  is used as a final action of the child nodes. For example, assume that the a(t) of a node FD 00  collects a final action A r =A 1 =SELL(s), the A 1 =D 2 (F 2 )=D 2 (“Poor Sales”) maps to F 2 =“Poor Sales” of the node FD 00 , the F 2  maps to an action A i =A 3 =“Poor Sales” of a child node FD 10 . The action A 3  is a final action to be taken at time t for the child node FD 10 . 
         [0039]    A conclusion function c(t)  155  collects a correct action A q  to be considered to an action A r  to be taken at time t from either an input or parent node, where A q ε{A 1  . . . A i , . . . , A n }, and 1≦q≦n. The A q  is mapped to a factor F i  or A q =D i (F i ). The F i  maps to actions A i  of its child nodes, where the action A i  may be different for each child node. The action A i  will be used as a correct action of the child nodes. For example, assume that the c(t) of a node FD 00  collects a correct action A q =A 2 =HOLD(s) for an action A r =A 1  at time t, the A 2 =D 3 (F 3 )=D 3 (“Low Sales”) maps to F 3 =“Low Sales”, and the F 3 =“Low Sales” maps to an action A i =A 2 =“Low Sales” of a child node FD 10 . The action A 2  is a correct action to be considered at time t for the child node FD 10 . 
         [0040]    A set of matrices  135 , M={M 1 , . . . , M i , . . . , M n }, stores decision historical data. Each M i  stores the last s pairs of taken and correct actions M i ={[a(t 1 ), c(t 1 )], [a(t j ), c(t j )], . . . , [a(t s ), c(t s )]}, where a(t j ) is an action that associates with a factor F i  or D i (F i )=a(t j ), s is the length of the matrix M i , and t j  is a time sequence. For example, a matrix M 3  stores the last eight pairs of taken and correct actions M 3 ={[a(t 1 ), c(t 1 )], [a(t 2 ), c(t 2 )], [a(t 3 ), c(t 3 )], [a(t 4 ), c(t 4 )], [a(t 5 ), c(t 5 )], [a(t 6 ), c(t 6 )], [a(t 7 )], [a(t 8 ), c(t 8 )]}={[A 1 , A 1 ], [A 1 , A 1 ], [A 1 , A 2 ], [A 2 , A 1 ], [A 1 , A 1 ], [A 1 , A 3 ], [A 1 , A 1 ], [A 1 , A 2 ]} for the factor F 3 . 
         [0041]    A set of learning functions  135 , L(M)={L 1 (M 1 ), . . . L i (M i ), . . . , L n (M n )}, adjusts the decision functions D(F) based on statistics of decision historical data in the matrixes M. The L i (M i ) modifies the current decision function D i (F i )=A r  to a new decision function D i ′(F i )=A q  based on statistics of decision historical data in the matrix M i , where 1≦i≦n, 1≦r≦n, and 1≦q≦n. Users can define their set of learning functions L(M). For example, assume M 3 ={[A 1 , A 1 ], [A 1 , A 2 ], [A 1 , A 2 ], [A 1 , A 2 ], [A 1 , A 2 ], [A 1 , A 3 ], [A 1 , A 2 ], [A 1 , A 2 ]} and the rule of the L 3 (M 3 ) is based on percentages of correct actions. Since 60% correct actions are A 2  in the M 3 , therefore, L 3 (M 3 ) modifies D 3 (F 3 )=A 1  to D 3 (F 3 )=A 2  for the future decisions. 
         [0042]      FIG. 2  is a logic diagram illustrating factor-decision-action relations of a node  200 . When a processing function P j (X, W, F j )  240  determines that a factor value F j    250  in the set of factor functions F  210  participates in the node decision process, a corresponding decision function D j (F j )  260  in the set of decision functions D  210  induces an action A i    270  in the set of actions A  230 . The action A,  270  is an action candidate for the output function R(A, N)  280 . 
         [0043]      FIG. 3  is a conceptual diagram showing a topological structure of a distributed decision tree DDT 0    300 , wherein two sub-trees DDT 1    370  and DDT 1    380  are stored at different storage locations. Each FD ij    310  of the distributed decision tree  300  represents a factor decision node, where 0≦i≦2 and 0≦j≦3. Each R ij    320  represents a set of outputs of the factor decision node FD ij , where 0≦i≦2 and 0≦j≦3. Each X,  330  represents a set of factor inputs of the factor decision node FD ij , where 0≦i≦2 and 0≦j≦3. The set of the X ij  includes outputs R (i+1)j , from its child node(s) and/or from factor inputs {x 1 , . . . , x j , . . . x m }. A solid line  340  indicates that two nodes are internally linked at the same storage location. A dash line  350  indicates that two nodes are linked at different storage locations. A distributed decision tree has at least one sub-tree that is stored at a different storage location. A distributed sub-tree DDT 1    370  or DDT 1    380  can be linked through network  360 . 
         [0044]      FIG. 4  is a flow chart illustrating operations  400  of constructing a decision tree. Users can choose an operation  410  to add  420 , copy  430 , delete  440 , move  450 , or paste  460  a node or a sub-tree and complete the operation  470 . 
         [0045]      FIG. 5  is a flow chart illustrating an operation  500  of adding a node or sub-tree. If a user decides to add a new node  510 , an empty node is linked to a current node as a child node or is used as a root node if the current decision tree is empty  520 . The user can specify factor, decision, action functions, factor-decision-action relations, processing functions, and factor input types and sources  540 . A factor input type can be a constant or function. A factor input source can be an output from a child node, human input, database, or software application. If a user wants to add a sub-tree  510 , the user chooses a decision tree through knowledge systems of the present invention  530 , maps action values of root node of the sub-tree to the factor values of the current node  550 , and links the root node of the sub-tree to the current node  560 . After adding a node or sub-tree is completed, the add operation  570  is ended. 
         [0046]      FIG. 6  is a flow chart illustrating operations of copying a node or sub-tree  600 . When a user selects a node  610 , the application of the present invention collects its child nodes  620 , copies this node and its child nodes into a temporary storage (e.g. a clipboard) for a pasting operation  630 , and exits the current copying operation  640 . 
         [0047]      FIG. 7  is a flow chart illustrating operations of deleting a node or sub-tree  700 . When a user selects a node  710 , the application of the present invention collects its child node  720 , deletes this node and its child nodes from the decision tree  730 , and exits the current deleting operation  740 . 
         [0048]      FIG. 8  is a flow chart illustrating operations of moving a node or sub-tree  800 . When a user selects a node to be moved  810  and a new parent node  820 , the application of the present invention links the moving node to the new parent node  830  and exits the current moving operation  840 . 
         [0049]      FIG. 9  is a flow chart illustrating operations of pasting a node or sub-tree  900 . When a user selects a destination node or parent node for pasting, the application of the present invention adds nodes from temporary storage under the destination node  920  and exits the current pasting operation  930 . 
         [0050]      FIG. 10  is a flow chart illustrating a decision-making process using a decision tree  1000 . When a user selects a decision tree to make decisions, the application of the present invention lists nodes of the decision tree that need factor inputs from non-child node sources  1005 . A user can specify the multiple input sources for a node, select receivers to send the decision reports or results, and schedule a decision-making job  1010 . The input sources can be from human inputs, databases, child nodes, and/or software applications. For example, a user can invite people to provide the factor inputs to specified nodes. A receiver can be an email address, mobile phone number, electric device, or software application. The user can select multiple receivers. When a scheduled job starts  1015 , the application of the present invention analyzes the structure of the decision tree, allocates available computing resources such as computer processors, distributes sub-jobs or sub-trees to each computing resource, and sends invitations to input sources with a response time  1020 . The application of the present invention triggers the decision-making process at each computing resource. All sub-jobs can be parallel processing  1025 . At each computing resource, the application of the present invention pushes all local nodes of the decision tree or a sub-tree in leaf-to-root order into a computing stack  1030 . At each computing resource, the application of the present invention retrieves one or many nodes from the stack and collects factor inputs for the node(s)  1035 , waits until the required factor inputs are collected or response time is over  1040 , performs the node decision and passes the node decision results to its parent nodes  1045 . If the stack is not empty  1050 , continue the decision process  1035 , else complete the process at this computing resource. If the current node is not the root node of the decision tree, the application waits until the root node is reached  1055 . If the current node is a root node of the decision tree  1055 , the application sends the decision results and/or action options to specified receivers  1060 , the whole decision process is completed  1065 . 
         [0051]    In summary, the present invention discloses a uniform knowledge formation, methods to digitize people&#39;s analysis or decision-making processes, methods to construct distributed knowledge or decision trees, and processing steps to perform analyses or make decisions with the decision trees. 
         [0052]    While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limited to the examples in this text. Thus, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.