Abstract:
A method for making optimal decisions includes the ability to consider and weigh multiple factors, where those factors might be numeric, or non-numeric, objective or subjective. Further, the method ensures that factors are not prematurely eliminated. This contrasts with behavior common to decision-tree based approaches. The method further allows for weighting based on multiple statistical means as well as by the application of non-statistical values.

Description:
[0001]    This invention claims priority to U.S. Provisional Patent Application No. 61/180,875 filed May 24, 2009. 
     
    
     BACKGROUND OF THE INVENTION 
       [0002]    This invention relates generally to decision and selection support logic. 
         [0003]    There are many decision support systems available currently. Most are specialized for a given subject matter. Many focus on a yes/no decision and there are some that focus on selection from multiple options. Decision support systems intend to consider multiple, possibly complex, factors in an objective, impersonal and emotionless manner. 
         [0004]    A common method is to develop a decision tree, making selections at each node in the tree to eliminate one candidate in favor of another. The requirement for these systems is that the candidates are inherently comparable by being numeric. Decision trees also eliminate candidates from consideration as the tree is traversed. This is analogous to a directed sequence of filters and can lead to premature elimination of some candidates. 
         [0005]    It would be advantageous to have a method by which all important factors for a decision, whether measurable or not, objective or not, could be considered when making decisions. Additionally, it would be advantageous for such a method to prevent suboptimal decisions due to premature elimination of candidates. 
       BRIEF SUMMARY OF THE INVENTION 
       [0006]    In accordance with the present invention, a method for decision making considers multiple factors, including but not limited to numeric factors. A method for decision making also avoids premature elimination of factors. The method of the present invention considers all possible factors, not simply those that have numeric values, and does so without premature elimination of factors. 
         [0007]    The method of the present invention accepts sets of candidates for each of the criteria to be considered, normalizes and ranks, per criterion, the values associated with each candidate according to rules defined for that criterion, and assembles the normalized and ranked candidates into a matrix organized by priority of criterion. The method then applies a weighting function to the prioritized criteria in the matrix, and by association to the per-candidate values for each criterion. The result is a weighted rank order for the candidates that considers the totality of criteria, without premature candidate elimination. 
       LIST OF TABLES 
       [0000]    
       
         
           
             Table 1 depicts a matrix of values associated with candidates and criteria. 
             Table 2 depicts a set of numeric values arranged in a simple sorted order. 
             Table 3 shows example candidate values, with their proportional values, normalized to 10 positions. 
             Table 4 shows pre-defined normalization rules in the preferred embodiment. 
             Table 5 shows a normalized matrix of candidates, criteria, and associated values. 
             Table 6 shows an example weighted matrix. 
             Table 7 shows an example weighted matrix with an adjusted criteria priority. 
           
         
       
     
     
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING 
         [0015]    The present invention may be better understood by referring to the following description taken in conjunction with the accompanying drawings in which: 
           [0016]      FIG. 1  depicts the overall logic flow of the method of the present invention, 
           [0017]      FIG. 2  depicts a graph of raw values and their equivalents in simple sorted order, 
           [0018]      FIG. 3  includes 3 graphs that illustrate the effect of different weighting algorithms (linear, logarithmic, exponential and stepped), and 
           [0019]      FIG. 4  depicts a simplified data model reflecting the relationships amongst criteria, candidates and values. 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0020]    The method of the present invention first accepts a matched set of candidates and criteria, such that for each criterion, there is a corresponding set of candidates. Each candidate is uniquely identifiable and, for each criterion there is a value. Values have types in that, for each candidate, the value corresponding to a criterion is of the type associated with that criterion. Types need not be numeric; they need only be comparable according to a defined rule associated with that type. Values in the input are typically unordered, but can be pre-ordered. Values can be inherently objective and measurable, or can be subjective. Values need only be orderable according to an ordering rule associated with the values&#39; type. For example, a criterion for a decision to purchase a television set might be something like “Brand preference”. This is likely subjective, but presumably the interested party has an ordered list of brands, or even a single favorite brand. In the preferred embodiment, values for “Brand preference” would belong to a special type defining the ordering rule for values of that type. 
         [0000]    
       
         
               
             
               
               
             
               
               
               
               
               
             
           
               
                 TABLE 1 
               
             
             
               
                   
               
               
                 Candidates, Criteria and Values 
               
             
          
           
               
                   
                 Criteria 
               
             
          
           
               
                   
                 Criterion A 
                 Criterion B 
                 Criterion C 
                 Criterion D 
               
               
                   
               
               
                 Candidate 1 
                 Value A1 
                 Value B1 
                 Value C1 
                 Value D1 
               
               
                 Candidate 2 
                 Value A2 
                 Value B2 
                 Value C2 
                 Value D2 
               
               
                 Candidate 3 
                 Value A3 
                 Value B3 
                 Value C3 
                 Value D3 
               
               
                 Candidate 4 
                 Value A4 
                 Value B4 
                 Value C4 
                 Value D4 
               
               
                 Candidate 5 
                 Value A5 
                 Value B5 
                 Value C5 
                 Value D5 
               
               
                 Candidate 6 
                 Value A6 
                 Value B6 
                 Value C6 
                 Value D6 
               
               
                   
               
             
          
         
       
     
         [0021]    Table 1 depicts a matrix of values associated with candidates and criteria where, for example, Value A1 is the value of Candidate 1 with respect to Criterion A. Input to the method need not be in table form; the table is for illustration of the relationships amongst the components. 
         [0022]    For each criterion, the method determines the relative rank of each candidate according to the rules associated with that criterion&#39;s type. Criterion types include basic types such as numeric and Boolean, as well as more complex types, including context-specific types (e.g. the “Brand preference” type in the previous example). 
         [0023]      FIG. 1  represents the overall flow of logic in the method. Major processes within the flow include Assembly (Item  101 ), Normalization (Item  104 ), Prioritization (Item  105 ) and Weighting (Item  108 ). Initial gathering of candidates, criteria and values is omitted from the flow diagram, and can be accomplished in any manner that produces suitable input to the process (e.g. by means of a database query). 
       Value Normalization 
       [0024]    The method of the present invention includes a normalization process (Item  104  in  FIG. 1 ). The normalization process is responsible for applying, to candidate values, the rules associated with a criterion. A simple example would have 10 candidates whose values, for a numeric criterion would be {20, 31, 1, 15, 3, 6, 16, 17, 20, and 21}. In such a case, the values would be normalized to a range of 1 through 10 (to align with the number of candidates). Table 2 shows these values arranged in a simple sorted order. 
         [0000]    
       
         
               
             
               
               
               
               
             
               
               
               
               
               
             
           
               
                 TABLE 2 
               
             
             
               
                   
               
               
                 Simple Value Ordering 
               
             
          
           
               
                   
                 Raw Value 
                 Rank 
                 Points 
               
               
                   
                   
               
             
          
           
               
                   
                 Candidate 3 
                 1 
                 10 
                 1 
               
               
                   
                 Candidate 5 
                 3 
                 9 
                 2 
               
               
                   
                 Candidate 6 
                 6 
                 8 
                 3 
               
               
                   
                 Candidate 4 
                 15 
                 7 
                 4 
               
               
                   
                 Candidate 7 
                 16 
                 6 
                 5 
               
               
                   
                 Candidate 8 
                 17 
                 5 
                 6 
               
               
                   
                 Candidate 1 
                 20 
                 3 
                 8 
               
               
                   
                 Candidate 9 
                 20 
               
               
                   
                 Candidate 10 
                 21 
                 2 
                 9 
               
               
                   
                 Candidate 2 
                 31 
                 1 
                 10 
               
               
                   
                   
               
             
          
         
       
     
         [0025]    Rank in this example is almost literally the sort order, with the minor exception of a tie for 3 rd  place. In some contexts, this might be reasonable, but the distribution is not uniform, and so a more elaborate rule might be applied in some contexts. The primary motivation for the method&#39;s use of per-criterion rules is to derive the best possible decisions, in a variety of contexts. The method is therefore easily extensible in that rules can be defined per criterion for any context. For example, candidate 2 has a value of 31, putting it in 1 st  place (with 10 points), and candidate 10 has a value of 22 (over 32% less than candidate 10) but by being in 2 nd  place, has 9 points (only 10% less than for candidate 2). At least superficially, this seems inequitable, as candidate 10 appears to be getting more credit than it deserves and this might lead to a suboptimal decision. 
         [0026]    Graph  1  in  FIG. 2  depicts the raw values from the previous example, along with the straight-line function resulting from simple sorting (1, 2, 3, 4, 5, 6, 7, 8, 9, 10). It is clear that the straight line and the raw values line deviate from each other, especially for candidates 4, 5, 8 and 9. 
         [0027]    Normalization considers not only the minimum and maximum values, but the expected distribution and range of values, as defined for a criterion. For example, the range of possible values might be 1 though 32, but a value of 16 might not be the median and should not be treated as such when ranked (depending on context), so a simple linear proportion might be inappropriate in that case. Another example might have raw statistical data whose standard deviation must be considered and the value interpreted in that manner. Still another example might have data that requires smoothing with a logarithmic function. 
         [0028]    For illustration, assume that the values in the preceding example are directly proportional to their importance in the decision making process. A criterion rule can be defined such that the normalization process results in a more equitable point award. A simple interpretation of proportional value would normalize the value by the ratio of a value to the maximum value in the range (it is also reasonable to define a minimum and/or maximum for a range, and compare a value to the range). Table 3 shows the candidate values from the example, with their proportional values, normalized to 10 positions (to align easily with 10 candidates) using a simple rounding operation. 
         [0000]    
       
         
               
             
               
               
               
               
             
               
               
               
               
               
             
           
               
                 TABLE 3 
               
             
             
               
                   
               
               
                 Proportional Value Ordering 
               
             
          
           
               
                   
                 Raw Value 
                 Ratio to Max 
                 Points 
               
               
                   
                   
               
             
          
           
               
                   
                 Candidate 3 
                 1 
                 0.032258 
                 1 
               
               
                   
                 Candidate 5 
                 3 
                 0.096774 
               
               
                   
                 Candidate 6 
                 6 
                 0.193548 
                 2 
               
               
                   
                 Candidate 4 
                 15 
                 0.483871 
                 5 
               
               
                   
                 Candidate 7 
                 16 
                 0.516129 
               
               
                   
                 Candidate 8 
                 17 
                 0.548387 
               
               
                   
                 Candidate 1 
                 20 
                 0.645161 
                 6 
               
               
                   
                 Candidate 9 
                 20 
               
               
                   
                 Candidate 10 
                 21 
                 0.677419 
                 7 
               
               
                   
                 Candidate 2 
                 31 
                 1 
                 10 
               
               
                   
                   
               
             
          
         
       
     
         [0029]    Using a simple ratio rule, the normalization process awards points more appropriately relative to the example context. A simple ratio is not always an option, as the values have different semantics in different contexts. The method allows for all manner of normalization and ranking rules. 
         [0030]    The preferred embodiment includes pre-defined normalization rules, as described in Table 4. 
         [0000]    
       
         
               
             
               
               
               
               
             
           
               
                 TABLE 4 
               
             
             
               
                   
               
               
                 Pre-defined Normalization Rules 
               
             
          
           
               
                 Rule 
                 Type 
                 Default Order 
                 Options 
               
               
                   
               
               
                 Existential 
                 Boolean 
                 Ascending (True &gt; False) 
                 Range min/max 
               
               
                 Proportional 
                 Numeric 
                 Ascending 
                 Range min/max 
               
               
                 Stepped 
                 Numeric 
                 Ascending 
                 Number of steps; 
               
               
                   
                   
                   
                 Step positions 
               
               
                 Deviation 
                 Numeric 
                 Descending 
                 Sign bias 
               
               
                 Logarithmic 
                 Numeric 
                 Ascending 
                 Base 
               
               
                   
               
             
          
         
       
     
       Sorting and Weighting Criteria 
       [0031]    A decision typically involves multiple criteria, and these criteria can be independent. While it is possible, it is also unlikely that all criteria in a decision context would have the same priority. For example, price might have a higher priority than the length of warranty period. To achieve higher quality decisions, the method of the present invention orders the criteria by importance to the decision. 
         [0032]    Table 5 shows a (simplified) matrix of candidates and criteria for a television purchase as might be produced by the normalization process. Note that, because there are 5 candidates, values are normalized to 5. 
         [0000]    
       
         
               
             
               
               
               
               
               
               
               
             
               
               
               
               
               
               
               
             
           
               
                 TABLE 5 
               
             
             
               
                   
               
               
                 Example Normalized Matrix 
               
             
          
           
               
                   
                 Price 
                 Resolution 
                 Contrast 
                 Warranty 
                 Brightness 
                 Raw Total 
               
               
                   
                   
               
             
          
           
               
                 TV 1 
                 3 
                 5 
                 2 
                 3 
                 3 
                 16 
               
               
                 TV 2 
                 1 
                 5 
                 5 
                 5 
                 5 
                 21 
               
               
                 TV 3 
                 2 
                 5 
                 3 
                 3 
                 4 
                 17 
               
               
                 TV 4 
                 5 
                 1 
                 1 
                 1 
                 1 
                 9 
               
               
                 TV 5 
                 3 
                 5 
                 5 
                 3 
                 2 
                 18 
               
               
                   
               
             
          
         
       
     
         [0033]    From the raw totals, it seems there is a leading candidate. In most decision making processes, the work would be done, but the analysis would be inadequate unless all criteria were equally important. Simply sorting by the relative importance of the criteria does not change the total, but the weighting process does. 
         [0034]    Once the criteria have been sorted in priority order, the weighting rules can be applied. Weighting rules take the raw values and, using a context-specific algorithm, transform the raw values into values weighted by the position of a criterion in the priority order. For example, using a simple linear weighting rule, the highest priority criterion might receive a weighting value of 100 and the lowest might receive 20. This weighting value would then be applied to the raw value to yield the weighted values that make the final decision. Graphs  2 ,  3 ,  4  and  5  in  FIG. 3  illustrate the effect of 4 example weighting algorithms (linear, logarithmic, exponential and stepped). 
         [0035]    Depending on the rule, different candidates might appear as the leading candidate. 
         [0036]    For illustration, using the values from Table 5, including the order of criteria (left-to-right from most to least important), weighting rules could yield the following weighted totals (Table 6). 
         [0000]    
       
         
               
             
               
               
               
               
               
               
             
               
               
               
               
               
               
               
             
           
               
                 TABLE 6 
               
             
             
               
                   
               
               
                 Example Weighted Matrix 
               
             
          
           
               
                   
                 Raw 
                 Linear 
                 Log 
                 Square 
                 Stepped 
               
               
                   
                   
               
             
          
           
               
                   
                 TV 1 
                 16 
                 1000.0 
                 1294.2 
                 752.0 
                 1160.0 
               
               
                   
                 TV 2 
                 21 
                 1100.0 
                 1543.8 
                 700.0 
                 1300.0 
               
               
                   
                 TV 3 
                 17 
                 980.0 
                 1311.5 
                 692.0 
                 1140.0 
               
               
                   
                 TV 4 
                 9 
                 700.0 
                 824.8 
                 620.0 
                 740.0 
               
               
                   
                 TV 5 
                 18 
                 1160.0 
                 1502.2 
                 856.0 
                 1320.0 
               
               
                   
                   
               
             
          
         
       
     
         [0037]    While any number of different weighting algorithms might be used, the net effect is very important. In all but the Log case, weighting has produced a different outcome than the raw points totals had, selecting TV 5 as the leading candidate in 3 of the 4 weightings. 
         [0038]    Changing the priority order of criteria can also have a significant effect on the outcome. Again, taking the example values, but adjusting the priority such that resolution becomes the most important criterion, with contrast second, and price being third, the results are slightly different, as seen in Table 7. 
         [0000]    
       
         
               
             
               
               
               
               
               
               
             
               
               
               
               
               
               
               
             
           
               
                 TABLE 7 
               
             
             
               
                   
               
               
                 Example Weighted Matrix with Different Priority 
               
             
          
           
               
                   
                 Raw 
                 Linear 
                 Log 
                 Square 
                 Stepped 
               
               
                   
                   
               
             
          
           
               
                   
                 TV 1 
                 16 
                 1020.0 
                 1302.7 
                 796.0 
                 1120.0 
               
               
                   
                 TV 2 
                 21 
                 1260.0 
                 1641.1 
                 956.0 
                 1460.0 
               
               
                   
                 TV 3 
                 17 
                 1060.0 
                 1357.7 
                 828.0 
                 1180.0 
               
               
                   
                 TV 4 
                 9 
                 540.0 
                 727.5 
                 364.0 
                 580.0 
               
               
                   
                 TV 5 
                 18 
                 1240.0 
                 1550.8 
                 984.0 
                 1400.0 
               
               
                   
                   
               
             
          
         
       
     
         [0039]    With the change in priority for price, now only the Square weighting makes TV 5 the leading candidate, with TV2 being the leading candidate in the other 3 weightings (as well as the raw ranking as before). 
         [0040]    The choice of which weighting to use depends on context, and on the criteria involved. In some contexts, there can be a criterion that is significantly more important that the next most. In that case, an exponential weighting will ensure that the most important criterion is considered appropriately. For example, to make a decision about a dog to get for one&#39;s children, the criteria might include the dog&#39;s health, age, cost, breed, color of coat and so forth. It seems reasonable that health would be more important than coat color. If each criterion were given a value on a scale of 1 to 10, with respect to importance, health would get 10 points, with breed, cost, age and coat color getting 9, 8, 3 and 2 points respectively. This fits an exponential weighting model. If the same criteria, again on a hypothetical scale of 1 to 10, were given a different weighting, perhaps 10, 5, 2, 1 and 1 respectively, then the weighting model is logarithmic. The weighting model is intended to reflect the actual priority of the criteria to the interested party. 
         [0041]    Weighting is not, however, intended as a pass/fail filter. That kind of operation should be performed when developing the list of candidates, before applying the decision making method. Using the family dog example, if one of the children had allergies to certain breeds, then dogs belonging to those breeds would not be candidates in the first place. There would be no reason, in that example, to use a criterion like “Hypoallergenic”. If, on the other hand, allergic reaction was not a serious issue, i.e. not a pass/fail filter, then a simple Boolean criterion would be appropriate. While it is possible to use the method as a pass/fail filter, with a combination of priority and weighting, simple yes/no answers can be derived using established methods. 
         [0042]    In some contexts, it might be desirable to use multiple weightings and to apply a function to those outcomes to create a final decision. 
         [0043]    The method is not limited to a single pass through a set of values. It is reasonable to expect that the method can be applied to subsets of criteria, using different priority and weighting rules for each subset. The resulting weighted rankings could then be used as input to a separate application of the method. 
         [0044]    In the preferred embodiment, software classes represent candidates, criteria and values.  FIG. 4  depicts a simplified data model, as might be used in the preferred embodiment, reflecting the relationships amongst criteria, candidates and values. Item  401  denotes the CANDIDATE class, representing a candidate. Item  402  denotes a 1:N client-supplier relationship where a candidate has ‘N’ criteria, each of type CRITERION (Item  403 ). CRITERION is an abstract class that inherits RULE_ORDERABLE (Item  405 ), also abstract. RULE_ORDERABLE has a feature called “value” (Item  406 ) of type ANY (Item  407 ). The diagram shows 3 subclasses of CRITERION: BOOLEAN_CRITERION (Item  409 ), NUMERIC_CRITERION (Item  410 ) and SEQUENTIAL_CRITERION (Item  409 ). The diagram omits context-specific subclasses of CRITERION for simplicity. Because CRITERION inherits RULE_ORDERABLE, each object of that type and any of its descendent types also has a feature called “value”. BOOLEAN_CRITERION, NUMERIC_CRITERION and SEQUENTIAL_CRITERION each redefine the type of “value” (covariantly) to any appropriate type for that subclass. All classes inherit at least implicitly from ANY (Item  407 ), though  FIG. 4  omits most of the arrows showing that inheritance, for simplicity. 
         [0045]    RULE_ORDERABLE has a feature of type RULE (Item  408 ). Because CRITERION inherits RULE_ORDERABLE, each object of that type and any of its descendent types also has a feature of type RULE. SEQUENTIAL_CRITERION has a feature called “values” of type SEQUENCE [ANY] (Item  417 ) and is a data structure containing items conforming to type ANY. NORMALIZED_SEQ_CRITERION (Item  418 ) is a subclass of SEQUENTIAL_CRITERION. 
         [0046]    Each subclass of CRITERION has a subtype-specific value, and each of these inherits from COMPARABLE_VALUE (Item  413 ), that in turn inherits from PART_COMPARABLE (Item  414 ). The rule associated with a CRITERION (from RULE_ORDERABLE), is a feature of the CRITERION subclasses (via inheritance). 
         [0047]    Boolean values in the described data model are quite simple, having values of either True or False. It is also possible to support a third value of Undefined (or Unknown), but  FIG. 4  does not show this, in the interest of simplicity. The rule associated with the BOOLEAN_CRITERION might order Boolean values with True as the highest or with False as the highest, depending on context. The preferred embodiment uses a flag to denote the ranking order. The flag is called ‘is_descending’ and is by default False, meaning that value ordering by default is ascending, with True being “greater than” False. 
         [0048]    Numeric values are also relatively simple. While there can be various subclasses of NUMERIC_VALUE (e.g. for integer and floating point),  FIG. 4  omits any such examples, for simplicity. Numeric values, like Boolean values, can be ascending or descending. 
         [0049]    Numeric values, unlike their Boolean counterparts, have a wide range of possible values, and a collection of values might not represent a linear function. A context might call for positive and negative values. A context might evaluate deviation from median as the point of comparison. 
         [0050]    Sequential values (i.e. values associated with SEQUENTIAL_CRITERION) are pre-ordered sets of values. For a given sequential criterion, each candidate would, according to the data model of the preferred embodiment, have reference to the same ordered set. Because the NORMALIZED_SEQ_CRITERION class is a subclass of the SEQUENTIAL_CRITERION class, it has an associated pre-ordered value set, but the value set is further specialized to be pre-normalized according to a pre-defined rule. 
       Uses 
       [0051]    The preferred embodiment would provide multiple modes of operation, including an interactive mode. In an interactive mode, a user or other entity would be able to manipulate the priority of the criterion as desired. 
         [0052]    It might be desirable in some contexts to use this capability to browse possible combinations or priorities, also possibly eliminating one or more criteria or candidates, until a desired outcome is achieved. While this is not strictly speaking a decision making process, it might be useful for developing advertising and marketing materials that emphasize the characteristics of one product over another. A batch-like mode might be used to generate this sort of information automatically. 
         [0053]    Consumer purchase decisions are a good application of the invention. The capabilities could be embodied in on-line or in-store kiosk-like applications that accept a consumer&#39;s preferences and use patterns, and translates them into comparable criteria and eventually into a decision. 
         [0054]    While the example used a TV set purchase for illustration, the method is not limited to electronics purchases (or even to purchases). The method is applicable to all manner of decision making and selection, even to scheduling (i.e. decisions and selections of time slots). The method is also not limited to single-selection results, as the candidates are ranked according to criteria as part of the method. 
         [0055]    The method of the present invention, by considering all factors and not eliminating candidates prematurely, results in a higher quality decision. The objective nature of the process, even if some of the criteria might be themselves subjective, adds credibility and traceability to the process and to the result.