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

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

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

Word.getSymbol介绍

[英]Return symbol that is at the specified position.
[中]返回位于指定位置的符号。

代码示例

代码示例来源:origin: net.automatalib/automata-api

@Override
public void writeToArray(int offset, Object[] array, int tgtOffset, int length) {
  int idx = offset, arrayIdx = tgtOffset;
  for (int i = length; i > 0; i--) {
    array[arrayIdx++] = getSymbol(idx++);
  }
}

代码示例来源:origin: LearnLib/automatalib

@Override
public void writeToArray(int offset, Object[] array, int tgtOffset, int length) {
  int idx = offset, arrayIdx = tgtOffset;
  for (int i = length; i > 0; i--) {
    array[arrayIdx++] = getSymbol(idx++);
  }
}

代码示例来源:origin: net.automatalib/automata-api

/**
 * Retrieves the first symbol of this word.
 *
 * @return the first symbol of this word
 */
@Nullable
public I firstSymbol() {
  return getSymbol(0);
}

代码示例来源:origin: LearnLib/automatalib

/**
 * Retrieves the first symbol of this word.
 *
 * @return the first symbol of this word
 */
@Nullable
public I firstSymbol() {
  return getSymbol(0);
}

代码示例来源:origin: LearnLib/automatalib

/**
 * Retrieves the last symbol of this word.
 *
 * @return the last symbol of this word.
 */
@Nullable
public I lastSymbol() {
  return getSymbol(length() - 1);
}

代码示例来源:origin: net.automatalib/automata-api

/**
 * Retrieves the last symbol of this word.
 *
 * @return the last symbol of this word.
 */
@Nullable
public I lastSymbol() {
  return getSymbol(length() - 1);
}

代码示例来源:origin: net.automatalib/automata-core

@Override
public I getSymbol(int index) {
  if (index == word.length()) {
    return letter;
  }
  return word.getSymbol(index);
}

代码示例来源:origin: LearnLib/automatalib

@Nullable
@Override
public O getTransitionOutput(Integer transition) {
  return getOutput().getSymbol(transition);
}

代码示例来源:origin: de.learnlib/learnlib-core

public static <O> int findMismatch(Word<O> out1, Word<O> out2) {
  int len = out1.length();
  assert len == out2.length();
  
  for(int i = 0; i < len; i++) {
    O sym1 = out1.getSymbol(i);
    O sym2 = out2.getSymbol(i);
    
    if(!Objects.equals(sym1, sym2))
      return i;
  }
  
  return NO_MISMATCH;
}

代码示例来源:origin: de.learnlib/learnlib-util

public static <O> int findMismatch(Word<O> out1, Word<O> out2) {
  int len = out1.length();
  assert len == out2.length();
  for (int i = 0; i < len; i++) {
    O sym1 = out1.getSymbol(i);
    O sym2 = out2.getSymbol(i);
    if (!Objects.equals(sym1, sym2)) {
      return i;
    }
  }
  return NO_MISMATCH;
}

代码示例来源:origin: net.automatalib/automata-api

@Override
public boolean isPrefixOf(Word<?> other) {
  return !other.isEmpty() && Objects.equals(letter, other.getSymbol(0));
}

代码示例来源:origin: LearnLib/automatalib

@Override
public boolean isPrefixOf(Word<?> other) {
  return !other.isEmpty() && Objects.equals(letter, other.getSymbol(0));
}

代码示例来源:origin: LearnLib/automatalib

/**
 * Get the successor state of a given state, or {@code null} when no such successor exists.
 *
 * @see SimpleDTS#getSuccessor(Object, Object)
 */
@Nullable
@Override
public Integer getSuccessor(Integer state, @Nullable I input) {
  final Integer result;
  if (state < word.length() && input.equals(word.getSymbol(state))) {
    result = state + 1;
  } else {
    result = null;
  }
  return result;
}

代码示例来源:origin: de.learnlib/learnlib-dhc

private void scheduleSuccessors(QueueElement<I, O> elem,
                Integer state,
                Queue<QueueElement<I, O>> queue,
                List<Word<O>> sig) throws IllegalArgumentException {
  for (int i = 0; i < alphabet.size(); ++i) {
    // retrieve I/O for transition
    I input = alphabet.getSymbol(i);
    O output = sig.get(i).getSymbol(0);
    // create successor element and schedule for exploration
    queue.add(new QueueElement<>(state, elem, input, output));
  }
}

代码示例来源:origin: net.automatalib/automata-core

@Override
public boolean isPrefixOf(Word<?> other) {
  int wordLen = word.length();
  if (wordLen >= other.length()) {
    return false;
  }
  if (!word.isPrefixOf(other)) {
    return false;
  }
  return Objects.equals(other.getSymbol(wordLen), letter);
}

