* Abstract

Fuzzy Logic is a framework particularly useful to formalise and deal with imprecise concepts and statements expressed in natural language. This paper has three related aims. First, it aims to provide a short introduction to the basics of Fuzzy Logic within the context of social simulation. Secondly, it presents a well-documented NetLogo extension that facilitates the use of Fuzzy Logic within NetLogo. Finally, by providing a concrete example, it shows how researchers can use the Fuzzy Logic extension to build agent-based models in which individual agents hold their own fuzzy concepts and use their own fuzzy rules, which may also change over time. We argue that Fuzzy Logic and the tools provided here can be useful in Social Simulation in different ways. For example, they can assist in the process of analysing the robustness of a certain social theory expressed in natural language to different specifications of the imprecise concepts that the theory may contain (such as e.g. "wealthy", "poor" or "disadvantaged"). They can also facilitate the exploration of the effect that heterogeneity in concept interpretations may have in a society (i.e. the significance of the fact that different people may have different interpretations of the same concept). Thus, this paper and the tools included in it can make the endeavour of translating social theories into computer programs easier and also more rigorous.

Keywords:
Fuzzy Logic, NetLogo, Social Simulation, Agent-Based Modelling, Mamdani Inference, IF-THEN Rule

* Introduction

''The main contribution of fuzzy logic is a methodology for computing with words.
No other methodology serves this purpose''
Zadeh (1996, 103)

Motivation

1.1
Imagine someone tells you: "A tall, blonde, middle-aged guy with long hair and casually dressed is waiting for you at the lobby". We believe most people would find this instruction sufficiently precise as to start walking towards the lobby with confidence that they will find the described person. However, it would not be straightforward to implement an artificial agent who behaves in the same confident manner. Even if the agent could perceive the precise height, age, colour and length of hair – and all other relevant features – of all the people in the lobby, the task would not be trivial. The reason is that terms such as "tall", "blonde", "middle-aged" and "long" are imprecise (or vague[1]) in nature.

1.2
Focusing on the word "tall" for concreteness, a possible approach would be to define a numeric threshold x such that a person is considered "tall" if and only if his height is at least x. This approach, which can be suitably applied to the other linguistic terms too, would identify a subset of people satisfying all the conditions in the provided instruction, but what happens if such a subset is empty, or if it contains more than one person? More importantly, do we (human beings) deal with imprecise terms in this way? (i.e. do we really reduce the gradual nature of properties such as tallness to two clearly defined categories such that everyone in one category is definitely "tall" while everyone in the other category is definitely "not tall", leaving nothing in between these extremes?)

1.3
It seems clear that defining hard thresholds for imprecise terms does not capture the essence of how we use and reason with such concepts. Most people are reluctant to state that a person of height x is definitely "tall", but a person 1 mm shorter is definitely "not tall".[2] Concepts such as "tall" are not binary in nature; they are fuzzy. Consequently, most often we do not find it natural to assert that the proposition "Person x is tall" is definitely true or definitely false. Instead, we seem to be more comfortable conceding that such propositions may be true to some extent (i.e. they may have a truth value that lies somewhere in between the two absolute extremes true and false). Allowing for more than two truth values (besides the traditional true and false) takes us into the realm of many-valued logics, of which a particularly relevant instance for Social Simulation is Fuzzy Logic.

1.4
To summarise, it seems that:
  1. Human beings have evolved to feel remarkably comfortable using, communicating and reasoning with imprecise or fuzzy terms whose applicability is a (potentially subjective) matter of degree.
  2. Computers, however, do not readily share our remarkable ability to deal and reason with imprecise concepts.
  3. Fuzzy logic is a type of many-valued logic that is particularly useful to formalise and reason with imprecise concepts. Consequently, many scholars see it as "a step towards formalizing human reasoning" (Freksa 1994, 21).
Thus, we believe Fuzzy Logic and this paper will be of interest to anyone interested in building Social Simulation models that contain artificial agents who can follow rules that include imprecise terms (e.g. "find an inexpensive flat which is close to work"), an ability that seems naturally intrinsic to humankind.

Brief History of Fuzzy Logic

"All traditional logic habitually assumes that precise symbols are being employed.
It is therefore not applicable to this terrestrial life but only to an imagined celestial existence"
Russell (1923, pp. 88–89)

1.5
The scientific quest for an adequate "theory of vagueness" (i.e. a sound theoretical framework suitable to deal with vague or imprecise concepts) dates back at least to the early 20th century (Russell 1923; Black 1937). Since then, the scientific study of vagueness has been approached in different ways in various fields, including philosophy, logic, mathematics, linguistics, computer science, physics and medicine (see a nice historical account by Seising (2008)).

1.6
A major breakthrough was triggered by the publication of Zadeh's (1965) paper on fuzzy sets. Fuzzy sets are an extension of classical (often called "crisp") sets in the sense that, besides full membership and full non-membership, fuzzy sets allow for partial membership. That is, an element may belong to a certain fuzzy set, may not belong, or may belong to some extent. Thus, graded concepts, such as "tall", can be naturally modelled as fuzzy sets, with individual people belonging to the set "tall" to a greater or a lesser degree (which can be interpreted as the truth value of the proposition "Person x is tall").

1.7
Zadeh's (1965) paper led to the emergence of a whole new field called Fuzzy Logic, aimed at developing "a methodological framework which is tolerant of imprecision and partial truths" (Zadeh 1973, 29). Early on, the approach taken by Zadeh to formalise vagueness started to be applied to "fuzzify" many disciplines by virtue of Zadeh's "extension principle" (Zadeh 1975a, 1975b, 1975c). In Zadeh's (1994a) words, "any field X can be fuzzified  and hence generalized – by replacing the concept of a crisp set in X by a fuzzy set." Thus, the theory of fuzzy sets led to the foundation and development of various new fields, such as fuzzy topology (Chang 1968), fuzzy clustering (Bellman et al. 1966; Ruspini 1969), fuzzy control (Zadeh 1972, 1973; Mamdani & Assilian 1975; Mamdani 1974, 1976), fuzzy graphs (Rosenfeld 1975; Yeh & Bang 1975; Mordeson & Nair 2000), fuzzy algebra (Dubois & Prade 1979), fuzzy calculus (Dubois & Prade 1982a, 1982b, 1982c) and fuzzy time series (Song & Chissom 1993a, 1993b, 1994).

1.8
While applications of Fuzzy Set Theory were successfully expanding over different domains (see e.g. Zimmermann 2001), professional logicians started to work on its formal foundations. This important branch of Fuzzy Logic (FL), which is often named "Mathematical Fuzzy Logic" or "Fuzzy Logic in the narrow sense" (Zadeh 1994a, 1994b; Hájek 1998, 2002, 2010; Wang et al. 2007; Novák 2012) traces its roots to Goguen's (1969) work[3], and had its first monograph written by Hájek (1998). The aim of FL in the narrow sense is "to show that fuzzy logic as a logic of imprecise (vague) propositions does have well developed formal foundations and that most things usually named "fuzzy inference" can be naturally understood as logical deduction" (Hájek 1998, preface); and it achieves this aim by providing and developing a "systematic treatment of deductive aspects and structures of fuzzy logic understood as many valued logic" (Hájek 1998, preface).

1.9
Fuzzy Logic in the narrow sense remains an active line of research (Cintula, Hájek & Noguera 2011a, 2011b), albeit it is relatively small when compared with all the work conducted in "Fuzzy Logic in the wider sense" (which is more or less synonymous with the theory of fuzzy sets and its applications – both technical and theoretical (Zadeh 1994a)). Thus, FL in the wider sense is "an extensive agenda whose primary aim is to utilize the apparatus of fuzzy set theory for developing sound concepts, principles and methods for representing and dealing with knowledge expressed by statements in natural language" (Wang et al. 2007, foreword)[4].

1.10
It is also important to recognise FL is not the only approach to formalise and deal with imprecise or vague concepts (see e.g. Keefe (2000), Shapiro (2006) and various different perspectives in Cintula et al. (2011)), but it is a valid and solid logical framework for the purpose (Hájek 1998, 2002), the most advanced and widely used approach and, possibly, the most successful mathematical theory of the vagueness phenomenon to date (Novák 2005).

Aims and Scope

1.11
This paper has three related aims, namely:
  1. To provide a short introduction to the basics of Fuzzy Logic within a Social Simulation context.
  2. To present and disseminate a well-documented NetLogo extension that facilitates the use of Fuzzy Logic within NetLogo (Wilensky 1999).
  3. To illustrate with a concrete example how researchers can use the Fuzzy Logic extension to build agent-based models in which individual agents hold their own fuzzy concepts and use their own fuzzy rules, which may change over time.

1.12
It is important to note that the content of FL included in this paper is very limited. We only present the most fundamental concepts, which are, naturally, covered in the first chapters of any monograph on Fuzzy Set Theory or FL. The interested reader can find more advanced material in excellent textbooks written by Klir & Yuan (1995) and Zimmermann (2001) and in a shorter review by Zimmermann (2010). Political scientists may find Cioffi-Revilla's (1981) presentation especially attractive, as he explains the basic concepts of the theory for purposes of modelling and theory building, and focuses on the context of international relations, presenting several potential applications. Engineering-oriented readers will enjoy instructive textbooks written by Ross (2010) and Driankov et al. (1996).

1.13
Our approach here is more computationally oriented and practical. As such, it should be most attractive to scientists interested in building computer simulation models, especially agent-based models, which may include imprecise terms. To this end, we pay special attention to various practical aspects. In particular, we provide:
  1. A NetLogo extension that facilitates the implementation of models with fuzzy components (Appendix A);
  2. A detailed documentation on how to use it (Appendix B);
  3. A step-by-step tutorial that guides the reader through the whole process of implementing an agent-based model in which individual agents hold their own fuzzy concepts, and follow rules that contain such concepts (Appendix C).

1.14
The rest of the paper explains the basics of FL in a Social Simulation context (section 2), presents an outline of the functions included in the NetLogo extension (section 3) and provides a brief description of the fuzzy agent-based model used in the tutorial (section 4).

* An Introduction to Fuzzy Logic in a Social Simulation Context

