Abstract:
A method has been developed for generating, refining and determining the consequences of complex systems of multiple cause and effect relationships. The novel method is applicable to biological systems as well as man-made systems, as it is based on the collecting and using observed behaviors as well as previous understood mechanism or relationships. The method is particularly useful in multi-variable system with significant interactions among sub-components, especially when there is limited expertise or complete understanding of all the components and their respective relationships interactions. In these cases the method provides guidance for future experiments that develop further expertise. The method has particular power and benefit as it provides for a distinction and comparison of the merits of conducting further experiments based on defined criteria. For example alternative solutions or experiments can be suggested and distinguished on the basis of cost, delay or a negative or detrimental outcome, based on prior experience and knowledge of interactions, in contrast to those that provide additional insight or solve the problem with a lower risk of negative implications.

Description:
CROSS REFERENCE TO RELATED APPLICATIONS  
         [0001]    None  
         Background of Invention  
         [0002]    The present invention relates to a method of developing, refining and using expert systems, to solve and diagnose problems represented by multivariable dependent systems; including those implemented on a computer readable medium having computer executable instructions.  
           [0003]    Prior methods of developing and using so-called “expert systems” for the solving or diagnosis of problems required an expert to develop a logical structure that would generate a series of queries wherein the answers to each query would select additional queries, until the software develops the conclusions similar to those that could be reached by analogy to how an expert would reach his or her conclusions.  
           [0004]    Using prior methods of developing and using so-called “expert systems” one tries to guess the controllable and assumed causes of specified observable events based on the judgments of an existing expert or experts without recourse to understanding the unobservable primitive mechanisms that explain the behavior.  
           [0005]    Users of prior “expert systems’ may not know the assumptions used by the expert in formulating the model and may be inclined to use the model under circumstances where those assumptions are not satisfied.  
           [0006]    Because prior methods of developing and using so-called “expert system” do not rely on the underlying mechanisms of primitive cause and effect relations, they are limited in the questions that can be asked of them to those anticipated by the expert.  
           [0007]    Because prior methods of developing and using so-called “expert system” do not rely on the underlying mechanisms of primitive cause and effect relations, they cannot be easily modified with new knowledge introduced by anyone other than the original expert.  
           [0008]    Conventional expert systems have found many practical applications in customer service and to provide professional training and expertise to general practitioners in various fields. However, they are primarily of limited applicability, being limited to well understood and characterized systems where the expertise has been generated by significant experimentation or observations or experience acquired over time. Furthermore, to develop an expert system requires an expert who can construct the structure of the query logic in a manner where each query predictably leads to the ultimate result.  
           [0009]    However, in reality there are indeed few experts in relation to all the existing complex systems for which one would like to have diagnostic methods, be the systems naturally occurring or man-made or designed  
           [0010]    Accordingly, it is an object of the invention to provide a method of generating, testing, and refining proposed cause and effect systems that provide guidance into diagnostic steps more likely to be fruitful and unlikely to have a negative outcome that is either temporarily or permanently detrimental to a real system.  
           [0011]    It is also an object to the invention to provide a method of expanding expert systems based on the outcome of the diagnostic steps taken.  
           [0012]    Yet another object of the invention is to provide a method-of determining whether a potential solution has been identified based on the accumulated experience of multiple diagnostic steps.  
           [0013]    A further object of the invention is to provide methods and data structures that permit simple natural language queries for both constructing and using expert systems.  
           [0014]    An objective of using a cause and effect model developed by means of this invention is to make it possible for the user to see and possibly change the assumptions.  
           [0015]    Another objective of using a cause and effect model developed by means of this invention is to make it possible to see the cause and effect logic that has led to the conclusions the model has reached and change that logic if appropriate.  
         SUMMARY OF INVENTION  
         [0016]    The present invention provides methods of developing, refining and using cause and effect models to diagnose and solve problems represented by systems of simultaneous multivariable Boolean equations involving AND&#39;s and OR&#39;s representing primitive cause and effect relations that define whether certain events exist or do not exist including those implemented on a computer readable medium having computer executable instructions.  
           [0017]    In the present invention, the first object is achieved by constructing a hypothetical system of simultaneous Boolean equations by defining a set of events to be considered, stating which of those events are primary, that is within the control of the user or can be assumed by the user, which of those events are secondary, that is they depend on the existence of primary and/or other secondary events, and which of these secondary events are observable or intermediate (hidden) and the relationship between each event and every other pertinent event expressed as a primitive Boolean expression.  
           [0018]    By the Boolean expressions one defines the truth or falsity of the existence of each secondary event as a Boolean expression of other events (Preferred implementation: Disjunctive form, i.e., OR&#39;s between sets of AND&#39;s) to create a system of simultaneous Boolean equations.  
           [0019]    Another objective is achieved by solving this system of simultaneous Boolean equations so as to express the truth of each secondary event as a Boolean expression of the truth of primary events.  
           [0020]    Another objective is achieved by setting the existence of a certain subset of primary events as as true and determining as a consequence what secondary events then exist.  
           [0021]    The above and other objects, effects, features, and advantages of the present invention will become more apparent from the following description of the embodiments thereof taken in conjunction with the accompanying drawings. 
       
    
    
     BRIEF DESCRIPTION OF DRAWINGS  
       [0022]    [0022]FIG. 1 shows a legend and schematic representing Example II.  
         [0023]    [0023]FIG. 2 shows one possible structure shown as applied to Example I and to Example II.  
         [0024]    [0024]FIG. 3 shows an alternative user interface using a matrix structure as applied to example II.  
         [0025]    [0025]FIG. 4 shows the Boolean rules and meta-rules used in the solution of the Boolean equations.  
         [0026]    [0026]FIG. 5 shows the Boolean equations corresponding to Example II.  
         [0027]    [0027]FIG. 6 shows the calculations used to solve the equations in FIG. 5.  
         [0028]    [0028]FIG. 7 shows the outline representation for the input to Example I.  
         [0029]    [0029]FIG. 8 shows a embodiment for implementing a data structure useful in the computer implementation of the user interface using an outline. 
     
    
     DETAILED DESCRIPTION  
       [0030]    Definitions  
         [0031]    The cause and effects models to be constructed and solved are constructed by specifying events and relationships between events. Events are situations that may or may not exist. The same events can at various times act either as causes or effects. Thus the relationship between various events is that the occurrence or existence of one event can contribute to causing of another event to exist.  
         [0032]    An event is considered to exist or be present when the Boolean conditions for it to be true are satisfied. Otherwise it is assumed to not exist or be absent. (Note that an event does not have to be False for it to not exist, just that it not be true.) If an event is neither True nor False, it is irrelevant.  
         [0033]    An event is non-true if it is either false or its truth or falsity is not defined thus making it irrelevant.  
         [0034]    The events can be either primary or secondary. Primary events are any events that can be set as true or false or not set by the user. Primary events may be used to describe controllable actions that can be taken or prescribed, or assumptions that are made.  
         [0035]    Primary events are those subsets of the events that the user can select whether they exist or do not exist or whether they are assumed to exist or not exist.  
         [0036]    The user at his or her discretion may set any, but not necessarily all, of primary events to be True or False or irrelevant if not set to either true nor false.  
         [0037]    Primary events are designated controllable or controls if they are under the control of the user to take or not take, i.e.; they can become a prescription of what one can do to cause or prevent an event, or assumable or assumes if the user can assume or not assume their existence at his or her discretion.  
         [0038]    A subset of primaries can be set by the User to exist by setting their values to true.  
         [0039]    Assumed events can be used to assume the existence or not existence of external causes that are not otherwise part of the current model.  
         [0040]    Secondary events are all those events that may be caused by primary events or by other secondary events. Secondary events may be intermediate/hidden or observable.  
         [0041]    Observable events are those that can be directly observed or observed after a test as to whether they exist.  
         [0042]    A Boolean expression or combination in disjunctive canonical form consists of Terms that imply that all the effects within a Term must be present or not present as specified to cause the term to be satisfied. ORs are placed between Terms to imply that when any one of the terms is satisfied that the expression is satisfied.  
         [0043]    A Term is a subset of events joined by ANDs such that they cause an event to exist (true) if each and every one of those events in the term either exists (true) or is non-true as specified. An event is satisfied if the value of at least one of its terms is true. A Boolean expression can be used to form a Boolean equation to say that when the expression is satisfied that a specified event exists (true).  
         [0044]    A term can have either of two types of receptors. An existence receptor requires the existence of another event in order for the term to be satisfied. A non-existence receptor requires the non-existence (i.e., the existence be non-true) of another event in order for the term to be satisfied.  
         [0045]    A primitive cause and effect relation is the expression of whether a given event exists (true) according to whether a Boolean expression of AND&#39;s and OR&#39;s results in the value true (exists).  
         [0046]    An option is the satisfaction of the conditions of any term. ORs between terms imply that there is more than one option that will satisfy the existence of an event.  
         [0047]    A cause and effect model is made up of a set of primitive cause and effect relations.  
         [0048]    Thus the events and their causal interrelationships are represented/modeled by systems of simultaneous Boolean equations. The Boolean equations are solved to trace secondary events back to the primary events that cause them. A model may become a template that can be used by others in developing their own models or applied by others in making diagnoses and receiving advice for how to set primary events to obtain wanted consequences.  
         [0049]    A mechanism is a set of paths through the satisfied events in a cause and effect model that lead to a term that explains how a cause or combination of causes generates a term that would produce an effect. A mechanism may be ruled out in developing the model if it produces effects that don&#39;t conform to reality.  
         [0050]    A recursive set of equations are those subset of equations for which there exists some order in which they than can be solved such that each equation can be solved for its dependent variable having all its independent variables previously solved for. Non-recursive equations are those subsets of equations that cannot be solved recursively.  
         [0051]    One develops a model by building or constructing it from primitive cause and effect relations. Refining a model is to make improvements in the hypotheses represented in the cause and effect model so that it better predicts what effects do or do not exist.  
         [0052]    In an embodiment the method may be implemented on a general purpose computer using software to determine primary causes of each secondary event by solving the Boolean equations to express the existence or non-existence of each secondary event as a Boolean expression of the pertinent subset of the primary events.  
         [0053]    An additional embodiment includes methods of use wherein one provides a setting of controllable and assumable events that will cause a given secondary event to exist or will prevent a given secondary event from existing.  
         [0054]    Embodiments  
         [0055]    In one embodiment the Boolean equations are solved using Boolean substitution, Boolean multiplication of expressions, and the axioms of Boolean algebra and meta-rules to express all secondary events as a function of primary events.  
         [0056]    Another embodiment of this invention uses the software of this invention implemented on a computer readable medium having computer executable instructions to solve these simultaneous Boolean equations so as to express whether certain events exist or do not exist in terms of the existence or non-existence of certain primary events that a user might later wish to specify whether they exist.  
         [0057]    Another implementation of this invention uses the software of this invention implemented on a computer readable medium having computer executable instructions to create and test hypotheses of how a system made up of individual primitive cause and effect relations would behave as a whole.  
         [0058]    Another implementation of this invention uses the software of this invention implemented on a computer readable medium having computer executable instructions to use that same system of Boolean equations to determine the existence or non-existence of secondary effects as various combinations of primary events that may be specified to exist or specified as assumed to exist by the user.  
         [0059]    In another embodiment theaxioms of Boolean algebra and meta-rules are used to eliminate any false or redundant expressions and sub-expressions that need not appear in any further calculations, thus saving unnecessary calculations.  
         [0060]    Boolean algebra is used to express the results in various ways most convenient to the user, such as but not limited to disjunctive or conjunctive canonical form.  
         [0061]    In yet another embodiment of the invention, the Boolean expression may be augmented by assigning probabilities to each of the primary effects that are set by the user, and assigning to each term of each primitive cause and effect relation the probability that the joint presence or absence of the causes specified by that term would cause the target event to exist. Thus by assuming that the only correlation between causes is a consequence of having common ancestors, the probability of the existence of each event can be computed by multiplying the probabilities of each cause of each term to reach the probability of all the causes for that term existing and thus the term being satisfied, and multiplying this by the probability that given the satisfaction of the term that the target event will be caused to exist.  
         [0062]    In another embodiment once the secondary events are expressed in terms of the primary events and the paths thus established numerical calculations can be done on the events in the path such as but not limited to the probabilities of the events occurring or the magnitude of the effects. For example after tracing to identify paths and mechanisms various numerical calculations can be made on the existing events, or factors associated with the outcome or choice of events, in those paths.  
         [0063]    In another embodiment once the secondary events are expressed in terms of the primary events one can ask for the negation of a secondary effect.  
         [0064]    In another embodiment once the secondary events are expressed in terms of the primary events one can select any term of any secondary effect or the negation of such an effect to have that term become the setting of the primaries so as to determine all the consequences of selecting that term as an option.  
         [0065]    The existence of secondary events may be true or non-true depending on the existence of primary or other secondary events. The system of simultaneous Boolean equations is solved to express the truth of the existence of each secondary event in terms of the truth of the primary events or Boolean expressions for the truth of primary events. Then given any secondary event, it is shown what Boolean expression for the existence or absence of primary events will cause that secondary event to be true or to be non-true.  
         [0066]    Uses of the Invention  
         [0067]    Software enabling the aforementioned embodiment can be used in either of two modes. Mode One would be utilized to develop the model by a Developer who would have access to all events whether primary or secondary and to all capabilities of the software. Mode Two would be utilized by a User who would have access to the primaries and the observable secondaries to be able to determine the primary causes of any specified observable secondary events and to determine the effects/consequences of setting as true certain applicable primary events.  
         [0068]    The method is useful where one party or parties develop the model/system allowing other parties to apply the model/system for such purposes as making diagnoses and reviewing advice as to how to cause or prevent certain events.  
         [0069]    The method is also useful where one party is both the developer and user as that party tries to understand the working of a system of cause and effects. .  
         [0070]    A developer may use this software to develop cause and effect hypotheses, determine the consequences of these hypotheses, determine whether these consequences fit reality, trace the mechanism that produces consequences that do not fit reality, and change the hypotheses as appropriate.  
         [0071]    The novel method is applicable to understanding biological or physical systems as well as man-made systems as it is based on collecting and using observed or hypothesized behaviors based on cause and effect relationships. The behaviors predicted by the model can be compared with reality and the model refined to better predict reality.  
         [0072]    The method is particularly useful where there is no established expertise or complete understanding of all the components and their respective interactions, as the method provides guidance for consideration of observations, future experiments and hypothesizes, thus developing new expertise.  
         [0073]    The above and other objects, effects, features, and advantages of the present invention will become more apparent from the following description of the embodiments thereof taken in conjunction with the accompanying drawings.  
         [0074]    By means of this invention one can build a cause and effect model that can be used either by the model builder or someone else to diagnose and determine the primary causes of certain secondary events and show the Boolean combination of primary events that would result in the secondary events being either caused or prevented.  
         [0075]    By means of this invention one can build cause and effect models knowing only certain primitive cause and effect relations without the availability of established experts who already have experience in the matters predicted by the model.  
         [0076]    By means of this invention one can determine the effects of certain causes so that while building the model one can rule out certain cause and effect mechanisms on the ground that they do not properly account for what is observed in reality.  
         [0077]    By means of this invention one can determine what options there are for actions in the form of setting primary effects that one might declare to exist to cause or prevent certain specified events.  
         [0078]    By means of this invention one can test various options of actions that might be taken to see what effects they would have and thus possibly rule out certain options that might have effects that are not to be tolerated.  
         [0079]    The diagnosis and/or resolution of an undesirable situation in a complex system requires the consideration of the effects of multiple mechanisms. As there may be little observable information, or it may not be exclusively linked to the outcome, it may be necessary to experiment, that is modifying the condition or state of identifiable primary events to determine if they influence any of the observable events.  
         [0080]    In one embodiment the model may consist of a system of simultaneous Boolean equations expressing the truth or falsity of the existence of certain events in terms of Boolean expressions involving And&#39;s and Or&#39;s of the truth or non-truth of the existence of certain other events.  
         [0081]    In another embodiment the causal relationship can be a simple logical relationship, that is “if (condition A), then (result B). Alternatively, the relationship can be expressed in terms of Boolean relationships involving AND&#39;s and OR&#39;s to establish whether the existence of one event affects whether another event exists.  
         [0082]    The existence of secondary events may be true or non-true depending on the existence of primary or other secondary events. The system of simultaneous Boolean equations is solved to express the truth of the existence of each secondary event in terms of the truth of the primary events or Boolean expressions for the truth of primary events. Then given any secondary event, it is shown what Boolean expression for the existence or absence of primary events will cause that secondary event to be true or to be non-true.  
         [0083]    The inventive method is applicable to the optimization of physical storage and shipping space in that the allocation of a dimensioned box to a fixed location is a controllable or primary event that effects secondary events, the remaining space, as the initial placement of a first dimensioned box prevents the location of other boxes in the same location, thus limiting them to others.  
         [0084]    Additionally, the inventive methods are applicable to designing drugs/chemicals wherein the receptor organ response can be modeled by a cause &amp; effect relationship to indicate what combinations of molecules will be received and what won&#39;t, for example the primary and secondary events being defined by the chemicals that inhibit the binding of other chemicals.  
         [0085]    Discussion of Method through the Use of Figures  
         [0086]    Thus one aspect of the invention is the method and its software implementation on a general purpose computing platform so that one can develop and apply a cause and effect model. Such a model is illustrated schematically in FIG. 1.  
         [0087]    [0087]FIG. 1 illustrates a cause and effect schematic diagram showing the relationship between primary events, intermediate secondary events and observable secondary events. FIG. 1 a  presents a legend for the schematic in FIG. 1 b . Bars are used to represent terms and are further connected to represent the OR&#39;s between terms to produce the existence of the target event. Lines show the connections from events to the terms whose existence they contribute to. If the line terminates at the term bar with an existence receptor shown as an arrow, the existence of the event at the tail of the arrow is required to satisfy the term. If the line terminates at the term bar with a non-existence receptor shown as a small black box, the non-existence of the event at the tail is required to satisfy the term. The dotted lines show feedbacks to earlier effects that are used to represent non-recursive effects. This figure applies to Example II.  
         [0088]    [0088]FIG. 2 is a user interface for providing initial inputs to define the cause and effect model. FIG. 2 a  applies to Example I. FIG. 2 b  applies to Example II. The input is described as an outline with the events at one level, the terms for that event at a lower level, and the causes making up the term shown at a still lower level. A pop-up menu displays the available options for manipulating the outline and the software program. At the top the outline begins with the problem name. At the next level are the effects, below the effects the terms shown with “caused by” and ‘Or caused by”, and below these the causes that make up the term, as illustrated in FIG. 7.  
         [0089]    In one embodiment of the invention the model is generated using the graphic user interface illustrated in FIG. 2. The model is entered as an outline using standard outlining instructions to show each effect at one level, each term of that effect at a lower level, and each cause in that term and whether that cause is to be true or non-true to satisfy the term in a level below the term. As each cause is entered a designation is added to indicate whether that event should exist or not exist to satisfy the term.  
         [0090]    [0090]FIG. 3 is an alternative type of user interface wherein matrix cells represent the Boolean relationships that make up the model. It applies to Example II. All primary and secondary events are listed both as rows representing the events in their capacity as effects and as columns representing the events in their capacity as causes such that the placement of a non-blank symbol in a cell of the matrix represents that the column of that cell is in some way a cause of the row of that cell. Cells across a row containing the same symbol indicate that all of the causes with that same symbol represent a set of causes that are ANDed together so that all the conditions of these causes must be satisfied for the term to be satisfied. The required conditions of these causes are shown in one implementation by adding a plus or absence of a minus to the symbol if the cause must exist to satisfy the term and adding a minus to the symbol of causes which must not exist to satisfy the term. X&#39;s are used just to fill the diagonal. FIG. 3 a  shows a cause and effect model. FIG. 3 b  shows the same model where the rows and columns have been reordered identically so that all the off diagonal non-blank cells appear either below the diagonal or within the smallest possible square blocks on the diagonal. The letters to the right and below each matrix show the order of the rows and columns as they occur in the other matrix. The blocks represent subsets of the equations and their variables that are non-recursive and must be solved jointly by a forward substitution and reduction followed by a backward substitution and reduction. Then the set of equations in each block can be solved in recursive sequence. This ordering is useful for interpreting the model as all cause and effect cycles are contained within the blocks. Such reordering is also pertinent whether or not the model is represented to the user as a matrix.  
         [0091]    In an embodiment of a graphical user interface to be used to represent the model illustrated in FIG. 3 the Boolean relationship is expressed or entered directly into the cells of a matrix. One would first enter the number of events to occur in the matrix/model. A blank matrix of that size would be displayed preferably with visual indicia of the diagonal. The columns would represent the events interpreted as the causes. The rows would represent the same events interpreted as effects. Symbols would be entered into the cells as marks where a cause relates to an effect. A term is made up of the And&#39;s of all the causes shown with the same symbol as a mark with some other indication as to whether the term is satisfied by the truth or non-truth of the existence of the cause. Where more than one term in an effect may have a common cause, one can cycle through a display showing just one term at a time. For example, Boolean expressions of causes and effects would be indicated by all the same numbers or symbols in a row being joined into a common term by ANDs, then the terms with different numbers or symbols would be ORed.  
         [0092]    [0092]FIG. 4 lists the rules that are used in the calculations. The symbols in the rules are interpreted as follows:  
         [0093]    a·b means a AND b  
         [0094]    a+b means a OR b  
         [0095]    T means True  
         [0096]    F neans False  
         [0097]    {overscore (a)} means the non-truth of a  
         [0098]    The Meta-symbols used to operate on Boolean rules are interpreted as follows.  
         [0099]    (Boolean)∩(b→a) means b replaces a in the Boolean ⊃ means implies  
         [0100]    Rules S1 and S2 express how substitution is done. Rules R1 through R10 and Rules D1 and D2 express rules of equivalence. Specifically D1 and D2 express De Morgan&#39;s rules of negation. Rules E1 through E4 express additional meta-rules used to eliminate variables in expressions.  
         [0101]    [0101]FIG. 5 shows the model of Example II as expressed by these rules.  
         [0102]    [0102]FIG. 6 illustrations the sequential generation and solution of the Boolean equations of FIG. 5 by application of the rules in FIG. 4. To the right of each application of a rule is shown the rule from FIG. 4 that is being applied to achieve that result.  
         [0103]    In another embodiment the software can display the model in either of the representations of FIGS. 1, 2 or  3 , as well as in a narrative form, as shown in FIG. 7 with respect to Example I.  
         [0104]    Having in various embodiments constructed the model, we now turn to further embodiments of using the model. These include a forward mode and a backward mode. Either of these modes may be used for developing the model, or using/applying the model.  
         [0105]    In the Forward mode one starts with a given Boolean expression for the truth or falsity of primary events, and then determines the truth or falsity of any or all of the secondary events in a sequential manner.  
         [0106]    In contrast in the Backward mode one starts with given Boolean expressions for the truth or falsity of all secondary events, and then determines the truth or falsity of primary events that would produce the truth or non-truth of those secondary events.  
         [0107]    The cause and effect model is represented by a system of simultaneous Boolean equations with the Boolean expressions stated in one implementation in canonical disjunctive form. The software solves these Boolean equations to express the existence or non-existence of every event in terms of the existence or non-existence of the primary events. From this one can obtain a Boolean expression for the primary causes of any event/effect considered in the system. Each term in this expression represents the result of a mechanism consisting of paths through the primitive cause and effect relations.  
         [0108]    In conjunction with the backward mode that describes secondary events in terms of primary events, one can choose as an option a term/mechanism One can then ask for the Negation of this term. Having chosen a term from the computed consequences on secondary events in terms of primary events, one can ask for its negation. One can then ask for the consequences of applying these actions represented by any term in either the consequences or the negation of an effect as Controllables or Assumptions. Once seeing the consequences one may rule out that option as not appropriate.  
         [0109]    Where it is impractical to experiment on a real system because of lack of access to the system or harm that may occur as a result of the experiments and/or where there does not already exist experience in the overall behavior of the system, one can by using the method of this patent build a cause and effect model from elementary/primitive cause and effect relations where these elementary/primitive cause and effect relations may be known where there is not available experience or knowledge of the overall behavior of the system that an established expert might have.  
         [0110]    The Boolean equations may be used first to provide the cause and effect mechanisms as paths through the system of cause and effect relations, whereby other calculations, such as but not limited to probabilities or costs, can be performed on the events along these paths.  
         [0111]    In the case of complex and automated manufacturing processes, or service systems, the diagnosis necessary for improvement of the process, say for example to improve efficiency or increase production yield, are preferably done using the hypothesis of the model before being performed on the system itself  
         [0112]    Method of Solving Boolean Expressions  
         [0113]    The model in FIG. 3 a  was initially stated in terms of events q, r, s, t, u, and v. The rows and their columns are reordered by the process of partitioning so that all the marks in the matrix are either below the diagonal or confined to the smallest possible square blocks on the diagonal to get FIG. 3 b . The ordering as it would appear in the other matrix is shown to the right and below each matrix. This reordering by partitioning brings the primary events, those that depend on no other events but can be set by the user, to the top of the matrix. In FIG. 3 b  these primary events are designated as a and b.  
         [0114]    The equations within each block on the diagonal are non-recursive, that is each equation depends directly or indirectly on all the other equations within the same block so that they cannot be solved in any simple forward sequence such that each independent variable is already known before it is used. Thus both forward substitution and reduction and backward substitution and reduction (FIG. 1 b ) are required to solve the equations within each block.  
         [0115]    The equations are solved using the Boolean and meta rules in FIG. 4. A forward substitution is made followed by a backward substitution as necessary for non-recursive systems of equations so as to express all the secondary events in terms of the primary events.  
         [0116]    [0116]FIG. 5 shows the Boolean equations corresponding to the matrix in FIG. 3 b.    
         [0117]    [0117]FIG. 6 shows the calculations carried out on the equations in FIG. 5 to reach the conclusion that:  
         
       c=a+b  
     
         d=T  
         e=T  
         f=a  
         [0118]    The rules applied to achieve each equation of FIG. 6 are shown to the right of the equation.  
         [0119]    The Boolean equations can be solved by forward substitution in the order they are presented in the partitioned matrix except that the equations within a block must be solved using both forward and backward substitution.  
         [0120]    By partitioning the matrix as in FIG. 3 b  a distinction can be made between those equations that can be solved recursively, i.e., just by forward substitution and reduction, and those within blocks that must be solved non-recursively, i.e., by both forward and backward substitution and reduction. Equations that can be solved recursively depend only on causes that appear only in cells below and to the left of the diagonal demarcation, that is cells marked by X, whereas the non-recursive equations have one or more events as dependent variables where the independent variables appear in cells to the right and above the diagonal.  
         [0121]    Thus, gathering the equations into non-recursive blocks and ordering the blocks in a recursive order is preferred as it confines all feedback cycles to within blocks to make it easier for the user to understand the feedback cycles.  
         [0122]    In using the cause and effect model one solves the simultaneous system of Boolean equations by a forward process of substitution and reduction followed by a backward process of substitution and reduction. The calculation for the forward and backward processes are illustrated in FIG. 6 with respect to the matrix representation in FIG. 3 a.    
         [0123]    In implementing the embodiments of the invention via a software instruction code a method of substitution is used to express every secondary event in terms of the primary events.  
         [0124]    a. The forward process of substitution and reduction consists of processing each equation in the partitioned order from the first to the last eliminating by substitution all dependencies shown below the diagonal of the matrix as represented in FIG. 3 b ., represented in FIG. 6 by the application of rules S1-2, D1-2 from FIG. 4.  
         [0125]    b. The backward process of substitution and reduction consists of processing each equation from the last to the first in the order given by the process of partitioning eliminating by substitution all dependencies shown above the diagonal in FIG. 3 b , using rules: S1-2, D1-2, R1-10 and E1-4 from FIG. 4.  
         [0126]    During these processes Boolean rules are used to reduce Boolean expressions to the simplest form so as not to generate unnecessary operations, that is by first applying rules R1-5 in FIG. 4 as shown in the sequence of equations in FIG. 6. The result of these processes is that all secondary events are expressed as Boolean functions of the primary events.  
       EXAMPLES  
     Example I  
       [0127]    The first example of an embodiment of the invention is the use of the invention to explain and diagnose the causes of observed human physiological conditions, to present means for causing or preventing those conditions, and determining the consequences of each of several means that might be selected as options so as to rule out mechanisms that do not conform to observation or rule out means that could result in undesirable or less desirable consequences or side effects.  
         [0128]    The consequences of selecting various means can be determined from the model before they are prescribed to the patient, saving the patient from potentially harmful means.  
         [0129]    This might be used by a physician diagnosing a patient&#39;s illness, or by a patient diagnosing his or her own illness.  
         [0130]    As used by a person experienced in developing and modifying models, the model itself may be changed by the physician to accommodate new knowledge or knowledge specific to a particular patient or circumstance.  
         [0131]    While the physician may be aware of medications that will usually successfully treat a condition, the inventive Cause and Effect model and methods can incorporate a vast and increasing pharmacological and physiological basis for treatment, such medical treatment including exercise, rest, physical therapy, radiation treatment, surgery, medical treatment, counseling, psychotherapy and the like.  
         [0132]    While a person skilled in the subject and in developing cause and effect models with this invention might develop the basic model, it is readily updated by the same person or another person so skilled to accommodate new medications or more complete understanding of drug physiological responses or undesired drug interactions.  
         [0133]    A clinician using a computer implementation of the cause and effect model program is presented with various output or queries, which are italicized for this example. Thus, the initial query might start with the patient complaint, and request:  
         [0134]    Click on the observed effect to be prevented:  
         [0135]    □ Headache  
         [0136]    □ Cough  
         [0137]    □ Hypertension  
         [0138]    If the physician clicked on headache, the program would respond:  
         [0139]    Do X-rays of the sinuses show that they are full? Yes □ No □ 
         [0140]    If the physician clicked on No, then the program would respond:  
         [0141]    Apparently the headache is due to a migraine or other cause and not due to sinus pressure. Consider prescribing Inderal. Avoid taking Hydralazine.  
         [0142]    The data structures and their use in the operation of the computer are best understood by first considering the creation of the model. The cause and effect model, as a non-limiting example, is entered as a series of expressions that define the primary and secondary events as shown in FIG. 2 or FIG. 3. Following the method of solving the resulting Boolean expressions each secondary event can be expressed as an effect caused by the existence of one or more secondary or primary events.  
         [0143]    CONTROL Inderal  
         [0144]    CONTROL Hydrochlorothiazide  
         [0145]    ASSUME External Cause of Sinus Pressure  
         [0146]    ASSUME External Cause of Migraine  
         [0147]    ASSUME External Cause of Hypertension  
         [0148]    ASSUME External Cause of Cough  
         [0149]    ASSUME External Cause of Headache  
         [0150]    EFFECT Constrict Blood Vessels  
         [0151]    CAUSED BY Pseudophedrine  
         [0152]    EFFECT Delay after Constrict Blood Vessels  
         [0153]    CAUSED BY Constrict Blood Vessels  
         [0154]    EFFECT Dilate Blood Vessels  
         [0155]    CAUSED BY Delay after Constrict Blood Vessels  
         [0156]    OR  
         [0157]    CAUSED BY Hydralazine  
         [0158]    EFFECT Drain Sinus Cavities  
         [0159]    CAUSED BY Constrict Blood Vessels  
         [0160]    EFFECT Sinus Pressure  
         [0161]    CAUSED BY External Cause of Sinus Pressure  
         [0162]    AND NOT Drain Sinus Cavities  
         [0163]    EFFECT Migraine  
         [0164]    CAUSED BY External Cause of Migraine  
         [0165]    AND NOT Inderal  
         [0166]    OR  
         [0167]    CAUSED BY Dilate Blood Vessels  
         [0168]    EFFECT Sinus Drying  
         [0169]    CAUSED BY Hydrochlorothiazide  
         [0170]    EFFECT Headache  
         [0171]    CAUSED BY Sinus Pressure  
         [0172]    OR  
         [0173]    CAUSED BY Migraine  
         [0174]    OR  
         [0175]    CAUSED BY External Cause of Headache  
         [0176]    EFFECT Cough  
         [0177]    CAUSED BY Sinus Drying  
         [0178]    OR  
         [0179]    CAUSED BY External Cause of Cough  
         [0180]    EFFECT Hypertension  
         [0181]    CAUSED BY External Cause of Hypertension  
         [0182]    AND NOT Hydralazine  
         [0183]    AND NOT Inderal  
         [0184]    AND NOT Hydrochlorothiazide  
         [0185]    EFFECT X-Rays show Sinuses Full  
         [0186]    CAUSED BY Sinus Pressure  
         [0187]    EFFECT GOAL  
         [0188]    CAUSED BY NOT Headache  
         [0189]    AND NOT Cough  
         [0190]    AND NOT Hypertension  
         [0191]    Although all possible relationships are useful to the person building or verifying the model, the clinician is primarily interested in the subset useful in alleviating the patient&#39;s symptoms or conditions. Thus, only a subset of the above relationships may be presented based on the response to user interface prompt of the following list of observable events:  
         [0192]    □ Headache  
         [0193]    □ Cough  
         [0194]    □ Hypertension  
         [0195]    For example clicking on “Headache” would result in the following conclusion by the program:  
         [0196]    EFFECT Headache IS  
         [0197]    CAUSED BY External Cause of Migraine  
         [0198]    AND NOT Inderal  
         [0199]    OR  
         [0200]    CAUSED BY External Cause of Sinus Pressure  
         [0201]    AND NOT Pseudophedrine  
         [0202]    OR  
         [0203]    CAUSED BY Hydralazine  
         [0204]    OR  
         [0205]    CAUSED BY Pseudophedrine  
         [0206]    EFFECT NOT Headache IS  
         [0207]    CAUSED BY Inderal  
         [0208]    AND NOT External Cause of Sinus Pressure  
         [0209]    AND NOT Hydralazine  
         [0210]    AND NOT Pseudophedrine  
         [0211]    ASSUMING External Cause of Migraine  
         [0212]    OR  
         [0213]    CAUSED BY Pseudophedrine  
         [0214]    AND NOT External Cause of Migraine  
         [0215]    AND NOT Hydralazine  
         [0216]    ASSUMING External Cause of Sinus Pressure  
         [0217]    Selecting headache and choosing the operation Compute Negative of Current Effect would yield the following results:  
         [0218]    EFFECT NOT Headache IS  
         [0219]    CAUSED BY Inderal  
         [0220]    AND NOT External cause of Sinus Pressure  
         [0221]    AND NOT External cause of Headache  
         [0222]    AND NOT Hydralazine  
         [0223]    AND NOT Pseudophedrine  
         [0224]    OR  
         [0225]    CAUSED BY NOT External cause of Migraine  
         [0226]    AND NOT External cause of Sinus Pressure  
         [0227]    AND NOT External cause of Headache  
         [0228]    AND NOT Hydralazine  
         [0229]    AND NOT Pseudophedrine  
         [0230]    There are two mechanisms represented by the two ‘CAUSED BY” terms that could prevent a headache. In either case one should not take Hydralazine. One mechanism would suggest taking Pseudophedrine assuming that there is an External Cause of Sinus Pressure. Then the program asks itself what would be the consequences of External Cause of Sinus Pressure to determine whether there might be other observable effects that can be used to rule in or rule out a headache. The software then checks the consequences of External Cause of Sinus Pressure and concludes.  
         [0231]    1 ASSUME External Cause of Sinus Pressure  
         [0232]    2 EFFECT Sinus Pressure  
         [0233]    CAUSED BY External Cause of Sinus Pressure REF  1   
         [0234]    3 EFFECT Headache  
         [0235]    CAUSED BY Sinus Pressure REF  2   
         [0236]    4 EFFECT X-Rays show Sinuses Full  
         [0237]    CAUSED BY Sinus Pressure REF  2   
         [0238]    So the program advises that X-rays should be taken to determine whether there exists an “External Cause of Sinus Pressure”. If the physician replies that X-rays show that the sinuses are not full, then this mechanism can be ruled out. Then the program suggests that the cause of the headache might be migraine or some other cause and proposes prescribing Inderal.  
         [0239]    In order to instruct the clinician, or the user of a model template in the most productive method of resolving the problem, that is with the least number of tests or experiments or risks, the computer implementation of the query takes into account the characterization of secondary events as goals, observable, or detrimental effects. Thus by first asking the clinician to define the goals or objectives of a successful treatment or outcome the next queries are directed to observation or procedures necessary to diagnose the cause of the symptoms to be alleviated. Following the diagnosis via observable or determinable events the potential treatment are suggested in the order of those without detrimental side effects followed by those with potential side effects or other contra-indications.  
         [0240]    In yet another embodiment of the invention additional information can be associated with each secondary event to aid in the suggestion of tests or actions. For example, the cost or time required for a diagnostic test, the cost associated with each treatment method, the probability or severity of negative side effects.  
         [0241]    Once the mechanisms are determined, various calculations can be made on the events in these mechanisms using forms of mathematics other than Boolean.  
         [0242]    An example would be to assign probabilities to primary events that are set and to each term such as to compute the probability of the occurrence of each event.  
         [0243]    Although cause and effect is one of the principal methods used by humans for reasoning, novel methods of applying the principles to complex systems are enabled by the novel method and computer implementations disclosed herein.  
         [0244]    Accordingly, non-limiting examples of alternative methods of use include the diagnosis of medical conditions as well as machine or systems failures, manufacturing problems, the analysis and interpretation of forensic or archeological evidence, failure mode analysis and prevention including non-recursive and recursive (tree shaped) systems.  
       Example II  
       [0245]    This is a small artificial example to demonstrate that the method applies were the system of Boolean equations is non-recursive, that is involving both feed forward and feedback. All the figures except  2   a  pertain to this example.  
       Example III  
       [0246]    Data Representation  
         [0247]    [0247]FIG. 7 is a non-limiting example of a Data Representation for displaying the model of the inventive method illustrated in its application to Example I wherein the data representation corresponds to an outline. At the highest level of the outline is the model name, in this case “Headache”. Below the model name in the outline are the Events. Below an Event in the outline are the Terms which collect the causes that are ANDed together to satisfy the event. The terms are shown in this example as “Caused by”. Below a Term in the outline are the Causes. The Cause is specified as positive if the presence of a cause is required to satisfy the term, or negative if the absence of the cause is required to satisfy the term. If all the specified Causes are satisfied, the Term is satisfied. If any Term for an event is satisfied, that event is satisfied and thus considered to exist.  
         [0248]    In the corresponding data structure there is a data field for the number of events (NEvents). Data fields (arrays) for Labels, Events, Terms and Causes each have ordered sub-data fields. The sub-data field of the Effect data field corresponding to Effect i is a pointer to the first sub-data field in the Term data field corresponding to the first Term for that Effect. The sub-data field of the Effect data field corresponding to Effect i+1 is a pointer to the first sub-data field in the Term data field corresponding to the first Term for Event i+1, so it points one past the last sub-data field of the Term data field corresponding the Event i. Each sub-data field of data field Term points to a sub-data field Cause that corresponds to a cause event that appears in that Term. Each sub-data field of the data field Cause points to event that represents a cause. The last sub-data field of the Effect data field points to one past the end of the last sub-data field of the Terms data field and the last sub-data field of the Terms data field points to one past the end of the last sub-data field of the Causes data field. In addition each sub-data field representing a cause in the third data field can be labeled, in one implementation by plus or minus, as to whether its existence or non-existence is required to satisfy the term.  
         [0249]    In another method of using the invention one can use a graphical user interface to point to and click on any term of a secondary effect that has been expressed in terms of the primary events and view any or all of the consequences of setting the primary events as specified in this term.  
         [0250]    Alternatively, one can use a graphical user interface to point and click on any term of the negation of a secondary effect that has been expressed in terms of the primary events and view any or all of the consequences of setting the primary events as specified in this term.  
         [0251]    While the invention has been described in connection with a preferred embodiment, it is not intended to limit the scope of the invention to the particular form set forth, but on the contrary, it is intended to cover such alternatives, modifications, and equivalents as may be within the spirit and scope of the invention as defined by the appended claims.