我一直致力于一个涉及模糊逻辑控制器的项目,到目前为止一切都进展顺利。
我已成功建模并实施了规范(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
答案 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) { ... }
}