我一直在从事一个涉及模糊逻辑 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/