net.automatalib.words.Word.append()方法的使用及代码示例

x33g5p2x  于2022-02-03 转载在 其他  
字(8.9k)|赞(0)|评价(0)|浏览(152)

本文整理了Java中net.automatalib.words.Word.append()方法的一些代码示例,展示了Word.append()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Word.append()方法的具体详情如下:
包路径:net.automatalib.words.Word
类名称:Word
方法名:append

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());

相关文章