The PassFilter simply outputs BlackWins and WhiteWins (Range 0 - 1 but not presently clamped). In principle, this type of feedforward ANN can be used to decide whether a PASS will result in blackwins or whitewins at any stage. The goal is for the network to learn that passing while losing when valid moves exist is bad, but passing while winning is relatively harmless later in the game.
31 lines
827 B
Java
31 lines
827 B
Java
package net.woodyfolsom.msproj.ann;
|
|
|
|
import static org.junit.Assert.assertTrue;
|
|
|
|
import org.junit.Test;
|
|
import org.neuroph.core.NeuralNetwork;
|
|
|
|
public class PassNetworkTest {
|
|
|
|
@Test
|
|
public void testSavedNetwork() {
|
|
NeuralNetwork passFilter = NeuralNetwork.load("data/networks/Pass1.nn");
|
|
passFilter.setInput(0.75,0.25);
|
|
passFilter.calculate();
|
|
|
|
PassData passData = new PassData();
|
|
double[] output = passFilter.getOutput();
|
|
System.out.println("Output: " + passData.getOutput(output));
|
|
|
|
assertTrue(output[0] > 0.50);
|
|
assertTrue(output[1] < 0.50);
|
|
|
|
passFilter.setInput(0.25,0.50);
|
|
passFilter.calculate();
|
|
output = passFilter.getOutput();
|
|
System.out.println("Output: " + passData.getOutput(output));
|
|
assertTrue(output[0] < 0.50);
|
|
assertTrue(output[1] > 0.50);
|
|
}
|
|
}
|