"The theory of fuzzy sets is, basically, a theory of graded concepts
–a theory in which everything is a matter of degree"
Zadeh, in Zimmermann's (2001) foreword

Fuzzy sets and membership functions

2.1
Fuzzy sets are generalizations of conventional sets (also called "crisp" sets). A conventional (crisp) set S can be defined by a membership function μS(x) that specifies for each possible element x in a certain universe of discourse X, whether the element belongs to the set S or not. If an element x belongs to S, then the membership function of set S applied to element x equals 1. If an element x does not belong to S, then the membership function of set S applied to element x equals 0. Thus:

\begin{equation} \mu^S(x)=\begin{Bmatrix} 1 & \quad if~x\in S\\ 0 & \quad if~x\notin S\\ \end{Bmatrix} \end{equation}

For instance, the crisp set EvenNumbers contains the elements {2, 4, 6…}, so its membership function equals 1 when applied to each of such numbers (e.g. μEvenNumbers(2) = 1). By contrast, the membership function of the crisp set EvenNumbers equals 0 when applied to numbers such as 1, 3, or 5 (e.g. μEvenNumbers(5) = 0).

2.2
The sharp dichotomy in the concept of "belonging" in conventional sets (i.e. an element belongs to the set or it does not) is relaxed with fuzzy sets, which allow for partial membership. This can be useful to define and reason with imprecise terms, such as "tall" or "young," whose applicability to any particular object is a matter of degree. Thus, a fuzzy set, representing a fuzzy concept such as "tall", can be defined by assigning to each possible element within a certain universe of discourse (e.g. all the people in the world) a value between 0 and 1 that denotes the extent to which that element belongs to the fuzzy set (i.e. the extent to which that particular individual is tall)[5]. The value assigned by the membership function of a fuzzy set F to a particular element x is called the degree of membership of the element x in the fuzzy set F and is denoted μF(x).

2.3
Sometimes one wishes to define a fuzzy set such that the degree of membership of any element x in the set depends solely on one single measurable property of the element x. For instance, one may want to formalise the concept "young person" in a certain context using a fuzzy set whose membership function depends only on the person's age. In those cases, rather than providing the whole mapping μF(x) that assigns a degree of membership to each and every possible element x, one can define the membership function of the fuzzy set as a function of the property, which is sometimes called the base variable.[6] As an example, one could define the fuzzy set representing "young" with a membership function whose argument is a real number[7] a(x) ∈ [0,150] that denotes the age of person x measured in years. Fig. 1 shows one possible function.

Figure 1
Figure 1. Membership function of a fuzzy set created in NetLogo running the code: fuzzy:plot fuzzy:gaussian-set [0 50 [0 150]]

2.4
The fuzzy set "young" shown in Fig. 1 would assign a degree of membership 1 to every person with age 0 years, a degree of membership 0.94 to every person with age 17 years and a degree of membership 0.32 to every person with age 75 years.

2.5
The degree of membership of an element x in a fuzzy set F, i.e. μF(x), can be interpreted as the truth value of the proposition "x belongs to F." That is:

TruthValue(x belongs to F) = μF(x)

If the fuzzy set represents a fuzzy concept such as "young", then μyoung(x) can be interpreted as the truth value of the proposition "x is young" (Zadeh 1973, 1975a; Klir & Yuan 1995, 215–216),[8] implying:

TruthValue (x is young) = μyoung(x)

This interpretation naturally leads to a many-valued logic with a continuum of truth values in the interval [0,1] (Zadeh 1965).[9]

2.6
Importantly, note that FL by no means aims at providing a universal definition of vague concepts (such as "young") which should be valid for everyone in every context. On the contrary, scholars using FL naturally recognise that vague concepts are often used in different ways by different people in different contexts. In this regard, what FL provides is a framework within which people can explicitly formalise their own personal definition of any particular vague concept in a specific context.

Partial truth is not probability

"We are not concerned with the likelihood that a man is short, after many trials;
we are concerned with the shortness of one observation" Goguen (1969, p. 333)

2.7
A common misunderstanding is to confuse partial truth (or graded membership) in FL with probability (or randomness) in probability theory. This point is clarified in many papers (e.g. Zadeh (1965, 339), Zadeh (1975a, 210–211), Zadeh (1975b, 302), Bezdek (1993), Dubois et al. (1994), Dubois & Prade (1997, 2001) or Novák (2005)), but an intuitive illustration may be appropriate here. As already described, fuzzy sets are particularly useful to formalise imprecise terms (e.g. "young") whose fulfilment is a matter of degree. The imprecision is inherent to the term in natural language and has nothing to do with randomness, probability or uncertainty about the occurrence of events. (Henceforth we use the term "uncertainty" to refer to situations where there is something unknown yet to be discovered.) The following example clarifies this issue.

2.8
Imagine someone has a 1-litre bottle filled with 900 ml of water (90% of its capacity) in front of her. There is no uncertainty about the bottle's content or its capacity; indeed, this person is free to conduct as many tests as she deems appropriate to convince herself that the bottle is indeed filled to 90% of its capacity. Looking at the bottle she may be willing to attribute a truth value of 0.9 to the proposition: "The bottle is full". (In other words, she may be willing to state that the bottle belongs to the fuzzy set "full" with degree of membership 0.9.) It is important to realise this assertion would be about what the term "full" means to this person (who naturally considers the term "full" to be a matter of degree to some extent), and would have nothing to do with any uncertainty about reality, as this person has full knowledge of the situation.

2.9
A very different matter would be to assign a probability of 0.9 to the proposition "The bottle is full". The probability assignment implies some uncertainty about the content of the bottle; it means that there is a 90% chance that the bottle is full and a 10% chance that it is not. In particular, the probability assignment presupposes the term "full" is absolutely precise (i.e. the bottle is either full or it is not) and it should be perfectly clear when it is in one state or the other. (A necessary condition to assign meaningful probabilities to events is that we can distinguish them.) Besides assuming the term "full" is perfectly defined in a dichotomic fashion, the probabilistic assignment also implies some ignorance about the state of the bottle and, therefore, it would be inappropriate to hold in our situation of certainty and perfect knowledge.

2.10
The differences between FL and probability theory are not only interpretative; they are also formal. For a start, probability is not compositional (or truth-functional) (i.e. the probability of a compound event (e.g. P(A ⋃ B)) does not generally depend only on the probabilities of the individual events that compose it (P(A ⋃ B) = P(A) + P(B) − P(A ⋂ B))). There can be different forms of dependencies between the events (in our example, the relation of dependence between A and B would affect the value of P(A ⋂ B)). By contrast, we will see in the next section that FL, like classical logic, is indeed truth-functional (i.e. the truth value of a formula only depends on the truth values of its subformulae). For a formal treatment of the differences (and similarities) between probability theory and (one of) fuzzy logics, see Gaines (1978).

Operations with fuzzy sets and logical connectives

"What's crucial to realize is that fuzzy logic is a logic OF fuzziness,
not a logic which is ITSELF fuzzy"
Kantrowitz, Horstkotte & Joslyn (1997)

2.11
In this section we explain the fuzzy set operators Intersection, Union and Complement, which are the ordinary set-theoretic forms of the logical operations AND (or logical conjunction), OR (or logical disjunction) and NOT (or logical negation) respectively.
Fuzzy intersection and logical conjunction (AND)

2.12
The membership function of the intersection A⋂B of two sets A and B is a function of the membership functions of A and B. Formally:

μA⋂B(x) = T(μA(x), μB(x))

In terms of truth values of propositions, and assuming that the fuzzy sets represent fuzzy predicates: [10],[11]

TruthValue(x is A AND x is B) = T(TruthValue(x is A), TruthValue(x is B))

There are many functions T that can be used to compute the intersection of fuzzy sets (see Zimmermann 2010). The usual requirement is that the function must be a Triangular norm (T-norm; Klement et al. 2000). A T-norm is a function T: [0,1] × [0,1] → [0,1] that satisfies the following axioms:

  • Commutativity:              T(a, b) = T(b, a)
  • Associativity:                 T(a, T(b, c)) = T(T(a, b), c)
  • Non-decreasing:             T(a, b) ≤ T(a, c) if b ≤ c
  • Identity element 1:         T(a, 1) = a
These axioms ensure, in particular, the fuzzy intersection is a correct generalization of its crisp counterpart (i.e. T(1, 1) = 1 and T(0, 0) = T(0, 1) = T(1, 0) = 0). They also guarantee that a decrease in the membership value in the fuzzy set A or in the fuzzy set B cannot produce an increase in the membership value in the fuzzy set A⋂B.

2.13
The use of one T-norm or another leads to different fuzzy logics (Hájek 1998). Here we mention the two functions that are most widely used in FL in the broad sense (i.e. the minimum (or Gödel T-norm) and the product). As an example, let us compute the degree to which a certain person x is "Tall AND middle-aged", assuming the assigned truth value to the proposition "x is Tall" is 0.8 and the assigned truth value to the proposition "x is Middle-aged" is 0.4. Using the minimum function as the conjunctive operator, we would obtain:

TruthValue(x is Tall AND x is Middle-aged) =
= min(TruthValue(x is Tall), TruthValue(x is Middle-aged)) = min(0.8, 0.4) = 0.4

By contrast, if we used the product function as conjunctive operator, we would obtain:

TruthValue(x is Tall AND x is Middle-aged) =
= product(TruthValue(x is Tall), TruthValue(x is Middle-aged)) =
= product(0.8, 0.4) = 0.32

2.14
The decision to use one function or another will depend on the context and on the purpose of the modelling exercise. Zimmermann (2010) reviewed several T-norms, some of them dependent on a parameter, and argued "it is very unlikely that a single nonparametric operator can model appropriately the meaning of 'and' or 'or' context independently, that is, for all persons, at any time and in each context" (Zimmermann 2010, 324). Thus, care should be put into selecting the function for the context at hand. Zimmermann (2010) provides some guidance (and further references) on how to do this selection.
Fuzzy union and logical disjunction (inclusive OR)

2.15
The membership function of the union A⋃B of two sets A and B is a function of the membership functions of A and B. Formally:

μA⋃B(x) = S(μA(x), μB(x))

In terms of truth values of propositions:[12]

