import classifier.*; import classifier.nn.*; import java.util.*; import java.rmi.*; public class NNPatternErrorTest implements errorCondition{ public NNPatternErrorTest(double err) { err_classified = 0; err_bit = 0; target_err = err; listener = new ArrayList(); } public void addNListener(NListener x) { listener.add(x); } public void removeNListener(NListener x) { int index = listener.indexOf(x); if (index >= 0) listener.remove(index); } public void setTargetError(double f) { target_err = f; } public double getTargetError() { return target_err; } public boolean check(Network net, TrainingSetSV ts) { err_classified = 0; // numero di vettori di input del TS non classificati correttamente... err_bit = 0; // numero di "bit" di output prodotti dalla rete non corrispondenti con l'output atteso... boolean flag = false; Object[] output = null; ArrayList d_output = null; for (int i = 0; i < ts.getNum(); i++) { output = net.Run((AbstractList)ts.getInput(i)); //calcolo l'output della rete d_output = (ArrayList) ts.getOutput(i); //calcolo il valore atteso for(int j = 0; j < output.length; j++) { if (((((Double) output[j]).doubleValue() >= 0.5) ? 1.0 : 0.0) != ((Double) d_output.get(j)).doubleValue()) { flag = true; err_bit++; } } if (flag) err_classified++; flag = false; } try { for(int i=0; i