gpt4 book ai didi

java - 模糊逻辑真实性论证

转载 作者:搜寻专家 更新时间:2023-11-01 03:23:03 24 4
gpt4 key购买 nike

我正在创建一个演示模糊逻辑真实性的简单示例。问题在于确定结果的真实性。

我的第一个顾虑:通过测试高目标和低目标之间的真值,这真的是在使用模糊逻辑吗?

我的第二个担忧:目标/阈值命中的真实性百分比似乎不正确。

结果:

Miss: 30
Hit: 40 at 100% true ( should be 80% ? )
Hit: 50 at 80% true ( should be 100% ? )
Hit: 60 at 66% true ( should be 80% ? )
Miss: 70

类:

public class FuzzyTest {

class Result {
int value;
int truthfullness;
}

Result evaluate(final int valueIn, final int target, final int threshold) {
Result result = null;
final boolean truth = (((target - threshold) <= valueIn) && (valueIn <= (target + threshold)));
if (truth) {
result = new Result();
result.value = valueIn;
result.truthfullness = (int) (100.0 - (100.0 * (valueIn - Math.abs(target - threshold)) / valueIn));
}
return result;
}

public static void main(final String[] args) {
final int[] arrayIn = new int[] { 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100 };
final int threshold = 10;
final int target = 50;
final FuzzyTest fuzzy = new FuzzyTest();
for (final int x : arrayIn) {
final Result result = fuzzy.evaluate(x, target, threshold);
if (result == null) {
System.out.println("Miss: " + x);
}
else {
System.out.println("Hit: " + x + " at " + result.truthfullness + "% true");
}
}
}
}

最佳答案

By testing a value for truth between a high and low target, is this really using fuzzy logic?

没有。它仍然是相同的 boolean 逻辑。要真正获得模糊值,您必须从输入变量的模糊函数中获得模糊值。

模糊函数是一种接收实数值并返回介于 0 和 1 之间的值的函数。它说明了该变量的真实程度。例如,在下图中(取自维基百科关于 Fuzzy 的文章),真实值温度将具有“冷”、“暖”和“热”的程度。这些值(value)观就是您的诚实。

Fuzzy input example

Truthfulness % seems incorrect for target/threshold hits.

是的,这是不正确的。首先,因为您的阈值在模糊定义中实际上介于 0 和 1 之间(因此,您已经有了一个百分比)。其次,如果您定义 [0, 100] 的阈值,则它不是模糊的。


如果您正在使用 Java 创建一个模糊系统(即使是一个简单的系统),我可以推荐一个好的框架来完成它吗?尝试使用 jFuzzyLogic .它将帮助您对 Fuzzy 系统进行编程并了解 Fuzzy 的工作原理。

关于java - 模糊逻辑真实性论证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24023380/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com