TruthValue(x is A OR x is B) = S(TruthValue(x is A), TruthValue(x is B))

As with intersection, there are many functions S that can be used to compute the union of fuzzy sets (see Zimmermann 2010). The usual requirement is that the function must be a Triangular co-norm (also called S-norm; Klement et al. 2000). An S-norm is a function S: [0,1] × [0,1] → [0,1] that is commutative, associative, non-decreasing (see previous section) and has 0 as its identity element, i.e. S(a, 0) = a. The selection of an S-norm guarantees, in particular, the fuzzy union is a correct generalization of its crisp counterpart (i.e. S(0, 0) = 0 and S(0, 1) = S(1, 0) = S(1, 1) = 1). In FL, the two most widely used S-norms are the maximum (dual to the minimum T-norm) and the probabilistic sum (dual to the product T-norm; probSum(a,b) = a + b − a·b).

2.16
As an example, let us compute the degree to which the person x in the previous example is "Tall OR middle-aged". Using the maximum function as the disjunctive operator, we would obtain:

TruthValue(x is Tall OR x is Middle-aged) =
= max(TruthValue(x is Tall), TruthValue(x is Middle-aged)) = max(0.8, 0.4) = 0.8

By contrast, if we used the probabilistic sum as disjunctive operator, we would obtain:

TruthValue(x is Tall OR x is Middle-aged) =
= probSum(TruthValue(x is Tall), TruthValue(x is Middle-aged)) =
= probSum(0.8, 0.4) = 0.8 + 0.4 − 0.8·0.4 = 0.88

As with the conjunctive operator AND, the decision to use one S-norm or another for the OR operator will depend on the context and purpose of the modelling exercise.

Fuzzy complement and logical negation (NOT)

2.17
It is clear that the function used to compute the membership function of the complement Ac of a fuzzy set A should be non-increasing and assign 0 to 1 and vice versa. The natural (and most widely used) function is the additive complement:

μAc(x) = 1 − μA(x)      where Ac denotes the complement of set A

In terms of truth values of propositions:

TruthValue(x is NOT A) = 1 − TruthValue(x is A)

Using the numbers in the example above, we would obtain:

TruthValue(x is NOT Tall) = 1 − TruthValue(x is Tall) = 1 − 0.8 = 0.2
TruthValue(x is NOT Middle-aged) = 1 − TruthValue(x is Middle-aged) = 1 − 0.4 = 0.6

The axiom of contradiction and the axiom of excluded middle

2.18
It is important to note that the following two axioms are not postulated in FL (see e.g. Gaines 1978) and, in stark contrast to classical logic, they do not generally hold:

Axiom of contradiction:

In sets:                    A ⋂ Ac = ∅     where ∅ denotes the empty set.
In logical terms:     TruthValue(x is A AND x is NOT A) = 0

Axiom of excluded middle:

In sets:                    A ⋃ Ac = X     where X denotes the universal set.
In logical terms:     TruthValue(x is A OR x is NOT A) = 1

This observation can be illustrated for person x (for whom the truth value of the proposition "x is Tall" is 0.8) using min for the logical AND and max for the logical OR:

TruthValue(x is Tall AND x is NOT Tall) =
= min(TruthValue(x is Tall), TruthValue(x is NOT Tall)) = min(0.8, 1 − 0.8) = 0.2 ≠ 0

Thus, in this example we would assign a truth value of 0.2 to the proposition "x is tall and not tall" (which may not be necessarily undesirable). Similarly,

TruthValue(x is Tall OR x is NOT Tall) =
= max(TruthValue(x is Tall), TruthValue(x is NOT Tall)) = max(0.8, 1 − 0.8) = 0.8 ≠ 1

Linguistic hedges

2.19
Linguistic hedges are terms that complete our natural language. They alter or adjust fuzzy adjectives, allowing for the expression of hues and nuances of meaning that are not possible through the use of adjectives alone (Zadeh 1975a). Examples of hedges are words such as "very", "fairly", "slightly", "roughly" or "extremely", which modify the linguistic term they accompany to express its meaning in finer gradations. Hedges can potentiate (concentrate) the gradable characteristic (e.g., "extremely popular") or dilute it ("fairly large").

2.20
The effect of applying a hedge (e.g. "very") to a fuzzy concept (e.g. "hot") can be modelled by using a function h: [0,1] → [0,1] to modify the membership function of the original fuzzy set. A common family of functions is hα(a) = aα. For example, one could compute the membership function of the fuzzy sets representing "very hot" and "extremely hot" as follows (see Fig. 2):

μvery hot(x) = h2hot(x)) = (μhot(x))2
μextremely hot(x) = h6hot(x)) = (μhot(x))6

Figure 2
Figure 2. Membership function of one set (in green, on the left), its square (in black, in the middle), and the green set powered to the 6th (in red, on the right).

2.21
Note that the use of the modifier hα(a) = aα with exponents α greater than 1 reduces the truth value of the fuzzy predicate to which it is applied, something that may be appropriate for hedges such as "very" and "extremely". By contrast, the use of the modifier hα(a) = aα with exponents α smaller than 1 increases the truth value of the original fuzzy predicate, so it may be appropriate to model hedges such as "slightly" or "fairly".

Systems of fuzzy IF-THEN rules

2.22
In this section we explain the so-called "Interpolation Method" for systems of fuzzy IF-THEN rules (Zadeh 1983, 215–216; Klir & Yuan 1995, section 11.4, 317–12)[13], including fuzzification and defuzzification. A particular instance of this method is the so-called max-min rule (also named the Mamdani inference, Mamdani-Assilian inference or max-min inference), which is often used in fuzzy control (Driankov et al. 1996). Another particular instance is the max-prod inference (also called the scaled inference).
"This method of interpretation of fuzzy IF–THEN rules is very convenient when we need a nice
tool for the approximation of functions but it is less convenient as a model of human reasoning"
Novák (2012, 35)

2.23
Within a Social Simulation context the interpolation method can be useful to define a function by means of a collection of fuzzy rules. The procedure is best understood with an example. Suppose we want to implement an artificial agent who must select a suitable house from several options, and his two main concerns are the price of the house and the distance from the house to the agent's workplace.

2.24
A possible approach would be to implement a function f(p, d) that takes numerical inputs p (for price) and d (for distance from work), and produces a numerical score s (for suitability) as the output, i.e. s = f(p, d). The interpolation method (including fuzzification and defuzzification) is a procedure that allows us to specify such a function f(p, d) using a collection of fuzzy rules of the form "IF Antecedent THEN Consequent" such as:
  • R1: IF (House is Inexpensive OR Close-to-work), THEN Suitability is Good.
  • R2: IF (House is Expensive OR Far-from-work), THEN Suitability is Low.
  • R3: IF (House is Averagely-priced AND About-50-km-from-work), THEN Suitability is Regular.

2.25
Naturally, as part of the process not only will we need to provide the collection of rules, but we will also have to explicitly define the fuzzy concepts contained in the rules (e.g. "Inexpensive" or "Close-to-work") and make a number of assumptions regarding the functions we want to use for the logical AND, for the logical OR and for computing the output of each rule. Depending on our choices of these functions, we will obtain the max-min inference, the max-prod inference, or some other type of inference.

2.26
Fig. 3, which illustrates the max-min inference (or the Mamdani inference), includes a representation of the nine fuzzy sets involved in the definition of the rules (i.e. fuzzy sets "Inexpensive", "Expensive" and "Averagely-priced", with price (p) as base variable; fuzzy sets "Close-to-work", "Far-from-work" and "About-50-km-from-work", with distance (d) as base variable; and fuzzy sets "Good Suitability", "Low Suitability" and "Regular Suitability", with suitability (s) as base variable). Suitability is measured here as a score than ranges from 0 (lowest suitability) to 10 (highest suitability).

Figure 3
Figure 3. Illustration of the max-min inference with defuzzification (centre of gravity). A numerical suitability (6.03845) is computed from numerical inputs price = 50 (in €1,000s) and distance = 35 km.

