0

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

我已经成功地建模和实现了范数(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;
}

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

阿尔法交叉点也是如此。我想要方法getAlphaIntersection(double alpha)返回离散模糊集的离散值列表和连续模糊集的范围列表。

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

任何帮助表示赞赏:D

4

1 回答 1

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) { ... }
}
于 2013-01-27T04:45:51.833 回答