Class SAEQOracle

All Implemented Interfaces:
EquivalenceOracle<net.automatalib.automaton.transducer.MealyMachine<?,String,?,String>,String,net.automatalib.word.Word<String>>, EquivalenceOracle.MealyEquivalenceOracle<String,String>, EvaluationCountable, EvaluationCountable.MealyEquivalenceOracle<String,String>

public class SAEQOracle extends HillClimbingEQOracle
Answer the Equivalence query by simulated annealing
Author:
Masaki Waga
  • Field Details

    • alpha

      private double alpha
    • maxIteration

      private int maxIteration
    • iteration

      private double iteration
  • Constructor Details

  • Method Details

    • createNextGeneration

      protected List<net.automatalib.word.Word<String>> createNextGeneration(List<net.automatalib.word.Word<String>> goodSamples)
      Generates the next set of test cases based on the provided list of successful (good) samples. This method is responsible for creating new test cases that are derived from the current set of successful samples, ensuring a diverse and evolving set of test cases.
      Overrides:
      createNextGeneration in class HillClimbingEQOracle
      Parameters:
      goodSamples - A list of successful test cases used as the basis for generating the next generation of test cases.
      Returns:
      A list of newly generated test cases for the next evaluation cycle.
    • shouldPick

      private boolean shouldPick(double srcCost, double dstCost)
      Parameters:
      srcCost - the cost of src
      dstCost - the cost of dst
      Returns:
      if we should transit from src to dst. We followed the algorithm in https://ja.wikipedia.org/wiki/%E7%84%BC%E3%81%8D%E3%81%AA%E3%81%BE%E3%81%97%E6%B3%95 .
    • onlyEval

      private double onlyEval(net.automatalib.word.Word<String> input)