2.27
The general algorithm has 5 steps:
  1. Fuzzification of inputs (optional)
    Inputs may be crisp values (e.g. price = 50) or fuzzy sets (e.g. price is reasonable). If an input is crisp, it may optionally be fuzzified, i.e. turned into a fuzzy set first (Zadeh 1975a). Fuzzification of crisp values may be appropriate if the inputs are known only approximately or if they come from imprecise measurements or observations.[14] The example represented in Fig. 3 does not include fuzzification.

  2. Computation of degrees of consistency between facts (inputs) and antecedents
    In this step we evaluate the extent to which the antecedent of each IF-THEN rule is satisfied for the given inputs. The degree of consistency rAntecedent(x0) between a crisp value x0 and a fuzzy set Antecedent is simply the degree of membership of x0 in the fuzzy set, i.e. rAntecedent(x0) = μAntecedent(x0). The degree of consistency between two fuzzy sets Input and Antecedent is determined by the height of the intersection of the two sets, i.e. rAntecedent(Input) = height(InputAntecedent).[15]

    As an example, consider the first rule (R1), represented at the top row of Fig. 3, which has as antecedent: "House is Inexpensive OR Close-to-work". The computation for a house with crisp price p = 50 and crisp distance d = 35, using the function Maximum (Max) for the logical OR, would be:

    Max(μInexpensive(p=50), μClose-to-work(d=35)) = Max(0.75, 0.51) = 0.75

    The result of this step is a number for each rule (i.e. the degree of consistency between the inputs and each rule's antecedent).

  3. Reshaping of consequents
    In this step we reshape the original consequent of each rule given the degree of consistency between the inputs and the rule's antecedent. The underlying idea is that the consequent of a rule should be applied to the extent that its antecedent is satisfied. Possible operators for the reshaping method are Truncate (or minimum) and Product (which acts as a scaling operator).[16] As an example, consider again the first rule (R1), represented at the top row of Fig. 3. Assuming that the function Truncate is used as reshaping operator, the membership function of the truncated set would be:

    μTruncated Good suitability(x) = min(μGood suitability(x), 0.75)

    Thus, the result for the first rule would be the fuzzy set Good suitability truncated at level 0.75 (see the grey-filled fuzzy set represented at the top right chart of Fig. 3). Truncate (i.e. min) is the function used in the max-min inference. Another possibility (which is used in the max-prod inference) is to use the Product as reshaping operator. This alternative can be seen in the interactive figure provided in Appendix D. In this case, the membership function of the reshaped consequent of the first rule is:

    μScaled Good suitability(x) = μGood suitability(x) · 0.75

    In any case, the result of the reshaping step is a fuzzy set for each rule.

  4. Aggregation of all the reshaped consequents
    In this step, the reshaped consequents are aggregated to provide one single fuzzy set. Possible operators for the aggregation are e.g. the Maximum, the Probabilistic Sum (ProbabilisticSum(a,b) := a + b − a·b) or the Sum Clipped at 1 (ClippedSum(a,b) := min(1, a + b)). In the example shown in Fig. 3 we used the Maximum. The output of this step is the fuzzy set filled in grey with the label "Aggregated Suitability" at the bottom right chart of Fig. 3.

  5. Defuzzification of the aggregated fuzzy set (optional)
    The defuzzification transforms the aggregated fuzzy set into a single crisp number. Zimmermann (2001, section 11.4.2, 232–239) discussed several defuzzification strategies and analysed their main properties. The five defuzzification methods most commonly used are:
    • Centre of Gravity (COG). This method returns the projection (on the horizontal axis) of the centre of gravity of the area under the membership function.
    • First of Maxima (FOM). This method returns the infimum of the values of the base variable for which the membership function is maximal.
    • Last of Maxima (LOM). This method returns the supremum of the values of the base variable for which the membership function is maximal.
    • Middle of Maxima (MOM). This method returns the average of the FOM and the LOM.
    • Mean of Maxima (MeOM). This method returns the mean of the values for which the membership function is maximal.

2.28
In the example shown in Fig. 3, the COG was used to reduce the aggregated fuzzy set labelled SUITABILITY to the crisp value 6.03845.

2.29
It is clear that the researcher has to make several decisions within this general framework. Specifically, there is a choice of operators for the logical AND, the logical OR, the reshaping method, the aggregation method and the defuzzification method. These decisions lead to different functions f(p, d). The consequences of choosing one or another operator can be seen in the interactive version of Fig. 3, which is provided in Appendix D.

2.30
The max-min (or Mamdani) inference appears when choosing the Minimum for the logical AND, the Maximum for the logical OR, Truncate as the reshaping method and Maximum as the aggregation method. By contrast, the max-prod inference uses the Product function as its reshaping method, so the original consequents of each of the rules are scaled down, rather than truncated. This leads to a different aggregated fuzzy set with a different centre of gravity. It is important to emphasise that the procedure described in this section produces a specific function f(p, d) that takes numerical inputs p (for price) and d (for distance from work), and produces a numerical score s (for suitability) as its output, i.e. s = f(p, d). The particular function corresponding to the max-min inference system with three rules (illustrated in Fig. 3 for particular values price = 50 and distance = 35), is plotted in Fig. 4 for any price and distance, for the sake of clarity.

Figure 4
Figure 4. Numerical score obtained for the suitability of a house as a function of numerical inputs price ∈ [0, 200] and distance ∈ [0, 100] when using the max-min inference (with centre of gravity as defuzzification method) illustrated in Fig. 3.

The interpolation method is not logical deductive inference

"The whole procedure is quite reasonable and gives good results. However, it has to be stressed that it is not a
logical inference, i.e., a procedure aiming at the derivation of new facts from some other known ones using
formal deduction rules. No logical implication is inside and thus, no modus ponens proceeds." Klawonna & Novák (1996, 331)

2.31
The interpolation method described in the previous section was originally conceived to mimic the functioning of human operators in charge of controlling an industrial process (Mamdani & Assilian 1975; Mamdani 1974, 1976, 1977). The aim was to condense the operator's experience into a set of (linguistic) rules that could be used by a machine to automatically control the process. This aspiration of capturing human declarative knowledge is still widespread in the literature, with scholars from different fields posing the interpolation method as a "natural framework to include expert knowledge in the form of linguistic rules" (Cordón et al. 2001, 15) or a tool that somewhat aims at "imitating human judgment in common sense reasoning" (Bojadziev & Bojadziev 2007, 128). However, it is important to emphasise that, while such statements may not be necessarily inexact in their context, the intuitive appeal of the method should not mislead us to believe it follows some kind of logical deductive inference.

2.32
As an illustrative observation, note that conflicting rules may be fired simultaneously. In the previous example, an inexpensive house which is far away from work will have both good suitability (according to rule 1) and low suitability (according to rule 2). In such cases, no inconsistency warnings will be issued, but a sort of average will be silently computed. This may not be necessarily inadequate for certain purposes (see Bojadziev & Bojadziev 2007, chapter 4), but it does indicate the method is best seen as an interpolation technique, rather than as a tool for logical deductive inference. Another important observation in this regard is that the inference rule modus ponens is not necessarily satisfied in the interpolation method in the sense that an input in full accordance with the antecedent of a rule may lead to an output that does not satisfy the rule's consequent to the same degree (see a clear illustration in Izquierdo & Izquierdo (2015)).

2.33
The fact that the interpolation method is not a proper tool for deductive inference is well known and discussed in many papers (see Klawonna & Novák 1996; Bodenhofer et al. 2007) and textbooks (see e.g. Klir & Yuan 1995, chapter 11; Hájek 1998, chapter 7). Izquierdo and Izquierdo (2015) use several examples to illustrate the wide range of problems that may appear when interpreting the interpolation method as logical deductive inference.

2.34
Nonetheless, as an interpolation technique, the method does have very convenient properties. For a start, it can approximate any continuous real function on a closed domain to any degree of accuracy (Cao et al. 2001), so it is a very flexible and powerful approach, especially when combined with tuning techniques (see e.g. Driankov et al. 1996, chapter 5; Cordón 2011). Its success in this area is mainly due to its rule-based structure, which allows individual rules to be suitably adapted for specific regions of the state space without affecting the fitting achieved in neighbouring regions (Mamdani 1994).

2.35
The interpolation method has been used in various fields besides fuzzy control, such as management and finance (Bojadziev & Bojadziev 2007; Korol 2012), economics (Stojic 2012; West & Linster 2003), risk assessment (Nait-Said et al. 2008; Darbra et al. 2008 and references therein), and even for measuring the quality of education (Valdés-Pasarón, Márquez & Gaxiola 2011; Valdés-Pasarón, Márquez & Ocegueda-Hernández 2011).

Fuzzy Logic in Social Simulation and Agent-based Modelling

2.36
There are many authors that have used FL in Social Simulation and agent-based modelling. In this section we mention some representative examples. El-Nasr et al. (2000) used fuzzy sets in agent-based simulations to represent emotions, and fuzzy rules to represent mappings from events to emotions, and from emotions to behaviours. These authors used Mamdani inference in their fuzzy rule-based models. Ghasem-Aghaee and Ören (2003) and Ören and Ghasem-Aghaee (2003) used fuzzy logic to formalise different types of personality traits for human behaviour simulation.

2.37
In the context of cooperation in social dilemmas, Fort and Pérez (2005a, 2005b) formalised different measures of success as fuzzy sets in a spatial iterated Prisoner's Dilemma and explored the consequences of using one or another. Power (2009) suggested using fuzzy sets to model cooperation and defection in N-Person prisoner's dilemmas. Neumann et al. (2011) proposed the use of fuzzy logic in Social Simulation to formalise concepts such as conflict, violence and crime.

2.38
Fuzzy sets have also been used in the context of trust and reputation by authors such as Ramchurn et al. (2004), Falcone et al. (2003) and Sabater et al. (2006).

2.39
Kim et al. (2011), Lee et al. (2013) and Lee et al. (2014) explored diffusion dynamics of competing products in different markets (automobiles, netbooks and smartphones, respectively) using agent-based models where various linguistic terms are formalized as fuzzy sets.

2.40
Epstein et al. (2006) explored a fuzzy version of Sugarscape (Epstein & Axtell 1996). Ross (2010) included a section on agent-based models in his textbook, in which he sketched another fuzzification of Sugarscape implemented by Harp (2007). West and Linster (2003), Sperb and Cabral (2004), Sperb and Bughi (2006), Situngkir (2007), Sabeur and Denis (2007), Acheson et al. (2013) and Machálek et al. (2013) incorporated the interpolation method in the decision making of their agents.

2.41
Other examples of agent-based models with fuzzy components can be found in Hassan, Garmendia & Pavón (2007, 2010) and Hassan, Salgado & Pavón (2011) and, more recently, Dykstra et al. (2015).

* The NetLogo extension

3.1
To the best of our knowledge, the extension provided in Appendix A is the first FL extension for NetLogo that has been publicly released, although there has been some previous work on similar prototypes (Castañón-Puga et al. 2014; Flores-Parra 2013; Flores et al. 2010).

3.2
Our extension has been released under the GNU general public licence version 3 (GPLv3), which is one of the licences that scores best against the criteria set out by Polhill and Edmonds (2007) for releasing scientific software. GNU GPLv3 grants the right to inspect, copy and distribute the source code, to modify it, and also to copy and distribute any modifications. It also guarantees that any modifications will be issued under a licence that preserves these rights (i.e. copyleft protection). Following Polhill and Edmonds' (2007) guidelines and example (Polhill 2015), we have also devoted a substantial amount of work to facilitate the process of scientific critique of this research by carefully commenting the code, providing extensive documentation (Appendix B) and creating a tutorial on how to build an agent-based model using the extension (Appendix C).

3.3
The functionality of the NetLogo extension (which is internally coded in Java) was initially implemented as a library of functions directly written in NetLogo language. This set of NetLogo functions – together with its own documentation and tutorial – is provided in Appendix E. The advantage of the extension over the library is that it is computationally more efficient (both in terms of speed and memory usage) and it is easier to use. Some researchers may still find the original NetLogo library useful if they plan to inspect and/or modify the code within NetLogo.

3.4
The following is a list of the main functions provided in the extension:

Functions to create fuzzy sets: fuzzy:discrete-numeric-set, fuzzy:piecewise-linear-set, fuzzy:trapezoidal-set, fuzzy:logistic-set, fuzzy:gaussian-set, fuzzy:exponential-set, fuzzy:interval-with-points-set.

Functions to operate with fuzzy sets: fuzzy:min, fuzzy:max, fuzzy:sum, fuzzy:prob-or, fuzzy:not, fuzzy:truncate, fuzzy:prod, fuzzy:power.

Function to plot fuzzy sets: fuzzy:plot.

Functions to create fuzzy rules: fuzzy:truncate-rule, fuzzy:prod-rule, fuzzy:min-truncate-rule, fuzzy:max-truncate-rule, fuzzy:min-prod-rule, fuzzy:max-prod-rule.

Functions to defuzzify fuzzy sets: fuzzy:COG-of, fuzzy:FOM-of, fuzzy:LOM-of, fuzzy:MOM-of, fuzzy:MeOM-of.

Functions to manage fuzzy set labels: fuzzy:set-label-of, fuzzy:clear-label-of, fuzzy:set-with-label, fuzzy:clear-label, fuzzy:clear-all-labels, fuzzy:label-of, fuzzy:has-label?, fuzzy:label-exists?.

3.5
To illustrate the use of the extension, we include here the implementation of the Mamdani system explained in section 2.6 and displayed in Fig. 3. Our objective here is to show that implementing a system of fuzzy IF-THEN rules using the NetLogo extension requires very few lines of simple code. For a detailed explanation of each of the functions used, see the documentation in Appendix B.

3.6
Step 1: Implementation of a procedure that creates the fuzzy sets: see Fig. 5.

Figure 5
Figure 5. Procedure to create all the fuzzy sets of the Mamdani system explained in section 'Systems of fuzzy IF-THEN rules'

3.7
Step 2: Implementation of a procedure that takes a price and a distance as inputs and reports a numerical suitability: see Fig. 6.

Figure 6
Figure 6. Procedure to compute the suitability in the Mamdani system explained in section 'Systems of fuzzy IF-THEN rules'

3.8
With the two procedures shown above in place, one could execute the code "compute-suitability 50 35" to obtain the number 6.03845, as shown in Fig. 3.

* A simple agent-based model with fuzzy components

"It is a familiar fact that concepts change with time and user"
Goguen (1969, 339)
4.1
In this section we provide a general description of a simple agent-based model in which agents hold their own fuzzy concepts and follow fuzzy rules. The model is described in full detail in Appendix C, which provides a step-by-step tutorial to implement systems of fuzzy IF-THEN rules. The aim is to illustrate a possible way of using FL in an agent-based model.

4.2
Our model runs in discrete time steps. Initially, a group of agents conduct a sightseeing tour of a city/location, which they may later recommend with a certain probability. The probability of recommending the tour depends on a) the price paid for the tour; and b) the temperature during the tour. The price of the tour is a parameter of the model and the temperature is generated randomly every time a tour takes place. The function used by each agent to compute the probability of recommending is defined using fuzzy rules such as:
IF (price is inexpensive AND temperature is nice),
                                                       THEN it is likely that I will recommend.
IF (price is expensive OR temperature is extreme),
                                                       THEN it is unlikely that I will recommend.

4.3
The rules are the same for every agent, but their perceptions are different. Thus, each individual agent has its own concept (i.e. fuzzy set) of nice temperature, extreme temperature, inexpensive price, expensive price, likely, and unlikely. Fig. 7 shows the fuzzy sets representing nice and extreme temperature for different agents.

Figure 7
Figure 7. A representation of various fuzzy sets corresponding to different agents. Each agent has its own fuzzy sets representing nice (in blue) and extreme (in red) temperature.

4.4
Thus, even though the price and the temperature are the same for every agent in any specific tour, the assessment of these two variables by each agent is different. Using the interpolation method described in the section 'Systems of fuzzy IF-THEN rules', each agent computes an individual probability with which it will recommend the tour.

4.5
In the model, each agent is given a number of opportunities to recommend the tour to neighbours in its social network. At the end of the period, after all agents have been given the opportunity to recommend the tour (according to their individually computed probabilities), we have a new set of agents who have been recommended to attend the tour and will do so if there are available places (each tour is limited in size). The following time period starts with a new tour (with different temperature conditions) that will be assessed by the new set of agents. These new attendees will compute their own probability to recommend the tour to their own social contacts. In this way, the iterative process can go on indefinitely.

4.6
Importantly, the fuzzy sets of each individual agent do not necessarily have to be created in a completely unbiased way. They could be created using specific templates for optimistic agents (i.e. those who tend to assess experiences with a favourable bias), neutral agents or pessimistic agents. Thus, one could study the effects of different grades of homophily (or assortativity) in the agents' social networks. Specifically, it is clear the number of tour attendants in the model will be affected by the extent to which optimistic agents (who are more likely to recommend) tend to relate to each other.

* Conclusions

5.1
Social Simulation as a scientific field, and this journal in particular, are devoted to the exploration and understanding of social processes by means of computer simulation (Gilbert & Troitzsch 2005, preface). This aim often requires the translation of social theories and concepts expressed in natural language into algorithms written in formal languages that computers can understand. This paper shows that FL can be useful in such endeavour, since it provides a framework within which we can formalise and deal with imprecise concepts that are expressed in natural language.

5.2
However, the use of FL in Social Simulation should not be taken lightly. For a start, constructing appropriate fuzzy sets on imprecise concepts is not a trivial task. As put by Kvist (2007): "Fuzzy sets are not fuzzy in the sense of being imprecise or ambiguous. On the contrary, fuzzy sets need designing to accurately reflect theoretical concepts and analytical constructs that have precise meaning to those researchers using them. Fuzzy sets provide a way of operationalizing a concept into the 0-to-1 metric, from being 'fully out' to 'fully in' a set" (Kvist 2007, 477). In essence, by constructing a fuzzy set on an imprecise concept we are effectively making the concept precise in a particular way. We have also discussed a common way of using fuzzy IF-THEN rules, i.e. the interpolation method. Importantly, the interpolation method is not a method of logical deductive inference; thus, care should be taken when using it and interpreting the results obtained with it.

5.3
This paper also provides a set of well-documented functions written for NetLogo (Wilensky 1999) that facilitate the use of FL within this platform. Using these functions, it becomes simple to implement agent-based models where individual agents hold their own fuzzy sets (representing subjective imprecise concepts) and follow fuzzy rules which may affect the way agents behave and interact.Appendix C is a step-by-step tutorial that shows how to do this. As an example of a potentially useful application, our extension makes it particularly easy to analyse the robustness of a certain social theory expressed in natural language to different specifications of the imprecise concepts that the theory contains, such as e.g. "wealthy" (which may be represented with different fuzzy sets). Also, it facilitates the exploration of the effect that heterogeneity in concept interpretations may have in a society (i.e. the significance of the fact that different people may have different interpretations of the same concept).

5.4
Obviously, neither FL nor our extension are strictly necessary to build models with agents holding different instances of imprecise concepts, but the work presented here helps implement such models in a natural and transparent way. Thus, we hope that this paper and the tools included in it will make the endeavour of translating social theories into computer programs easier and more rigorous at the same time.

* Acknowledgements

The authors are very grateful to Marcos Almendres for converting the library of functions written in NetLogo language into an efficient NetLogo extension written in Java. We are also very grateful to three anonymous reviewers for improving the manuscript with their comments and suggestions. This research was supported under Australian Research Council's Discovery Projects funding scheme (project number DP130100570, "Modelling Network Innovation Performance Capability: A Multidisciplinary Approach") and under Spanish Ministry of Science and Innovation's project CSD2010-00034 (SIMULPAST).

* Notes

1In the following, and in accordance with the literature, we use the terms imprecise and vague indistinctively.

2However, if one assumes the opposite, i.e., that "a person who is only 1 mm shorter than a tall person is also tall", then it is not difficult to prove in classical logic that "everyone is tall" (assuming there is at least one person who is tall). For a crystal-clear and fascinating analysis of this ancient (Sorites) paradox, see Goguen (1969).

3A detailed historic account of the development of fuzzy logic in the narrow sense can be found in chapter 10 of Hájek (1998).

4The quote goes on as follows: "Although work in fuzzy logic in the broad sense is not directly concerned with the issues that are investigated under fuzzy logic in the narrow sense, the importance of the latter is that it provides the former with solid theoretical foundations" (Wang, Ruan & Kerre 2007, foreword).

5One could legitimately argue that a partial ordering would be sufficient to capture the graduation of membership (see e.g. footnote 3 in Zadeh (1965)), and that numerical graduation of membership is hard to justify for the representation of cognitive concepts (see e.g. Freksa (1994)).

6For an elaboration of this argument see Zadeh (1975a).

7Remember that the illusion of continuity is implemented in most computer platforms (NetLogo, in particular) using floating point numbers (Izquierdo & Polhill 2006; Polhill et al. 2005, 2006).

8For a detailed and clear explanation of the bridge between fuzzy sets and fuzzy propositions, see Klir and Yuan (1995, section 8.3).

9Formally, there is an isomorphism between set theory and propositional logic.

10Notation: In logic, the conjunctive connective is usually denoted by ∧, rather than by the word AND.

11Note that fuzzy propositions may also refer to elements belonging to different universes of discourse.

12Notation: In logic, the disjunctive connective is usually denoted by ∨, rather than by the word OR.

13The interpolation method is actually a special case of the compositional rule of inference, where the fuzzy relation is the Minimum or the Product (see e.g. Klir & Yuan 1995, 318–320; Wang 1997, 98). However, note that neither the Minimum nor the Product define a relation of logical implication in the sense that they do not collapse to the classical implication when truth values are restricted to 0 and 1.

14The simplest way of fuzzifying a crisp value x0 is to convert it into – or interpret it as – a fuzzy singleton, i.e. a fuzzy set whose membership function equals 1 at x0 and equals 0 for any other element. Here, the crisp input price = 50 can be interpreted as the fuzzy singleton F50 with μF50(50) = 1, and μF50(price) = 0 for price ≠ 50. We use the term "interpretation" because this type of fuzzification has no effect in the subsequent steps of the procedure. Naturally, other fuzzifications are possible and may be more appropriate in certain cases.

