Skip to main content

MohuPy is a fuzzy set calculation library, which contains fuzzy numbers, fuzzy measure, fuzzy sets and fuzzy membership functions.

Project description

MohuPy(developing...)

MohuPy is a fuzzy logic and fuzzy mathematics toolkit which includes q-rung orthopair fuzzy sets, q-rung orthopair interval-valued fuzzy sets. This also includes advanced uses of q-rung orthopair fuzzy sets and q-rung orthopair interval-valued fuzzy sets.

Installation

Download the latest version MohuPy-xx.zip. Put it into your project and unzip it.

cd MohuPy-xx
pip install .

Requirements

  1. numpy
  2. scipy
  3. matplotlib
  4. pandas
  5. networkx

TODO

  • Regedit
  • Q-rung orthopair hesitant fuzzy sets
  • Add more Archimedean norm operations and register (Einstein, Frank, Hamacher)
  • Neural network
  • Fuzzy function
  • Derivatives of fuzznum function and gradients of mohuset functions
  • Integrate the operations of fuzzy numbers and fuzzy sets into computational graph models

Quick Start

1. Construct a q-rung orthopair fuzzy number

import mohupy as mp

t = mp.fuzznum(3, 0.7, 0.3)
print(f'Fuzzy number: {t}')
print(f'Fuzzy type:{t.mtype}')
print(f'Score: {t.score}')
Fuzzy number: <0.7,0.3>
Fuzzy type: qrofn
Score: 0.3160 

A Fermatean fuzzy number with qrung=3 and a membership degree of 0.7 and a non-membership degree of 0.3

2. Randomly generate a qrung=3, q-rung orthopair fuzzy matrix with a shape of 3*5

import mohupy as mp
t = mp.random.rand(3, 'qrofn', 3, 5)
print(t)
[[<0.9231,0.3439> <0.7568,0.0039> <0.4517,0.0026> <0.5421,0.4783>
  <0.277,0.5086>]
 [<0.9031,0.595> <0.4604,0.8352> <0.1529,0.3904> <0.1572,0.3834>
  <0.2359,0.4272>]
 [<0.476,0.7841> <0.17,0.6308> <0.3336,0.1038> <0.5024,0.1449>
  <0.6342,0.4409>]]

3. Calculate the dot product and cartesian sum of two q-rung orthopair fuzzy vectors

import mohupy as mp
t1 = mp.random.rand(3, 'qrofn', 5)
t2 = mp.random.rand(3, 'qrofn', 5)
print(mp.dot(t1, t2))
print(mp.cartadd(t1,t2))
<0.9235,0.0175>

[[<0.4802,0.0492> <0.8261,0.3321> <0.9261,0.264> <0.5774,0.2483>
  <0.9767,0.1092>]
 [<0.7632,0.0107> <0.8994,0.0723> <0.9552,0.0574> <0.7914,0.054>
  <0.9856,0.0238>]
 [<0.9328,0.0143> <0.9682,0.0963> <0.9853,0.0765> <0.9394,0.072>
  <0.9952,0.0317>]
 [<0.8182,0.0166> <0.9198,0.1124> <0.9638,0.0893> <0.8384,0.084>
  <0.9883,0.037>]
 [<0.6558,0.0186> <0.8653,0.1256> <0.9412,0.0998> <0.7035,0.0939>
  <0.9813,0.0413>]]

4. Matrix multiplication of two fuzzy matrices

import mohupy as mp
t1 = mp.random.rand(3, 'qrofn', 3,5)
t2 = mp.random.rand(3, 'qrofn', 5,4)
print(t1@t2)
[[<0.7138,0.1048> <0.535,0.16> <0.5321,0.3022> <0.5155,0.1704>]
 [<0.3536,0.0401> <0.4134,0.1281> <0.3376,0.0712> <0.5114,0.1001>]
 [<0.4219,0.0519> <0.5131,0.0532> <0.2228,0.033> <0.1698,0.0369>]]

5. Calculate the Shapley index with a set [0.4,0.25,0.37,0.2] (using lambda fuzzy measure)

import mohupy as mp
t = [0.4,0.25,0.37,0.2]
print(mp.indices.shapley(t, mp.lambda_meas, t))
[0.33322906 0.2013346  0.30610416 0.15933218]

6. Randomly generate 15 qrofn and ivfn and draw their distribution map

import mohupy as mp
t1 = mp.random.rand(3, 'ivfn', 15)
t2 = mp.random.rand(3, 'qrofn', 15)
mp.plot(t1)
mp.plot(t2)

Scatter plot of t1

img2.png

Scatter plot of t2

img1.png

Update Log

Latest update instructions: 0.1.2-10.1.2023

Update log: Log

Contact

email: yibocat@yeah.net

Functional description

Chinese

English

License

MIT

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

MohuPy-0.2.7.tar.gz (41.0 kB view hashes)

Uploaded Source

Built Distribution

MohuPy-0.2.7-py3-none-any.whl (59.3 kB view hashes)

Uploaded Python 3

Supported by

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