Noravshan mantiq nazariyasi va amaliyoti uchun Python kutubxonasi
Project description
FuzzyTri
Noravshan mantiq nazariyasi va amaliyoti uchun Python kutubxonasi. Uchburchak fuzzy sonlar va ular ustida amallarni bajarish imkoniyati.
## Xususiyatlari
- ✅ Uchburchak fuzzy sonlar bilan ishlash
- ✅ Arifmetik amallar (qo'shish, ayirish, ko'paytirish, bo'lish)
- ✅ Mantiqiy amallar (birlashma, kesishma, komplement)
- ✅ Alfa-kesim operatsiyalari
- ✅ 5 xil defuzzifikatsiya usullari
- ✅ Vizualizatsiya va grafiklar
- ✅ Kophadli transformatsiyalar (exp, sin, cos)
- ✅ JSON va dictionary serializatsiya
## O'rnatish
### PyPI orqali (kelajakda):
```bash
pip install fuzzytri
Manba koddan o'rnatish:
bash
git clone https://github.com/username/fuzzytri.git
cd fuzzytri
pip install -e .
Tezkor Boshlash
python
from fuzzytri import FuzzyTriangular, DefuzzificationMethod
# Fuzzy sonlar yaratish
yosh = FuzzyTriangular(0, 20, 40, "Yosh")
orta_yosh = FuzzyTriangular(30, 45, 60, "O'rta yosh")
qari = FuzzyTriangular(50, 70, 100, "Qari")
# A'zolik darajasini hisoblash
age = 35
print(f"{age} yosh uchun a'zolik darajalari:")
print(f"Yosh: {yosh(age):.3f}")
print(f"O'rta yosh: {orta_yosh(age):.3f}")
print(f"Qari: {qari(age):.3f}")
# Arifmetik amallar
yosh_10 = yosh + 10
print(f"Yosh + 10 = {yosh_10}")
# Defuzzifikatsiya
markaz = yosh.defuzzify(DefuzzificationMethod.CENTROID)
print(f"Yosh fuzzy sonining markazi: {markaz:.2f}")
Batafsil Misollar
Asosiy Operatsiyalar
python
from fuzzytri import FuzzyTriangular, OperationType
import matplotlib.pyplot as plt
# Fuzzy sonlar yaratish
A = FuzzyTriangular(1, 3, 5, "A")
B = FuzzyTriangular(2, 4, 6, "B")
# Birlashma va kesishma
birlashma = A.union(B, OperationType.MAX)
kesishma = A.intersection(B, OperationType.MIN)
# Alfa-kesim
alpha = 0.7
alpha_kesim = A.alpha_cut(alpha)
print(f"Alpha={alpha} kesim: {alpha_kesim}")
# Grafik chizish
A.plot(color='blue', show_core=True)
B.plot(color='red', show_core=True)
plt.show()
Transformatsiyalar
python
from fuzzytri import FuzzyTriangular
# Fuzzy son yaratish
temp = FuzzyTriangular(15, 25, 35, "Harorat")
# Eksponensial transformatsiya
exp_data = temp.fuzzy_exp()
# Sinus transformatsiya
sin_data = temp.fuzzy_sin()
# Grafik chizish
temp.plot_transformation('exp')
temp.plot_transformation('sin')
Defuzzifikatsiya Usullari
python
from fuzzytri import FuzzyTriangular, DefuzzificationMethod
fuzzy_son = FuzzyTriangular(10, 20, 30, "Namuna")
# Turli defuzzifikatsiya usullari
usullar = [
DefuzzificationMethod.CENTROID,
DefuzzificationMethod.BISECTOR,
DefuzzificationMethod.MEAN_OF_MAXIMUM,
DefuzzificationMethod.LARGEST_OF_MAXIMUM,
DefuzzificationMethod.SMALLEST_OF_MAXIMUM
]
for usul in usullar:
natija = fuzzy_son.defuzzify(usul)
print(f"{usul.value}: {natija:.2f}")
API Dokumentatsiya
FuzzyTriangular Klassi
Konstruktor
python
FuzzyTriangular(a: float, b: float, c: float, name: str = "Triangular")
a: Chap chegarasi (support boshi)b: Maksimal qiymat (core)c: O'ng chegarasi (support oxiri)name: Fuzzy son nomi
Asosiy Metodlar
membership(x: float) -> float: x nuqtadagi a'zolik darajasialpha_cut(alpha: float) -> Tuple[float, float]: Alfa-kesim oraliqdefuzzify(method: DefuzzificationMethod) -> float: Defuzzifikatsiyaplot(**kwargs) -> plt.Axes: Grafik chizishunion(other, method) -> Callable: Birlashma amaliintersection(other, method) -> Callable: Kesishma amalicomplement() -> Callable: Komplement amali
Xususiyatlar
support: A'zolik > 0 bo'lgan oraliqcore: A'zolik = 1 bo'lgan oraliqheight: Maksimal a'zolik darajasiarea: Fuzzy to'plam yuzasicentroid: Markaz nuqtasi
Loyihani Ishga Tushirish
bash
# Kutubxonani o'rnatish
pip install -e .
# Testlarni ishga tushirish
pytest
# Misollarni ishga tushirish
python examples/basic_usage.py
python examples/advanced_operations.py
python examples/visualization_demo.py
Misollar Katalogi
examples/ katalogida quyidagi misol fayllari mavjud:
basic_usage.py: Asosiy foydalanish misollariadvanced_operations.py: Murakkab amallar misollarivisualization_demo.py: Vizualizatsiya misollaridefuzzification_comparison.py: Defuzzifikatsiya usullari taqqoslashi
Rivojatlash
bash
# Repository ni klonlash
git clone https://github.com/username/fuzzytri.git
cd fuzzytri
# Virtual muhit yaratish
python -m venv venv
source venv/bin/activate # Linux/Mac
# yoki
venv\Scripts\activate # Windows
# Zarur kutubxonalarni o'rnatish
pip install -r requirements.txt
# Testlarni yuritish
pytest tests/
Litsenziya
MIT Litsenziyasi
Aloqa
Savollar va takliflar uchun:
- GitHub Issues: https://github.com/asilbek3450/fuzzytri/issues
- Email: asilbekmirolimov@gmail.com
Qo'shimcha Ma'lumotlar
Eslatma : Bu kutubxona hali rivojlanish jarayonida. Xatoliklar va takliflarni GitHub orqali bildirishingiz mumkin.
text
## Asosiy o'zgarishlar:
1. **Kod bloklari** to'g'ri formatda
2. **List itemlar** `-` bilan (yoki `*` bilan)
3. **Boshqa hamma narsa** bir xil saqlangan
Endi README.md to'g'ri ishlaydi va GitHub'da yaxshi ko'rinadi! 🚀
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fuzzytri-1.1.0.tar.gz.
File metadata
- Download URL: fuzzytri-1.1.0.tar.gz
- Upload date:
- Size: 39.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13fa7762330fc891f017cb574aa0922d52a3674ff211f9a4530dc92b8596187b
|
|
| MD5 |
5ec4abbd6d9e23471b5cb3f982f4797e
|
|
| BLAKE2b-256 |
b772ce1b183bd9fcc3e4cde242f6129947cedc17827cacaf0deccfec02551e31
|
File details
Details for the file fuzzytri-1.1.0-py3-none-any.whl.
File metadata
- Download URL: fuzzytri-1.1.0-py3-none-any.whl
- Upload date:
- Size: 21.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b02f9f8888d0e30953f34060a3dc6f36f04b78007885dd4782bda8b9757dc767
|
|
| MD5 |
beb6f5cd80293ae60afeed55b4984c5d
|
|
| BLAKE2b-256 |
0fa59d2fcdfdeb4889f420618fafb3b3a7c8a16b922a8bfe15ee364bf9bc3327
|