Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions src/main/java/de/learnlib/ralib/ct/CTAutomatonBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
import de.learnlib.ralib.data.VarMapping;
import de.learnlib.ralib.data.util.SymbolicDataValueGenerator.ParameterGenerator;
import de.learnlib.ralib.learning.AutomatonBuilder;
import de.learnlib.ralib.learning.rastar.RaStar;
import de.learnlib.ralib.learning.slstar.SLStar;
import de.learnlib.ralib.oracles.Branching;
import de.learnlib.ralib.smt.ConstraintSolver;
import de.learnlib.ralib.smt.ReplacingValuesVisitor;
Expand All @@ -41,8 +41,8 @@
* Builder class for building a {@link CTHypothesis} from a {@link ClassificationTree}.
* This class implements similar functionality as {@link AutomatonBuilder} and
* {@link de.learnlib.ralib.learning.IOAutomatonBuilder},
* but tailored for the {@link de.learnlib.ralib.learning.ralambda.SLLambda} and
* {@link de.learnlib.ralib.learning.ralambda.SLCT} learning algorithms.
* but tailored for the {@link de.learnlib.ralib.learning.sllambda.SLLambda} and
* {@link de.learnlib.ralib.learning.sllambda.SLCT} learning algorithms.
*
* {@code CTAutomatonBuilder} supports construction of automata from an incomplete classification tree,
* so long as the classification tree is closed and consistent.
Expand Down Expand Up @@ -91,13 +91,13 @@ public CTHypothesis buildHypothesis() {

private void computeLocations() {
// compute initial location
CTLeaf initial = ct.getLeaf(RaStar.EMPTY_PREFIX);
CTLeaf initial = ct.getLeaf(SLStar.EMPTY_PREFIX);
RALocation l0 = hyp.addInitialState(initial.isAccepting());
locations.put(RaStar.EMPTY_PREFIX, l0);
locations.put(SLStar.EMPTY_PREFIX, l0);
for (Word<PSymbolInstance> sp : initial.getShortPrefixes()) {
locations.put(sp, l0);
}
hyp.setAccessSequence(l0, RaStar.EMPTY_PREFIX);
hyp.setAccessSequence(l0, SLStar.EMPTY_PREFIX);
leaves.put(initial, l0);

// compute non-initial locations
Expand Down
14 changes: 7 additions & 7 deletions src/main/java/de/learnlib/ralib/ct/CTPath.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,19 @@
import de.learnlib.ralib.data.DataValue;
import de.learnlib.ralib.data.util.DataUtils;
import de.learnlib.ralib.learning.SymbolicSuffix;
import de.learnlib.ralib.learning.rastar.RaStar;
import de.learnlib.ralib.learning.slstar.SLStar;
import de.learnlib.ralib.oracles.TreeOracle;
import de.learnlib.ralib.smt.ConstraintSolver;
import de.learnlib.ralib.theory.SDT;

/**
* This data structure stores the SDTs from tree queries for a prefix along a path
* in a {@link ClassificationTree}. It contains much of the same functionality as
* {@link de.learnlib.ralib.learning.rastar.Row}, but adapted for use with classification trees.
* {@link de.learnlib.ralib.learning.slstar.Row}, but adapted for use with classification trees.
*
* @author fredrik
* @author falk
* @see de.learnlib.ralib.learning.rastar.Row
* @see de.learnlib.ralib.learning.slstar.Row
*/
public class CTPath {
private final Map<SymbolicSuffix, SDT> sdts;
Expand Down Expand Up @@ -54,7 +54,7 @@ public Map<SymbolicSuffix, SDT> getSDTs() {
}

public boolean isAccepting() {
SDT s = sdts.get(RaStar.EMPTY_SUFFIX);
SDT s = sdts.get(SLStar.EMPTY_SUFFIX);
return s.isAccepting();
}

Expand Down Expand Up @@ -136,9 +136,9 @@ private static boolean equalTypeSizes(Set<DataValue> s1, Set<DataValue> s2) {
*/
public static CTPath computePath(TreeOracle oracle, Prefix prefix, List<SymbolicSuffix> suffixes, boolean ioMode) {
CTPath r = new CTPath(ioMode);
SDT sdt = prefix.getSDT(RaStar.EMPTY_SUFFIX);
sdt = sdt == null ? oracle.treeQuery(prefix, RaStar.EMPTY_SUFFIX) : sdt;
r.putSDT(RaStar.EMPTY_SUFFIX, sdt);
SDT sdt = prefix.getSDT(SLStar.EMPTY_SUFFIX);
sdt = sdt == null ? oracle.treeQuery(prefix, SLStar.EMPTY_SUFFIX) : sdt;
r.putSDT(SLStar.EMPTY_SUFFIX, sdt);
for (SymbolicSuffix s : suffixes) {
sdt = prefix.getSDT(s);
if (sdt == null) {
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/de/learnlib/ralib/ct/ClassificationTree.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
import de.learnlib.ralib.data.util.RemappingIterator;
import de.learnlib.ralib.data.util.SymbolicDataValueGenerator.ParameterGenerator;
import de.learnlib.ralib.learning.SymbolicSuffix;
import de.learnlib.ralib.learning.rastar.RaStar;
import de.learnlib.ralib.learning.slstar.SLStar;
import de.learnlib.ralib.oracles.Branching;
import de.learnlib.ralib.oracles.TreeOracle;
import de.learnlib.ralib.oracles.mto.OptimizedSymbolicSuffixBuilder;
Expand Down Expand Up @@ -79,7 +79,7 @@ public ClassificationTree(TreeOracle oracle,
shortPrefixes = new LinkedHashSet<>();
outputs = outputSuffixes(inputs);

root = new CTInnerNode(null, RaStar.EMPTY_SUFFIX);
root = new CTInnerNode(null, SLStar.EMPTY_SUFFIX);
}

public Set<CTLeaf> getLeaves() {
Expand Down Expand Up @@ -169,7 +169,7 @@ public Set<Word<PSymbolInstance>> getExtensions(Word<PSymbolInstance> u, Paramet
* Initialize the classification tree by sifting the empty prefix.
*/
public void initialize() {
sift(RaStar.EMPTY_PREFIX);
sift(SLStar.EMPTY_PREFIX);
}

///////////////////////////////////////////
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/de/learnlib/ralib/learning/AutomatonBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
import de.learnlib.ralib.data.*;
import de.learnlib.ralib.data.SymbolicDataValue.Parameter;
import de.learnlib.ralib.data.SymbolicDataValue.Register;
import de.learnlib.ralib.learning.rastar.RaStar;
import de.learnlib.ralib.learning.slstar.SLStar;
import de.learnlib.ralib.oracles.Branching;
import de.learnlib.ralib.smt.ReplacingValuesVisitor;
import de.learnlib.ralib.smt.SMTUtil;
Expand Down Expand Up @@ -71,14 +71,14 @@ public Hypothesis toRegisterAutomaton() {
}

private void computeLocations() {
LocationComponent c = components.get(RaStar.EMPTY_PREFIX);
LocationComponent c = components.get(SLStar.EMPTY_PREFIX);
LOGGER.debug(Category.EVENT, "{0}", c);
RALocation loc = this.automaton.addInitialState(c.isAccepting());
this.locations.put(RaStar.EMPTY_PREFIX, loc);
this.automaton.setAccessSequence(loc, RaStar.EMPTY_PREFIX);
this.locations.put(SLStar.EMPTY_PREFIX, loc);
this.automaton.setAccessSequence(loc, SLStar.EMPTY_PREFIX);

for (Entry<Word<PSymbolInstance>, LocationComponent> e : this.components.entrySet()) {
if (!e.getKey().equals(RaStar.EMPTY_PREFIX)) {
if (!e.getKey().equals(SLStar.EMPTY_PREFIX)) {
LOGGER.debug(Category.EVENT, "{0}", e.getValue());
loc = this.automaton.addState(e.getValue().isAccepting());
this.locations.put(e.getKey(), loc);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@

import de.learnlib.ralib.data.DataValue;
import de.learnlib.ralib.data.Mapping;
import de.learnlib.ralib.learning.rastar.CEAnalysisResult;
import de.learnlib.ralib.learning.slstar.CEAnalysisResult;
import de.learnlib.ralib.oracles.Branching;
import de.learnlib.ralib.oracles.SDTLogicOracle;
import de.learnlib.ralib.oracles.TreeOracle;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package de.learnlib.ralib.learning;

public enum RaLearningAlgorithmName {
RASTAR,
RALAMBDA,
RADT
SLSTAR,
SLLAMBDA,
SLCT
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.learnlib.ralib.learning.ralambda;
package de.learnlib.ralib.learning.sllambda;

import java.util.ArrayDeque;
import java.util.Deque;
Expand All @@ -20,8 +20,8 @@
import de.learnlib.ralib.learning.QueryStatistics;
import de.learnlib.ralib.learning.RaLearningAlgorithm;
import de.learnlib.ralib.learning.RaLearningAlgorithmName;
import de.learnlib.ralib.learning.rastar.CEAnalysisResult;
import de.learnlib.ralib.learning.rastar.RaStar;
import de.learnlib.ralib.learning.slstar.CEAnalysisResult;
import de.learnlib.ralib.learning.slstar.SLStar;
import de.learnlib.ralib.oracles.SDTLogicOracle;
import de.learnlib.ralib.oracles.TreeOracle;
import de.learnlib.ralib.oracles.TreeOracleFactory;
Expand Down Expand Up @@ -72,7 +72,7 @@ public SLCT(TreeOracle sulOracle, TreeOracleFactory hypOracleFactory, SDTLogicOr
counterexamples = new ArrayDeque<>();
hyp = null;
ct = new ClassificationTree(sulOracle, solver, restrictionBuilder, suffixBuilder, consts, ioMode, inputs);
ct.sift(RaStar.EMPTY_PREFIX);
ct.sift(SLStar.EMPTY_PREFIX);
}

@Override
Expand Down Expand Up @@ -181,7 +181,7 @@ public QueryStatistics getQueryStatistics() {

@Override
public RaLearningAlgorithmName getName() {
return RaLearningAlgorithmName.RADT;
return RaLearningAlgorithmName.SLCT;
}

public ClassificationTree getCT() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package de.learnlib.ralib.learning.ralambda;
package de.learnlib.ralib.learning.sllambda;

import java.util.ArrayDeque;
import java.util.Deque;
Expand Down Expand Up @@ -196,7 +196,7 @@ public QueryStatistics getQueryStatistics() {

@Override
public RaLearningAlgorithmName getName() {
return RaLearningAlgorithmName.RALAMBDA;
return RaLearningAlgorithmName.SLLAMBDA;
}

public ClassificationTree getCT() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package de.learnlib.ralib.learning.rastar;
package de.learnlib.ralib.learning.slstar;

import de.learnlib.ralib.learning.SymbolicSuffix;
import de.learnlib.ralib.theory.SDT;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package de.learnlib.ralib.learning.rastar;
package de.learnlib.ralib.learning.slstar;

import java.util.Set;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package de.learnlib.ralib.learning.rastar;
package de.learnlib.ralib.learning.slstar;

import java.util.*;
import java.util.Map.Entry;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package de.learnlib.ralib.learning.rastar;
package de.learnlib.ralib.learning.slstar;

import java.util.ArrayDeque;
import java.util.ArrayList;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package de.learnlib.ralib.learning.rastar;
package de.learnlib.ralib.learning.slstar;

import java.util.*;
import java.util.Map.Entry;
Expand Down Expand Up @@ -227,7 +227,7 @@ static Row computeRow(TreeOracle oracle,
}

boolean isAccepting() {
Cell c = this.cells.get(RaStar.EMPTY_SUFFIX);
Cell c = this.cells.get(SLStar.EMPTY_SUFFIX);
return c.isAccepting();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package de.learnlib.ralib.learning.rastar;
package de.learnlib.ralib.learning.slstar;

import java.util.ArrayDeque;
import java.util.Deque;
Expand Down Expand Up @@ -49,7 +49,7 @@
*
* @author falk
*/
public class RaStar implements RaLearningAlgorithm {
public class SLStar implements RaLearningAlgorithm {

public static final Word<PSymbolInstance> EMPTY_PREFIX = Word.epsilon();

Expand All @@ -75,9 +75,9 @@ public class RaStar implements RaLearningAlgorithm {

private final boolean ioMode;

private static final Logger LOGGER = LoggerFactory.getLogger(RaStar.class);
private static final Logger LOGGER = LoggerFactory.getLogger(SLStar.class);

public RaStar(TreeOracle oracle, TreeOracleFactory hypOracleFactory,
public SLStar(TreeOracle oracle, TreeOracleFactory hypOracleFactory,
SDTLogicOracle sdtLogicOracle, Constants consts, boolean ioMode,
ParameterizedSymbol ... inputs) {

Expand All @@ -100,7 +100,7 @@ public RaStar(TreeOracle oracle, TreeOracleFactory hypOracleFactory,
this.hypOracleFactory = hypOracleFactory;
}

public RaStar(TreeOracle oracle, TreeOracleFactory hypOracleFactory,
public SLStar(TreeOracle oracle, TreeOracleFactory hypOracleFactory,
SDTLogicOracle sdtLogicOracle, Constants consts,
ParameterizedSymbol ... inputs) {

Expand Down Expand Up @@ -211,6 +211,6 @@ public QueryStatistics getQueryStatistics() {

@Override
public RaLearningAlgorithmName getName() {
return RaLearningAlgorithmName.RASTAR;
return RaLearningAlgorithmName.SLSTAR;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ public Level parse(Configuration c) throws ConfigurationException {

protected ConstraintSolver solver;

protected String learner = LEARNER_SLSTAR;
protected String learnerName = LEARNER_SLSTAR;

private static final Random RANDOM = new Random();

Expand All @@ -183,7 +183,7 @@ public void setup(Configuration config) throws ConfigurationException {
this.exportModel = OPTION_EXPORT_MODEL.parse(config);
this.useFresh = OPTION_USE_FRESH_VALUES.parse(config);

this.learner = OPTION_LEARNER.parse(config);
this.learnerName = OPTION_LEARNER.parse(config);

String[] parsed = OPTION_TEACHERS.parse(config).split("\\+", -1);
for (String s : parsed) {
Expand Down
20 changes: 10 additions & 10 deletions src/main/java/de/learnlib/ralib/tools/ClassAnalyzer.java
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,9 @@
import de.learnlib.ralib.equivalence.IORandomWalk;
import de.learnlib.ralib.learning.Hypothesis;
import de.learnlib.ralib.learning.RaLearningAlgorithm;
import de.learnlib.ralib.learning.ralambda.SLCT;
import de.learnlib.ralib.learning.ralambda.SLLambda;
import de.learnlib.ralib.learning.rastar.RaStar;
import de.learnlib.ralib.learning.sllambda.SLCT;
import de.learnlib.ralib.learning.sllambda.SLLambda;
import de.learnlib.ralib.learning.slstar.SLStar;
import de.learnlib.ralib.oracles.DataWordOracle;
import de.learnlib.ralib.oracles.SimulatorOracle;
import de.learnlib.ralib.oracles.TreeOracle;
Expand Down Expand Up @@ -114,7 +114,7 @@ public class ClassAnalyzer extends AbstractToolWithRandomWalk {

private IORandomWalk randomWalk = null;

private RaLearningAlgorithm rastar;
private RaLearningAlgorithm learner;

private IOCounterexampleLoopRemover ceOptLoops;

Expand Down Expand Up @@ -244,15 +244,15 @@ public TreeOracle createTreeOracle(RegisterAutomaton hyp) {
}
};

this.rastar = switch (this.learner) {
this.learner = switch (this.learnerName) {
case AbstractToolWithRandomWalk.LEARNER_SLSTAR ->
new RaStar(mto, hypFactory, mlo, consts, true, actions);
new SLStar(mto, hypFactory, mlo, consts, true, actions);
case AbstractToolWithRandomWalk.LEARNER_SLLAMBDA ->
new SLLambda(mto, teachers, consts, true, solver, actions);
case AbstractToolWithRandomWalk.LEARNER_RADT ->
new SLCT(mto, hypFactory, mlo, consts, true, solver, actions);
default ->
throw new ConfigurationException("Unknown Learning algorithm: " + this.learner);
throw new ConfigurationException("Unknown Learning algorithm: " + this.learnerName);
};

if (findCounterexamples) {
Expand Down Expand Up @@ -315,8 +315,8 @@ public void run() throws RaLibToolException {
while (maxRounds < 0 || rounds < maxRounds) {

rounds++;
rastar.learn();
hyp = rastar.getHypothesis();
learner.learn();
hyp = learner.getHypothesis();
System.out.println("HYP:------------------------------------------------");
System.out.println(hyp);
System.out.println("----------------------------------------------------");
Expand Down Expand Up @@ -363,7 +363,7 @@ public void run() throws RaLibToolException {
System.out.println("### HYP TRACE: " + hypTrace);

assert !hypTrace.equals(sysTrace);
rastar.addCounterexample(ce);
learner.addCounterexample(ce);
}

System.out.println("=============================== STOP ===============================");
Expand Down
Loading