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

x33g5p2x  于2022-01-16 转载在 其他  
字(10.7k)|赞(0)|评价(0)|浏览(95)

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

Alphabet.containsSymbol介绍

[英]Checks whether the given symbol is part of the alphabet.

Caution: the default implementation is rather inefficient and should be overridden, if possible.
[中]检查给定符号是否为字母表的一部分。
警告:默认实现效率很低,如果可能,应该重写它。

代码示例

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

  1. @Override
  2. public void addAlphabetSymbol(I symbol) {
  3. if (this.alphabet.containsSymbol(symbol)) {
  4. return;
  5. }
  6. final int oldAlphabetSize = this.alphabetSize;
  7. final int newAlphabetSize = oldAlphabetSize + 1;
  8. final int newArraySize = this.transitions.length + this.stateCapacity;
  9. final Object[] newTransitions = new Object[newArraySize];
  10. for (int i = 0; i < this.numStates; i++) {
  11. System.arraycopy(transitions, i * oldAlphabetSize, newTransitions, i * newAlphabetSize, oldAlphabetSize);
  12. }
  13. this.transitions = newTransitions;
  14. this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
  15. this.alphabetSize = newAlphabetSize;
  16. }

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

  1. @Override
  2. public void addAlphabetSymbol(I symbol) {
  3. if (this.alphabet.containsSymbol(symbol)) {
  4. return;
  5. }
  6. final int oldAlphabetSize = this.alphabetSize;
  7. final int newAlphabetSize = oldAlphabetSize + 1;
  8. final int newArraySize = this.transitions.length + this.stateCapacity;
  9. final int[] newTransitions = new int[newArraySize];
  10. Arrays.fill(newTransitions, 0, newArraySize, INVALID_STATE);
  11. for (int i = 0; i < this.numStates; i++) {
  12. System.arraycopy(transitions, i * oldAlphabetSize, newTransitions, i * newAlphabetSize, oldAlphabetSize);
  13. }
  14. this.transitions = newTransitions;
  15. this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
  16. this.alphabetSize = newAlphabetSize;
  17. }

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

  1. @Override
  2. public void addAlphabetSymbol(I symbol) {
  3. if (this.alphabet.containsSymbol(symbol)) {
  4. return;
  5. }
  6. final int oldAlphabetSize = this.alphabetSize;
  7. final int newAlphabetSize = oldAlphabetSize + 1;
  8. final int newArraySize = this.transitions.length + this.stateCapacity;
  9. @SuppressWarnings("unchecked")
  10. final Set<Integer>[] newTransitions = new Set[newArraySize];
  11. for (int i = 0; i < this.numStates; i++) {
  12. System.arraycopy(transitions, i * oldAlphabetSize, newTransitions, i * newAlphabetSize, oldAlphabetSize);
  13. }
  14. this.transitions = newTransitions;
  15. this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
  16. this.alphabetSize = newAlphabetSize;
  17. }
  18. }

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

  1. @Override
  2. public void addAlphabetSymbol(I symbol) {
  3. if (this.alphabet.containsSymbol(symbol)) {
  4. return;
  5. }
  6. final List<List<Row<I>>> unclosed = this.table.addAlphabetSymbol(symbol, oracle);
  7. // since we share the alphabet instance with our observation table, our alphabet might have already been updated
  8. // (if it was already a GrowableAlphabet)
  9. if (!this.alphabet.containsSymbol(symbol)) {
  10. this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
  11. }
  12. completeConsistentTable(unclosed, true);
  13. }
  14. }

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

  1. @Override
  2. public void addAlphabetSymbol(I symbol) throws GrowingAlphabetNotSupportedException {
  3. if (!this.inputAlphabet.containsSymbol(symbol)) {
  4. Alphabets.toGrowingAlphabetOrThrowException(this.inputAlphabet).addSymbol(symbol);
  5. }
  6. final int newAlphabetSize = this.inputAlphabet.size();
  7. // even if the symbol was already in the alphabet, we need to make sure to be able to store the new symbol
  8. if (alphabetSize < newAlphabetSize) {
  9. register.values().forEach(n -> n.ensureInputCapacity(newAlphabetSize));
  10. alphabetSize = newAlphabetSize;
  11. }
  12. }

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

  1. @Override
  2. public void addAlphabetSymbol(I symbol) throws GrowingAlphabetNotSupportedException {
  3. if (!this.inputAlphabet.containsSymbol(symbol)) {
  4. Alphabets.toGrowingAlphabetOrThrowException(this.inputAlphabet).addSymbol(symbol);
  5. }
  6. final int newAlphabetSize = this.inputAlphabet.size();
  7. // even if the symbol was already in the alphabet, we need to make sure to be able to store the new symbol
  8. if (alphabetSize < newAlphabetSize) {
  9. register.values().forEach(n -> n.ensureInputCapacity(newAlphabetSize));
  10. alphabetSize = newAlphabetSize;
  11. }
  12. }

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

  1. @Override
  2. public void addAlphabetSymbol(I symbol) {
  3. if (this.alphabet.containsSymbol(symbol)) {
  4. return;
  5. }
  6. final Iterator<Word<I>> splitterIterator = this.splitters.iterator();
  7. final LinkedHashSet<Word<I>> newSplitters = Sets.newLinkedHashSetWithExpectedSize(this.splitters.size() + 1);
  8. // see initial initialization of the splitters
  9. for (int i = 0; i < this.alphabet.size(); i++) {
  10. newSplitters.add(splitterIterator.next());
  11. }
  12. newSplitters.add(Word.fromLetter(symbol));
  13. while (splitterIterator.hasNext()) {
  14. newSplitters.add(splitterIterator.next());
  15. }
  16. this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
  17. this.splitters = newSplitters;
  18. this.startLearning();
  19. }

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

  1. @Override
  2. public void addAlphabetSymbol(I symbol) {
  3. if (this.inputAlphabet.containsSymbol(symbol)) {
  4. return;
  5. }
  6. this.inputAlphabet = Alphabets.withNewSymbol(this.inputAlphabet, symbol);
  7. final int newAlphabetSize = this.inputAlphabet.size();
  8. for (final S s : this.getStates()) {
  9. s.ensureInputCapacity(newAlphabetSize);
  10. }
  11. }

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

  1. @Override
  2. public void addAlphabetSymbol(I symbol) {
  3. if (this.alphabet.containsSymbol(symbol)) {
  4. return;
  5. }
  6. this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
  7. final int alphabetSize = this.alphabet.size();
  8. for (final HState<I, O, SP, TP> s : this.getStates()) {
  9. s.ensureInputCapacity(alphabetSize);
  10. }
  11. }

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

  1. @Override
  2. public void addAlphabetSymbol(I symbol) {
  3. if (this.inputAlphabet.containsSymbol(symbol)) {
  4. return;
  5. }
  6. this.inputAlphabet = Alphabets.withNewSymbol(this.inputAlphabet, symbol);
  7. final int newAlphabetSize = this.inputAlphabet.size();
  8. for (final S s : this.getStates()) {
  9. s.ensureInputCapacity(newAlphabetSize);
  10. }
  11. }

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

  1. @Override
  2. public void addAlphabetSymbol(I symbol) {
  3. if (this.alphabet.containsSymbol(symbol)) {
  4. return;
  5. }
  6. final int newSymbolIdx = this.alphabet.size();
  7. this.hypothesis.addAlphabetSymbol(symbol);
  8. // since we share the alphabet instance with our hypothesis, our alphabet might have already been updated (if it
  9. // was already a GrowableAlphabet)
  10. if (!this.alphabet.containsSymbol(symbol)) {
  11. this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
  12. }
  13. for (final HState<I, D, SP, TP> s : this.hypothesis.getStates()) {
  14. final HTransition<I, D, SP, TP> newTrans = new HTransition<>(s, symbol, dtree.getRoot());
  15. s.setTransition(newSymbolIdx, newTrans);
  16. newTransitions.add(newTrans);
  17. openTransitions.add(newTrans);
  18. }
  19. this.updateHypothesis();
  20. }

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

  1. @Override
  2. public void addAlphabetSymbol(I symbol) throws GrowingAlphabetNotSupportedException {
  3. if (!this.inputAlphabet.containsSymbol(symbol)) {
  4. Alphabets.toGrowingAlphabetOrThrowException(this.inputAlphabet).addSymbol(symbol);
  5. }
  6. final int newAlphabetSize = this.inputAlphabet.size();
  7. // even if the symbol was already in the alphabet, we need to make sure to be able to store the new symbol
  8. if (alphabetSize < newAlphabetSize) {
  9. ensureInputCapacity(root, alphabetSize, newAlphabetSize);
  10. alphabetSize = newAlphabetSize;
  11. }
  12. }

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

  1. @Override
  2. public void addAlphabetSymbol(I symbol) throws GrowingAlphabetNotSupportedException {
  3. if (!this.inputAlphabet.containsSymbol(symbol)) {
  4. Alphabets.toGrowingAlphabetOrThrowException(this.inputAlphabet).addSymbol(symbol);
  5. }
  6. final int newAlphabetSize = this.inputAlphabet.size();
  7. // even if the symbol was already in the alphabet, we need to make sure to be able to store the new symbol
  8. if (alphabetSize < newAlphabetSize) {
  9. ensureInputCapacity(root, alphabetSize, newAlphabetSize);
  10. alphabetSize = newAlphabetSize;
  11. }
  12. }

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

  1. @Override
  2. public void addAlphabetSymbol(I symbol) {
  3. if (alphabet.containsSymbol(symbol)) {
  4. return;
  5. }
  6. this.internalHyp.addAlphabetSymbol(symbol);
  7. SymbolHidingAlphabet.runWhileHiding(alphabet, symbol, () -> super.addAlphabetSymbol(symbol));
  8. this.updateInternalHypothesis();
  9. }

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

  1. @Override
  2. public void addAlphabetSymbol(I symbol) {
  3. if (this.alphabet.containsSymbol(symbol)) {
  4. return;
  5. }
  6. this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
  7. final int alphabetSize = this.alphabet.size();
  8. for (final TTTState<I, D> s : this.getStates()) {
  9. s.ensureInputCapacity(alphabetSize);
  10. }
  11. }

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

  1. @Override
  2. public final void addAlphabetSymbol(I symbol) throws GrowingAlphabetNotSupportedException {
  3. if (!this.alphabet.containsSymbol(symbol)) {
  4. Alphabets.toGrowingAlphabetOrThrowException(this.alphabet).addSymbol(symbol);
  5. }
  6. final int newAlphabetSize = this.alphabet.size();
  7. // even if the symbol was already in the alphabet, we need to make sure to be able to store the new symbol
  8. if (alphabetSize < newAlphabetSize) {
  9. updateTransitionStorage(Payload.of(alphabetSize,
  10. newAlphabetSize,
  11. numStates,
  12. stateCapacity,
  13. alphabetSize,
  14. TransitionUpdateOperation.NEW_ALPHABET_SYMBOL));
  15. this.alphabetSize = newAlphabetSize;
  16. }
  17. }

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

  1. @Override
  2. public void addAlphabetSymbol(I symbol) throws GrowingAlphabetNotSupportedException {
  3. if (!this.inputAlphabet.containsSymbol(symbol)) {
  4. Alphabets.toGrowingAlphabetOrThrowException(this.inputAlphabet).addSymbol(symbol);
  5. }
  6. // even if the symbol was already in the alphabet, we need to make sure to be able to store the new symbol
  7. final int newAlphabetSize = this.inputAlphabet.size();
  8. for (final S s : this.getStates()) {
  9. s.ensureInputCapacity(newAlphabetSize);
  10. }
  11. }

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

  1. @Override
  2. public void addAlphabetSymbol(I symbol) {
  3. if (this.alphabet.containsSymbol(symbol)) {
  4. return;
  5. }
  6. this.hypothesis.addAlphabetSymbol(symbol);
  7. SymbolHidingAlphabet.runWhileHiding(alphabet,
  8. symbol,
  9. () -> this.observationTree.getObservationTree().addAlphabetSymbol(symbol));
  10. // since we share the alphabet instance with our hypothesis, our alphabet might have already been updated (if it
  11. // was already a GrowableAlphabet)
  12. if (!this.alphabet.containsSymbol(symbol)) {
  13. this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
  14. }
  15. for (final ADTState<I, O> s : this.hypothesis.getStates()) {
  16. this.openTransitions.add(this.hypothesis.createOpenTransition(s, symbol, this.adt.getRoot()));
  17. }
  18. this.closeTransitions();
  19. }

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

  1. List<String> invalidSymbols = new ArrayList<>();
  2. for (String s : symbols) {
  3. if (!alphabet.containsSymbol(s)) {
  4. invalidSymbols.add(StringUtil.enquoteIfNecessary(s, ID_PATTERN));
  5. continue;

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

  1. @Override
  2. public void addAlphabetSymbol(I symbol) {
  3. if (this.alphabet.containsSymbol(symbol)) {
  4. return;
  5. }
  6. final int newSymbolIdx = this.alphabet.size();
  7. this.hypothesis.addAlphabetSymbol(symbol);
  8. // since we share the alphabet instance with our hypothesis, our alphabet might have already been updated (if it
  9. // was already a GrowableAlphabet)
  10. if (!this.alphabet.containsSymbol(symbol)) {
  11. this.alphabet = Alphabets.withNewSymbol(this.alphabet, symbol);
  12. }
  13. for (final TTTState<I, D> s : this.hypothesis.getStates()) {
  14. final TTTTransition<I, D> trans = createTransition(s, symbol);
  15. trans.setNonTreeTarget(dtree.getRoot());
  16. s.setTransition(newSymbolIdx, trans);
  17. openTransitions.insertIncoming(trans);
  18. }
  19. this.closeTransitions();
  20. }

相关文章