Skip to content
This repository was archived by the owner on May 23, 2022. It is now read-only.

Commit 6438061

Browse files
committed
Merge branch 'main' of https://github.com/manleviet/ChocoKB
2 parents 8f2621c + 32f39d6 commit 6438061

File tree

7 files changed

+42
-14
lines changed

7 files changed

+42
-14
lines changed

.idea/copyright/manleviet.xml

Lines changed: 0 additions & 6 deletions
This file was deleted.

.idea/copyright/profiles_settings.xml

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Knowledge bases:
66

77
1. [PC](https://www.itu.dk/research/cla/externals/clib/)
88
2. [Renault](https://www.itu.dk/research/cla/externals/clib/)
9+
3. [Feature Models](http://www.splot-research.org)
910

1011
## How to use
1112

pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,12 @@
2222
<artifactId>fm</artifactId>
2323
<version>1.2</version>
2424
</dependency>
25+
26+
<dependency>
27+
<groupId>at.tugraz.ist.ase</groupId>
28+
<artifactId>eval-package</artifactId>
29+
<version>1.2</version>
30+
</dependency>
2531
</dependencies>
2632

2733
<distributionManagement>

src/main/java/at/tugraz/ist/ase/common/ConstraintUtils.java

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,32 @@
1111
import at.tugraz.ist.ase.knowledgebases.core.Constraint;
1212
import lombok.NonNull;
1313
import lombok.experimental.UtilityClass;
14+
import lombok.extern.slf4j.Slf4j;
15+
import org.chocosolver.solver.Model;
1416

17+
import java.util.Collection;
1518
import java.util.List;
1619
import java.util.Set;
1720
import java.util.stream.Collectors;
1821

22+
import static at.tugraz.ist.ase.eval.evaluator.PerformanceEvaluator.incrementCounter;
23+
1924
@UtilityClass
25+
@Slf4j
2026
public final class ConstraintUtils {
2127

28+
// for evaluation
29+
public final String COUNTER_UNPOST_CONSTRAINT = "The number of unpost constraints:";
30+
public final String COUNTER_POST_CONSTRAINT = "The number of post constraints:";
31+
public final String COUNTER_CONSTAINS_CONSTRAINT = "The number of contains calls:";
32+
2233
public String convertToString(@NonNull Set<Constraint> ac) {
2334
return ac.stream().map(Constraint::toString).collect(Collectors.joining("\n"));
2435
}
2536

2637
public String convertToStringWithMessage(@NonNull List<Set<Constraint>> allDiag, @NonNull String mess) {
38+
if (allDiag.isEmpty()) return "";
39+
2740
StringBuilder sb = new StringBuilder();
2841
int count = 0;
2942
for (Set<Constraint> diag : allDiag) {
@@ -39,11 +52,29 @@ public String convertToStringWithMessage(@NonNull List<Set<Constraint>> allDiag,
3952
return sb.toString();
4053
}
4154

55+
public void postConstraints(Collection<Constraint> C, Model toModel) {
56+
for (Constraint c : C) {
57+
c.getChocoConstraints().forEach(toModel::post);
58+
incrementCounter(COUNTER_POST_CONSTRAINT, c.getChocoConstraints().size());
59+
}
60+
log.trace("{}Posted constraints", LoggerUtils.tab);
61+
}
62+
4263
public boolean isMinimal(Set<Constraint> diag, List<Set<Constraint>> allDiag) {
43-
return allDiag.stream().noneMatch(diag::containsAll);
64+
return allDiag.parallelStream().noneMatch(diag::containsAll);
4465
}
4566

4667
public boolean containsAll(List<Set<Constraint>> allDiag, Set<Constraint> diag) {
47-
return allDiag.stream().anyMatch(adiag -> adiag.containsAll(diag));
68+
return allDiag.parallelStream().anyMatch(adiag -> adiag.containsAll(diag));
69+
}
70+
71+
public boolean hasIntersection(Collection<Constraint> col1, Collection<Constraint> col2) {
72+
return col1.parallelStream().anyMatch(col2::contains);
73+
/*
74+
for (Constraint c : col1) {
75+
if (col2.contains(c)) return true;
76+
}
77+
return false;
78+
*/
4879
}
4980
}

src/main/java/at/tugraz/ist/ase/knowledgebases/core/KB.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import java.util.List;
1919
import java.util.stream.IntStream;
2020

21-
import static com.google.common.base.Preconditions.checkArgument;
2221
import static com.google.common.base.Preconditions.checkElementIndex;
2322

2423
@Getter

src/main/java/at/tugraz/ist/ase/knowledgebases/pc/PCKB.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@
2020
import java.util.Arrays;
2121
import java.util.LinkedList;
2222
import java.util.List;
23-
import java.util.stream.IntStream;
24-
25-
import static com.google.common.base.Preconditions.checkArgument;
2623

2724
@Slf4j
2825
public class PCKB extends KB {

0 commit comments

Comments
 (0)