java - 模糊逻辑域模型

标签 java domain-driven-design domain-model fuzzy-logic

我一直在从事一个涉及模糊逻辑 Controller 的项目,到目前为止一切进展顺利。

我已经成功建模并实现了范数(S 和 T 范数)、补集、模糊命题和隶属函数。

但是,我现在面临着对 FuzzyVariable 建模的挑战,其中包括 FuzzySet,其中包括 UniversalSet。

我的项目适用于离散值,但我仍然想添加一些对连续值的支持。

换句话说,我想要一个与此类似的层次结构:

public interface UniversalSet {
}

public abstract class DiscreteUniversalSet implements UniversalSet {
}

public abstract class ContinuousUniversalSet implements UniversalSet {
}

public interface FuzzySet {
}

public abstract class DiscreteFuzzySet implements FuzzySet {
    private DiscreteUniversalSet universalSet;
}

public abstract class ContinuousFuzzySet implements FuzzySet {
    private ContinuouUniversalSet universalSet;
}

问题是,我希望离散通用集能够返回离散值列表,但连续通用集返回范围(下限和上限)。

对于 alpha 交叉点也是如此。我希望方法 getAlphaIntersection(double alpha) 返回离散模糊集的离散值列表,以及连续模糊集的范围列表。

目前,这个问题稍微让我想起了一个正方形-矩形(或圆-椭圆)问题,但我不太确定如何继续。

感谢任何帮助:D

最佳答案

使用泛型:

public interface UniversalSet {
}

public abstract class DiscreteUniversalSet implements UniversalSet {
    public double[] getValues() {...}
}

public abstract class ContinuousUniversalSet implements UniversalSet {
    public double getLowerBound() {...}
    public double getUpperBound() {...}
}

public interface FuzzySet<T extends UniversalSet> {
    T getAlphaIntersection(double alpha);
}

public abstract class DiscreteFuzzySet implements FuzzySet<DiscreteUniversalSet> {
    public DiscreteUniversalSet getAlphaIntersection(double alpha) { ... }
}

public abstract class ContinuousFuzzySet implements FuzzySet<ContinuousUniversalSet> {
    public ContinuousUniversalSet getAlphaIntersection(double alpha) { ... }
}

关于java - 模糊逻辑域模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13766171/

相关文章:

Grails - 在刷新 grails 错误之前保存 transient 实例?

java - 当我使用 parcelable 接口(interface)读/写 boolean 值时,会发生空对象引用,为什么?

java - Java中逗号后面的数字

.net - 存储库模式中的事务

f# - 用可区分联合和记录类型表示浮点

.net - 如何在领域模型实体类中注入(inject)辅助依赖

java - 如何向模块路径添加依赖项?

java - SonarQube:将传入依赖项的数量保存为指标

clojure - clojure 中的存储库模式

domain-driven-design - DDD - 如何补水