本文整理了Java中net.automatalib.words.Word.append()
方法的一些代码示例,展示了Word.append()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Word.append()
方法的具体详情如下:
包路径:net.automatalib.words.Word
类名称:Word
方法名:append
[英]Appends a symbol to this word and returns the result as a new word.
[中]将符号追加到此单词,并将结果作为新词返回。
代码示例来源:origin: net.automatalib/automata-util
@Override
protected Word<I> combine(Word<I> l1Object, I l2Object) {
return l1Object.append(l2Object);
}
}
代码示例来源:origin: LearnLib/automatalib
@Override
protected Word<I> combine(Word<I> l1Object, I l2Object) {
return l1Object.append(l2Object);
}
}
代码示例来源:origin: de.learnlib/learnlib-discrimination-tree-vpda
public HypIntTrans(HypLoc<I> src, I intSym) {
super(src.getAccessSequence().append(intSym));
this.intSymbol = intSym;
}
代码示例来源:origin: de.learnlib/learnlib-lstar-baseline
/**
* Appends each symbol of the alphabet (with size m) to the given word (with size w),
* thus returning m words with a length of w+1.
*
* @param word
* The {@link Word} to which the {@link Alphabet} is appended.
* @return
* A set with the size of the alphabet, containing each time the word
* appended with an alphabet symbol.
*/
@Nonnull
private LinkedHashSet<Word<I>> appendAlphabetSymbolsToWord(@Nonnull Word<I> word) {
LinkedHashSet<Word<I>> newCandidates = new LinkedHashSet<>(alphabet.size());
for (I alphabetSymbol : alphabet) {
Word<I> newCandidate = word.append(alphabetSymbol);
newCandidates.add(newCandidate);
}
return newCandidates;
}
代码示例来源:origin: de.learnlib/learnlib-discrimination-tree-vpda
public HypRetTrans(HypLoc<I> src, I retSym, I callSym, HypLoc<I> stackLoc) {
super(stackLoc.getAccessSequence().append(callSym).concat(src.getAccessSequence().append(retSym)));
}
代码示例来源:origin: de.learnlib/learnlib-lstar-baseline
private boolean checkInconsistency(@Nonnull ObservationTableRow<I> firstRow, @Nonnull ObservationTableRow<I> secondRow,
@Nonnull I alphabetSymbol) {
if (!firstRow.isContentsEqual(secondRow)) {
return false;
}
Word<I> extendedFirstState = firstRow.getLabel().append(alphabetSymbol);
Word<I> extendedSecondState = secondRow.getLabel().append(alphabetSymbol);
ObservationTableRow<I> rowForExtendedFirstState = getRowForPrefix(extendedFirstState);
ObservationTableRow<I> rowForExtendedSecondState = getRowForPrefix(extendedSecondState);
return !rowForExtendedFirstState.isContentsEqual(rowForExtendedSecondState);
}
代码示例来源:origin: de.learnlib/learnlib-lstar-baseline
@Override
@Nullable
public Row<I, Boolean> getSuccessorRow(@Nonnull Row<I, Boolean> spRow, I symbol) {
//noinspection SuspiciousMethodCalls
if (!shortPrefixRows.contains(spRow)) {
throw new IllegalArgumentException("Row '" + spRow + "' is not part of short prefix rows!");
}
Word<I> successorLabel = spRow.getLabel().append(symbol);
Row<I, Boolean> successor = null;
for (Row<I, Boolean> row : getAllRows()) {
if (row.getLabel().equals(successorLabel)) {
successor = row;
break;
}
}
return successor;
}
代码示例来源:origin: de.learnlib/learnlib-lstar-baseline
@Nonnull
Word<I> determineWitnessForInconsistency(@Nonnull InconsistencyDataHolder<I> dataHolder) {
Word<I> firstState = dataHolder.getFirstState().append(dataHolder.getDifferingSymbol());
Word<I> secondState = dataHolder.getSecondState().append(dataHolder.getDifferingSymbol());
ObservationTableRow<I> firstRow = getRowForPrefix(firstState);
ObservationTableRow<I> secondRow = getRowForPrefix(secondState);
final List<Boolean> firstRowContents = firstRow.getContents();
final List<Boolean> secondRowContents = secondRow.getContents();
for (int i = 0; i < firstRow.getContents().size(); i++) {
Boolean symbolFirstRow = firstRowContents.get(i);
Boolean symbolSecondRow = secondRowContents.get(i);
if (!symbolFirstRow.equals(symbolSecondRow)) {
return suffixes.get(i);
}
}
throw new IllegalStateException("Both rows are identical, unable to determine a witness!");
}
代码示例来源:origin: LearnLib/automatalib
@Override
protected Word<I> computeNext() {
// first invocation
if (inputIterator == null) {
initialize();
curr = bfsQueue.poll();
inputIterator = inputs.iterator();
}
while (curr != null) {
while (inputIterator.hasNext()) {
final I in = inputIterator.next();
if (curr.coveredInputs.add(in)) {
final S succ = automaton.getSuccessor(curr.state, in);
if (succ != null) {
final Word<I> succAs = curr.accessSequence.append(in);
if (reach.get(succ) == null) {
final Record<S, I> succRec =
new Record<>(succ, succAs, Sets.newHashSetWithExpectedSize(inputs.size()));
reach.put(succ, succRec);
bfsQueue.add(succRec);
}
return succAs;
}
}
}
curr = bfsQueue.poll();
inputIterator = inputs.iterator();
}
return endOfData();
}
代码示例来源:origin: net.automatalib/automata-util
@Override
protected Word<I> computeNext() {
// first invocation
if (inputIterator == null) {
initialize();
curr = bfsQueue.poll();
inputIterator = inputs.iterator();
}
while (curr != null) {
while (inputIterator.hasNext()) {
final I in = inputIterator.next();
if (curr.coveredInputs.add(in)) {
final S succ = automaton.getSuccessor(curr.state, in);
if (succ != null) {
final Word<I> succAs = curr.accessSequence.append(in);
if (reach.get(succ) == null) {
final Record<S, I> succRec =
new Record<>(succ, succAs, Sets.newHashSetWithExpectedSize(inputs.size()));
reach.put(succ, succRec);
bfsQueue.add(succRec);
}
return succAs;
}
}
}
curr = bfsQueue.poll();
inputIterator = inputs.iterator();
}
return endOfData();
}
代码示例来源:origin: LearnLib/automatalib
Word<I> succAs = as.append(in);
Record<S, I> succRec = new Record<>(succ, succAs);
reach.put(succ, succRec);
代码示例来源:origin: net.automatalib/automata-util
Word<I> succAs = as.append(in);
Record<S, I> succRec = new Record<>(succ, succAs);
reach.put(succ, succRec);
代码示例来源:origin: de.learnlib/learnlib-nlstar
public List<List<Row<I>>> makeUpper(List<Row<I>> rows) {
List<Row<I>> newRows = new ArrayList<>(rows.size() * alphabet.size());
for (Row<I> row : rows) {
makeShort(row);
Word<I> prefix = row.getPrefix();
for (int i = 0; i < alphabet.size(); i++) {
I sym = alphabet.getSymbol(i);
Word<I> newPrefix = prefix.append(sym);
Row<I> newRow = createRow(newPrefix);
row.setSuccessorRow(i, newRow);
newRows.add(newRow);
}
}
if (suffixes.isEmpty()) {
return Collections.emptyList();
}
int numSuffixes = suffixes.size();
List<DefaultQuery<I, Boolean>> queries = new ArrayList<>(newRows.size() * numSuffixes);
for (Row<I> newRow : newRows) {
for (Word<I> suffix : suffixes) {
queries.add(new DefaultQuery<>(newRow.getPrefix(), suffix));
}
}
oracle.processQueries(queries);
Iterator<DefaultQuery<I, Boolean>> queryIt = queries.iterator();
for (Row<I> newRow : newRows) {
newRow.fetchContents(queryIt, 0, numSuffixes);
}
return updateMetadata();
}
代码示例来源:origin: LearnLib/automatalib
private static <S, I> void cover(DeterministicAutomaton<S, I, ?> automaton,
Collection<? extends I> inputs,
Consumer<? super Word<I>> states,
Consumer<? super Word<I>> transitions) {
MutableMapping<S, Word<I>> reach = automaton.createStaticStateMapping();
Queue<S> bfsQueue = new ArrayDeque<>();
S init = automaton.getInitialState();
reach.put(init, Word.epsilon());
bfsQueue.add(init);
states.accept(Word.epsilon());
S curr;
while ((curr = bfsQueue.poll()) != null) {
Word<I> as = reach.get(curr);
for (I in : inputs) {
S succ = automaton.getSuccessor(curr, in);
if (succ == null) {
continue;
}
final Word<I> succAs = as.append(in);
if (reach.get(succ) == null) {
reach.put(succ, succAs);
states.accept(succAs);
bfsQueue.add(succ);
}
transitions.accept(succAs);
}
}
}
代码示例来源:origin: net.automatalib/automata-util
private static <S, I> void cover(DeterministicAutomaton<S, I, ?> automaton,
Collection<? extends I> inputs,
Consumer<? super Word<I>> states,
Consumer<? super Word<I>> transitions) {
MutableMapping<S, Word<I>> reach = automaton.createStaticStateMapping();
Queue<S> bfsQueue = new ArrayDeque<>();
S init = automaton.getInitialState();
reach.put(init, Word.epsilon());
bfsQueue.add(init);
states.accept(Word.epsilon());
S curr;
while ((curr = bfsQueue.poll()) != null) {
Word<I> as = reach.get(curr);
for (I in : inputs) {
S succ = automaton.getSuccessor(curr, in);
if (succ == null) {
continue;
}
final Word<I> succAs = as.append(in);
if (reach.get(succ) == null) {
reach.put(succ, succAs);
states.accept(succAs);
bfsQueue.add(succ);
}
transitions.accept(succAs);
}
}
}
代码示例来源:origin: de.learnlib/learnlib-lstar-generic
Word<I> lp = prefix.append(sym);
Row<I> lpRow = rowMap.get(lp);
if(lpRow == null) {
代码示例来源:origin: LearnLib/automatalib
Word<I> succAs = as.append(in);
Record<S, I> succRec = new Record<>(succ, succAs);
reach.put(succ, succRec);
代码示例来源:origin: net.automatalib/automata-util
Word<I> succAs = as.append(in);
Record<S, I> succRec = new Record<>(succ, succAs);
reach.put(succ, succRec);
代码示例来源:origin: de.learnlib/learnlib-lstar-baseline
FastDFAState dfaState = dfaStates.get(stateRow.getContents());
for (I alphabetSymbol : alphabet) {
Word<I> word = stateRow.getLabel().append(alphabetSymbol);
代码示例来源:origin: de.learnlib/learnlib-adt
final Word<I> longPrefix = accessSequence.append(symbol);
final ADTNode<ADTState<I, O>, I, O> finalNode =
this.adt.sift(this.oracle, longPrefix, transition.getSiftNode());
内容来源于网络,如有侵权,请联系作者删除!