15The height of a fuzzy set is the largest degree of membership obtained by any element in that set. Thus, if the function minimum is used as intersection operator, the degree of consistency between fuzzy sets Input and Antecedent would reduce to: rAntecedent(Input) = sup xX min(μInput(x), μAntecedent(x)).

16Some authors (see e.g. Mamdani 1977; Driankov et al. 1996, chapter 2; Cordón et al. 2001, 8; Ross 2010, chapter 5) and computational packages (see e.g. Matlab 2014) refer to these functions as "Implication operators". We prefer to avoid this terminology because these functions do not define a relation of implication in the logical sense; in particular, they do not generalize the implication operator of classical logic, in the sense that they do not collapse to the classical implication when truth values are restricted to 0 and 1 (see e.g. the excellent explanations by Klir and Yuan (1995, section 11.2) and Hájek (1998, p. 177)). The implication connective xy tries to quantify the degree by which the consequent y is at least as true as the antecedent x (see e.g. Smets & Magrez 1987; Hájek 1998, 28–29, section 2.1.4). In mathematical fuzzy logic, it is most often defined as the residuum of a (left-continuous) T-norm (Hájek 1998, 29, definition 2.1.5). The implication connectives derived from each of the three fundamental T-norms are: Łukasiewicz implication (residuum of Łukasiewicz T-norm), Godel implication (residuum of minimum T-norm) and Goguen – or product – implication (residuum of product T-norm) (Hájek 1998, 30, Theorem 2.1.8).


* Appendix A. Fuzzy logic extension

Download file: fuzzy.zip

Find the latest release at:
https://github.com/luis-r-izquierdo/netlogo-fuzzy-logic-extension/releases


* Appendix B. Documentation of the Fuzzy Logic extension

Download file: fuzzy-logic-extension-documentation.pdf

Find the latest release at:
https://github.com/luis-r-izquierdo/netlogo-fuzzy-logic-extension/releases


* Appendix C. Tutorial and sample Model

Download file: tutorial.zip

Find the latest release at:
https://github.com/luis-r-izquierdo/netlogo-fuzzy-logic-extension/releases


* Appendix D. Interactive figure


* Appendix E. Fuzzy Logic library

Fuzzy Logic library written in NetLogo, with documentation and tutorial.
Download file: fuzzy-logic-library.zip

Find the latest release at:
https://github.com/luis-r-izquierdo/netlogo-fuzzy-logic-library/releases


* References

