Mathematica 9 is now available
Fuzzy Logic Products
-----
 /
Fuzzy Logic
*What's New in Version 2?
*Features
*Sample Images
*Contents
*Q&A
*Examples
*Classifying Houses
*Representing Age
*Finding the Disjunctive Sum
*Natural Numbers
*Fuzzy Hedges
*Distance Relation
<Choosing a Job
*Digital Fuzzy Sets
*Image Processing
*References
*Who's It For?
*Download Product
Manual
*Buy Online
*Technical FAQs
*Documentation
*For More Information
*Higher Education Solutions
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

Example 7: Choosing a Job

Problem. Fuzzy sets can be used to aid in decision making or management. We illustrate this with an example from Klir and Folger [Klir and Folger, 1988]. Given four jobs (Jobs 1, 2, 3, and 4), our task is to choose the job that will give us the highest salary, given the constraints that the job should be interesting and close to our home.

Solution. The first constraint of job interest can be represented with the following fuzzy set.

Interest = FuzzySet[{{1, .4}, {2, .6}, {3, .8}, {4, .6}},
UniversalSpace -> {1, 4}]

FuzzySet[{{1, 0.4`}, {2, 0.6`}, {3, 0.8`}, {4, 0.6`}},
UniversalSpace -> {1, 4, 1}]

We can see that Job 3 has the highest membership grade, meaning that Job 3 is the most interesting of the four jobs. Job 1 on the other hand is the least interesting, since it has a membership grade of only 0.4.

We can form a fuzzy set for our second constraint in a similar manner. Here is a fuzzy set used to represent the driving distance to the four jobs.

Drive = FuzzySet[{{1, .1}, {2, .9}, {3, .7}, {4, 1}},
UniversalSpace -> {1, 4}]

FuzzySet[{{1, 0.1`}, {2, 0.9`}, {3, 0.7`}, {4, 1}}, UniversalSpace
-> {1, 4, 1}]

In the fuzzy set above, the membership grades indicate the length of the drive to work. A high membership grade indicates that it is a short drive to work--a good thing. A small membership grade indicates an undesirable, long drive to work. From the fuzzy set above, we can see that Job 4 is located near our home, while Job 1 is a long way from our home.

Finally, we need to figure in the goal of a good salary. There is no real difference between a constraint and a goal in this problem, so we figure in the worth of the salary the same way we did for the previous constraints. We could use a formula to convert a salary into a membership grade for each job [Klir & Folger, 1988], but to stay with the tradition of our previous constraints, we arbitrarily assign a membership grade to each job based on salary.

Salary = FuzzySet[{{1, .875}, {2, .7}, {3, .5}, {4, .2}},
UniversalSpace -> {1, 4}]

FuzzySet[{{1, 0.875`}, {2, 0.7`}, {3, 0.5`}, {4, 0.2`}},
UniversalSpace -> {1, 4, 1}]

From this fuzzy set, we see that Job 1 pays the highest salary, and Job 4 pays the lowest. Now that all of our criteria is represented as fuzzy sets, we need to decide on a function to make the decision. We will use the standard Intersection to make the fuzzy decision. Applying the Intersection operation can be thought of as adding the constraints and goals to come up with the best overall decision.

Decision = Intersection[Interest, Drive, Salary]

FuzzySet[{{1, 0.1`}, {2, 0.6`}, {3, 0.5`}, {4, 0.2`}},
UniversalSpace -> {1, 4, 1}]

We can plot the decision fuzzy set to see the results graphically.

FuzzyPlot[Decision] ;

[Graphics:HTMLFiles/job_10.gif]

At last, we can look for the maximum membership grade to decide which job best satisfies our goals and constraints. In this example, we see that Job 2 appears to be the best job for us.

There are a number of different ways that the decision in this example could have been made. For example, we could have used a different operator, maybe a product operator, to make our decision; we could have weighted different constraints more heavily than others; or we could have used different functions to arrive at the membership grades. As an exercise, try using a different method and see which job your method selects as the best.

Any questions about topics on this page? Click here to get an individual response.