Skip to main content
Chemistry LibreTexts

Untitled Page 7

  • Page ID
    125281
  • Chapter 2Minterm Analysis

    2.1Minterms*

    Introduction

    A fundamental problem in elementary probability is to find the probability of a logical (Boolean) combination of a finite class of events, when the probabilities of certain other combinations are known. If we partition an event F into component events whose probabilities can be determined, then the additivity property implies the probability of F is the sum of these component probabilities. Frequently, the event F is a Boolean combination of members of a finite class– say, _autogen-svg2png-0001.png or _autogen-svg2png-0002.png . For each such finite class, there is a fundamental partition determined by the class. The members of this partition are called minterms. Any Boolean combination of members of the class can be expressed as the disjoint union of a unique subclass of the minterms. If the probability of every minterm in this subclass can be determined, then by additivity the probability of the Boolean combination is determined. We examine these ideas in more detail.

    Partitions and minterms

    To see how the fundamental partition arises naturally, consider first the partition of the basic space produced by a single event A.

    (2.1) Ω = AAc

    Now if B is a second event, then

    (2.2)
    _autogen-svg2png-0004.png

    The pair _autogen-svg2png-0005.png has partitioned Ω into _autogen-svg2png-0006.png. Continuation is this way leads systematically to a partition by three events _autogen-svg2png-0007.png, four events _autogen-svg2png-0008.png, etc.

    We illustrate the fundamental patterns in the case of four events _autogen-svg2png-0009.png. We form the minterms as intersections of members of the class, with various patterns of complementation. For a class of four events, there are 24=16 such patterns, hence 16 minterms. These are, in a systematic arrangement,

    Table 2.1.
    Ac Bc Cc Dc Ac B Cc Dc A Bc Cc Dc A B Cc Dc
    Ac Bc Cc D Ac B Cc D A Bc Cc D A B Cc D
    _autogen-svg2png-0019.png _autogen-svg2png-0020.png _autogen-svg2png-0021.png _autogen-svg2png-0022.png
    _autogen-svg2png-0023.png _autogen-svg2png-0024.png _autogen-svg2png-0025.png _autogen-svg2png-0026.png

    No element can be in more than one minterm, because each differs from the others by complementation of at least one member event. Each element ω is assigned to exactly one of the minterms by determining the answers to four questions:

    Is it in A? Is it in B? Is it in C? Is it in D?

    Suppose, for example, the answers are: Yes, No, No, Yes. Then ω is in the minterm ABcCcD. In a similar way, we can determine the membership of each ω in the basic space. Thus, the minterms form a partition. That is, the minterms represent mutually exclusive events, one of which is sure to occur on each trial. The membership of any minterm depends upon the membership of each generating set _autogen-svg2png-0028.png or D, and the relationships between them. For some classes, one or more of the minterms are empty (impossible events). As we see below, this causes no problems.

    An examination of the development above shows that if we begin with a class of n events, there are 2n minterms. To aid in systematic handling, we introduce a simple numbering system for the minterms, which we illustrate by considering again the four events _autogen-svg2png-0029.png , in that order. The answers to the four questions above can be represented numerically by the scheme

    No ∼0 and Yes ∼1

    Thus, if ω is in AcBcCcDc, the answers are tabulated as _autogen-svg2png-0033.png. If ω is in ABcCcD, then this is designated _autogen-svg2png-0035.png . With this scheme, the minterm arrangement above becomes

    Table 2.2.
    0000 ∼ 0 0100 ∼ 4 1000 ∼ 8 1100 ∼ 12
    0001 ∼ 1 0101 ∼ 5 1001 ∼ 9 1101 ∼ 13
    0010 ∼ 2 0110 ∼ 6 1010 ∼ 10 1110 ∼ 14
    0011 ∼ 3 0111 ∼ 7 1011 ∼ 11 1111 ∼ 15

    We may view these quadruples of zeros and ones as binary representations of integers, which may also be represented by their decimal equivalents, as shown in the table. Frequently, it is useful to refer to the minterms by number. If the members of the generating class are treated in a fixed order, then each minterm number arrived at in the manner above specifies a minterm uniquely. Thus, for the generating class _autogen-svg2png-0052.png, in that order, we may designate

    (2.3)
    _autogen-svg2png-0053.png

    We utilize this numbering scheme on special Venn diagrams called minterm maps. These are illustrated in Figure 2.1, for the cases of three, four, and five generating events. Since the actual content of any minterm depends upon the sets _autogen-svg2png-0054.png, and D in the generating class, it is customary to refer to these sets as variables. In the three-variable case, set A is the right half of the diagram and set C is the lower half; but set B is split, so that it is the union of the second and fourth columns. Similar splits occur in the other cases.

    Remark. Other useful arrangements of minterm maps are employed in the analysis of switching circuits.

    fig2_1_1.png
    Figure 2.1
    Minterm maps for three, four, or five variables.

    Minterm maps and the minterm expansion

    The significance of the minterm partition of the basic space rests in large measure on the following fact.

    Minterm expansion

    Each Boolean combination of the elements in a generating class may be expressed as the disjoint union of an appropriate subclass of the minterms. This representation is known as the minterm expansion for the combination.

    In deriving an expression for a given Boolean combination which holds for any class _autogen-svg2png-0055.png of four events, we include all possible minterms, whether empty or not. If a minterm is empty for a given class, its presence does not modify the set content or probability assignment for the Boolean combination.

    The existence and uniqueness of the expansion is made plausible by simple examples utilizing minterm maps to determine graphically the minterm content of various Boolean combinations. Using the arrangement and numbering system introduced above, we let Mi represent the ith minterm (numbering from zero) and let p(i) represent the probability of that minterm. When we deal with a union of minterms in a minterm expansion, it is convenient to utilize the shorthand illustrated in the following.

    (2.4)
    _autogen-svg2png-0057.png
    fig2_2_1.png
    Figure 2.2
    _autogen-svg2png-0058.png Minterm expansion for Example 2.1

    Consider the following simple example.

    Example 2.1 Minterm expansion

    Suppose _autogen-svg2png-0059.png. Examination of the minterm map in Figure 2.2 shows that AB consists of the union of minterms _autogen-svg2png-0061.png, which we designate _autogen-svg2png-0062.png. The combination _autogen-svg2png-0063.png , so that its complement _autogen-svg2png-0064.png. This leaves the common part _autogen-svg2png-0065.png. Hence, _autogen-svg2png-0066.png. Similarly, _autogen-svg2png-0067.png.

    A key to establishing the expansion is to note that each minterm is either a subset of the combination or is disjoint from it. The expansion is thus the union of those minterms included in the combination. A general verification using indicator functions is sketched in the last section of this module.

    Use of minterm maps

    A typical problem seeks the probability of certain Boolean combinations of a class of events when the probabilities of various other combinations is given. We consider several simple examples and illustrate the use of minterm maps in formulation and solution.

    Example 2.2Survey on software

    Statistical data are taken for a certain student population with personal computers. An individual is selected at random. Let A= the event the person selected has word processing, B= the event he or she has a spread sheet program, and C= the event the person has a data base program. The data imply

    • The probability is 0.80 that the person has a word processing program: P(A)=0.8

    • The probability is 0.65 that the person has a spread sheet program: P(B)=0.65

    • The probability is 0.30 that the person has a data base program: P(C)=0.3

    • The probability is 0.10 that the person has all three: P(ABC)=0.1

    • The probability is 0.05 that the person has neither word processing nor spread sheet: _autogen-svg2png-0075.png

    • The probability is 0.65 that the person has at least two: P(ABACBC)=0.65

    • The probability of word processor and data base, but no spread sheet is twice the probabilty of spread sheet and data base, but no word processor: _autogen-svg2png-0077.png

    1. What is the probability that the person has exactly two of the programs?

    2. What is the probability that the person has only the data base program?

    Several questions arise:

    • Are these data consistent?

    • Are the data sufficient to answer the questions?

    • How may the data be utilized to anwer the questions?

    SOLUTION

    The data, expressed in terms of minterm probabilities, are:

    P(A)=p(4,5,6,7)=0.80; hence _autogen-svg2png-0079.png

    P(B)=p(2,3,6,7)=0.65; hence _autogen-svg2png-0081.png

    P(C)=p(1,3,5,7)=0.30; hence _autogen-svg2png-0083.png

    _autogen-svg2png-0084.png

    P(ABACBC)=p(3,5,6,7)=0.65

    _autogen-svg2png-0086.png

    These data are shown on the minterm map in Figure 3a. We use the patterns displayed in the minterm map to aid in an algebraic solution for the various minterm probabilities.

    p(2,3)=p(0,1,2,3)–p(0,1)=0.20–0.05=0.15

    p(6,7)=p(2,3,6,7)–p(2,3)=0.65–0.15=0.50

    p(6)=p(6,7)–p(7)=0.50–0.10=0.40

    _autogen-svg2png-0090.png

    _autogen-svg2png-0091.png

    _autogen-svg2png-0092.png

    p(4)=p(4,5,6,7)–p(5)–p(6,7)=0.80–0.10–0.50=0.20

    Thus, all minterm probabilities are determined. They are displayed in Figure 3b. From these we get

    (2.5)
    _autogen-svg2png-0094.png
    fig2_3_1.png
    Figure 2.3
    Minterm maps for software survey, Example 2.2
    Example 2.3Survey on personal computers

    A survey of 1000 students shows that 565 have PC compatible desktop computers, 515 have Macintosh desktop computers, and 151 have laptop computers. 51 have all three, 124 have both PC and laptop computers, 212 have at least two of the three, and twice as many own both PC and laptop as those who have both Macintosh desktop and laptop. A person is selected at random from this population. What is the probability he or she has at least one of these types of computer? What is the probability the person selected has only a laptop?

    fig2_3_2.png
    Figure 2.4
    Minterm probabilities for computer survey, Example 2.3

    SOLUTION

    Let A= the event of owning a PC desktop, B= the event of owning a Macintosh desktop, and C= the event of owning a laptop. We utilize a minterm map for three variables to help determine minterm patterns. For example, the event AC=M5M7 so that P(AC)=p(5)+p(7)=p(5,7).

    The data, expressed in terms of minterm probabilities, are:

    P(A)=p(4,5,6,7)=0.565, hence _autogen-svg2png-0101.png

    P(B)=p(2,3,6,7)=0.515, hence _autogen-svg2png-0103.png

    P(C)=p(1,3,5,7)=0.151, hence _autogen-svg2png-0105.png

    _autogen-svg2png-0106.png

    P(ABACBC)=p(3,5,6,7)=0.212

    P(AC)=p(5,7)=2p(3,7)=2P(BC)

    We use the patterns displayed in the minterm map to aid in an algebraic solution for the various minterm probabilities.

    p(5)=p(5,7)–p(7)=0.124–0.051=0.073

    _autogen-svg2png-0110.png

    p(3,7)=P(BC)=0.124/2=0.062

    p(3)=0.062–0.051=0.011

    p(6)=p(3,4,6,7)–p(3)–p(5,7)=0.212–0.011–0.124=0.077

    p(4)=P(A)–p(6)–p(5,7)=0.565–0.077–0.1124=0.364

    p(1)=p(1,3)–p(3)=0.027–0.11=0.016

    p(2)=P(B)–p(3,7)–p(6)=0.515–0.062–0.077=0.376

    _autogen-svg2png-0117.png

    We have determined the minterm probabilities, which are displayed on the minterm map Figure 2.4. We may now compute the probability of any Boolean combination of the generating events _autogen-svg2png-0118.png. Thus,

    (2.6)
    _autogen-svg2png-0119.png
    fig2_3_3.png
    Figure 2.5
    Minterm probabilities for opinion survey, Example 2.4
    Example 2.4Opinion survey

    A survey of 1000 persons is made to determine their opinions on four propositions. Let A,B,C,D be the events a person selected agrees with the respective propositions. Survey results show the following probabilities for various combinations:

    (2.7)
    _autogen-svg2png-0121.png
    (2.8)
    _autogen-svg2png-0122.png
    (2.9)
    _autogen-svg2png-0123.png
    (2.10)
    _autogen-svg2png-0124.png

    Determine the probabilities for each minterm and for each of the following combinations

    _autogen-svg2png-0125.png – that is, not A and (B or C, but not both)

    ABCc – that is, A or (B and not C)

    SOLUTION

    At the outset, it is not clear that the data are consistent or sufficient to determine the minterm probabilities. However, an examination of the data shows that there are sixteen items (including the fact that the sum of all minterm probabilities is one). Thus, there is hope, but no assurance, that a solution exists. A step elimination procedure, as in the previous examples, shows that all minterms can in fact be calculated. The results are displayed on the minterm map in Figure 2.5. It would be desirable to be able to analyze the problem systematically. The formulation above suggests a more systematic algebraic formulation which should make possible machine aided solution.

    Systematic formulation

    Use of a minterm map has the advantage of visualizing the minterm expansion in direct relation to the Boolean combination. The algebraic solutions of the previous problems involved ad hoc manipulations of the data minterm probability combinations to find the probability of the desired target combination. We seek a systematic formulation of the data as a set of linear algebraic equations with the minterm probabilities as unknowns, so that standard methods of solution may be employed. Consider again the software survey of Example 2.2.

    Example 2.5The software survey problem reformulated

    The data, expressed in terms of minterm probabilities, are:

    P(A)=p(4,5,6,7)=0.80

    P(B)=p(2,3,6,7)=0.65

    P(C)=p(1,3,5,7)=0.30

    P(ABC)=p(7)=0.10

    _autogen-svg2png-0131.png

    P(ABACBC)=p(3,5,6,7)=0.65

    _autogen-svg2png-0133.png, so that p(5)–2p(3)=0

    We also have in any case

    _autogen-svg2png-0135.png

    to complete the eight items of data needed for determining all eight minterm probabilities. The first datum can be expressed as an equation in minterm probabilities:

    (2.11) 0 ⋅ p ( 0 ) + 0 ⋅ p ( 1 ) + 0 ⋅ p ( 2 ) + 0 ⋅ p ( 3 ) + 1 ⋅ p ( 4 ) + 1 ⋅ p ( 5 ) + 1 ⋅ p ( 6 ) + 1 ⋅ p ( 7 ) = 0 . 80

    This is an algebraic equation in _autogen-svg2png-0137.png with a matrix of coefficients

    (2.12)
    _autogen-svg2png-0138.png

    The others may be written out accordingly, giving eight linear algebraic equations in eight variables p(0) through p(7). Each equation has a matrix or vector of zero-one coefficients indicating which minterms are included. These may be written in matrix form as follows:

    (2.13)
    _autogen-svg2png-0141.png
    • The patterns in the coefficient matrix are determined by logical operations. We obtained these with the aid of a minterm map.

    • The solution utilizes an algebraic procedure, which could be carried out in a variety of ways, including several standard computer packages for matrix operations.

    We show in the module Minterm Vectors and MATLAB how we may use MATLAB for both aspects.

    Indicator functions and the minterm expansion

    Previous discussion of the indicator function shows that the indicator function for a Boolean combination of sets is a numerical valued function of the indicator functions for the individual sets.

    • As an indicator function, it takes on only the values zero and one.

    • The value of the indicator function for any Boolean combination must be constant on each minterm. For example, for each ω in the minterm ABcCDc, we must have _autogen-svg2png-0143.png, and ID(ω)=0. Thus, any function of _autogen-svg2png-0145.png must be constant over the minterm.

    • Consider a Boolean combination E of the generating sets. If ω is in EMi, then IE(ω)=1 for all ωMi, so that MiE. Since each ωMi for some i,E must be the union of those minterms sharing an ω with E.

    • Let _autogen-svg2png-0152.png be the subclass of those minterms on which IE has the value one. Then

      (2.14)
      _autogen-svg2png-0153.png

      which is the minterm expansion of E.

    2.2Minterms and MATLAB Calculations*

    The concepts and procedures in this unit play a significant role in many aspects of the analysis of probability topics and in the use of MATLAB throughout this work.

    Minterm vectors and MATLAB

    The systematic formulation in the previous module Minterms shows that each Boolean combination, as a union of minterms, can be designated by a vector of zero-one coefficients. A coefficient one in the ith position (numbering from zero) indicates the inclusion of minterm Mi in the union. We formulate this pattern carefully below and show how MATLAB logical operations may be utilized in problem setup and solution.

    Suppose E is a Boolean combination of _autogen-svg2png-0001.png. Then, by the minterm expansion,

    (2.15)
    _autogen-svg2png-0002.png

    where Mi is the ith minterm and JE is the set of indices for those Mi included in E. For example, consider

    (2.16)
    _autogen-svg2png-0003.png
    (2.17) F = Ac BcA C = M0M1M5M7 = M ( 0 , 1 , 5 , 7 )

    We may designate each set by a pattern of zeros and ones _autogen-svg2png-0005.png. The ones indicate which minterms are present in the set. In the pattern for set E, minterm Mi is included in E iff ei=1. This is, in effect, another arrangement of the minterm map. In this form, it is convenient to view the pattern as a minterm vector, which may be represented by a row matrix or row vector _autogen-svg2png-0007.png . We find it convenient to use the same symbol for the name of the event and for the minterm vector or matrix representing it. Thus, for the examples above,

    (2.18)
    _autogen-svg2png-0008.png

    It should be apparent that this formalization can be extended to sets generated by any finite class.

    Minterm vectors for Boolean combinations

    If E and F are combinations of n generating sets, then each is represented by a unique minterm vector of length 2n. In the treatment in the module Minterms, we determine the minterm vector with the aid of a minterm map. We wish to develop a systematic way to determine these vectors.

    As a first step, we suppose we have minterm vectors for E and F and want to obtain the minterm vector of Boolean combinations of these.

    1. The minterm expansion for EF has all the minterms in either set. This means the jth element of the vector for EF is the maximum of the jth elements for the two vectors.

    2. The minterm expansion for EF has only those minterms in both sets. This means the jth element of the vector for EF is the minimum of the jth elements for the two vectors.

    3. The minterm expansion for Ec has only those minterms not in the expansion for E. This means the vector for Ec has zeros and ones interchanged. The jth element of Ec is one iff the corresponding element of E is zero.

    We illustrate for the case of the two combinations E and F of three generating sets, considered above

    (2.19)
    _autogen-svg2png-0013.png

    Then

    (2.20)
    _autogen-svg2png-0014.png

    MATLAB logical operations

    MATLAB logical operations on zero-one matrices provide a convenient way of handling Boolean combinations of minterm vectors represented as matrices. For two zero-one matrices _autogen-svg2png-0015.png of the same size

    : E|F is the matrix obtained by taking the maximum element in each place.
    : E&F is the matrix obtained by taking the minimum element in each place.
    : EC is the matrix obtained by interchanging one and zero in each place in E.

    Thus, if _autogen-svg2png-0019.png are minterm vectors for sets by the same name, then E|F is the minterm vector for EF, E&F is the minterm vector for EF, and E=1–E is the minterm vector for Ec.

    This suggests a general approach to determining minterm vectors for Boolean combinations.

    1. Start with minterm vectors for the generating sets.

    2. Use MATLAB logical operations to obtain the minterm vector for any Boolean combination.

    Suppose, for example, the class of generating sets is _autogen-svg2png-0025.png. Then the minterm vectors for _autogen-svg2png-0026.png, and C, respectively, are

    (2.21)
    _autogen-svg2png-0027.png

    If E=ABCc, then the logical combination _autogen-svg2png-0029.png of the matrices yields _autogen-svg2png-0030.png.

    MATLAB implementation

    A key step in the procedure just outlined is to obtain the minterm vectors for the generating elements _autogen-svg2png-0031.png. We have an m-function to provide such fundamental vectors. For example to produce the second minterm vector for the family (i.e., the minterm vector for B), the basic zero-one pattern 0 0 1 1 is replicated twice to give

     0     0     1     1     0     0     1     1
    

    The function minterm(n,k) generates the kth minterm vector for a class of n generating sets.

    Example 2.6Minterms for the class {A,B,C}.
    >> A = minterm(3,1)
    A =  0     0     0     0     1     1     1     1
    >> B = minterm(3,2)
    B =  0     0     1     1     0     0     1     1
    >> C = minterm(3,3)
    C =  0     1     0     1     0     1     0     1
    
    Example 2.7Minterm patterns for the Boolean combinations

    _autogen-svg2png-0033.png

    F = (A&B)|(~B&C)
    F =  0     1     0     0     0     1     1     1
    >> G = A|(~A&C)
    G =  0     1     0     1     1     1     1     1
    >> JF = find(F)-1           % Use of find to determine index set for F
    JF =   1     5     6     7  % Shows F = M(1, 5, 6, 7)
    

    These basic minterm patterns are useful not only for Boolean combinations of events but also for many aspects of the analysis of those random variables which take on only a finite number of values.

    Zero-one arrays in MATLAB

    The treatment above hides the fact that a rectangular array of zeros and ones can have two quite different meanings and functions in MATLAB.

    1. A numerical matrix (or vector) subject to the usual operations on matrices..

    2. A logical array whose elements are combined by a. Logical operators to give new logical arrays; b. Array operations (element by element) to give numerical matrices; c. Array operations with numerical matrices to give numerical results.

    Some simple examples will illustrate the principal properties.

    >>> A = minterm(3,1);
    >> B = minterm(3,2);
    >> C = minterm(3,3);
    >> F = (A&B)|(~B&C)
    F =  0     1     0     0     0     1     1     1
    >> G = A|(~A&C)
    G =  0     1     0     1     1     1     1     1
    >> islogical(A)       % Test for logical array
    ans =    0
    >> islogical(F)
    ans =   1
    >> m = max(A,B)       % A matrix operation
    m =   0     0     1     1     1     1     1     1
    >> islogical(m)
    ans =   0
    >> m1 = A|B           % A logical operation
    m1 =   0     0     1     1     1     1     1     1
    >> islogical(m1)
    ans = 1
    >> a = logical(A)      % Converts 0-1 matrix into logical array
    a =   0     0     0     0     1     1     1     1
    >> b = logical(B)
    >> m2 = a|b
    m2 =   0     0     1     1     1     1     1     1
    >> p = dot(A,B)        % Equivalently, p = A*B'
    p =  2
    >> p1 = total(A.*b)
    p1 =  2
    >> p3 = total(A.*B)
    p3 =  2
    >> p4 = a*b'           % Cannot use matrix operations on logical arrays
    ??? Error using ==> mtimes   % MATLAB error signal
    Logical inputs must be scalar.
    

    Often it is desirable to have a table of the generating minterm vectors. Use of the function minterm in a simple “for loop” yields the following m-function.

    The function mintable(n) Generates a table of minterm vectors for n generating sets.

    Example 2.8Mintable for three variables
    >> M3 = mintable(3)
    M3 = 0     0     0     0     1     1     1     1
         0     0     1     1     0     0     1     1
         0     1     0     1     0     1     0     1
    

    As an application of mintable, consider the problem of determining the probability of k of n events. If _autogen-svg2png-0034.png is any finite class of events, the event that exactly k of these events occur on a trial can be characterized simply in terms of the minterm expansion. The event Akn that exactly k occur is given by

    (2.22)
    _autogen-svg2png-0036.png

    In the matrix M = mintable(n) these are the minterms corresponding to columns with exactly k ones. The event Bkn that k or more occur is given by

    (2.23)
    _autogen-svg2png-0038.png

    If we have the minterm probabilities, it is easy to pick out the appropriate minterms and combine the probabilities. The following example in the case of three variables illustrates the procedure.

    Example 2.9The software survey (continued)

    In the software survey problem, the minterm probabilities are

    (2.24)
    _autogen-svg2png-0039.png

    where A= event has word processor, B= event has spread sheet, C= event has a data base program. It is desired to get the probability an individual selected has k of these, _autogen-svg2png-0043.png.

    SOLUTION

    We form a mintable for three variables. We count the number of “successes” corresponding to each minterm by using the MATLAB function sum, which gives the sum of each column. In this case, it would be easy to determine each distinct value and add the probabilities on the minterms which yield this value. For more complicated cases, we have an m-function called csort (for sort and consolidate) to perform this operation.

    >> pm = 0.01*[0 5 10 5 20 10 40 10];
    >> M = mintable(3)
    M =
    0     0     0     0     1     1     1     1
    0     0     1     1     0     0     1     1
    0     1     0     1     0     1     0     1
    >> T = sum(M)                                    % Column sums give number
    T =  0     1     1     2     1     2     2     3 % of successes on each
    >> [k,pk] = csort(T,pm);                         % minterm, determines
                                                     % distinct values in T and
    >> disp([k;pk]')                                 % consolidates probabilities
    0         0
    1.0000    0.3500
    2.0000    0.5500
    3.0000    0.1000
    

    For three variables, it is easy enough to identify the various combinations “by eye” and make the combinations. For a larger number of variables, however, this may become tedious. The approach is much more useful in the case of Independent Events, because of the ease of determining the minterm probabilities.

    Minvec procedures

    Use of the tilde to indicate the complement of an event is often awkward. It is customary to indicate the complement of an event E by Ec. In MATLAB, we cannot indicate the superscript, so we indicate the complement by Ec instead of E. To facilitate writing combinations, we have a family of minvec procedures (minvec3, minvec4, ..., minvec10) to expedite expressing Boolean combinations of n=3,4,5,⋯,10 sets. These generate and name the minterm vector for each generating set and its complement.

    Example 2.10Boolean combinations using minvec3

    We wish to generate a matrix whose rows are the minterm vectors for Ω=AAc, A, AB, ABC, C, and AcCc, respectively.

    >> minvec3                               % Call for the setup procedure
    Variables are A, B, C, Ac, Bc, Cc
    They may be renamed, if desired
    >> V = [A|Ac; A; A&B; A&B&C; C; Ac&Cc];  % Logical combinations (one per
                                           % row) yield logical vectors
    >> disp(V)
    1     1     1     1     1     1     1     1   % Mixed logical and
    0     0     0     0     1     1     1     1   % numerical vectors
    0     0     0     0     0     0     1     1
    0     0     0     0     0     0     0     1
    0     1     0     1     0     1     0     1
    1     0     1     0     0     0     0     0
    

    Minterm probabilities and Boolean combination

    If we have the probability of every minterm generated by a finite class, we can determine the probability of any Boolean combination of the members of the class. When we know the minterm expansion or, equivalently, the minterm vector, we simply pick out the probabilities corresponding to the minterms in the expansion and add them. In the following example, we do this “by hand” then show how to do it with MATLAB .

    Example 2.11

    Consider _autogen-svg2png-0052.png and F=AcBcAC of the example above, and suppose the respective minterm probabilities are

    (2.25)
    _autogen-svg2png-0054.png

    Use of a minterm map shows _autogen-svg2png-0055.png and _autogen-svg2png-0056.png. so that

    (2.26)
    _autogen-svg2png-0057.png

    This is easily handled in MATLAB.

    • Use minvec3 to set the generating minterm vectors.

    • Use logical matrix operations

      (2.27)
      _autogen-svg2png-0058.png

      to obtain the (logical) minterm vectors for E and F.

    • If pm is the matrix of minterm probabilities, perform the algebraic dot product or scalar product of the pm matrix and the minterm vector for the combination. This can be called for by the MATLAB commands PE = E*pm' and PF = F*pm' .

    The following is a transcript of the MATLAB operations.

    >> minvec3                 % Call for the setup procedure
    Variables are A, B, C, Ac, Bc, Cc
    They may be renamed, if desired.
    >> E  = (A&(B|Cc))|(Ac&~(B|Cc));
    >> F  = (Ac&Bc)|(A&C);
    >> pm = 0.01*[21 6 29 11 9 3 14 7];
    >> PE = E*pm'              % Picks out and adds the minterm probabilities
    PE =  0.3600
    >> PF = F*pm'
    PF =  0.3700
    
    Example 2.12Solution of the software survey problem

    We set up the matrix equations with the use of MATLAB and solve for the minterm probabilities. From these, we may solve for the desired “target” probabilities.

    >> minvec3
    Variables are A, B, C, Ac, Bc, Cc
    They may be renamed, if desired.
    Data vector combinations are:
    >> DV = [A|Ac; A; B; C; A&B&C; Ac&Bc; (A&B)|(A&C)|(B&C); (A&Bc&C) - 2*(Ac&B&C)]
    DV =
    1     1     1     1     1     1     1     1    % Data mixed numerical
    0     0     0     0     1     1     1     1    % and logical vectors
    0     0     1     1     0     0     1     1
    0     1     0     1     0     1     0     1
    0     0     0     0     0     0     0     1
    1     1     0     0     0     0     0     0
    0     0     0     1     0     1     1     1
    0     0     0    -2     0     1     0     0
    >> DP = [1 0.8 0.65 0.3 0.1 0.05 0.65 0];  % Corresponding data probabilities
    >> pm = DV\DP'                             % Solution for minterm probabilities
    pm =
    -0.0000                                          % Roundoff -3.5 x 10-17
    0.0500
    0.1000
    0.0500
    0.2000
    0.1000
    0.4000
    0.1000
    >> TV = [(A&B&Cc)|(A&Bc&C)|(Ac&B&C); Ac&Bc&C]       % Target combinations
    TV =
    0     0     0     1     0     1     1     0    % Target vectors
    0     1     0     0     0     0     0     0
    >> PV = TV*pm                          % Solution for target probabilities
    PV =
    0.5500                             % Target probabilities
    0.0500
    
    Example 2.13An alternate approach

    The previous procedure first obtained all minterm probabilities, then used these to determine probabilities for the target combinations. The following procedure does not require calculation of the minterm probabilities. Sometimes the data are not sufficient to calculate all minterm probabilities, yet are sufficient to allow determination of the target probabilities.

    Suppose the data minterm vectors are linearly independent, and the target minterm vectors are linearly dependent upon the data vectors (i.e., the target vectors can be expressed as linear combinations of the data vectors). Now each target probability is the same linear combination of the data probabilities. To determine the linear combinations, solve the matrix equation

    (2.28)
    _autogen-svg2png-0061.png

    Then the matrix tp of target probabilities is given by tp=CT*DP'. Continuing the MATLAB procedure above, we have:

    >> CT = TV/DV;
    
    >> tp = CT*DP'
    
    tp = 0.5500
             0.0500

    The procedure mincalc

    The procedure mincalc performs calculations as in the preceding examples. The refinements consist of determining consistency and computability of various individual minterm probabilities and target probilities. The consistency check is principally for negative minterm probabilities. The computability tests are tests for linear independence by means of calculation of ranks of various matrices. The procedure picks out the computable minterm probabilities and the computable target probabilities and calculates them.

    To utilize the procedure, the problem must be formulated appropriately and precisely, as follows:

    1. Use the MATLAB program minvecq to set minterm vectors for each of q basic events.

    2. Data consist of Boolean combinations of the basic events and the respective probabilities of these combinations. These are organized into two matrices:

      • The data vector matrix DV has the data Boolean combinations– one on each row. MATLAB translates each row into the minterm vector for the corresponding Boolean combination. The first entry (on the first row) is A |Ac (for AAc), which is the whole space. Its minterm vector consists of a row of ones.

      • The data probability matrix DP is a row matrix of the data probabilities. The first entry is one, the probability of the whole space.

    3. The objective is to determine the probability of various target Boolean combinations. These are put into the target vector matrix TV, one on each row. MATLAB produces the minterm vector for each corresponding target Boolean combination.

    Computational note. In mincalc, it is necessary to turn the arrays DV and TV consisting of zero-one patterns into zero-one matrices. This is accomplished for DV by the operation DV = ones(size(DV)).*DV. and similarly for TV. Both the original and the transformed matrices have the same zero-one pattern, but MATLAB interprets them differently.

    Usual case

    Ṡuppose the data minterm vectors are linearly independent and the target vectors are each linearly dependent on the data minterm vectors. Then each target minterm vector is expressible as a linear combination of data minterm vectors. Thus, there is a matrix CT such that TV=CT*DV. MATLAB solves this with the command CT=TV/DV. The target probabilities are the same linear combinations of the data probabilities. These are obtained by the MATLAB operation tp=DP*CT'.

    Cautionary notes

    The program mincalc depends upon the provision in MATLAB for solving equations when less than full data are available (based on the singular value decomposition). There are several situations which should be dealt with as special cases. It is usually a good idea to check results by hand to determine whether they are consistent with data. The checking by hand is usually much easier than obtaining the solution unaided, so that use of MATLAB is advantageous even in questionable cases.

    1. The Zero Problem. If the total probability of a group of minterms is zero, then it follows that the probability of each minterm in the group is zero. However, if mincalc does not have enough information to calculate the separate minterm probabilities in the case they are not zero, it will not pick up in the zero case the fact that the separate minterm probabilities are zero. It simply considers these minterm probabilities not computable.

    2. Linear dependence. In the case of linear dependence, the operation called for by the command CT = TV/DV may not be able to solve the equations. The matrix may be singular, or it may not be able to decide which of the redundant data equations to use. Should it provide a solution, the result should be checked with the aid of a minterm map.

    3. Consistency check. Since the consistency check is for negative minterms, if there are not enough data to calculate the minterm probabilities, there is no simple check on the consistency. Sometimes the probability of a target vector included in another vector will actually exceed what should be the larger probability. Without considerable checking, it may be difficult to determine consistency.

    4. In a few unusual cases, the command CT = TV/DV does not operate appropriately, even though the data should be adequate for the problem at hand. Apparently the approximation process does not converge.

    MATLAB Solutions for examples using mincalc

    Example 2.14Software survey
    % file mcalc01   Data for software survey
    minvec3;
    DV = [A|Ac; A; B; C; A&B&C; Ac&Bc; (A&B)|(A&C)|(B&C); (A&Bc&C)  - 2*(Ac&B&C)];
    DP = [1 0.8 0.65 0.3 0.1 0.05 0.65 0];
    TV = [(A&B&Cc)|(A&Bc&C)|(Ac&B&C); Ac&Bc&C];
    disp('Call for mincalc')
    >> mcalc01         % Call for data
    Call for mincalc   % Prompt supplied in the data file
    >> mincalc
    Data vectors are linearly independent
    Computable target probabilities
    1.0000    0.5500
    2.0000    0.0500
    The number of minterms is 8
    The number of available minterms is 8
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    >> disp(PMA)       % Optional call for minterm probabilities
    0         0
    1.0000    0.0500
    2.0000    0.1000
    3.0000    0.0500
    4.0000    0.2000
    5.0000    0.1000
    6.0000    0.4000
    7.0000    0.1000
    
    Example 2.15Computer survey
    % file mcalc02.m    Data for computer survey
    minvec3
    DV =   [A|Ac; A; B; C; A&B&C; A&C; (A&B)|(A&C)|(B&C); ...
    2*(B&C) - (A&C)];
    DP = 0.001*[1000 565 515 151 51 124 212 0];   TV = [A|B|C; Ac&Bc&C];
    disp('Call for mincalc')
    >> mcalc02
    Call for mincalc
    >> mincalc
    Data vectors are linearly independent
    Computable target probabilities
    1.0000    0.9680
    2.0000    0.0160
    The number of minterms is 8
    The number of available minterms is 8
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    >> disp(PMA)
    0         0.0320
    1.0000    0.0160
    2.0000    0.3760
    3.0000    0.0110
    4.0000    0.3640
    5.0000    0.0730
    6.0000    0.0770
    7.0000    0.0510
    
    Example 2.16
    % file mcalc03.m    Data for opinion survey
    minvec4
    DV = [A|Ac; A; B; C; D; A&(B|Cc)&Dc; A|((B&C)|Dc) ; Ac&B&Cc&D; ...
    A&B&C&D; A&Bc&C; Ac&Bc&Cc&D; Ac&B&C; Ac&Bc&Dc; A&Cc; A&C&Dc; A&B&Cc&Dc];
    DP =  0.001*[1000 200 500 300 700 55 520 200 15 30 195 120 120 ...
                  140 25 20];
    TV = [Ac&((B&Cc)|(Bc&C)); A|(B&Cc)];
    disp('Call for mincalc')
    >> mincalc03
    Call for mincalc
    >> mincalc
    Data vectors are linearly independent
    Computable target probabilities
    1.0000    0.4000
    2.0000    0.4800
    The number of minterms is 16
    The number of available minterms is 16
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    >> disp(minmap(pma))    % Display arranged as on minterm map
    0.0850    0.0800    0.0200    0.0200
    0.1950    0.2000    0.0500    0.0500
    0.0350    0.0350    0.0100    0.0150
    0.0850    0.0850    0.0200    0.0150
    

    The procedure mincalct

    A useful modification, which we call mincalct, computes the available target probabilities, without checking and computing the minterm probabilities. This procedure assumes a data file similar to that for mincalc, except that it does not need the target matrix TV, since it prompts for target Boolean combination inputs. The procedure mincalct may be used after mincalc has performed its operations to calculate probabilities for additional target combinations.

    Example 2.17(continued) Additional target datum for the opinion survey

    Suppose mincalc has been applied to the data for the opinion survey and that it is desired to determine _autogen-svg2png-0074.png. It is not necessary to recalculate all the other quantities. We may simply use the procedure mincalct and input the desired Boolean combination at the prompt.

    >> mincalct
    Enter matrix of target Boolean combinations  (A&D)|(B&Dc)
    Computable target probabilities
        1.0000    0.2850
    

    Repeated calls for mcalct may be used to compute other target probabilities.

    2.3Problems on Minterm Analysis*

    Consider the class _autogen-svg2png-0001.png of events. Suppose the probability that at least one of the events A or C occurs is 0.75 and the probability that at least one of the four events occurs is 0.90. Determine the probability that neither of the events A or C but at least one of the events B or D occurs.

    Use the pattern _autogen-svg2png-0002.png and (AC)c=AcCc.

    (2.29)
    _autogen-svg2png-0004.png
    1. Use minterm maps to show which of the following statements are true for any class _autogen-svg2png-0005.png:

      1. _autogen-svg2png-0006.png

      2. _autogen-svg2png-0007.png

      3. _autogen-svg2png-0008.png

    2. Repeat part (1) using indicator functions (evaluated on minterms).

    3. Repeat part (1) using the m-procedure minvec3 and MATLAB logical operations.

    We use the MATLAB procedure, which displays the essential patterns.

    minvec3
    Variables are A, B, C, Ac, Bc, Cc
    They may be renamed, if desired.
    E = A|~(B&C);
    F = A|B|(Bc&Cc);
    disp([E;F])
         1     1     1     0     1     1     1     1   % Not equal
         1     0     1     1     1     1     1     1
    G = ~(A|B);
    H = (Ac&C)|(Bc&C);
    disp([G;H])
         1     1     0     0     0     0     0     0   % Not equal
         0     1     0     1     0     1     0     0
    K = (A&B)|(A&C)|(B&C);
    disp([A;K])
         0     0     0     0     1     1     1     1   % A not contained in K
         0     0     0     1     0     1     1     1
    

    Use (1) minterm maps, (2) indicator functions (evaluated on minterms), (3) the m-procedure minvec3 and MATLAB logical operations to show that

    1. _autogen-svg2png-0009.png

    2. _autogen-svg2png-0010.png

    We use the MATLAB procedure, which displays the essential patterns.

    minvec3
    Variables are A, B, C, Ac, Bc, Cc
    They may be renamed, if desired.
    E = (A&(B|Cc))|(Ac&B&C);
    F = (A&((B&C)|Cc))|(Ac&B);
    disp([E;F])
         0     0     0     1     1     0     1     1   % E subset of F
         0     0     1     1     1     0     1     1
    G = A|(Ac&B&C);
    H = (A&B)|(B&C)|(A&C)|(A&Bc&Cc);
    disp([G;H])
         0     0     0     1     1     1     1     1    % G = H
         0     0     0     1     1     1     1     1
    

    Minterms for the events {A,B,C,D}, arranged as on a minterm map are

                         0.0168    0.0072    0.0252    0.0108
                         0.0392    0.0168    0.0588    0.0252
                         0.0672    0.0288    0.1008    0.0432
                         0.1568    0.0672    0.2352    0.1008
    

    What is the probability that three or more of the events occur on a trial? Of exactly two? Of two or fewer?

    We use mintable(4) and determine positions with correct number(s) of ones (number of occurrences). An alternate is to use minvec4 and express the Boolean combinations which give the correct number(s) of ones.

    npr02_04
    Minterm probabilities are in pm.  Use mintable(4)
    a = mintable(4);
    s = sum(a);         % Number of ones in each minterm position
    P1 = (s>=3)*pm'   % Select and add minterm probabilities
    P1 =  0.4716
    P2 = (s==2)*pm'
    P2 =  0.3728
    P3 = (s<=2)*pm'
    P3 =  0.5284
    

    Minterms for the events {A,B,C,D,E}, arranged as on a minterm map are

           0.0216  0.0324  0.0216  0.0324  0.0144  0.0216  0.0144  0.0216
           0.0144  0.0216  0.0144  0.0216  0.0096  0.0144  0.0096  0.0144
           0.0504  0.0756  0.0504  0.0756  0.0336  0.0504  0.0336  0.0504
           0.0336  0.0504  0.0336  0.0504  0.0224  0.0336  0.0224  0.0336
    

    What is the probability that three or more of the events occur on a trial? Of exactly four? Of three or fewer? Of either two or four?

    We use mintable(5) and determine positions with correct number(s) of ones (number of occurrences).

    npr02_05
    Minterm probabilities are in pm.  Use mintable(5)
    a = mintable(5);
    s = sum(a);         % Number of ones in each minterm position
    P1 = (s>=3)*pm'   % Select and add minterm probabilities
    P1 =  0.5380
    P2 = (s==4)*pm'
    P2 =  0.1712
    P3 = (s<=3)*pm'
    P3 =  0.7952
    P4 = ((s==2)|(s==4))*pm'
    P4 =  0.4784
    

    Suppose _autogen-svg2png-0013.png

    _autogen-svg2png-0014.png. Determine _autogen-svg2png-0015.png.

    Then determine _autogen-svg2png-0016.png and _autogen-svg2png-0017.png, if possible.

    % file npr02_06.m       % Data file
    % Data for Exercise 6.
    minvec3
    DV = [A|Ac; A|(Bc&C); A&C; Ac&B; Ac&Cc; B&Cc];
    DP = [1      0.65     0.20 0.25  0.25   0.30];
    TV = [((A&Cc)|(Ac&C))&Bc; ((A&Bc)|Ac)&Cc; Ac&(B|Cc)];
    disp('Call for mincalc')
    npr02_06             % Call for data
    Variables are A, B, C, Ac, Bc, Cc
    They may be renamed, if desired.
    Call for mincalc
    mincalc
    Data vectors are linearly independent
     
     Computable target probabilities
        1.0000    0.3000     % The first and third target probability
        3.0000    0.3500     % is calculated. Check with minterm map.
    The number of minterms is 8
    The number of available minterms is 4
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    

    Suppose _autogen-svg2png-0018.png_autogen-svg2png-0019.png and _autogen-svg2png-0020.png. Determine _autogen-svg2png-0021.png, _autogen-svg2png-0022.png, and _autogen-svg2png-0023.png, if possible.

    % file npr02_07.m
    % Data for Exercise 7.
    minvec3
    DV = [A|Ac; ((A&Bc)|(Ac&B))&C; A&B; Ac&Cc;  A;  C; A&Bc&Cc];
    DP = [ 1        0.4            0.2   0.3   0.6 0.5   0.1];
    TV = [(Ac&Cc)|(A&C); ((A&Bc)|Ac)&Cc; Ac&(B|Cc)];
    disp('Call for mincalc')
    npr02_07             % Call for data
    Variables are A, B, C, Ac, Bc, Cc
    They may be renamed, if desired.
    Call for mincalc
    mincalc
    Data vectors are linearly independent
     Computable target probabilities
        1.0000    0.7000    % All target probabilities calculable
        2.0000    0.4000    % even though not all minterms are available
        3.0000    0.4000
    The number of minterms is 8
    The number of available minterms is 6
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    

    Suppose _autogen-svg2png-0024.png

    and _autogen-svg2png-0025.png.

    Determine P((AB) Cc), _autogen-svg2png-0027.png, and _autogen-svg2png-0028.png, if possible.

    % file npr02_08.m
    % Data for Exercise 8.
    minvec3
    DV = [A|Ac; A;  C;  A&C; Ac&B; Ac&Bc&Cc];
    DP = [ 1   0.6 0.4  0.3  0.2     0.1];
    TV = [(A|B)&Cc; (A&Cc)|(Ac&C); (A&Cc)|(Ac&B)];
    disp('Call for mincalc')
     
     
    npr02_08             % Call for data
    Variables are A, B, C, Ac, Bc, Cc
    They may be renamed, if desired.
    Call for mincalc
    mincalc
    Data vectors are linearly independent
     Computable target probabilities
        1.0000    0.5000    % All target probabilities calculable
        2.0000    0.4000    % even though not all minterms are available
        3.0000    0.5000
    The number of minterms is 8
    The number of available minterms is 4
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    

    Suppose _autogen-svg2png-0029.png.

    Determine _autogen-svg2png-0030.png and P(ABACBC).

    Then repeat with additional data _autogen-svg2png-0032.png and _autogen-svg2png-0033.png.

    % file npr02_09.m
    % Data for Exercise 9.
    minvec3
    DV = [A|Ac;  A; A&B; A&C; A&B&Cc];
    DP = [ 1    0.5 0.3  0.3   0.1];
    TV = [A&(~(B&Cc)); (A&B)|(A&C)|(B&C)];
    disp('Call for mincalc')
     
    % Modification for part 2
    % DV = [DV; Ac&Bc&Cc; Ac&B&C];
    % DP = [DP 0.1 0.05];
    npr02_09             % Call for data
    Variables are A, B, C, Ac, Bc, Cc
    They may be renamed, if desired.
    Call for mincalc
    mincalc
    Data vectors are linearly independent
     Computable target probabilities
        1.0000    0.4000    % Only the first target probability calculable
    The number of minterms is 8
    The number of available minterms is 4
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    DV = [DV; Ac&Bc&Cc; Ac&B&C];  % Modification of data
    DP = [DP 0.1 0.05];
    mincalc
    Data vectors are linearly independent
     Computable target probabilities
        1.0000    0.4000             % Both target probabilities calculable
        2.0000    0.4500             % even though not all minterms are available
    The number of minterms is 8
    The number of available minterms is 6
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    

    Given: _autogen-svg2png-0034.png, and _autogen-svg2png-0035.png.

    Determine _autogen-svg2png-0036.png.

    % file npr02_10.m
    % Data for Exercise 10.
    minvec4
    DV = [A|Ac;  A;  Ac&Bc; A&Cc; A&C&Dc];
    DP = [1     0.6  0.2    0.4    0.1];
    TV = [(Ac&B)|(A&(Cc|D))];
    disp('Call for mincalc')
    npr02_10
    Variables are A, B, C, D, Ac, Bc, Cc, Dc
    They may be renamed, if desired.
    Call for mincalc
    mincalc
    Data vectors are linearly independent
     Computable target probabilities
        1.0000    0.7000             % Checks with minterm map solution
    The number of minterms is 16
    The number of available minterms is 0
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    

    A survey of a represenative group of students yields the following information:

    • 52 percent are male

    • 85 percent live on campus

    • 78 percent are male or are active in intramural sports (or both)

    • 30 percent live on campus but are not active in sports

    • 32 percent are male, live on campus, and are active in sports

    • 8 percent are male and live off campus

    • 17 percent are male students inactive in sports

    1. What is the probability that a randomly chosen student is male and lives on campus?

    2. What is the probability of a male, on campus student who is not active in sports?

    3. What is the probability of a female student active in sports?

    % file npr02_11.m
    % Data for Exercise 11.
    % A = male;  B = on campus;  C = active in sports
    minvec3
    DV = [A|Ac;  A;   B;  A|C; B&Cc; A&B&C; A&Bc; A&Cc];
    DP = [ 1    0.52 0.85 0.78 0.30  0.32   0.08 0.17];
    TV = [A&B; A&B&Cc; Ac&C];
    disp('Call for mincalc')
     
    npr02_11
    Variables are A, B, C, Ac, Bc, Cc
    They may be renamed, if desired.
    Call for mincalc
    mincalc
    Data vectors are linearly independent
     Computable target probabilities
        1.0000    0.4400
        2.0000    0.1200
        3.0000    0.2600
    The number of minterms is 8
    The number of available minterms is 8
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    

    A survey of 100 persons of voting age reveals that 60 are male, 30 of whom do not identify with a political party; 50 are members of a political party; 20 nonmembers of a party voted in the last election, 10 of whom are female. How many nonmembers of a political party did not vote? Suggestion Express the numbers as a fraction, and treat as probabilities.

    % file npr02_12.m
    % Data for Exercise 12.
    % A = male;  B = party member; C = voted last election
    minvec3
    DV = [A|Ac;  A;  A&Bc;  B;  Bc&C; Ac&Bc&C];
    DP = [  1   0.60 0.30  0.50 0.20  0.10];
    TV = [Bc&Cc];
    disp('Call for mincalc')
    npr02_12
    Variables are A, B, C, Ac, Bc, Cc
    They may be renamed, if desired.
    Call for mincalc
    mincalc
    Data vectors are linearly independent
     Computable target probabilities
        1.0000    0.3000
    The number of minterms is 8
    The number of available minterms is 4
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    

    During a period of unsettled weather, let A be the event of rain in Austin, B be the event of rain in Houston, and C be the event of rain in San Antonio. Suppose:

    (2.30)
    _autogen-svg2png-0037.png
    (2.31)
    _autogen-svg2png-0038.png
    1. What is the probability of rain in all three cities?

    2. What is the probability of rain in exactly two of the three cities?

    3. What is the probability of rain in exactly one of the cities?

    % file npr02_13.m
    % Data for Exercise 13.
    % A = rain in Austin;  B = rain in Houston;
    % C = rain in San Antonio
    minvec3
    DV = [A|Ac; A&B; A&Bc; A&C; (A&Bc)|(Ac&B); B&C; Bc&C; Ac&Bc&Cc];
    DP = [  1   0.35 0.15  0.20    0.45        0.30 0.05   0.15];
    TV = [A&B&C; (A&B&Cc)|(A&Bc&C)|(Ac&B&C); (A&Bc&Cc)|(Ac&B&Cc)|(Ac&Bc&C)];
    disp('Call for mincalc')
    npr02_13
    Variables are A, B, C, Ac, Bc, Cc
    They may be renamed, if desired.
    Call for mincalc
    mincalc
    Data vectors are linearly independent
     Computable target probabilities
        1.0000    0.2000
        2.0000    0.2500
        3.0000    0.4000
    The number of minterms is 8
    The number of available minterms is 8
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    

    One hundred students are questioned about their course of study and plans for graduate study. Let A= the event the student is male; B= the event the student is studying engineering; C= the event the student plans at least one year of foreign language; D= the event the student is planning graduate study (including professional school). The results of the survey are:

    There are 55 men students; 23 engineering students, 10 of whom are women; 75 students will take foreign language classes, including all of the women; 26 men and 19 women plan graduate study; 13 male engineering students and 8 women engineering students plan graduate study; 20 engineering students will take a foreign language and plan graduate study; 5 non engineering students plan graduate study but no foreign language courses; 11 non engineering, women students plan foreign language study and graduate study.

    1. What is the probability of selecting a student who plans foreign language classes and graduate study?

    2. What is the probability of selecting a women engineer who does not plan graduate study?

    3. What is the probability of selecting a male student who either studies a foreign language but does not intend graduate study or will not study a foreign language but plans graduate study?

    % file npr02_14.m
    % Data for Exercise 14.
    % A = male;  B = engineering;
    % C = foreign language; D = graduate study
    minvec4
    DV = [A|Ac; A; B; Ac&B; C; Ac&C; A&D; Ac&D; A&B&D; ...
          Ac&B&D; B&C&D; Bc&Cc&D; Ac&Bc&C&D];
    DP = [1 0.55 0.23 0.10 0.75 0.45 0.26 0.19 0.13 0.08 0.20 0.05 0.11];
    TV = [C&D; Ac&Dc; A&((C&Dc)|(Cc&D))];
    disp('Call for mincalc')
    npr02_14
    Variables are A, B, C, D, Ac, Bc, Cc, Dc
    They may be renamed, if desired.
    Call for mincalc
    mincalc
    Data vectors are linearly independent
     Computable target probabilities
        1.0000    0.3900
        2.0000    0.2600          % Third target probability not calculable
    The number of minterms is 16
    The number of available minterms is 4
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    

    A survey of 100 students shows that: 60 are men students; 55 students live on campus, 25 of whom are women; 40 read the student newspaper regularly, 25 of whom are women; 70 consider themselves reasonably active in student affairs—50 of these live on campus; 35 of the reasonably active students read the newspaper regularly; All women who live on campus and 5 who live off campus consider themselves to be active; 10 of the on-campus women readers consider themselves active, as do 5 of the off campus women; 5 men are active, off-campus, non readers of the newspaper.

    1. How many active men are either not readers or off campus?

    2. How many inactive men are not regular readers?

    % file npr02_15.m
    % Data for Exercise 15.
    % A = men; B = on campus; C = readers; D = active
    minvec4
    DV = [A|Ac; A;  B;  Ac&B;  C;  Ac&C;  D;  B&D; C&D; ...
         Ac&B&D; Ac&Bc&D; Ac&B&C&D; Ac&Bc&C&D; A&Bc&Cc&D];
    DP = [1  0.6 0.55 0.25 0.40 0.25 0.70 0.50 0.35 0.25 0.05 0.10 0.05 0.05];
    TV = [A&D&(Cc|Bc); A&Dc&Cc];
    disp('Call for mincalc')
    npr02_15
    Variables are A, B, C, D, Ac, Bc, Cc, Dc
    They may be renamed, if desired.
    Call for mincalc
    mincalc
    Data vectors are linearly independent
     Computable target probabilities
        1.0000    0.3000
        2.0000    0.2500
    The number of minterms is 16
    The number of available minterms is 8
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    

    A television station runs a telephone survey to determine how many persons in its primary viewing area have watched three recent special programs, which we call a, b, and c. Of the 1000 persons surveyed, the results are:

    221 have seen at least a; 209 have seen at least b; 112 have seen at least c; 197 have seen at least two of the programs; 45 have seen all three; 62 have seen at least a and c; the number having seen at least a and b is twice as large as the number who have seen at least b and c.

    • (a) How many have seen at least one special?

    • (b) How many have seen only one special program?

    % file npr02_16.m
    % Data for Exercise 16.
    minvec3
    DV = [A|Ac; A;    B;    C; (A&B)|(A&C)|(B&C); A&B&C; A&C; (A&B)-2*(B&C)];
    DP = [ 1  0.221 0.209 0.112   0.197           0.045  0.062      0];
    TV = [A|B|C; (A&Bc&Cc)|(Ac&B&Cc)|(Ac&Bc&C)];
    npr02_16
    Variables are A, B, C, Ac, Bc, Cc
    They may be renamed, if desired.
    Call for mincalc
    mincalc
    Data vectors are linearly independent
     Computable target probabilities
        1.0000    0.3000
        2.0000    0.1030
    The number of minterms is 8
    The number of available minterms is 8
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    

    An automobile safety inspection station found that in 1000 cars tested:

    • 100 needed wheel alignment, brake repair, and headlight adjustment

    • 325 needed at least two of these three items

    • 125 needed headlight and brake work

    • 550 needed at wheel alignment

    1. How many needed only wheel alignment?

    2. How many who do not need wheel alignment need one or none of the other items?

    % file npr02_17.m
    % Data for Exercise 17.
    % A = alignment;  B = brake work;  C = headlight
    minvec3
    DV = [A|Ac; A&B&C; (A&B)|(A&C)|(B&C); B&C;    A  ];
    DP = [ 1    0.100      0.325          0.125 0.550];
    TV = [A&Bc&Cc; Ac&(~(B&C))];
    disp('Call for mincalc')
    npr02_17
    Variables are A, B, C, Ac, Bc, Cc
    They may be renamed, if desired.
    Call for mincalc
    mincalc
    Data vectors are linearly independent
     Computable target probabilities
        1.0000    0.2500
        2.0000    0.4250
    The number of minterms is 8
    The number of available minterms is 3
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    

    Suppose _autogen-svg2png-0043.png.

    Determine P(BC), _autogen-svg2png-0045.png, and _autogen-svg2png-0046.png, if possible.

    Repeat the problem with the additional data _autogen-svg2png-0047.png and _autogen-svg2png-0048.png.

    % file npr02_18.m
    % Date for Exercise 18.
    minvec3
    DV = [A|Ac; A&(B|C); Ac; Ac&Bc&Cc];
    DP = [ 1     0.3     0.6    0.1];
    TV = [B|C; (((A&B)|(Ac&Bc))&Cc)|(A&C); Ac&(B|Cc)];
    disp('Call for mincalc')
    % Modification
    % DV = [DV; Ac&B&C; Ac&B];
    % DP = [DP   0.2     0.3];
    npr02_18
    Variables are A, B, C, Ac, Bc, Cc
    They may be renamed, if desired.
    Call for mincalc
    mincalc
    Data vectors are linearly independent
     Computable target probabilities
        1.0000    0.8000
        2.0000    0.4000
    The number of minterms is 8
    The number of available minterms is 2
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    DV = [DV; Ac&B&C; Ac&B];      % Modified data
    DP = [DP   0.2     0.3];
    mincalc                       % New calculation
    Data vectors are linearly independent
     Computable target probabilities
        1.0000    0.8000
        2.0000    0.4000
        3.0000    0.4000
    The number of minterms is 8
    The number of available minterms is 5
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    

    A computer store sells computers, monitors, printers. A customer enters the store. Let A, B, C be the respective events the customer buys a computer, a monitor, a printer. Assume the following probabilities:

    • _autogen-svg2png-0049.png The probability P(AB) of buying both a computer and a monitor is 0.49.

    • _autogen-svg2png-0051.png The probability _autogen-svg2png-0052.png of buying both a computer and a monitor but not a printer is 0.17.

    • _autogen-svg2png-0053.png The probability P(AC) of buying both a computer and a printer is 0.45.

    • _autogen-svg2png-0055.png The probability P(BC) of buying both a monitor and a printer is 0.39

    • _autogen-svg2png-0057.png The probability _autogen-svg2png-0058.png of buying a computer or a printer, but not both is 0.50.

    • _autogen-svg2png-0059.png The probability _autogen-svg2png-0060.png of buying a computer or a monitor, but not both is 0.43.

    • _autogen-svg2png-0061.png The probability _autogen-svg2png-0062.png of buying a monitor or a printer, but not both is 0.43.

    1. What is the probability P(A), P(B), or P(C) of buying each?

    2. What is the probability of buying exactly two of the three items?

    3. What is the probability of buying at least two?

    4. What is the probability of buying all three?

    % file npr02_19.m
    % Data for Exercise 19.
    % A = computer;  B = monitor;  C = printer
    minvec3
    DV = [A|Ac; A&B; A&B&Cc; A&C; B&C; (A&Cc)|(Ac&C); ...
              (A&Bc)|(Ac&B); (B&Cc)|(Bc&C)];
    DP = [1 0.49 0.17 0.45 0.39 0.50 0.43 0.43];
    TV = [A; B; C; (A&B&Cc)|(A&Bc&C)|(Ac&B&C); (A&B)|(A&C)|(B&C); A&B&C];
    disp('Call for mincalc')
    npr02_19
    Variables are A, B, C, Ac, Bc, Cc
    They may be renamed, if desired.
    Call for mincalc
    mincalc
    Data vectors are linearly independent
     Computable target probabilities
        1.0000    0.8000
        2.0000    0.6100
        3.0000    0.6000
        4.0000    0.3700
        5.0000    0.6900
        6.0000    0.3200
    The number of minterms is 8
    The number of available minterms is 8
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    

    Data are P(A)=0.232, P(B)=0.228, P(ABC)=0.045, P(AC)=0.062,

    P(ABACBC)=0.197 and P(BC)=2P(AC).

    Determine P(ABC) and _autogen-svg2png-0073.png, if possible.

    Repeat, with the additional data P(C)=0.230.

    % file npr02_20.m
    % Data for Exercise 20.
    minvec3
    DV = [A|Ac; A;     B;  A&B&C; A&C; (A&B)|(A&C)|(B&C); B&C - 2*(A&C)];
    DP = [  1  0.232 0.228 0.045 0.062      0.197            0];
    TV = [A|B|C; Ac&Bc&Cc];
    disp('Call for mincalc')
    % Modification
    % DV = [DV; C];
    % DP = [DP  0.230 ];
     
    npr02_20
    Variables are A, B, C, Ac, Bc, Cc
    They may be renamed, if desired.
    mincalc
    Data vectors are linearly independent
    Data probabilities are INCONSISTENT
    The number of minterms is 8
    The number of available minterms is 6
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    disp(PMA)
        2.0000    0.0480
        3.0000   -0.0450    % Negative minterm probabilities indicate
        4.0000   -0.0100    % inconsistency of data
        5.0000    0.0170
        6.0000    0.1800
        7.0000    0.0450
    DV = [DV; C];
    DP = [DP 0.230];
    mincalc
    Data vectors are linearly independent
    Data probabilities are INCONSISTENT
    The number of minterms is 8
    The number of available minterms is 8
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    

    Data are: _autogen-svg2png-0075.png

    _autogen-svg2png-0076.png. Determine available minterm probabilities and the following,

    if computable:

    (2.32)
    _autogen-svg2png-0077.png

    With only six items of data (including _autogen-svg2png-0078.png), not all minterms are available. Try the additional data _autogen-svg2png-0079.png and _autogen-svg2png-0080.png. Are these consistent and linearly independent? Are all minterm probabilities available?

    % file npr02_21.m
    % Data for Exercise 21.
    minvec3
    DV = [A|Ac; A;  A&B; A&B&C;  C;  Ac&Cc];
    DP = [ 1   0.4  0.3  0.25   0.65  0.3 ];
    TV = [(A&Cc)|(Ac&C); Ac&Bc; A|B; A&Bc];
    disp('Call for mincalc')
    % Modification
    % DV = [DV; Ac&B&Cc; Ac&Bc];
    % DP = [DP   0.1      0.3 ];
    
    npr02_21
    Variables are A, B, C, Ac, Bc, Cc
    They may be renamed, if desired.
    Call for mincalc
    mincalc
    Data vectors are linearly independent
     Computable target probabilities
        1.0000    0.3500
        4.0000    0.1000
    The number of minterms is 8
    The number of available minterms is 4
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    DV = [DV; Ac&B&Cc; Ac&Bc];
    DP = [DP   0.1      0.3 ];
    mincalc
    Data vectors are linearly independent
     Computable target probabilities
        1.0000    0.3500
        2.0000    0.3000
        3.0000    0.7000
        4.0000    0.1000
    The number of minterms is 8
    The number of available minterms is 8
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    

    Repeat Exercise 21. with P(AB) changed from 0.3 to 0.5. What is the result? Explain the reason for this result.

    % file npr02_22.m
    % Data for Exercise 22.
    minvec3
    DV = [A|Ac; A;  A&B; A&B&C;  C;  Ac&Cc];
    DP = [ 1   0.4  0.5  0.25   0.65  0.3 ];
    TV = [(A&Cc)|(Ac&C); Ac&Bc; A|B; A&Bc];
    disp('Call for mincalc')
    % Modification
    % DV = [DV; Ac&B&Cc; Ac&Bc];
    % DP = [DP   0.1      0.3 ];
    
    npr02_22
    Variables are A, B, C, Ac, Bc, Cc
    They may be renamed, if desired.
    Call for mincalc
    mincalc
    Data vectors are linearly independent
    Data probabilities are INCONSISTENT
    The number of minterms is 8
    The number of available minterms is 4
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    disp(PMA)
        4.0000   -0.2000
        5.0000    0.1000
        6.0000    0.2500
        7.0000    0.2500
    DV = [DV; Ac&B&Cc; Ac&Bc];
    DP = [DP   0.1      0.3 ];
    mincalc
    Data vectors are linearly independent
    Data probabilities are INCONSISTENT
    The number of minterms is 8
    The number of available minterms is 8
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    disp(PMA)
             0    0.2000
        1.0000    0.1000
        2.0000    0.1000
        3.0000    0.2000
        4.0000   -0.2000
        5.0000    0.1000
        6.0000    0.2500
        7.0000    0.2500
    

    Repeat Exercise 21. with the original data probability matrix, but with AB replaced by AC in the data vector matrix. What is the result? Does mincalc work in this case? Check results on a minterm map.

    % file npr02_23.m
    % Data for Exercise 23.
    minvec3
    DV = [A|Ac; A;  A&C; A&B&C;  C;  Ac&Cc];
    DP = [ 1   0.4  0.3  0.25   0.65  0.3 ];
    TV = [(A&Cc)|(Ac&C); Ac&Bc; A|B; A&Bc];
    disp('Call for mincalc')
    % Modification
    % DV = [DV; Ac&B&Cc; Ac&Bc];
    % DP = [DP   0.1      0.3 ];
    npr02_23
    Variables are A, B, C, Ac, Bc, Cc
    They may be renamed, if desired.
    Call for mincalc
    mincalc
    Data vectors are NOT linearly independent
    Warning: Rank deficient, rank = 5  tol =    5.0243e-15
     Computable target probabilities
        1.0000    0.4500
    The number of minterms is 8
    The number of available minterms is 2
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    DV = [DV; Ac&B&Cc; Ac&Bc];
    DP = [DP   0.1      0.3 ];
    mincalc
    Data vectors are NOT linearly independent
    Warning: Matrix is singular to working precision.
     Computable target probabilities
         1   Inf             % Note that p(4) and p(7) are given in data
         2   Inf
         3   Inf
    The number of minterms is 8
    The number of available minterms is 6
    Available minterm probabilities are in vector pma
    To view available minterm probabilities, call for PMA
    
    Solutions