74-add-jFuzzyLogic #75
@ -3,14 +3,11 @@ package ru.ulstu.extractor;
|
|||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.scheduling.annotation.EnableScheduling;
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||||
import ru.ulstu.extractor.rule.service.FuzzyInference;
|
|
||||||
|
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
@EnableScheduling
|
@EnableScheduling
|
||||||
public class GitExtractorApplication {
|
public class GitExtractorApplication {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
||||||
new FuzzyInference().run();
|
|
||||||
SpringApplication.run(GitExtractorApplication.class, args);
|
SpringApplication.run(GitExtractorApplication.class, args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,12 +10,61 @@ import net.sourceforge.jFuzzyLogic.rule.LinguisticTerm;
|
|||||||
import net.sourceforge.jFuzzyLogic.rule.Variable;
|
import net.sourceforge.jFuzzyLogic.rule.Variable;
|
||||||
import net.sourceforge.jFuzzyLogic.ruleConnection.RuleConnectionMethodAndMin;
|
import net.sourceforge.jFuzzyLogic.ruleConnection.RuleConnectionMethodAndMin;
|
||||||
import net.sourceforge.jFuzzyLogic.ruleImplication.RuleImplicationMethodMin;
|
import net.sourceforge.jFuzzyLogic.ruleImplication.RuleImplicationMethodMin;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import ru.ulstu.extractor.rule.model.AntecedentValue;
|
||||||
|
import ru.ulstu.extractor.rule.model.Rule;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class FuzzyInferenceService {
|
||||||
|
private final RuleService ruleService;
|
||||||
|
private final AntecedentValueService antecedentValueService;
|
||||||
|
|
||||||
|
public FuzzyInferenceService(RuleService ruleService,
|
||||||
|
AntecedentValueService antecedentValueService) {
|
||||||
|
this.ruleService = ruleService;
|
||||||
|
this.antecedentValueService = antecedentValueService;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<FuzzyRule> getFuzzyRulesFromDb() {
|
||||||
|
List<FuzzyRule> fuzzyRules = new ArrayList<>();
|
||||||
|
//List<Variable> variables = getFuzzyVariables();
|
||||||
|
for (Rule dbRule : ruleService.getList()) {
|
||||||
|
FuzzyRule fuzzyRule = new FuzzyRule(String.format("Fuzzy rule %s", dbRule.getId()));
|
||||||
|
// fuzzyRule.setAntecedents(expression);
|
||||||
|
// fuzzyRule.setConsequents(new LinkedList<>(Collections.singleton(new FuzzyRuleTerm(dbRule.getConsequent(), false))));
|
||||||
|
fuzzyRules.add(fuzzyRule);
|
||||||
|
}
|
||||||
|
return fuzzyRules;
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<Variable> getFuzzyVariablesWithoutMembership() {
|
||||||
|
List<Variable> variables = new ArrayList<>();
|
||||||
|
List<AntecedentValue> antecedentValues = antecedentValueService.getList();
|
||||||
|
for (AntecedentValue antecedentValue : antecedentValues) {
|
||||||
|
variables.add(new Variable(antecedentValue.getAntecedentValue()));
|
||||||
|
}
|
||||||
|
return variables;
|
||||||
|
}
|
||||||
|
|
||||||
|
// private FuzzyRuleExpression getFuzzyRulesAntecedents(TimeSeriesType timeSeriesType1, TimeSeriesType timeSeriesType2) {
|
||||||
|
// return new FuzzyRuleExpression(getFuzzyRuleTerm(), getFuzzyRuleTerm(), new RuleConnectionMethodAndMin());
|
||||||
|
// }
|
||||||
|
|
||||||
|
private FuzzyRuleExpression getFuzzyRuleExpression(FuzzyRuleTerm term1, FuzzyRuleTerm term2) {
|
||||||
|
return new FuzzyRuleExpression(term1, term2, new RuleConnectionMethodAndMin());
|
||||||
|
}
|
||||||
|
|
||||||
|
private FuzzyRuleTerm getFuzzyRuleTerm(Variable variable, String term) {
|
||||||
|
return new FuzzyRuleTerm(variable, term, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public class FuzzyInference {
|
|
||||||
public void run() {
|
public void run() {
|
||||||
FuzzyRule fuzzyRule1 = new FuzzyRule("rule 1");
|
FuzzyRule fuzzyRule1 = new FuzzyRule("rule 1");
|
||||||
FuzzyRule fuzzyRule2 = new FuzzyRule("rule 2");
|
FuzzyRule fuzzyRule2 = new FuzzyRule("rule 2");
|
Loading…
Reference in New Issue
Block a user