模糊逻辑域模型

时间:2012-12-07 15:36:42

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

我一直致力于一个涉及模糊逻辑控制器的项目,到目前为止一切都进展顺利。

我已成功建模并实施了规范(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-intersectionctions也是如此。我希望方法getAlphaIntersection(double alpha)返回离散模糊集的离散值列表,以及连续模糊集的范围列表。

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

感谢任何帮助:D

1 个答案:

答案 0 :(得分:1)

使用泛型:

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) { ... }
}