Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Designing Fuzzy Sets for Real-World Concepts | Membership Functions and Fuzzy Sets
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Fuzzy Logic and Approximate Reasoning

bookDesigning Fuzzy Sets for Real-World Concepts

When you want to model a real-world concept — such as "young" or "old" — using fuzzy sets, you need to carefully select both the type of membership function and its parameters. The goal is to capture the imprecise boundaries of these concepts in a way that reflects common sense and domain knowledge. For example, the concept of "young" in terms of age can vary depending on context, but it generally implies higher membership at lower ages and gradually decreasing membership as age increases.

To begin, you should consider the following points when choosing membership function parameters:

  • Identify the range of the variable that is relevant for your concept;
  • Decide where the concept should have full membership (degree 1) and where it should have no membership (degree 0);
  • Choose a function shape (such as triangular, trapezoidal, or Gaussian) that best represents the gradual transition of the concept;
  • Adjust the parameters (like center, width, or slope) to match real-world observations or expert input.

For instance, if you are modeling "young" and "old" for ages 0 to 100, "young" might have full membership from age 0 to 20, then decrease until age 40, while "old" might start to increase after age 40 and reach full membership at age 70 or above. The overlap between these sets allows for the fuzzy nature of terms like "middle-aged."

12345678910111213141516171819202122232425
import numpy as np import matplotlib.pyplot as plt ages = np.linspace(0, 100, 500) # Triangular membership for 'young' def young(age): return np.maximum(0, np.minimum(1, (40 - age) / 20)) # Gaussian membership for 'old' def old(age): return np.exp(-0.5 * ((age - 70) / 10) ** 2) young_membership = young(ages) old_membership = old(ages) plt.figure(figsize=(8, 4)) plt.plot(ages, young_membership, label="Young (Triangular)", color='blue') plt.plot(ages, old_membership, label="Old (Gaussian)", color='red') plt.title("Fuzzy Sets for 'Young' and 'Old'") plt.xlabel("Age") plt.ylabel("Membership Degree") plt.legend() plt.grid(True) plt.show()
copy

The choice of parameters for these membership functions has a significant effect on how the fuzzy sets behave. For 'young,' the triangular function starts at full membership for the youngest ages, then linearly decreases to zero by age 40, with the slope determined by the width of the triangle. For 'old,' the Gaussian function is centered at age 70 with a spread (standard deviation) of 10, meaning the degree of membership increases smoothly as age approaches 70 and then stays high for older ages. The overlap between 'young' and 'old' in the middle-age range reflects the ambiguity present in real-world language. By adjusting the parameters — such as shifting the center of the Gaussian or changing the slope of the triangle — you can make the fuzzy sets broader, narrower, or shift them along the age axis, directly affecting how much overlap exists and how sharply the transition between concepts occurs. This flexibility allows you to tailor fuzzy sets to best match the nuances of human reasoning about real-world categories.

question mark

Which statements are true about designing fuzzy sets for real-world concepts?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 3

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

Can you explain how to adjust the parameters to make the sets overlap more or less?

What other membership function shapes could I use for these concepts?

How would I model a concept like "middle-aged" using fuzzy sets?

bookDesigning Fuzzy Sets for Real-World Concepts

Свайпніть щоб показати меню

When you want to model a real-world concept — such as "young" or "old" — using fuzzy sets, you need to carefully select both the type of membership function and its parameters. The goal is to capture the imprecise boundaries of these concepts in a way that reflects common sense and domain knowledge. For example, the concept of "young" in terms of age can vary depending on context, but it generally implies higher membership at lower ages and gradually decreasing membership as age increases.

To begin, you should consider the following points when choosing membership function parameters:

  • Identify the range of the variable that is relevant for your concept;
  • Decide where the concept should have full membership (degree 1) and where it should have no membership (degree 0);
  • Choose a function shape (such as triangular, trapezoidal, or Gaussian) that best represents the gradual transition of the concept;
  • Adjust the parameters (like center, width, or slope) to match real-world observations or expert input.

For instance, if you are modeling "young" and "old" for ages 0 to 100, "young" might have full membership from age 0 to 20, then decrease until age 40, while "old" might start to increase after age 40 and reach full membership at age 70 or above. The overlap between these sets allows for the fuzzy nature of terms like "middle-aged."

12345678910111213141516171819202122232425
import numpy as np import matplotlib.pyplot as plt ages = np.linspace(0, 100, 500) # Triangular membership for 'young' def young(age): return np.maximum(0, np.minimum(1, (40 - age) / 20)) # Gaussian membership for 'old' def old(age): return np.exp(-0.5 * ((age - 70) / 10) ** 2) young_membership = young(ages) old_membership = old(ages) plt.figure(figsize=(8, 4)) plt.plot(ages, young_membership, label="Young (Triangular)", color='blue') plt.plot(ages, old_membership, label="Old (Gaussian)", color='red') plt.title("Fuzzy Sets for 'Young' and 'Old'") plt.xlabel("Age") plt.ylabel("Membership Degree") plt.legend() plt.grid(True) plt.show()
copy

The choice of parameters for these membership functions has a significant effect on how the fuzzy sets behave. For 'young,' the triangular function starts at full membership for the youngest ages, then linearly decreases to zero by age 40, with the slope determined by the width of the triangle. For 'old,' the Gaussian function is centered at age 70 with a spread (standard deviation) of 10, meaning the degree of membership increases smoothly as age approaches 70 and then stays high for older ages. The overlap between 'young' and 'old' in the middle-age range reflects the ambiguity present in real-world language. By adjusting the parameters — such as shifting the center of the Gaussian or changing the slope of the triangle — you can make the fuzzy sets broader, narrower, or shift them along the age axis, directly affecting how much overlap exists and how sharply the transition between concepts occurs. This flexibility allows you to tailor fuzzy sets to best match the nuances of human reasoning about real-world categories.

question mark

Which statements are true about designing fuzzy sets for real-world concepts?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 2. Розділ 3
some-alt