代码示例来源:origin: net.automatalib/automata-incremental

private State createSuffix(Word<? extends I> suffix, Word<? extends O> suffixOut) {
  StateSignature sig = new StateSignature(alphabetSize);
  sig.updateHashCode();
  State last = replaceOrRegister(sig);
  int len = suffix.length();
  for (int i = len - 1; i >= 0; i--) {
    sig = new StateSignature(alphabetSize);
    I sym = suffix.getSymbol(i);
    O outsym = suffixOut.getSymbol(i);
    int idx = inputAlphabet.getSymbolIndex(sym);
    sig.successors[idx] = last;
    sig.outputs[idx] = outsym;
    sig.updateHashCode();
    last = replaceOrRegister(sig);
  }
  return last;
}

代码示例来源:origin: LearnLib/automatalib

private State<O> createSuffix(Word<? extends I> suffix, Word<? extends O> suffixOut) {
  StateSignature<O> sig = new StateSignature<>(alphabetSize);
  sig.updateHashCode();
  State<O> last = replaceOrRegister(sig);
  int len = suffix.length();
  for (int i = len - 1; i >= 0; i--) {
    sig = new StateSignature<>(alphabetSize);
    I sym = suffix.getSymbol(i);
    O outsym = suffixOut.getSymbol(i);
    int idx = inputAlphabet.getSymbolIndex(sym);
    sig.successors.array[idx] = last;
    sig.outputs.array[idx] = outsym;
    sig.updateHashCode();
    last = replaceOrRegister(sig);
  }
  return last;
}

代码示例来源:origin: de.learnlib/learnlib-util

@Nullable
public static <I, O> DefaultQuery<I, O> reduceCounterExample(MealyMachine<?, I, ?, O> hypothesis,
                               DefaultQuery<I, Word<O>> ceQuery) {
  Word<I> cePrefix = ceQuery.getPrefix(), ceSuffix = ceQuery.getSuffix();
  Word<O> hypOut = hypothesis.computeSuffixOutput(cePrefix, ceSuffix);
  Word<O> ceOut = ceQuery.getOutput();
  assert ceOut.length() == hypOut.length();
  int mismatchIdx = findMismatch(hypOut, ceOut);
  if (mismatchIdx == NO_MISMATCH) {
    return null;
  }
  return new DefaultQuery<>(cePrefix, ceSuffix.prefix(mismatchIdx + 1), ceOut.getSymbol(mismatchIdx));
}

代码示例来源:origin: de.learnlib/learnlib-core

@Nullable
public static <I,O> DefaultQuery<I,O> reduceCounterExample(
    MealyMachine<?,I,?,O> hypothesis,
    DefaultQuery<I,Word<O>> ceQuery) {
  Word<I> cePrefix = ceQuery.getPrefix(), ceSuffix = ceQuery.getSuffix();
  Word<O> hypOut = hypothesis.computeSuffixOutput(cePrefix, ceSuffix);
  Word<O> ceOut = ceQuery.getOutput();
  assert ceOut.length() == hypOut.length();
  
  int mismatchIdx = findMismatch(hypOut, ceOut);
  if(mismatchIdx == NO_MISMATCH)
    return null;
  
  return new DefaultQuery<>(cePrefix,
      ceSuffix.prefix(mismatchIdx + 1),
      ceOut.getSymbol(mismatchIdx));
}

代码示例来源:origin: de.learnlib/learnlib-ttt

private void splitState(OutputInconsistency<I, D> outIncons) {
  OutInconsPrefixTransformAcex<I, D> acex = deriveAcex(outIncons);
  try {
    int breakpoint = analyzer.analyzeAbstractCounterexample(acex);
    assert !acex.testEffects(breakpoint, breakpoint + 1);
    Word<I> suffix = outIncons.suffix;
    TTTState<I, D> predState = getDeterministicState(outIncons.srcState, suffix.prefix(breakpoint));
    TTTState<I, D> succState = getDeterministicState(outIncons.srcState, suffix.prefix(breakpoint + 1));
    assert getDeterministicState(predState, Word.fromLetter(suffix.getSymbol(breakpoint))) == succState;
    I sym = suffix.getSymbol(breakpoint);
    Word<I> splitSuffix = suffix.subWord(breakpoint + 1);
    TTTTransition<I, D> trans = predState.getTransition(alphabet.getSymbolIndex(sym));
    assert !trans.isTree();
    D oldOut = acex.effect(breakpoint + 1);
    D newOut = succEffect(acex.effect(breakpoint));
    splitState(trans, splitSuffix, oldOut, newOut);
  } catch (HypothesisChangedException ignored) {
  }
}

相关文章