Skip to content
Snippets Groups Projects
Commit a58e8ccc authored by Muhammad Raufu Miah's avatar Muhammad Raufu Miah
Browse files

Update ExperimentsRandomTestsFixedSystemFixedAcceptanceRatioVarTestSize.java

parent cfaed954
No related branches found
No related tags found
No related merge requests found
...@@ -32,13 +32,13 @@ import java.util.List; ...@@ -32,13 +32,13 @@ import java.util.List;
import java.util.Random; import java.util.Random;
import java.util.stream.Collectors; import java.util.stream.Collectors;
public class ExperimentsRandomTestsFixedSystemFixedAcceptanceRatioVarTestSize { public class Experiments {
public static void main(String[] args) { public static void main(String[] args) {
// Define configurations // Define configurations
int[] yValues = { 5 }; int[] yValues = { 5 };
int[] zValues = { 100 }; int[] zValues = { 100 };
double[] xValues = { 10,20,30,40,50,60,70,80,90,100,150,200,500}; double[] xValues = { 0.01,0.02,0.04,0.08,0.16,0.32,0.5};
// Declare arrays to store the average membership queries and average equivalence queries // Declare arrays to store the average membership queries and average equivalence queries
double[] avgMemQueriesLstar = new double[xValues.length]; double[] avgMemQueriesLstar = new double[xValues.length];
...@@ -91,9 +91,9 @@ public class ExperimentsRandomTestsFixedSystemFixedAcceptanceRatioVarTestSize { ...@@ -91,9 +91,9 @@ public class ExperimentsRandomTestsFixedSystemFixedAcceptanceRatioVarTestSize {
// Generate 100 random DFAs for each configuration // Generate 100 random DFAs for each configuration
for (int i = 0; i < 100; i++) { for (int i = 0; i < 100; i++) {
System.out.println("Generating random DFA " + i + " for configuration (x,y,z):" + 0.1 + "," + y + "," + z + "Test Size: " + x); System.out.println("Generating random DFA " + i + " for configuration (x,y,z):" + x + "," + y + "," + z + "Test Size: " + 100);
Random rand = new Random(); Random rand = new Random();
ExampleRandomDFA example = new ExampleRandomDFA(rand, y, z, 0.1, alphabet); ExampleRandomDFA example = new ExampleRandomDFA(rand, y, z, x, alphabet);
DFA<?, Integer> dfa = example.getReferenceAutomaton(); DFA<?, Integer> dfa = example.getReferenceAutomaton();
...@@ -104,31 +104,31 @@ public class ExperimentsRandomTestsFixedSystemFixedAcceptanceRatioVarTestSize { ...@@ -104,31 +104,31 @@ public class ExperimentsRandomTestsFixedSystemFixedAcceptanceRatioVarTestSize {
MembershipOracle.DFAMembershipOracle<Integer> memOracleLstar = new DFASimulatorOracle<>(dfa); MembershipOracle.DFAMembershipOracle<Integer> memOracleLstar = new DFASimulatorOracle<>(dfa);
DFACounterOracle<Integer> memCounterOracleLstar = new DFACounterOracle<>(memOracleLstar); DFACounterOracle<Integer> memCounterOracleLstar = new DFACounterOracle<>(memOracleLstar);
MembershipOracle.DFAMembershipOracle<Integer> memUtilOracleLstar = new DFASimulatorOracle<>(dfa); MembershipOracle.DFAMembershipOracle<Integer> memUtilOracleLstar = new DFASimulatorOracle<>(dfa);
EquivalenceOracle<DFA<?, Integer>, Integer, Boolean> eqOracleLstar = new DFARandomWordsEQOracle<Integer>(memUtilOracleLstar,1,100, (int) x,rand); EquivalenceOracle<DFA<?, Integer>, Integer, Boolean> eqOracleLstar = new DFARandomWordsEQOracle<Integer>(memUtilOracleLstar,1,100, (int) 100,rand);
EQCounterOracle<DFA<?, Integer>, Integer, Boolean> eqCounterOracleLstar = new EQCounterOracle<>(eqOracleLstar); EQCounterOracle<DFA<?, Integer>, Integer, Boolean> eqCounterOracleLstar = new EQCounterOracle<>(eqOracleLstar);
MembershipOracle.DFAMembershipOracle<Integer> memOracleRS = new DFASimulatorOracle<>(dfa); MembershipOracle.DFAMembershipOracle<Integer> memOracleRS = new DFASimulatorOracle<>(dfa);
DFACounterOracle<Integer> memCounterOracleRS = new DFACounterOracle<>(memOracleRS); DFACounterOracle<Integer> memCounterOracleRS = new DFACounterOracle<>(memOracleRS);
MembershipOracle.DFAMembershipOracle<Integer> memUtilOracleRS = new DFASimulatorOracle<>(dfa); MembershipOracle.DFAMembershipOracle<Integer> memUtilOracleRS = new DFASimulatorOracle<>(dfa);
EquivalenceOracle<DFA<?, Integer>, Integer, Boolean> eqOracleRS = new DFARandomWordsEQOracle<Integer>(memUtilOracleRS,1,100, (int) x,rand); EquivalenceOracle<DFA<?, Integer>, Integer, Boolean> eqOracleRS = new DFARandomWordsEQOracle<Integer>(memUtilOracleRS,1,100, (int) 100,rand);
EQCounterOracle<DFA<?, Integer>, Integer, Boolean> eqCounterOracleRS = new EQCounterOracle<>(eqOracleRS); EQCounterOracle<DFA<?, Integer>, Integer, Boolean> eqCounterOracleRS = new EQCounterOracle<>(eqOracleRS);
MembershipOracle.DFAMembershipOracle<Integer> memOracleKV = new DFASimulatorOracle<>(dfa); MembershipOracle.DFAMembershipOracle<Integer> memOracleKV = new DFASimulatorOracle<>(dfa);
DFACounterOracle<Integer> memCounterOracleKV = new DFACounterOracle<>(memOracleKV); DFACounterOracle<Integer> memCounterOracleKV = new DFACounterOracle<>(memOracleKV);
MembershipOracle.DFAMembershipOracle<Integer> memUtilOracleKV = new DFASimulatorOracle<>(dfa); MembershipOracle.DFAMembershipOracle<Integer> memUtilOracleKV = new DFASimulatorOracle<>(dfa);
EquivalenceOracle<DFA<?, Integer>, Integer, Boolean> eqOracleKV = new DFARandomWordsEQOracle<Integer>(memUtilOracleKV,1,100, (int) x,rand); EquivalenceOracle<DFA<?, Integer>, Integer, Boolean> eqOracleKV = new DFARandomWordsEQOracle<Integer>(memUtilOracleKV,1,100, (int) 100,rand);
EQCounterOracle<DFA<?, Integer>, Integer, Boolean> eqCounterOracleKV = new EQCounterOracle<>(eqOracleRS); EQCounterOracle<DFA<?, Integer>, Integer, Boolean> eqCounterOracleKV = new EQCounterOracle<>(eqOracleRS);
MembershipOracle.DFAMembershipOracle<Integer> memOracleOP = new DFASimulatorOracle<>(dfa); MembershipOracle.DFAMembershipOracle<Integer> memOracleOP = new DFASimulatorOracle<>(dfa);
DFACounterOracle<Integer> memCounterOracleOP = new DFACounterOracle<>(memOracleOP); DFACounterOracle<Integer> memCounterOracleOP = new DFACounterOracle<>(memOracleOP);
MembershipOracle.DFAMembershipOracle<Integer> memUtilOracleOP = new DFASimulatorOracle<>(dfa); MembershipOracle.DFAMembershipOracle<Integer> memUtilOracleOP = new DFASimulatorOracle<>(dfa);
EquivalenceOracle<DFA<?, Integer>, Integer, Boolean> eqOracleOP = new DFARandomWordsEQOracle<Integer>(memUtilOracleRS,1,100, (int) x,rand); EquivalenceOracle<DFA<?, Integer>, Integer, Boolean> eqOracleOP = new DFARandomWordsEQOracle<Integer>(memUtilOracleRS,1,100, (int) 100,rand);
EQCounterOracle<DFA<?, Integer>, Integer, Boolean> eqCounterOracleOP = new EQCounterOracle<>(eqOracleRS); EQCounterOracle<DFA<?, Integer>, Integer, Boolean> eqCounterOracleOP = new EQCounterOracle<>(eqOracleRS);
MembershipOracle.DFAMembershipOracle<Integer> memOracleTTT = new DFASimulatorOracle<>(dfa); MembershipOracle.DFAMembershipOracle<Integer> memOracleTTT = new DFASimulatorOracle<>(dfa);
DFACounterOracle<Integer> memCounterOracleTTT = new DFACounterOracle<>(memOracleTTT); DFACounterOracle<Integer> memCounterOracleTTT = new DFACounterOracle<>(memOracleTTT);
MembershipOracle.DFAMembershipOracle<Integer> memUtilOracleTTT = new DFASimulatorOracle<>(dfa); MembershipOracle.DFAMembershipOracle<Integer> memUtilOracleTTT = new DFASimulatorOracle<>(dfa);
EquivalenceOracle<DFA<?, Integer>, Integer, Boolean> eqOracleTTT = new DFARandomWordsEQOracle<Integer>(memUtilOracleRS,1,100, (int) x,rand); EquivalenceOracle<DFA<?, Integer>, Integer, Boolean> eqOracleTTT = new DFARandomWordsEQOracle<Integer>(memUtilOracleRS,1,100, (int) 100,rand);
EQCounterOracle<DFA<?, Integer>, Integer, Boolean> eqCounterOracleTTT = new EQCounterOracle<>(eqOracleRS); EQCounterOracle<DFA<?, Integer>, Integer, Boolean> eqCounterOracleTTT = new EQCounterOracle<>(eqOracleRS);
...@@ -201,10 +201,11 @@ public class ExperimentsRandomTestsFixedSystemFixedAcceptanceRatioVarTestSize { ...@@ -201,10 +201,11 @@ public class ExperimentsRandomTestsFixedSystemFixedAcceptanceRatioVarTestSize {
XYChart chart2 = QuickChart.getChart("Average Equivalence Queries", "Test Size", "Queries", seriesNames, xValues, new double[][]{avgEqQueriesLstar, avgEqQueriesRS,avgEqQueriesKV, avgEqQueriesOP, avgEqQueriesTTT}); XYChart chart2 = QuickChart.getChart("Average Equivalence Queries", "Test Size", "Queries", seriesNames, xValues, new double[][]{avgEqQueriesLstar, avgEqQueriesRS,avgEqQueriesKV, avgEqQueriesOP, avgEqQueriesTTT});
new SwingWrapper(chart2).displayChart();*/ new SwingWrapper(chart2).displayChart();*/
XYChart chart5 = QuickChart.getChart("n=100,k=5,AcceptanceRatio=0.1", "Test Size", "Accuracy", seriesNames, xValues, new double[][]{accuracyLstar, accuracyRS, accuracyKV, accuracyOP, accuracyTTT}); XYChart chart5 = QuickChart.getChart("n=100,k=5,Tests=100", "Acceptance Ratio", "Accuracy", seriesNames, xValues, new double[][]{accuracyLstar, accuracyRS, accuracyKV, accuracyOP, accuracyTTT});
new SwingWrapper(chart5).displayChart(); new SwingWrapper(chart5).displayChart();
printXYChartPairs(chart5); printXYChartPairs(chart5);
} }
...@@ -297,6 +298,7 @@ public class ExperimentsRandomTestsFixedSystemFixedAcceptanceRatioVarTestSize { ...@@ -297,6 +298,7 @@ public class ExperimentsRandomTestsFixedSystemFixedAcceptanceRatioVarTestSize {
if((counterexample = controle.findCounterExample(learner.getHypothesisModel(), alphabet)) == null){return 1;} if((counterexample = controle.findCounterExample(learner.getHypothesisModel(), alphabet)) == null){return 1;}
return 0; return 0;
} }
public static void printXYChartPairs(XYChart chart) { public static void printXYChartPairs(XYChart chart) {
System.out.println("Chart: " + chart.getTitle()); System.out.println("Chart: " + chart.getTitle());
// Get all series in the chart // Get all series in the chart
...@@ -324,4 +326,5 @@ public class ExperimentsRandomTestsFixedSystemFixedAcceptanceRatioVarTestSize { ...@@ -324,4 +326,5 @@ public class ExperimentsRandomTestsFixedSystemFixedAcceptanceRatioVarTestSize {
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment