Java 模糊逻辑域模型
我一直在做一个涉及模糊逻辑控制器的项目,到目前为止一切都进展顺利 我已经成功地建模和实现了规范(S和T规范)、补充、模糊命题和隶属函数 然而,我现在面临的挑战是对FuzzyVariable建模,其中包括FuzzySet,其中包括UniversalSet 我的项目在离散值上工作,但我仍然希望为连续值添加一些支持 换句话说,我希望有一个类似于此的层次结构:Java 模糊逻辑域模型,java,domain-driven-design,domain-model,fuzzy-logic,Java,Domain Driven Design,Domain Model,Fuzzy Logic,我一直在做一个涉及模糊逻辑控制器的项目,到目前为止一切都进展顺利 我已经成功地建模和实现了规范(S和T规范)、补充、模糊命题和隶属函数 然而,我现在面临的挑战是对FuzzyVariable建模,其中包括FuzzySet,其中包括UniversalSet 我的项目在离散值上工作,但我仍然希望为连续值添加一些支持 换句话说,我希望有一个类似于此的层次结构: public interface UniversalSet { } public abstract class DiscreteUnivers
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;
}
问题是,我希望离散通用集能够返回离散值列表,但连续通用集能够返回范围(下限和上限)
阿尔法交点也是如此。我希望方法getalphacrossion(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) { ... }
}
公共接口通用集{
}
公共抽象类DiscreteUniversalSet实现UniversalSet{
public double[]getValues(){…}
}
公共抽象类ContinuousUniversalSet实现了UniversalSet{
公共双getLowerBound(){…}
公共双getUpperBound(){…}
}
公共接口模糊集{
T获取alpha交叉点(双alpha);
}
公共抽象类DiscreteFuzzySet实现FuzzySet{
公共离散Versalset GetAlpha相交(双alpha){…}
}
公共抽象类ContinuousFuzzySet实现了FuzzySet{
公共连续通用集GetAlpha相交(双alpha){…}
}
我不熟悉模糊逻辑领域,但我也不太理解你的问题。也许展示更多你目前拥有的东西会有所帮助。似乎要同时支持离散集和连续集,您可以声明一个返回值的抽象,该返回值将同时具有离散和连续实现。如果所有操作都返回范围值或离散值,您可以使FuzzySet
接口通用于该类型