Skip to main content

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 darajasi
  • alpha_cut(alpha: float) -> Tuple[float, float]: Alfa-kesim oraliq
  • defuzzify(method: DefuzzificationMethod) -> float: Defuzzifikatsiya
  • plot(**kwargs) -> plt.Axes: Grafik chizish
  • union(other, method) -> Callable: Birlashma amali
  • intersection(other, method) -> Callable: Kesishma amali
  • complement() -> Callable: Komplement amali

Xususiyatlar

  • support: A'zolik > 0 bo'lgan oraliq
  • core: A'zolik = 1 bo'lgan oraliq
  • height: Maksimal a'zolik darajasi
  • area: Fuzzy to'plam yuzasi
  • centroid: 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 misollari
  • advanced_operations.py: Murakkab amallar misollari
  • visualization_demo.py: Vizualizatsiya misollari
  • defuzzification_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:

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fuzzytri-1.1.0.tar.gz (39.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fuzzytri-1.1.0-py3-none-any.whl (21.8 kB view details)

Uploaded Python 3

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

Hashes for fuzzytri-1.1.0.tar.gz
Algorithm Hash digest
SHA256 13fa7762330fc891f017cb574aa0922d52a3674ff211f9a4530dc92b8596187b
MD5 5ec4abbd6d9e23471b5cb3f982f4797e
BLAKE2b-256 b772ce1b183bd9fcc3e4cde242f6129947cedc17827cacaf0deccfec02551e31

See more details on using hashes here.

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

Hashes for fuzzytri-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b02f9f8888d0e30953f34060a3dc6f36f04b78007885dd4782bda8b9757dc767
MD5 beb6f5cd80293ae60afeed55b4984c5d
BLAKE2b-256 0fa59d2fcdfdeb4889f420618fafb3b3a7c8a16b922a8bfe15ee364bf9bc3327

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page