.log-Dateien zu gitignore hinzufügen. Filter in Unify verbessern

This commit is contained in:
JanUlrich 2015-07-08 14:23:29 +02:00
parent c3a8567e3f
commit 38176163d5
2 changed files with 23 additions and 17 deletions

1
.gitignore vendored
View File

@ -1,6 +1,7 @@
CVS CVS
bin bin
*.class *.class
*.log
# Mobile Tools for Java (J2ME) # Mobile Tools for Java (J2ME)
.mtj.tmp/ .mtj.tmp/

View File

@ -665,29 +665,34 @@ public class Unify
if(filter){ if(filter){
Cloner cloner = new Cloner(); Cloner cloner = new Cloner();
Menge<Menge<Menge<Pair>>> temp = new Menge<>(); Menge<Menge<Menge<Pair>>> temp = new Menge<>(); //hier werden gefilterte Constraints gesammelt
Menge<Pair> undMenge = new Menge<Pair>(); //Die Menge von Pairs, welche in jedem Kartesischen Produkt enthalten sind. Menge<Pair> undMenge = new Menge<Pair>(); //Die Menge von Pairs, welche in jedem Kartesischen Produkt enthalten sind.
undMenge.addAll(cloner.deepClone(Eq1)); undMenge.addAll(cloner.deepClone(Eq1));
for (Menge<Menge<Pair>> vecvecpair : cartProduktSets){ Menge<Menge<Menge<Pair>>> oderConstraints = new Menge<>();//Die zu filternden Constraints
Menge<Menge<Pair>> temp2 = new Menge<>(); for (Menge<Menge<Pair>> vecvecpair : cartProduktSets){
if(vecvecpair.size() == 1){//gibt es nur eine UndMenge in diesem Set, dann kommt diese in jedem Karthesischen Produkt vor: if(vecvecpair.size() == 1){//gibt es nur eine UndMenge in diesem Set, dann kommt diese in jedem Karthesischen Produkt vor:
undMenge.addAll(cloner.deepClone(vecvecpair.firstElement())); undMenge.addAll(cloner.deepClone(vecvecpair.firstElement()));
temp2 = vecvecpair; temp.add(vecvecpair);
}else{//gibt es mehrere Mengen, kann gefiltert werden: }else{//gibt es mehrere Mengen, kann gefiltert werden:
for(Menge<Pair> pairs : vecvecpair){ oderConstraints.add(vecvecpair); //die Menge zu den zu filternden OderConstraints anfügen
Menge<Pair> testMenge = new Menge<Pair>();
testMenge.addAll(cloner.deepClone(undMenge));
testMenge.addAll(cloner.deepClone(pairs));
Menge<Menge<Pair>> test = Unify.unifyFiltered(testMenge, fc_tto, false);
if(test.size()>0){
temp2.add(pairs);
}
else{
log.debug("Ausgesondertes Constraint: "+pairs);
}
}
} }
temp.add(temp2); }
//Filtere die OderConstraints:
for(Menge<Menge<Pair>> oderConstraint : oderConstraints){
Menge<Menge<Pair>> filteredOCons = new Menge<>(); //diese Menge sammelt nur Cons
for(Menge<Pair> pairs : oderConstraint){
Menge<Pair> testMenge = new Menge<Pair>();
testMenge.addAll(cloner.deepClone(undMenge));
testMenge.addAll(cloner.deepClone(pairs));
Menge<Menge<Pair>> test = Unify.unifyFiltered(testMenge, fc_tto, false);
if(test.size()>0){
filteredOCons.add(pairs);
}
else{
log.debug("Ausgesondertes Constraint: "+pairs);
}
}
temp.add(filteredOCons);
} }
SetView<Menge<Menge<Pair>>> difference = Sets.difference(cartProduktSets, temp); SetView<Menge<Menge<Pair>>> difference = Sets.difference(cartProduktSets, temp);
log.debug("Ausgelöschte Constraints: "+difference.toString()); log.debug("Ausgelöschte Constraints: "+difference.toString());