R. Proposition P supports the truth of proposition R; in the lack of other knowledge,

the necessity of R is the truth value of P. On the other hand, proposition Q refutes R;

the possibility of R is (NOT Q).

Since this book is concerned with constructing programs to return answers to real-

world problems, we will be concerned primarily with necessity; we will want to reach

conclusions that are supported by data, not conclusions that might possibly be true.

The truth value of complex propositions is obtained by combining the truth values

of the elemental propositions, which enter into the complex proposition. The most

common operators (called connectives) are NOT, AND (A AND B is true if both A

and B are true) and OR (A OR B is true if either A or B or both are true.)

In this chapter, we will be concerned with truth-functional operators. An operator is

called truth-functional if the truth value of the resulting proposition is determined

solely by the truth values of its operands. That is, the truth value of (say) A AND

B is determined only by the truth values of A and B, and no other information is

required. Negation, written NOT P, is the simplest example of a truth-functional oper-

ator; the truth value of NOT P depends only on the truth value of P, and not on any-

thing else. (For classical logic, this seems obvious; for fuzzy logic, it is not so obvious,

as we shall see later in Chapter 4, Section 4.2.2.) We will use throughout this book

tv(NOT P) ¼ 1 2 tv(P). The two other most common truth-functional operators,

also called connectives, are AND and OR. (As we shall see later, these operators

are not necessarily truth-functional, although this is seldom admitted!) A set of

truth-functional operators that can generate all the others is called a primitive set of

operators. It is well known in propositional calculus that all the other truth-functional

operators can be constructed from either the NOT and AND or the NOT and OR oper-

ators. Computer scientists, electrical engineers, and logicians use different sets

of primitive connectives. The NAND operator is de¬ned as A NAND B ¼ NOT

(A AND B), and from the NAND operator alone all other logical operators may be

constructed; electronic engineers, often take NAND as a primitive, since it is easily

implemented in circuitry. Logicians sometimes take the implication operator (A

IMPLIES B, de¬ned below), as a member of the primitive set; all other logical oper-

ators can be de¬ned from the NOT and IMPLIES operators. Most computer languages

furnish AND, OR, and NOT as basic operators. Since our interest is in expert systems

implemented in a computer language, we will take AND, OR, and NOT as basic.

3.1.1 Evaluating A AND B and A OR B

The evaluation of tv(P AND Q) and tv(P OR Q), given truth values for P and Q, is

shown in Table 3.1, a presentation known as a truth table.

TEAM LinG - Live, Informative, Non-cost and Genuine !

31

3.1 CLASSICAL LOGIC

TABLE 3.1 Truth Table for AND and OR Logical Operators

P Q P AND Q P OR Q

0 0 0 0

0 1 0 1

1 0 0 1

1 1 1 1

There are many formulas that can be written to compute algebraically the truth of P

AND Q and P OR Q from the truth values for P and Q, all of which will give the

same answers as listed in Table 3.1 for classical (crisp) truth values of 0 or 1. (In

fuzzy logic, these formulas may give different answers!) Here, we list only three

of these formulas for P AND Q, all equivalent for classical (but not for fuzzy)

logic. In this and succeeding chapters, we may use the symbol tv(A) to indicate

the truth value of A, or may simply use A to denote both a proposition and its

truth value. For all fuzzy logic operators,

NOT P = 1“P

P AND Q:

Zadeh operator:

P AND Q ¼ min(P, Q) (3:1)

Probabilistic operator, assuming independence:

P AND Q ¼ P Ã Q (3:2)

Bounded difference operator:

P AND Q ¼ max(0, P þ Q À 1) (3:3)

Just as there are many formulas for computing P AND Q, there are also many ways

of computing P OR Q, which will all give the same result as in Table 3.1 for classical

logic, but that are not equivalent for fuzzy logic. We list three of these in (3.4) “ (3.6):

P OR Q:

Zadeh operator:

P OR Q ¼ max(P, Q) (3:4)

Probabilistic operator, assuming independence:

P OR Q ¼ P þ Q À P Ã Q (3:5)

Bounded sum operator:

P OR Q ¼ min(1, P þ Q) (3:6)

TEAM LinG - Live, Informative, Non-cost and Genuine !

32 FUZZY LOGIC, FUZZY SETS, AND FUZZY NUMBERS: I

Each formula for P AND Q has a corresponding formula for P OR Q, called a dual

operator. In the above, (3.1) and (3.4) are a dual pair, as are (3.2) and (3.5), and also

(3.3) and (3.6). If the NOT and AND operators are chosen as primitives, we can

derive the OR operator as P OR Q ¼ NOT(NOT P AND NOT Q); if the NOT

and OR operators are taken as primitive, we can derive the AND operator from

De Morgan™s theorems, given in (3.7) and (3.8):

P AND Q ¼ NOT(NOT P OR NOT Q) (3:7)

or, conversely,

P OR Q ¼ NOT(NOTP AND NOTQ) (3:8)

In this way, the formula (3.4) can be derived from (3.1); formula (3.5) can be

derived from (3.2); and formula (3.6) can be derived from (3.3). Dual operators

satisfy these relationships.

Actually, (3.1) and (3.3), (3.4), and (3.6) represent extremes in the range of fuzzy

operators that can be derived from probability theory, and there are similar operator

pairs for special purposes that go even beyond these extremes. The problem we now

face is”which operator pair do we choose as a default?

Fortunately, there are two approaches to this choice, both of which agree.

First, there are many years of experience by many workers in the ¬eld who have

chosen the Zadeh operators (3.1) and (3.4) with great success.

Next, there is a theoretical basis. Truth values may be derived from probability

theory as the averages of expert binary true “ false judgments (Klir and Yuan,

1995, p. 283). If the experts judge two rather than one event, it is likely that their

judgments would be strongly positively associated; under this condition, the

Zadeh operators are the correct theoretical choice. Of course, under other conditions

other operators might be better (Buckley and Siler, 1999).

Exercise AndOrNot”Check on Logic Formulas for AND, OR, and NOT. In this

exercise you will calculate NOT A, A AND B, and A OR B from the above for-

mulas. To run the exercise, invoke TFLOPS, load program AndOrNot.fps, and

run it as you did the programs in Chapter 2 exercises. AndOrNot.fps will ask you

to enter truth values a and b, and will then calculate NOT A, and then calculate

A AND B and A OR B by all three sets of formulas above; min-max logic, probabil-

istic logic and bounded sum/difference logic. To quit the program, enter a negative

truth value for b.

We suggest that you ¬rst check that for crisp (not fuzzy) logic (truth values 0 or 1),

all three logics give the same answers. Then try truth values between zero and one,

anticipating fuzzy logic, and see what answers the three logics give. Rule r0 in

AndOrNot.fps uses a truth value test. The antecedent (in Data a.cf ¼ 0) checks

that the truth value of a in data element Data is zero. This is the case if no value

is currently assigned to attribute a. (Note that truth values of attributes are also

attributes.)

TEAM LinG - Live, Informative, Non-cost and Genuine !

33

3.1 CLASSICAL LOGIC

In rule r2, AndOrNot.fps adds modi¬cation of a data element and FLOPS™

calculator to the available tools. Consider the consequent command