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
- numpy
- scipy
- matplotlib
- pandas
- 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
Scatter plot of t2
Update Log
Latest update instructions: 0.1.2-10.1.2023
Update log: Log
Contact
email: yibocat@yeah.net
Functional description
License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.