Abstract:
We propose a computer method for analyzing physical systems that exhibit quantum mechanical behavior. To analyze a quantum system according to the method of the present invention, one performs the following steps: First, one enters into the computer some information about the physical system by portraying it on the computer screen as a special type of graph (diagram). Next one enters into the computer additional information that is not contained in the graph. Part of this non-graph information is a matrix of complex numbers for each node of the graph. Finally, the computer uses the entered information to do calculations and it outputs the result of these calculations. The computer output consists mainly of conditional probabilities for the outcomes of measurements performed on the quantum system. The method that we are proposing is similar to the method used in the field of Classical Bayesian Nets (also known as Causal Probabilistic Nets). However, the method of Classical Bayesian Nets does not describe quantum systems correctly, whereas our method does.

Description:
TECHNICAL FIELD 
     The invention relates to computer programs that display and process information about physical systems that exhibit quantum mechanical behavior. 
     BACKGROUND OF THE INVENTION 
     Classical Bayesian (CB) nets are a type of net that is used to model physical situations that include randomness. CB nets allow one to calculate the probabilities of various hypotheses about a situation, taking the available evidence into consideration. They provide an intuitive, graphical framework for doing such calculations. The artificial intelligence and expert systems literature contains a large number of journal articles discussing the theory and application of CB nets. For a detailed summary of the subject of CB nets, the reader may consult the following two textbooks, which are dedicated exclusively to this subject: Probabilistic Reasoning in Expert Systems: Theory and Algorithms (Wiley, 1990) by Richard E. Neapolitan, and Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Inference (Morgan Kaufman, Palo Alto. 1988), by Judea Pearl. For a short introductory article on the subject of CB nets, the reader may consult, for example, the article by Ari Kornfeld in AI Expert, November, 1991, pg. 42. Several software packages that implement the theory of CB nets are commercially available; for example, ERGO  produced by: Noetic Systems, Inc., 2504 Maryland Ave., Baltimore, Md. 21218-4545. Phone: 410-889-4079, FAX: 410-889-4183, Email: infoanoeticsystems.com.! and MUNIN  produced by: Hugin Expert A/S Niels Jernes Vej 10, Box 8201, DK-9220 Aalborg, DENMARK, Phone: +45 15 66 44, FAX: +45 15 85 50, Email: infoahugin.dk! 
     Quantum Bayesian (QB) nets are a new type of Bayesian net. QB nets were first discussed publicly in the journal article: International Journal of Modern Physics B. Vol. 9, Jan. 30, 1995 pp. 295-337, by Robert R. Tucci. The latter article will be referred to henceforth as Ref-Tucci-95. Like CB nets, QB nets are used to model certain physical situations. QB nets allow one to calculate the probabilities of various hypotheses about a situation, taking the available evidence into consideration. They provide an intuitive, graphical framework for doing such calculations. 
     Although CB and QB nets are similar in many ways, there are some fundamental differences between the two. One major difference is that CB nets cannot be used to analyze quantum systems correctly whereas QB nets can be. (By a quantum system we mean a physical system that exhibits quantum mechanical behavior). Another major difference between CB and QB nets is that for QB nets, one assigns complex rather than real numbers to each node of the net. 
     In U.S. Pat. No. 5,133,046, Stanley Kaplan presents a &#34;computer-based diagnostic expert system organized according to Bayesian Theory&#34;. CB nets and QB nets can also be described this way. However, like CB nets, the invention of Stanley Kaplan cannot be used to analyze quantum systems correctly. It assigns real numbers, probabilities, to the states listed in its knowledge base. To describe quantum systems correctly, it would have to assign complex numbers to these states. 
     QB nets are certainly not the first nets ever proposed for Quantum Mechanics. However, QB nets differ substantially from all other nets previously proposed. 
     A famous example of a type of net used in Quantum Mechanics is the &#34;Feynman Diagrams&#34; of Particle and Solid State Physics. For a simple discussion of Feynman Diagrams, see, for example, QED: The Strange Theory Of Light and Matter (Princeton University Press, Princeton, N.J., 1985), by Richard P. Feynman. Some major differences between Feynman diagrams and QB nets are as follows. 
     In QB nets, each arrow leaving a node carries full information about the state of its source node (by its source node we mean the node it is exiting), while in Feynman diagrams, when several arrows leave a node, each arrow carries only partial information about the state of its source node. 
     In using QB nets, we attribute unit probability to the collection of the finitely many possible configurations (net stories) that a single graph can assume. On the other hand, when using Feynman diagrams, we attribute unit probability to a collection of infinitely many different graphs. Indeed, a single Feynman diagram with at least one node represents a small term in a pertubative expansion in powers of some coupling constant. There is nothing intrinsically pertubative about QB nets. 
     Another type of net which has been proposed for describing Quantum Mechanics are called quantum circuits. See, for example, the paper by D. Deutsch in Proceedings of the Royal Society Of London, A425(1989)73-90, or the paper bay B. Yurke and J. S. Denker in Physical Review A29(1984)1419-1437. Like QB nets, quantum circuits are not intrinsically pertubative. Unlike QB nets, when several arrows exit a node of a quantum circuit, each arrow carries along partial information about the state of its source node. 
     The method of QB nets finds its physical justification in the laws of Quantum Mechanics. The method of QB nets does not embody any new physical laws. Rather, QB nets are a new method of displaying and processing data in accordance with previously known physical laws. 
     GOALS OF THE INVENTION 
     The main goal of the present invention is to provide a new graphical method of analyzing quantum systems. A computer implementation of the method can be used by researchers to design new quantum systems, or to model already existing ones, and to calculate the theoretically expected behavior for such systems. A computer implementation of the method can also be used by educators to teach Quantum Mechanics. 
     SUMMARY OF THE INVENTION 
     To analyze a quantum system according to the method of the present invention, one performs the following steps: First, one enters into the computer some information about the system by portraying it in terms of a special type of graph (diagram). Then one enters additional information that is not contained in the graph. Finally, the computer uses the entered information to do calculations, and it outputs the results of these calculations. The computer output consists mainly of conditional probabilities for the outcomes of measurements performed on the system. 
     The graph consists of a collection of nodes with arrows connecting some pairs of these nodes. The graph must satisfy certain constraints. For example it should not contain any cycles. 
     The non-graph information that must be entered into the computer consists mainly of &#34;node matrix&#34; for each node. The entries of a node matrix are complex numbers. 
     A QB net consists of two parts: a labelled graph, and a collection of node matrices. 
     We assign a random variable to each node. The random variable assigned to a node may, assume a finite number of states. 
     A net story is defined as an assignment of a specific state to each node of the net. 
     Each net story has a net amplitude. Net amplitudes are defined as certain products of the entries of the node matrices. 
     Node matrices and net amplitudes must satisfy certain constraints imposed by the laws of Quantum Mechanics. 
     The calculation of conditional probabilities involves either performing sums over states, or sums over all possible stories. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 shows a labelled graph and the four node matrices associated with the four nodes of the graph. A QB net consists of 2 parts: a labelled graph and a collection of node matrices, one matrix for each node. 
     FIG. 2 shows a block diagram of a Mac computer. 
     FIG. 3 shows the computer screen as seen immediately after the user starts the Mac application that is the preferred embodiment of this invention. 
     FIG. 4 shows the computer screen after having drawn a labelled graph in Main Window 50 and after having selected some bi-nodes. 
     FIG. 5 shows window 70&#39;s contents, which are hidden in FIG. 4. The data in FIG. 5 refer to the x 4  node. The user must provide similar data for each node. 
     FIG. 6 shows the computer screen as it might look after having chosen the &#34;Go|&#34; menu item from the menus on the menu bar. Upon receiving the &#34;Go|&#34; command, the computer calculates the probabilities for all nodes, and for those bi-nodes listed in window 90. 
     FIG. 7 shows the computer screen as it might look after having chosen the &#34;Go|&#34; menu item from the menus on the menu bar. The second net story with non-zero amplitude has been chosen from pop-up menu 101. The graph in window 50 shows the state assigned to each node by this particular net story. 
     FIG. 8 shows the beginning of a flow chart of a method for finding a set of possible net stories. 
     FIG. 9 shows the end of a flow chart of a method for finding a set of possible net stories. 
     FIG. 10 shows the definitions of the sets ζ j  alluded to in FIGS. 8 and 9. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The method of this invention was first proposed in Ref-Tucci-95. Ref-Tucci-95 is incorporated herein by reference. 
     This invention consists of a new method of displaying and processing information about a quantum system, and of the use of a computer to implement the method. 
     We divide this section into 2 parts: (A)NEW METHOD, and (B)COMPUTER IMPLEMENTATION OF NEW METHOD. Part A will describe the method independently of any details having to do with a computer implementation. Then part B will describe an example of a computer implementation of the method. 
     (A)NEW METHOD 
     To analyze a quantum system according to the method of the present invention, one performs the following steps: First, one collects some information about the system by portraying it in terms of a special type of graph (diagram). Then one collects additional information that is not contained in the graph. Finally, one uses the information collected to calculate conditional probabilities for the outcomes of measurements performed on the quantum system. 
     Next we will describe these steps more precisely. 
     We call a graph (or a diagram) a collection of nodes (bounded shapes) with arrows connecting some pairs of these nodes. The arrows of the graph must satisfy certain constraints that will be specified below. We call a labelled graph a graph whose nodes are labelled. A QB net (consists of two parts: a labelled graph with each node labelled by a random variable, and a collection of node matrices, one matrix for each node. These two parts must satisfy certain constraints that will be specified below. 
     We define two kinds of arrows: an internal arrow is an arrow that has a starting (source) node and a different ending (destination) one; an external arrow is an arrow that has a starting node but no ending one. We define two types of nodes: an internal node is a node that has one or more internal arrows leaving it, and an external node is a node that has a single external arrow leaving it. It is also common to use the terms root node or prior probability node for a node which has no incoming arrows, only outgoing ones. We restrict all nodes of a graph to be either internal or external. Hence, each node has either: (1) an external arrow leaving it, or (2) one or more internal arrows leaving it, but not both (1) and (2). 
     We restrict our attention to acyclic graphs: that is, graphs that do not contain cycles. (A cycle is a closed path of arrows with the arrows all pointing in the same sense.) 
     We assign a random variable to each node of the QB net. (Henceforth, we will underline random variables. For example, we might write P(x=x) for the probability that the random variable x assumes the particular value x.) Suppose the random variables assigned to the N nodes are x 1 ,x 2 , . . . ,x N . For each j .di-elect cons. {1,2, . . . ,N}, the random variable x j  will be assumed to take on values within a finite set Σ j  called the set of possible states of x j . 
     For example, consider the net of FIG. 1. Arrows 21, 22, 23 and 24 are internal, whereas arrow 25 is external. Nodes 11, 12 and 13 are internal and node 14 is external. Node 11 is a root node. There are four nodes so N=4. We will assume that the four nodes must lie in one of two states: either no or si. Thus, Σ 1  =Σ 2  =Σ 3  =Σ 4  ={no, si}. 
     Define Z N  ={1,2, . . . ,N}. For any finite set S, let |S| be the number of elements in S. If S={k 1 , k 2 , . . . ,k.sub.|S| } .OR right.Z N , and k 1  &lt;k 2  &lt; . . . &lt;k.sub.|S|, define (x.) S  =(x k .sbsb.1,x k .sbsb.2, . . . ,x k .sbsb.|S|) and (x.) S  =(x 1 .sbsb.1,x 2 .sbsb.2, . . . ,x 3 .sbsb.|S|). Sometimes, we also abbreviate (x.) Z .sbsb.N (i.e., the vector that includes all the possible x j  components) by just x., and (x.) Z .sbsb.N by just x.. 
     For example, suppose N=4. One has Z 4  ={1,2,3,4}. If S={1,3}, then |S|=2. Furthermore, (x.) S  =(x 1 ,x 3 ) and (x) S  =(x 1 ,x 3 ). One defines x.=(x.) Z .sbsb.4 =(x 1 ,x 2 ,x 3 ,x 4 ) and x=(x.) Z .sbsb.4 =(x 1 ,x 2 ,x 3 ,x 4 ). 
     Each possible value x. of x. defines a different net story. 
     For example, a possible story for the net of FIG. 1 is the case when x 1  =x 2  =si and x 3  =x 4  =no. This net story may also be represented by x.=(si,si,no,no). Since we are assuming that each of the four nodes of FIG. 1 can assume two states, there are total of 2 4  =16 stories possible for the net of FIG. 1. 
     For each net story, we may assign an amplitude to each node. This may be done as follows: For each j .di-elect cons. Z N , we imagine node x j  to lie in state x j . We also imagine all arrows leaving the node x j  to lie in state x j , and thus we label all of them x j . At this point we&#39;ve shown how to label each arrow in the graph by x k  for some k .di-elect cons. Z N . Define S j  to be the set of all k such that an arrow labelled x k  enters node x j . Now we assign a complex number A j   x j  |(x.) S .sbsb.j ! to node x j . We call A j   x j  |(x.) S .sbsb.j ! the amplitude of node x j  within net story x.. 
     For example, consider a particular net story, call it (x 1 ,x 2 ,x 3 ,x 4 ), of FIG. 1. No arrow enters node x 1  so both S 1  and (x.) S .sbsb.1 are empty. Node x 2  is entered by an arrow from node x 1  so S 2  ={1} and (x.) S .sbsb.2 =(x 1 ). Likewise, S 3  ={1} and (x.) S .sbsb.3 =(x 1 ). Finally, S 4  ={2,3} and (x.) S .sbsb.4 =(x 2  x 3 ). We assign the complex number A 1   x 1  ! t node x 1 , A 2   x 2  |x 1  ! to node x 2 , A 3   x 3  |x 1  ! to node x 3 , and A 4   x 4  |x 2 ,x 3  ! to node x 4 . 
     The amplitude of net story x., call it A(x.), is defined to be the product of all the node amplitudes A j   x j  |(x.) S .sbsb.j ! for j .di-elect cons. Z N . Thus, 
     
         A(x.)=Π.sub.j.di-elect cons.Z.sbsb.N A.sub.j  x.sub.j |(x.).sub.S.sbsb.j !.                            (1) 
    
     For example, consider a particular net story call it (x 1 ,x 2 ,x 3 ,x 4 ), of FIG. 1. One has that 
     
         A(x.sub.1,x.sub.2,x.sub.3,x.sub.4)=A.sub.1  x.sub.1 !A.sub.2  x.sub.2 |x.sub.1 !A.sub.3  x.sub.3 |x.sub.1 !A.sub.4  x.sub.4 |x.sub.2,x.sub.3 !.                              (2) 
    
     The function A j  with values A j   x j  |(x.) S .sbsb.j ! determines a matrix that we call the node matrix of node x j , and denote by M j . x j  is the matrix&#39;s row index and (x.) S .sbsb.j is its column index. 
     For example, FIG. 1 gives the four node matrices M 1 ,M 2 ,M 3 ,M 4  associated with the four nodes of the graph shown there. 
     We assume that the quantities A j   x j  |(x.) S .sbsb.j ! satisfy ##EQU1## where the sum in Eq.(3) is over all states x j  that the random variable x j  can assume, and where Eq.(3) must be satisfied for all j .di-elect cons. Z N  and for all possible values of the vector (x.) S .sbsb.j of random variables. 
     For example, Eq.(3) means the following for FIG. 1. If x and y are the two elements of ANY column of ANY of the matrices M 1 ,M 2 ,M 3  or M 4 , then |x| 2  +|y| 2  =1. 
     Let Z N   ext  be the set of all j .di-elect cons. Z N  such that x j  is an external node, and let Z N   N   int  be the set of all j .di-elect cons. Z N  such that x j  is an internal node. Clearly, Z N   ext  and Z N   int  are disjoint and their union is Z N . 
     For example, for FIG. 1 one has that Z 4   ext  ={4} and Z 4   int  ={1,2,3}. 
     We assume that A(x.) satisfies ##EQU2## Equation (4) can be described by saying that we attribute unit probability to the collection of all the net stories associated with the graph being considered. 
     For example, for FIG. 1, Eq.(4) becomes: ##EQU3## where the sum over x 1  ranges over the values no and si, and similarly for the sums over x 2 ,x 3  and x 4 . 
     Given two sets R and S, we define the direct product set R×S by 
     
         R×S={(x,y)|x .di-elect cons. R,y .di-elect cons. S}.(6) 
    
     R×S is also denoted by the vector of sets (R,S). Given any set S and any integer n, we will use S n  to denote the product S×S× . . . ×S of n copies of S. 
     For example, if R={1,2} and S={1,2,3}, then R×S=(R,S)={(1,1), (1,2), (1,3), (2,1) (2,2), (2,3)}. 
     Suppose Q j  .OR right. Σ j  for each j .di-elect cons. Z N , where Σ j  is the set of states of x j . If S={k 1 ,k 2 , . . . ,k.sub.|S| } .OR right. Z N , and k 1  &lt;k 2  &lt; . . . &lt;k.sub.|S|, define the vector of sets or direct product set (Q.) S  by (Q.) S  =(Q k .sbsb.1,Q k .sbsb.2, . . . Q k .sbsb.|S|) Equivalently, one may write (Q.) S  =Q k .sbsb.1 ×Q k .sbsb.2 × . . . ×Q k .sbsb.|S|. Note that (Q.) S  .OR right. (Σ) S . Sometimes, we will abbreviate (Q.) Z .sbsb.N by just Q.. 
     For example, if Q 1  =Q 2  ={no,si}, Q 3  =Q 4  ={si} and S={1,3}, then (Q.) S  =(Q 1 ,Q 3 )=Q 1  ×Q 3  and Q.=(Q.) Z .sbsb.4 =(Q 1 ,Q 2 ,Q 3 ,Q 4 )=Q 1  ×Q 2  ×Q 3  ×Q 4 . 
     Suppose that S .OR right. Z N  and E. .OR right. Σ.. We wish to calculate P (x) S  =(x.) S  |x. .di-elect cons. E.!, i.e., the conditional probability that x j  =x j  for all j .di-elect cons. S, given that for all k .di-elect cons. Z N , x k  .di-elect cons. E k . x j  is the hypothesis for x j , and E k  is the set of active states the evidence, for x k . 
     For example, for the net of FIG. 1, we might be interested in the case that S={1,3}, (x.) S  =(si,si), E 1  =E 2  ={no,si} and E 3  =E 4  ={si}. Then P (x.) S  =(x.) S  |x. .di-elect cons. E.! represents the probability that x 1  =si and x 3  =si, taking into consideration that x 1  .di-elect cons. E 1 ,x 2  .di-elect cons. E 2 , x 3  .di-elect cons. E 3  and x 4  .di-elect cons. E 4 . 
     We conclude this section by explaining how to calculate conditional probabilities from the information associated with a QB net. 
     For any function K(x.) that maps Σ. into the complex numbers, one may define the characteristic functional  x   K! by ##EQU4## In particular, let ##EQU5## Then the law of Quantum Mechanics define the conditional probability P (x.) S  =(x.) S  |x. .di-elect cons. E.! as follows. ##EQU6## 
     To calculate the conditional probability indicated by the left hand side of Eq.(9), one may use Eq.(9) directly. That is, one may perform all the sums over states that are indicated by the right hand side of Eq.(9). Alternatively, one may try to re-express the right hand side of Eq.(9) in terms of sums over stories rather than sums over states. Ref-Tucci-95, especially in Appendix-B, presents this alternative way of expressing the right hand side of Eq.(9). (Note that Ref-Tucci-95 refers to sums over stories as sums over &#34;paths&#34;). Usually, calculating conditional probabilities by summing over stories rather than summing over states requires significantly fewer arithmetical operations. However, summing over stories requires that one find the set of possible stories (by &#34;possible&#34; stories we mean stories with non-vanishing amplitudes), whereas such a set need not be found when summing over states. Luckily, when summing over stories, one need not store in computer memory the whole set of possible stories all at once, something that could be very expensive memory-wise. Instead, one can find and store this set in a piecemeal fashion, a few elements at a time. Finding the set of possible stories, either all at once or in a piecemeal fashion, can be done in a variety of ways, using iteration, recursion, etc. Appendix A of this document discusses a recursive, piecemeal method of calculating the set of possible stories. 
     (B)COMPUTER IMPLEMENTATION OF NEW METHOD 
     So far in Section (A), we have described a new method of displaying and processing information about a quantum system. Next we describe how to implement this method on a computer. 
     The use of a computer is practically indispensable for obtaining useful numerical answers through the method of Section (A). A computer screen is highly useful in the drawing and designing of a net. Furthermore, in all but the simplest of cases, vast amounts of data storage and processing are necessary to obtain final numerical answers from the method of Section (A). The necessary book-keeping and number crunching are prohibitively error prone and time consuming to a human, but not to a computer. 
     In its preferred embodiment, this invention is a Macintosh™ (Mac) application running on a Mac computer. Mac computers are produced by Apple Computer Inc. of Cupertino, Calif. Of course, the method of this invention could just as easily be implemented on other computer platforms. We choose to speak in this document about the Mac platform so that we can make our discussion more definite. FIG. 2 is a block diagram of a Mac computer. Block 31 represents input devices, such as a mouse or a key board. Block 32 represents the CPU, internal and external memory units. Block 32 does calculations and stores information. Block 33 represents output devices, such as a printer or a display screen. The preferred embodiment of the invention is written in the computer language C++, using PowerPlant™. Power Plant, a collection of C++ code that serves as a framework for developing Mac applications, is produced by MetroWerks Inc. of Austin, Tx. The Inside the Macintosh series of books, written by Apple Computer, and published by Addison Wesley, describes how to program a Mac, and lays out strict stylistic guidelines for Mac software. This embodiment of the invention follows the programming advice of those books wherever possible. In describing this embodiment. I will use the same terminology as those books whenever possible. 
     Consider FIG. 3. 
     FIG. 3 shows what the user sees on the monitor screen (the &#34;desktop&#34;) immediately after starting the application. Cursor 41, Menu Bar 42, Main Window 50, and Palette 60 are all elements commonly found in the interfaces of Mac applications. These elements are operated by the user, and respond to his actions, the same way they are operated and respond in other Mac drawing applications. By placing the cursor over icons of the palette, and then clicking the mouse, the user can select various tools. These include Selection tool 61. Arrow tool 62, Custom Node tool 63, as well as other types of non-custom node tools like 64, 65 and 66. 
     Now consider FIG. 4 
     Contrary to FIG. 3, FIG. 4 has a drawing inside Main Window 50. To draw inside window 50, one proceeds as follows. 
     Suppose window 50 is empty and one selects the Custom Node tool on the palette. If one now places cursor 41 on window 50 and clicks, then circle 11 appears. Circle 11, which represents a node, is centered at the point where the mouse was clicked, and has an editable field 51 beneath it. The editable field contains the default name x 1  ; the user can change this default name by placing the cursor inside field 51, clicking, and then typing in a new name. 
     Suppose there are two nodes 12 and 14 on Mian Window 50, and that one selects the Arrow tool 62 on the palette. If one now: places cursor 41 inside circle 12; presses the mouse button down, and keeps it down while one drags the cursor to circle 14; releases the mouse button once the cursor is inside circle 14; then arrow 23 connecting circles 12 and 14 appears. 
     As a stylistic choice, the preferred Mac embodiment of this invention does not allow the user to draw external arrows. Only internal arrows. i.e., those that have both a source and a destination node, can be drawn. No confusion or ambiguity arises if external arrows are not shown explicitly. 
     Repeating the above actions, one can draw a plurality of nodes and arrows inside Main Window 50. One finally obtains a labelled graph like that of FIG. 4. Besides a labelled graph, a QB net comprises a matrix for each node. We discuss this next. 
     In going from FIG. 3 to FIG. 4, two new windows, 70 and 90, have been opened. The Prior Info window 70 may be opened by double-clicking on any of the nodes in Main Window 50. The Bi-nodes window 90 may be opened by choosing the menu item &#34;Show Bi-nodes&#34; from the &#34;Windows&#34; menu on Menu Bar 42. When the user first opens the Bi-nodes window 90, its list is empty. FIG. 4 shows two entries in this list. To enter an entry into this list, the user must press down the &#34;2&#34; key, and, while keeping this key down, click successively on two different nodes. For example, to get the first entry in the list of window 90 of FIG. 4, the user clicked on nodes x 2  and x 3 , while keeping key &#34;2&#34; down. The user may delete entries from this list be selecting the entry and pressing the delete key. 
     Now consider FIG. 5. 
     In FIG. 4, the contents of window 70 are hidden. FIG. 5 illustrates the contents of window 70. 
     A window similar to that shown in FIG. 5 can be obtained by double-clicking on any of the nodes in Main Window 50 of FIG. 4. For definiteness, FIG. 5 shows what happens when one double-clicks on the node labelled x 4 . Editable field 71 of FIG. 5, which agrees with the editable field 52 of FIG. 4, gives the name of the node that was double-clicked. The computer keeps a list of the four nodes of the net. If the user clicks on button 72 (labelled &#34;First&#34;), editable field 71 displays the first member of this list. Succesive members of the list are displaced when the user clicks on button 73 (labelled &#34;Next&#34;). All node dependent data in window 70 always refers to the node listed in editable field 71. 
     The user must enter into editable field 74 the degeneracy of node x 4  ; that is, the number of states that node x 4  can assume. 
     The user must enter into column 80 the names of the states which node x 4  can assume. Each node x j  has a set Σ j  of possible states, where j .di-elect cons. {1,2,3,4}. According to FIG. 5, Σ 4  ={no,si}. For definiteness, we will assume Σ 1  =Σ 2  =Σ 3  =Σ 4 . 
     By clicking in column 79, in front of the name of a state, the user can toggle between a blank space and a bullet-hole. A bullet-hole in front of a state indicates that the state is active and a blank space that it isn&#39;t. Each node x j  has a set E j  of active states, where j .di-elect cons. {1,2,3,4}. According to FIG. 5: E 4  ={no,si}; that is, all the states of x 4  are active. One could also consider cases where only one or no states of x 4  were active. 
     According to the drawing in Main Window 50 of FIG. 4, node x 4  is entered by two arrows, and the source nodes of these two arrows are nodes x 2  and x 3 . Column 75 of FIG. 5 lists these 2 source nodes, and column 76 lists the current state of these nodes. Since we are assuming that node x 2  may assume 2 possible states and node x 3  may assume 2 possible states, column 76 can display a total of (2 times 2)=4 possible combinations of states for nodes x 2  and x 3 . The computer keeps a list of these four combinations. If the user clicks on button 77 (labelled &#34;First&#34;), column 76 displays the first member of this list. Succesive members of the list are displayed when the user clicks on button 78 (labelled &#34;Next&#34;). One may think of an arrow as lying in the same state as its source node. Thus, the entries of column 76 can be thought of as the states of the two arrows entering node x 4 . The four combinations of the states of the incomming arrows can be thought of as the four possible initial conditions for node x 4 . 
     Each cell in columns 81 and 82 is an editable field that accepts a signed decimal number. For each state the 2 decimal numbers in columns 81 and 82 represent, respectively, the real and imaginary parts of the complex amplitude associated with that state. Columns 81 and 82 change every time the user presses button 78 (labelled &#34;Next&#34;). Thus, the user must enter different columns 81 and 82 for each of the four possible initial conditions for node x 4 . The entries of columns 81 and 82 are what we denoted by the symbol A j   x j  |(x.) S .sbsb.j ! in Section (A). According to FIG. 5, A 4   x 4  =no|x 2  =si,x 3  =si!=0.5-i(0.5), A 4   x 4  =si|x 2  =si,x 3  =si!=0.7071+i(0). 
     Caption 83 is not directly editable by the user. It gives the total probability implied by the currently displayed columns 81 and 82. In other words, the computer calculates the square of every number in columns 81 and 82, adds all these squares, and displays the result in caption 83. According to Eq.(3) of Section (A), caption 83 should show a number that is very close to 1. The user may insert numbers into columns 81 and 82 such that caption 83 shows a number that is far from 1. But if he does so, and then chooses the &#34;Go|&#34; menu item from the menus on the menu bar, the computer will put up an alert box advising the user that he should first get all his probability captions to within, say, 10 -3  of 1. The computer should also notify the user if Eq.(4) of Section (A) is not satisfied. 
     The example in FIG. 5 refers to a custom node. If node x 4  were not a custom node, i.e., if it had been drawn with, for example the S.G. Magnet tool 65 of Palette 60, then the window shown in FIG. 5 would have been different as follows. The numbers in columns 81 and 82 would have been assigned automatically by the computer instead of being entered manually (or being imported from an external file) by the user. 
     Now consider FIG. 6. 
     Like FIGS. 3 and 4, FIG. 6 shows the full computer screen. To go from the screen contents of FIG. 4 to those of FIG. 6, one proceeds as follows. One closes windows 60 (Palette) and 70 (Prior Info) and one chooses the &#34;Go|&#34; menu item from the menus on the menu bar. Next, by choosing the &#34;Show Net Stories&#34; menu item, one opens window 100. By double clicking on node 14, one opens window 110. By double clicking on the entry &#34;x 2  \x 3  &#34; of the list box of window 90, one opens window 120. 
     Window 110 refers to node 14, but one could open a similar window for any of the nodes of the graph, just by double clicking on the node. The first column of window 110 gives the states of node 14. The second column gives the probabilities of measuring each of these states. The entries of the second column of window 110 can be denoted, using the notation of Section (A), by P x 4  =x 4  |x 1  .di-elect cons. E 1 ,x 2  .di-elect cons. E 2 ,x 3  .di-elect cons. E 3 ,x 4  .di-elect cons. E 4  !, where x 4  equals either no or si. 
     Window 120 refers to bi-node &#34;x 2  \x 3  &#34;, but one could open a similar window for any of the bi-nodes listed in window 90, just by double clicking on the bi-node&#39;s name in that list. Window 120 shows a table of probabilities. The rows of the table are labelled by the states that x 2  can assume, no and si, whereas the columns of the table are labelled by the states that x 3  can assume, which also happen to be no and si. The numerical entries of this table can be denoted, using the notation of Section (A), by P x 2  =x 2 ,x 3  =x 3  |x 1  .di-elect cons. E 1 ,x 2  .di-elect cons. E 2 ,x 3  .di-elect cons. E 3 ,x 4  .di-elect cons. E 4  !, where x 2  equals either no or si, and x 3  equals either no or si. 
     Now consider FIG. 7. 
     To go from FIG. 6 to FIG. 7, one closes windows 90, 110 and 120. One also operates pop-menu 101 as follows. 
     Upon pulling down pop-up menu 101, one sees a list beginning with &#34;none&#34; and then listing all net stories with a non-zero amplitude. The net stories are labelled by: the position of the story in the list, and the complex amplitude of the story. For example, an entry (2)(-4.333, 1.237) means that the second story in the list of stories has a complex amplitude -4.333+i(1.237). As is usual for Mac pop-up menus, upon pulling down pop-menu 101, the currently selected item will have a check mark in front of it. When the pop-up menu is not being held down, its face shows the current selection. As shown in FIG. 6, immediately after choosing the &#34;Go|&#34; menu item, pop-up menu 101 will show &#34;none&#34; as the current selection. To go from FIG. 6 to FIG. 7, the user has changed the current selection in pop-up menu 101 from &#34;none&#34; to the list&#39;s second net story, which has a complex amplitude -4.333+i(1.237). Choosing a pop-up menu selection other than &#34;none&#34; caused the drawing inside window 50 to change from what is shown in FIG. 6 to what is shown in FIG. 7. Window 50 of FIG. 7 shows the same labelled graph as window 50 of FIG. 6, but, in addition, it shows the state assumed by each node for the particular net story labelled (2)(-4.333, 1.237). 
     So far, we have described what are at present the preferred embodiments of this invention. Those skilled in the art will be able to come up with many, modifications to the given embodiments without departing from the present invention. It is therefore desired that the scope of the invention be determined by the appended claims rather than by the given embodiments. 
     APPENDIX A 
     In calculating conditional probabilities by summing over stories, the following task arises. For some Q. .OR right. Σ., one must find the set of all net stories x. such that x. .di-elect cons. Q. and A(x.)≠0. In this appendix, we present a possible way of doing this in a recursive, piecemeal fashion. 
     We begin by classifying the set of nodes of the graph into eras. The eras of a QB net, are a collection of sets T 1 ,T 2 , . . . , T L  such that T i  .OR right. Z N  for all i .di-elect cons. {1,2, . . . ,L} and the union of all T i  equals Z N . In mathematical parlance, the collection of eras is a partition of Z N . Call the original graph Graph(L). The last era T L  is defined as the set of all external nodes of Graph(L). (Recall that external nodes were defined previously as those nodes that have no outgoing internal arrows.) Call Graph(L-1) the graph obtained by erasing from Graph(L) all the T L  nodes and era arrows connected to these nodes. Then T L-1  is defined as the set of all external nodes of Graph(L-1). One can continue this process until one defines an era T 1  such that Graph(0) is empty. (One can show that if Graph(L) is acyclic, then one always arrives at a Graph(0) that is empty.) Of course, one doesn&#39;t know the number of eras L until one has found era T 1 . 
     For example, for the graph of FIG. 1, L=3 and T 1  ={1}, T 2  ={2,3}, T 3  ={4}. 
     Rather than defining eras by (1) removing successive layers of external nodes, one can also define them by (2) removing successive layers of root nodes. Because of the form of Eq.(9) for conditional probabilities, it&#39;s convenient if all the external nodes of the original graph Graph(L) fall into the same era. This will always occur if we use Definition (1), but it may not occur if we use Definition (2). 
     Actually, this process whereby one classifies the nodes of an acyclic graph into eras is a well know technique referred to as a chronological or topological sort in the computer literature. See, for example, pg. 369 of Practical Algorithms in C++ (Wiley, 1995) by Bryan Flamig. 
     We&#39;ve been (calling any vector x. .di-elect cons. Σ. a net story. Analogously we will call any vector (x.) T .sbsb.i .di-elect cons. (Σ.) T .sbsb.i an ith era story. 
     Now consider the flow chart in FIG. 8. 
     One first calculates the set ζ L  defined in FIG. 10. ζ L  is a set of L&#39;th era stories with non-vanishing amplitudes. 
     As indicated in FIG. 8, if ζ L  is empty, we are done. 
     If ζ L  is non-empty, we pick one element (x.) T .sbsb.L from ζ L , and use this element to calculate the set ζ L-1  defined in FIG. 10. ζ L-1  is a set of (L-1)&#39;th era stories with non-vanishing amplitudes. 
     If ζ L-1  is empty, we remove the ineffective element (x.) T .sbsb.L from ζ L , and go back to the point where we ask whether ζ L  is empty or not. 
     If ζ L-1  is non-empty, we pick one element (x.) T .sbsb.L-1 from ζ L-1 , and use this element to calculate the set ζ L-2  defined in FIG. 10. ζ L-2  is a set of (L-2)&#39;th era stories with non-vanishing amplitudes. 
     The process continues. Now consider the flow chart in FIG. 9, which shows the conclusion of the process initiated in FIG. 8. 
     One calculates the set ζ 1  defined in FIG. 10. ζ 1  is a set of first era stories with non-vanishing amplitudes. 
     If ζ 1  is empty we remove the ineffective element (x.) T .sbsb.2 from ζ 2 , and go back to the point where we ask whether ζ 2  is empty or not. 
     If ζ 1  is non-empty, then we pick an element (x.) T .sbsb.1 from ζ 1 , and we congratulate ourselves, for we have found a net story x. such that x. .di-elect cons. Q. and A(x.)≠0. How we use this net story, and how long we store it in computer memory before forgetting it, depends on the aims and strategy of our computer program. It&#39;s time to calculate the next net story. To continue, we remove the element (x.) T .sbsb.1 from ζ 1 , and go back to the point where we ask whether ζ 1  is empty or not.