ACHESON, P., Dagli, C., & Kilicay-Ergin, N. (2013). Fuzzy Decision Analysis in Negotiation between the System of Systems Agent and the System Agent in an Agent-Based Model. The International Journal of Soft Computing and Software Engineering [JSCSE], 3(3). [doi://dx.doi.org/10.7321/jscse.v3.n3.7]

BELLMAN, R., Kalaba, R., & Zadeh, L. (1966). Abstraction and pattern classification. Journal of Mathematical Analysis and Applications, 13(1), 1–7. [doi://dx.doi.org/10.1016/0022-247X(66)90071-0]

BEZDEK, J. (1993). Fuzzy models—What are they, and why? [Editorial]. IEEE Transactions on Fuzzy Systems, 1(1), 1–6. [doi://dx.doi.org/10.1109/TFUZZ.1993.6027269]

BLACK, M. (1937). Vagueness. An Exercise in Logical Analysis. Philosophy of Science, 4(4), 427–455.

BODENHOFER, U., Dankova, M., Stepnicka, M., & Novak, V. (2007). A Plea for the Usefulness of the Deductive Interpretation of Fuzzy Rules in Engineering Applications. In 2007 IEEE International Fuzzy Systems Conference (pp. 1–6). IEEE. [doi://dx.doi.org/10.1109/FUZZY.2007.4295600]

BOJADZIEV, G., & Bojadziev, M. (2007). Fuzzy Logic for Business, Finance, and Management (2nd ed.). Advances in Fuzzy Systems - Applications and Theory, Vol. 23. River Edge, NJ, USA: World Scientific. [doi://dx.doi.org/10.1142/6451]

CAO, S. G., Rees, N. W., & Feng, G. (2001). Mamdani-type fuzzy controllers are universal fuzzy controllers. Fuzzy Sets and Systems, 123(3), 359–367. [doi://dx.doi.org/10.1016/S0165-0114(01)00015-X]

CASTAÑÓN-PUGA, M., Flores-Parra, J. M., Gaxiola-Pacheco, C., Palafox-Maestre, L. E., & Ahumada-Tello, E. (2014). Extending Netlogo with Interval Type-2 Fuzzy Inference Systems. In M. Essaaidi & M. Nemiche (Eds.), Proceedings of the Second World Conference on Complex Systems (WCCS) (p. 129).

CHANG, C. (1968). Fuzzy topological spaces. Journal of Mathematical Analysis and Applications, 24(1), 182–190. [doi://dx.doi.org/10.1016/0022-247X(68)90057-7]

CINTULA, P., Fermüller, C., Godo, L., & Hájek, P. (Eds.). (2011). Understanding Vagueness - Logical, Philosophical and Linguistic Perspectives. Studies in Logic, 36. London: College Publications.

CINTULA, P., Hájek, P., & Noguera, C. (Eds.). (2011a). Handbook of Mathematical Fuzzy Logic. Volume I. Studies in Logic, 37. Mathematical Logic and Foundations. London: College Publications.

CINTULA, P., Hájek, P., & Noguera, C. (Eds.). (2011b). Handbook of Mathematical Fuzzy Logic. Volume II. Studies in Logic, 38. Mathematical Logic and Foundations. London: College Publications.

CIOFFI-REVILLA, C. A. (1981). Fuzzy Sets and Models of International Relations. American Journal of Political Science, 25(1), 129–159. Retrieved from http://www.jstor.org/stable/2110917

CORDÓN, O. (2011). A historical review of evolutionary learning methods for Mamdani-type fuzzy rule-based systems: Designing interpretable genetic fuzzy systems. International Journal of Approximate Reasoning, 52(6), 894–913. [doi://dx.doi.org/10.1016/j.ijar.2011.03.004]

CORDÓN, O., Herrera, F., Hoffmann, F., & Magdalena, L. (2001). Genetic Fuzzy Systems (Vol. 19). World Scientific. [doi://dx.doi.org/10.1142/4177]

DARBRA, R. M., Eljarrat, E., & Barceló, D. (2008). How to measure uncertainties in environmental risk assessment. TrAC - Trends in Analytical Chemistry, 27(4), 377–385. [doi://dx.doi.org/10.1016/j.trac.2008.02.005]

DRIANKOV, D., Hellendoorn, H., & Reinfrank, M. (1996). An Introduction to Fuzzy Control (2nd ed.). Berlin, Heidelberg: Springer. [doi://dx.doi.org/10.1007/978-3-662-03284-8]

DUBOIS, D., & Prade, H. (1979). Fuzzy real algebra: Some results. Fuzzy Sets and Systems, 2(4), 327–348. [doi://dx.doi.org/10.1016/0165-0114(79)90005-8]

DUBOIS, D., & Prade, H. (1982a). Towards fuzzy differential calculus part 1: Integration of fuzzy mappings. Fuzzy Sets and Systems, 8(1), 1–17. [doi://dx.doi.org/10.1016/0165-0114(82)90025-2]

DUBOIS, D., & Prade, H. (1982b). Towards fuzzy differential calculus part 2: Integration on fuzzy intervals. Fuzzy Sets and Systems, 8(2), 105–116. [doi://dx.doi.org/10.1016/0165-0114(82)90001-X]

DUBOIS, D., & Prade, H. (1982c). Towards fuzzy differential calculus part 3: Differentiation. Fuzzy Sets and Systems, 8(3), 225–233. [doi://dx.doi.org/10.1016/S0165-0114(82)80001-8]

DUBOIS, D., & Prade, H. (1997). The three semantics of fuzzy sets. Fuzzy Sets and Systems, 90(2), 141–150. [doi://dx.doi.org/10.1016/S0165-0114(97)00080-8]

DUBOIS, D., & Prade, H. (2001). Possibility Theory, Probability Theory and Multiple-Valued Logics: A Clarification. Annals of Mathematics and Artificial Intelligence, 32(1–4), 35–66. [doi://dx.doi.org/10.1023/A:1016740830286]

DUBOIS, D., Prade, H., & Smets, P. (1994). Partial Truth is not Uncertainty. Fuzzy Logic versus Possibilistic Logic. IEEE Expert, 9(4), 15–19. [doi://dx.doi.org/10.1109/64.336150]

DYKSTRA, P., Jager, W., Elsenbroich, C., Verbrugge, R., & de Lavalette, G. (2015). An Agent-Based Dialogical Model with Fuzzy Attitudes. Journal of Artificial Societies and Social Simulation, 18 (3) 3. Retrieved from http://jasss.soc.surrey.ac.uk/18/3/3.html

EL-NASR, M. S., Yen, J., & Ioerger, T. R. (2000). FLAME - Fuzzy Logic Adaptive Model of Emotions. Autonomous Agents and Multi-Agent Systems, 3(3), 219. [doi://dx.doi.org/10.1023/A:1010030809960]

EPSTEIN, J. M., & Axtell, R. (1996). Growing artificial societies: Social science from the bottom up. The Brookings Institution & The MIT Press.

EPSTEIN, J.-G., Möhring, M., & Troitzsch, K. G. (2006). Fuzzy-Logical Rules in a Multi-Agent System. Sotsial'no-Ekonomicheskie Yavleniya I Protsessy, 1(1–2), 35–39.

FALCONE, R., Pezzulo, G., & Castelfranchi, C. (2003). A fuzzy approach to a belief-based trust computation. Lecture Notes in Computer Science, 2631, 73–86. [doi://dx.doi.org/10.1007/3-540-36609-1_7]

FLORES, D.-L., Castañón-Puga, M., Rodríguez-Díaz, A., Castro, J. R., & Espinoza-Hernández, I. (2010). Extending NetLogo with an Interval Type-2 Fuzzy Inference System. Towards Distributed Agency Simulation. In 3rd World Congress on Social Simulation WCSS 2010.

FLORES-PARRA, J. M. (2013). Wíinik: Towards an Agent-Based Simulation Design Tool for Distributed Agency and Cognitive Software Agents. In Ito, Jonker, Gini, & Shehory (Eds.), Proceedings of the 12th International Conference on Autonomous Agents and Multiagent Systems (AA- MAS 2013).

FORT, H., & Pérez, N. (2005a). Economic demography in fuzzy spatial dilemmas and power laws. European Physical Journal B, 44(1), 109–113. [doi://dx.doi.org/10.1140/epjb/e2005-00105-8]

FORT, H., & Pérez, N. (2005b). The Fate of Spatial Dilemmas with Different Fuzzy Measures of Success. Journal of Artificial Societies and Social Simulation, 8 (3) 1. Retrieved from http://jasss.soc.surrey.ac.uk/8/3/1.html

FREKSA, C. (1994). Fuzzy logic. An Interface Between Logic and Human Reasoning. IEEE Expert, 9(4), 20–21. [doi://dx.doi.org/10.1109/64.336150]

GAINES, B. R. (1978). Fuzzy and probability uncertainty logics. Information and Control, 38(2), 154–169. [doi://dx.doi.org/10.1016/S0019-9958(78)90165-1]

GHASEM-AGHAEE, N., & Ören, T. I. (2003). Towards Fuzzy Agents with Dynamic Personality for Human Behavior Simulation. In Proceedings of the 2003 Summer Computer Simulation Conference (pp. 3–10). Montreal, PQ, Canada.

GILBERT, N., & Troitzsch, K. G. (2005). Simulation for the Social Scientist (2nd ed.). Open University Press.

GOGUEN, J. A. (1969). The logic of inexact concepts. Synthese, 19(3–4), 325–373. [doi://dx.doi.org/10.1007/BF00485654]

HÁJEK, P. (1998). Metamathematics of Fuzzy Logic (Vol. 4). Dordrecht: Springer Netherlands. [doi://dx.doi.org/10.1007/978-94-011-5300-3]

HÁJEK, P. (2002). Why Fuzzy Logic? In D. Jacquette (Ed.), A Companion to Philosophical Logic. History and Philosophy of Logic, 24 (pp. 595–605). Massachusetts: Blackwell Publishers. [doi://dx.doi.org/10.1111/b.9781405145756.2002.x]

HÁJEK, P. (2010). Fuzzy Logic. In The Stanford Encyclopedia of Philosophy (Fall 2010 Edition). Edward N. Zalta (ed.). Retrieved from http://plato.stanford.edu/archives/fall2010/entries/logic-fuzzy/

HARP. (2007). Inclusion of irrational decision making in agent-based modeling using fuzzy logic. Unpublished Research Report cited in Ross (2010, pp. 522–524).

HASSAN, S., Garmendia, L., & Pavón, J. (2007). Agent-based social modeling and simulation with fuzzy sets. In E. Corchado, J. M. Corchado, & A. Abraham (Eds.), Advances in Soft Computing (Vol. 44, pp. 40–47). Berlin, Heidelberg: Springe. [doi://dx.doi.org/10.1007/978-3-540-74972-1_7]

HASSAN, S., Garmendia, L., & Pavón, J. (2010). Introducing uncertainty into social simulation: using fuzzy logic for agent-based modelling. International Journal of Reasoning-Based Intelligent Systems, 2(2), 118–124. [doi://dx.doi.org/10.1504/IJRIS.2010.034907]

HASSAN, S., Salgado, M., & Pavón, J. (2011). Friendship Dynamics: Modelling Social Relationships through a Fuzzy Agent-Based Simulation. Discrete Dynamics in Nature and Society, 2011(Article ID 765640). [doi:10.1155/2011/765640]

IZQUIERDO, L. R., & Polhill, J. G. (2006). Is Your Model Susceptible to Floating-Point Errors? Journal of Artificial Societies Social Simulation, 9 (4) 4. Retrieved from http://jasss.soc.surrey.ac.uk/9/4/4.html

IZQUIERDO, S. S., & Izquierdo, L. R. (2015). A critical assessment of the usefulness of Mamdani fuzzy systems for social simulation. In Preparation.

KANTROWITZ, M., Horstkotte, E., & Joslyn, C. (1997). Answers to Frequently Asked Questions about Fuzzy Logic and Fuzzy Expert Systems. Retrieved on January 3, 2015, from http://www.cs.cmu.edu/Groups/AI/html/faqs/ai/fuzzy/part1/faq.html

KEEFE, R. (2000). Theories of Vagueness. Cambridge, UK: Cambridge University Press.

KIM, S., Lee, K., Cho, J. K., & Kim, C. O. (2011). Agent-based diffusion model for an automobile market with fuzzy TOPSIS-based product adoption process. Expert Systems with Applications, 38(6), 7270–7276. [doi://dx.doi.org/10.1016/j.eswa.2010.12.024]

KLAWONNA, F., & Novák, V. (1996). The relation between inference and interpolation in the framework of fuzzy systems. Fuzzy Sets and Systems, 81(3), 331–354. [doi://dx.doi.org/10.1016/0165-0114(96)83710-9]

KLEMENT, E. P., Mesiar, R., & Pap, E. (2000). Triangular Norms (Vol. 8). Dordrecht: Springer Netherlands. [doi://dx.doi.org/10.1007/978-94-015-9540-7]

KLIR, G. J., & Yuan, B. (1995). Fuzzy Sets and Fuzzy Logic: Theory and Applications. Upper Saddle River, New Jersey: Prentice Hall PTR.

KOROL, T. (2012). Fuzzy Logic in Financial Management. In E. Dadios (Ed.), Fuzzy Logic - Emerging Technologies and Applications (pp. 259–286). InTech. [doi://dx.doi.org/10.5772/2337]

KVIST, J. (2007). Fuzzy set ideal type analysis. Journal of Business Research, 60(5), 474–481. [doi://dx.doi.org/10.1016/j.jbusres.2007.01.005]

LEE, K., Kim, S., Kim, C. O., & Park, T. (2013). An Agent-Based Competitive Product Diffusion Model for the Estimation and Sensitivity Analysis of Social Network Structure and Purchase Time Distribution. Journal of Artificial Societies and Social Simulation, 16 (1) 3. Retrieved from http://jasss.soc.surrey.ac.uk/16/1/3.html

LEE, K., Lee, H., & Kim, C. O. (2014). Pricing and Timing Strategies for New Product Using Agent-Based Simulation of Behavioural Consumers. Journal of Artificial Societies and Social Simulation, 17 (2) 1. Retrieved from http://jasss.soc.surrey.ac.uk/17/2/1.html

MACHÁLEK, T., Cimler, R., Olševičová, K., & Danielisová, A. (2013). Fuzzy Methods in Land Use Modeling for Archaeology. In Proc. of 31st International Conference on Mathematical Methods in Economics 2013, Jihlava, part II (pp. 552–557).

MAMDANI, E. H. (1974). Application of fuzzy algorithms for control of simple dynamic plant. Proceedings of the Institution of Electrical Engineers, 121(12), 1585. [doi://dx.doi.org/10.1049/piee.1974.0328]

MAMDANI, E. H. (1976). Advances in the linguistic synthesis of fuzzy controllers. International Journal of Man-Machine Studies, 8(6), 669–678. [doi://dx.doi.org/10.1016/S0020-7373(76)80028-4]

MAMDANI, E. H. (1977). Application of Fuzzy Logic to Approximate Reasoning Using Linguistic Synthesis. IEEE Transactions on Computers, C-26(12), 1182–1191. [doi://dx.doi.org/10.1109/TC.1977.1674779]

MAMDANI, E. H. (1994). Fuzzy Control. A Misconception of Theory and Application. IEEE Expert, 9(4), 27–28. [doi://dx.doi.org/10.1109/64.336150]

MAMDANI, E. H., & Assilian, S. (1975). An experiment in linguistic synthesis with a fuzzy logic controller. International Journal of Man-Machine Studies, 7(1), 1–13. [doi://dx.doi.org/10.1016/S0020-7373(75)80002-2]

MATLAB. (2014). Fuzzy Logic Toolbox. User's Guide R2014b. The MathWorks, Inc. Retrieved from http://es.mathworks.com/help/pdf_doc/fuzzy/fuzzy.pdf

MORDESON, J. N., & Nair, P. S. (2000). Fuzzy Graphs and Fuzzy Hypergraphs. Heidelberg: Physica-Verlag HD. [doi://dx.doi.org/10.1007/978-3-7908-1854-3]

NAIT-SAID, R., Zidani, F., & Ouzraoui, N. (2008). Fuzzy Risk Graph Model for Determining Safety Integrity Level. International Journal of Quality, Statistics, and Reliability, 2008(Article ID 263895). [doi://dx.doi.org/10.1155/2008/263895]

NEUMANN, M., Braun, A., Heinke, E.-M., Saqalli, M., & Srbljinovic, A. (2011). Challenges in Modelling Social Conflicts: Grappling with Polysemy. Journal of Artificial Societies and Social Simulation, 14 (3) 9. Retrieved from http://jasss.soc.surrey.ac.uk/14/3/9.html

NOVÁK, V. (2005). Are fuzzy sets a reasonable tool for modeling vague phenomena? Fuzzy Sets and Systems, 156(3), 341–348. [doi://dx.doi.org/10.1016/j.fss.2005.05.029]

NOVÁK, V. (2012). Reasoning about mathematical fuzzy logic and its future. Fuzzy Sets and Systems, 192, 25–44. [doi://dx.doi.org/10.1016/j.fss.2010.09.019]

ÖREN, T. I., & Ghasem-Aghaee, N. (2003). Personality Representation Processable in Fuzzy Logic for Human Behavior Simulation. In Proceedings of the 2003 Summer Computer Simulation Conference (pp. 11–18). Montreal, PQ, Canada.

POLHILL, J. G. (2015). Extracting OWL Ontologies from Agent-Based Models: A Netlogo Extension. Journal of Artificial Societies and Social Simulation, 18 (2) 15. Retrieved from http://jasss.soc.surrey.ac.uk/18/2/15.html

POLHILL, J. G., & Edmonds, B. (2007). Open Access for Social Simulation. Journal of Artificial Societies and Social Simulation, 10 (3) 10. Retrieved from http://jasss.soc.surrey.ac.uk/10/3/10.html

POLHILL, J. G., Izquierdo, L. R., & Gotts, N. M. (2005). The ghost in the model (and other effects of floating point arithmetic). Journal of Artificial Societies Social Simulation, 8 (1) 5. Retrieved from http://jasss.soc.surrey.ac.uk/8/1/5.html

POLHILL, J. G., Izquierdo, L. R., & Gotts, N. M. (2006). What every agent-based modeller should know about floating point arithmetic. Environmental Modelling and Software, 21(3), 283–309. [doi://dx.doi.org/10.1016/j.envsoft.2004.10.011]

POWER, C. (2009). A Spatial Agent-Based Model of N-Person Prisoner's Dilemma Cooperation in a Socio-Geographic Community. Journal of Artificial Societies and Social Simulation, 12 (1) 8. Retrieved from http://jasss.soc.surrey.ac.uk/12/1/8.html

RAMCHURN, S., Sierra, C., Godo, L., & Jennings, N. R. (2004). Devising a trust model for multi-agent interactions using confidence and reputation. International Journal of Applied Artificial Intelligence, 18(9-10), 833–852. [doi://dx.doi.org/10.1080/0883951049050904509045]

ROSENFELD, A. (1975). Fuzzy Graphs. In L. A. Zadeh, K.-S. Fu, K. Tanaka, & M. Shimura (Eds.), Fuzzy Sets and their Applications to Cognitive and Decision Processes. Proceedings of the US–Japan Seminar on Fuzzy Sets and their Applications, Held at the University of California, Berkeley, California, July 1–4, 1974 (pp. 77–95). Academic Press, Inc. [doi://dx.doi.org/10.1016/B978-0-12-775260-0.50008-6]

ROSS, T. J. (2010). Fuzzy Logic with Engineering Applications (3rd ed.). Chichester, UK: John Wiley & Sons, Ltd. [doi://dx.doi.org/10.1002/9781119994374]

RUSPINI, E. H. (1969). A new approach to clustering. Information and Control, 15(1), 22–32. [doi://dx.doi.org/10.1016/S0019-9958(69)90591-9]

RUSSELL, B. (1923). Vagueness. Australasian Journal of Psychology and Philosophy, 1(2), 84–92. [doi://dx.doi.org/10.1080/00048402308540623]

SABATER, J., Paolucci, M., & Conte, R. (2006). Repage: REPutation and ImAGE Among Limited Autonomous Partners. Journal of Artificial Societies and Social Simulation, 9 (2) 3. Retrieved from http://jasss.soc.surrey.ac.uk/9/2/3.html

SABEUR, E., & Denis, G. (2007). Human behavior and social network simulation: fuzzy sets/logic and agents-based approach. In Proceedings of the 2007 Spring Simulation Multiconference, SpringSim 2007 (pp. 102–109). Norfolk, Virginia, USA: Society for Computer Simulation International.

SEISING, R. (2008). On the absence of strict boundaries—Vagueness, haziness, and fuzziness in philosophy, science, and medicine. Applied Soft Computing, 8(3), 1232–1242. [doi://dx.doi.org/10.1016/j.asoc.2007.02.017]

SHAPIRO, S. (2006). Vagueness in Context. Oxford University Press. [doi://dx.doi.org/10.1093/acprof:oso/9780199280391.001.0001]

SITUNGKIR, H. (2007). The Ribbon of Love: Fuzzy-Ruled Agents in Artificial Societies. Bandung Fe Institute Working Paper Series, WPB2007. [doi://dx.doi.org/10.2139/ssrn.984098]

SMETS, P., & Magrez, P. (1987). Implication in fuzzy logic. International Journal of Approximate Reasoning, 1(4), 327–347. [doi://dx.doi.org/10.1016/0888-613X(87)90023-5]

SONG, Q., & Chissom, B. S. (1993a). Forecasting enrollments with fuzzy time series — Part I. Fuzzy Sets and Systems, 54(1), 1–9. [doi://dx.doi.org/10.1016/0165-0114(93)90355-L]

SONG, Q., & Chissom, B. S. (1993b). Fuzzy time series and its models. Fuzzy Sets and Systems, 54(3), 269–277. [doi://dx.doi.org/10.1016/0165-0114(93)90372-O]

SONG, Q., & Chissom, B. S. (1994). Forecasting enrollments with fuzzy time series — Part II. Fuzzy Sets and Systems, 62(1), 1–8. [doi://dx.doi.org/10.1016/0165-0114(94)90067-1]

SPERB, R. M., & Bughi, C. H. (2006). Fuzzy agent-based modeling: a hybrid tool for exploring coastal zone spatial processes. Brazilian Journal of Aquatic Science and Technology, 10(2), 53–67. [doi://dx.doi.org/10.14210/bjast.v10n2.p53-67]

SPERB, R. M., & Cabral, R. B. (2004). Fuzzy Agent-based Model: A hybrid tool for exploring spatial perception and behavior. IEEE Annual Meeting of the Fuzzy Information, 2004. Processing NAFIPS '04., 1, 120–125. [doi://dx.doi.org/10.1109/NAFIPS.2004.1336262]

STOJIC, G. (2012). Using fuzzy logic for evaluating the level of countries' (regions') economic development. Panoeconomicus, 59(3), 293–310. [doi://dx.doi.org/10.2298/PAN1203293S]

VALDÉS-PASARÓN, S., Márquez, B. Y., & Gaxiola, L. (2011). Knowledge and Data Engineering for Analyzing the Quality of Education Using Fuzzy Logic. In Electrical Power Systems and Computers. Lecture Notes in Electrical Engineering (Vol. 99, pp. 567–573). [doi://dx.doi.org/10.1007/978-3-642-21747-0_71]

VALDÉS-PASARÓN, S., Márquez, B. Y., & Ocegueda-Hernández, J. M. (2011). Methodology for Measuring the Quality of Education Using Fuzzy Logic. In Software Engineering and Computer Systems. Communications in Computer and Information Science (Vol. 180, pp. 509–515). [doi://dx.doi.org/10.1007/978-3-642-22191-0_44]

WANG, L.-X. (1997). A Course in Fuzzy Systems and Control (Internatio.). Prentice-Hall International, Inc.

WANG, P. P., Ruan, D., & Kerre, E. E. (Eds.). (2007). Fuzzy Logic. A Spectrum of Theoretical & Practical Issues. Studies in Fuzziness and Soft Computing, 215. [doi://dx.doi.org/10.1007/978-3-540-71258-9]

WEST, J. E., & Linster, B. (2003). The Evolution of Fuzzy Rules as Strategies in Two-Player Games. Southern Economic Journal, 69(3), 705–717. Retrieved from http://www.jstor.org/stable/1061703

WILENSKY, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern University. Evanston, IL.

YEH, R. T., & Bang, S. Y. (1975). Fuzzy graphs, fuzzy relations and their applications to cluster analysis. In L. A. Zadeh, K.-S. Fu, K. Tanaka, & M. Shimura (Eds.), Fuzzy Sets and their Applications to Cognitive and Decision Processes. Proceedings of the US–Japan Seminar on Fuzzy Sets and their Applications, Held at the University of California, Berkeley, California, July 1–4, 1974 (pp. 125–149). Academic Press, Inc. [doi://dx.doi.org/10.1016/B978-0-12-775260-0.50010-4]

ZADEH, L. A. (1965). Fuzzy sets. Information and Control, 8(3), 338–353. [doi://dx.doi.org/10.1016/S0019-9958(65)90241-X]

ZADEH, L. A. (1972). A Rationale for Fuzzy Control. Journal of Dynamic Systems, Measurement, and Control, 94(1), 3–4. [doi://dx.doi.org/10.1115/1.3426540]

ZADEH, L. A. (1973). Outline of a New Approach to the Analysis of Complex Systems and Decision Processes. IEEE Transactions on Systems, Man, and Cybernetics, SMC-3(1), 28–44. [doi://dx.doi.org/10.1109/TSMC.1973.5408575]

ZADEH, L. A. (1975a). The concept of a linguistic variable and its application to approximate reasoning—I. Information Sciences, 8(3), 199–249. [doi://dx.doi.org/10.1016/0020-0255(75)90036-5]

ZADEH, L. A. (1975b). The concept of a linguistic variable and its application to approximate reasoning—II. Information Sciences, 8(4), 301–357. [doi://dx.doi.org/10.1016/0020-0255(75)90046-8]

ZADEH, L. A. (1975c). The concept of a linguistic variable and its application to approximate reasoning-III. Information Sciences, 9(1), 43–80. [doi://dx.doi.org/10.1016/0020-0255(75)90017-1]

ZADEH, L. A. (1983). The role of fuzzy logic in the management of uncertainty in expert systems. Fuzzy Sets and Systems, 11(1-3), 197–227. [doi://dx.doi.org/10.1016/S0165-0114(83)80081-5]

ZADEH, L. A. (1994a). Fuzzy logic: issues, contentions and perspectives. In Proceedings of ICASSP '94. IEEE International Conference on Acoustics, Speech and Signal Processing (Vol. VI, p. 183). IEEE. [doi://dx.doi.org/10.1109/ICASSP.1994.389912]

ZADEH, L. A. (1994b). Why the Success of Fuzzy Logic is not Paradoxical. IEEE Expert, 9(4), 43–46. [doi://dx.doi.org/10.1109/64.336150]

ZADEH, L. A. (1996). Fuzzy logic = computing with words. IEEE Transactions on Fuzzy Systems, 4(2), 103–111. [doi://dx.doi.org/10.1109/91.493904]

ZIMMERMANN, H.-J. (2001). Fuzzy Set Theory—and Its Applications (4th ed.). Dordrecht: Springer Netherlands. [doi://dx.doi.org/10.1007/978-94-010-0646-0]

ZIMMERMANN, H.-J. (2010). Fuzzy set theory. Wiley Interdisciplinary Reviews: Computational Statistics, 2(3), 317–332. [doi://dx.doi.org/10.1002/wics.82]