From c9453b7c53402de6c5130ea8df766c7b77cd3bd0 Mon Sep 17 00:00:00 2001 From: marcin-szczepanski Date: Thu, 12 May 2022 11:29:56 +0200 Subject: [PATCH] Fixes --- out/artifacts/jFuzzyLogic_jar/jFuzzyLogic.jar | Bin 3127600 -> 3127702 bytes .../defuzzifier/DefuzzifierMeanMax.java | 30 ++++++++++++------ .../membership/MembershipFunctionGenBell.java | 4 +-- 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/out/artifacts/jFuzzyLogic_jar/jFuzzyLogic.jar b/out/artifacts/jFuzzyLogic_jar/jFuzzyLogic.jar index 4db8b79a7fbec3fd4317897cb22ae05ed87dc326..7887a3037143ec4675b0d09a6a7deff96df5c9f2 100644 GIT binary patch delta 32669 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 delta 32401 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 z z6tf+V&FC+HO-I;a<&n(!E-vt!zAy+5QFJf1EkJM-`P;IHwio4%gttYJa4Wi^Xzk|* z!)rGu_03qfn}`pgYBzQ1RQzW*`4)ngqJ_U9^(_gmZ%d=>e5;6N3)DL*>-GPQpv;C7Pt)X{?BeAz6EHBu3$C7`kHU!0n8LPb@pQJ4)hB0y0h+ z+-h?xW0~6zmtuvwEue}!*Uxbj_fUkyas4zg1B>ItDA?l2d9O?f>5$xTB2)U!|J%&x zh0*AE4&!C<90LBz|0RaYhtxv6XdF*R`@7j%YTh1BVHqV_YGNs|s(!4Kd)Van%Qg7T zJ>mt!#7ZsIRw)ffZ~|p8tV#npRkPs3<77-j0t=SgGxm6uxgi>6az{urPcUOa6K~Q%TqI zBQG*s-X}sC`_ChpI19687kGSW_tuWnY?brjz#~I#W5z&iJdAnzWys zTXR)QJ-BKb3EvFj&EHS%%<5F(6JQ%e&>ezw%i)?vW-R;0gsb0}JP@RO$w=du#jvH( zz~%00XgY1M(dl9;&kiq6XLBz6Y=^DtHI2aObi02}^{JiiMNhhTQGc@+od@VHNWN`y zK=1*ofsQ+NNW@(e53L`tqIvUT8>oXhND^9)rLS*Z^m}tfa;(>(Jpm#ZNa} zKEtzqAQtEuY>~fDz;BT67ygV3ZGKjC+~ysC(FP`4eNQr^_P5b1MH@) zzm>6RitLWpvcy<~9b%F0$tuW%mMmhqpn$rb*K#=>7VhxKB7%QT#f&U2IJQkwem#*q zh4r$8tc$?Evcw8~+DxP$rmepGFs&y(4a-E3e&ifG@W;cHRlT1*!LuHd45@P&kt={5 zqz;RMY|6_Pv}B9749N>+xGa*r71P|#`xPIOrstQ)II%A+#thgBXja5 zpgrd=3fL)4Mrs;!J_gS_Lh#X2o?a=FpGM>n^7O|F8Cxo425sxFyL^tj{mU9+T;O`0GX$@6~$c7FS=d$^r)E4V`i>7B1ktMD|4vm z^~lK)fgBFs=WzYg)C!TyS$7nyxikQazC~Lu_5V(|B(Ky%T{oMf3*jB3!X0vW{`nt&? z!jdl*(h(YwFZ}f1C89Z>>dXm!`JA%bs?7+tnY{-ZYb{`vo9fNDRd43XP%#NTqs3sf z7tr(@+iXT|v-wH%6;KEc!c<6QxACkQH_w`-0UR}jWXmgPFBE}}trz>rMA}F$0jCua zf7j<`Z1}>=%k4$P17sJG4J*-IL<-M$KopAr!{|;kvOCTH6Zu$mkw3b@h%KcY&|ek{ z6ODwvVzxM_2ak$b#kvwPMfV<#mT0|nr7l!8RzSRFqVr&hUxPy_-MXmyb|G&ZyS}9+r0~L zv7GoLgDud7Sk!P;cCieoAQSj}X9X#Hc#7^kay=fmDkv3Em{v&>tFMir9osFu8B#@b zWtC*ip-(J$`ikXO!grfs{rxL&ts*^V|AJLjq$dGo{4sQNSn$TzmeGnOJ{-B(?51a{ z>06J(%xV$f_|pwbzsTO|@ExV~qVIpe%QmGG zdXR3Tz*^B^6G4uiy^k?@bTYD{vZWtfLwfJ`TCnT3#S5u596HzTTCnOD%eVna=wT*$ z6Nc8(FO&BWZ`5*&;C>&fYUyr?#gIBqSBW}Q)v*(H)QL&D^{A|)L*V=%J4`;#MO)?& zdt%>l+EZ2sd*Yd4d~bs`fUGw&h-Dp>)BJjNtREx$a|Zo_hH5>npb~dDH;8%8KY99S zoLIVfGuFKCIDbMj~iqgy}}A(B1$agwJEp zc;%#!T6S_1*>yJ%Ax&h{i^yscvuHMc)x;wR<)J?CUBXB6MpTlofhSl=9Ns)3e23gw IraTq)Uq>*r1^@s6 diff --git a/src/main/java/net/sourceforge/jFuzzyLogic/defuzzifier/DefuzzifierMeanMax.java b/src/main/java/net/sourceforge/jFuzzyLogic/defuzzifier/DefuzzifierMeanMax.java index 23d27a8..ef23d43 100644 --- a/src/main/java/net/sourceforge/jFuzzyLogic/defuzzifier/DefuzzifierMeanMax.java +++ b/src/main/java/net/sourceforge/jFuzzyLogic/defuzzifier/DefuzzifierMeanMax.java @@ -15,28 +15,38 @@ public class DefuzzifierMeanMax extends DefuzzifierContinuous { /** Deffuzification function */ @Override public double defuzzify() { + /** + * Fixes: + * @author mdsflyboy + */ + double max = 0, maxX = 0; - int count = 0; // Calculate max - for( int i = 0; i < values.length; i++ ) { - if( values[i] >= max ) max = values[i]; + for (double value : values) { + if (value >= max) + max = value; } // No max? => this variable has no active antecedent - if( max <= 0 ) return Double.NaN; + if (max <= 0) return Double.NaN; // Calculate mean of max - for( int i = 0; i < values.length; i++ ) { - if( values[i] == max ) { - maxX += min + stepSize * i; - count++; + boolean isFirstMax = false; + int startOfMax = 0; + for (int i = 0; i < values.length; i++) { + if (values[i] == max) { + if (!isFirstMax){ + isFirstMax = true; + startOfMax = i; + } + maxX = i; } } // Return mean of max - return maxX / count; - + int middleI = (int) ((maxX + startOfMax) / 2); + return min + stepSize * middleI; } @Override diff --git a/src/main/java/net/sourceforge/jFuzzyLogic/membership/MembershipFunctionGenBell.java b/src/main/java/net/sourceforge/jFuzzyLogic/membership/MembershipFunctionGenBell.java index e9e00ec..451f9fa 100644 --- a/src/main/java/net/sourceforge/jFuzzyLogic/membership/MembershipFunctionGenBell.java +++ b/src/main/java/net/sourceforge/jFuzzyLogic/membership/MembershipFunctionGenBell.java @@ -64,12 +64,12 @@ public class MembershipFunctionGenBell extends MembershipFunctionContinuous { */ @Override public String toString() { - return getName() + " : " + " , " + parameters[0] + parameters[1] + " , " + parameters[2]; + return getName() + " : " + parameters[1] + " , " + parameters[2] + " , " + parameters[0]; } /** FCL representation */ @Override public String toStringFcl() { - return "GBELL " + parameters[0] + " " + parameters[1] + " " + parameters[2]; + return "GBELL " + parameters[1] + " " + parameters[2] + " " + parameters[0]; } }