Skip to content

Instantly share code, notes, and snippets.

@mappum
Created January 21, 2012 03:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mappum/1651166 to your computer and use it in GitHub Desktop.
Save mappum/1651166 to your computer and use it in GitHub Desktop.
/*
* Put the input in a file called input.txt
* This program outputs to stdout
*/
import org.encog.Encog;
import org.encog.engine.network.activation.ActivationBiPolar;
import org.encog.engine.network.activation.ActivationSigmoid;
import org.encog.mathutil.randomize.BasicRandomizer;
import org.encog.mathutil.randomize.ConsistentRandomizer;
import org.encog.ml.MLMethod;
import org.encog.ml.anneal.SimulatedAnnealing;
import org.encog.ml.data.MLData;
import org.encog.ml.data.MLDataSet;
import org.encog.ml.data.basic.BasicMLData;
import org.encog.ml.data.basic.BasicMLDataSet;
import org.encog.ml.factory.MLMethodFactory;
import org.encog.ml.factory.MLTrainFactory;
import org.encog.ml.factory.train.AnnealFactory;
import org.encog.ml.factory.train.GeneticFactory;
import org.encog.ml.genetic.BasicGeneticAlgorithm;
import org.encog.ml.genetic.GeneticAlgorithm;
import org.encog.ml.train.MLTrain;
import org.encog.neural.networks.BasicNetwork;
import org.encog.neural.networks.layers.BasicLayer;
import org.encog.neural.networks.training.TrainingSetScore;
import org.encog.neural.networks.training.genetic.NeuralGeneticAlgorithm;
import org.encog.neural.networks.training.propagation.resilient.ResilientPropagation;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class Auction {
private final static int INPUT_NEURONS = 9;
private final static int HIDDEN1_NEURONS = 15;
private final static int HIDDEN2_NEURONS = 12;
private final static int OUTPUT_NEURONS = 2;
public static void main(String[] args) {
double[][] input = {
{5, 1, 4, 5, 7, 1, 0, 1, 2},
{3, 1, 3, 3, 3, 1, 0, 1, 1},
{8, 1, 3, 3, 3, 1, 0, 1, 2},
{13, 5, 7, 5, 9, 1, 3, 2, 5},
{11, 2, 3, 5, 7, 11, 13, 17, 19},
}, ideal = {
{.3, .3},
{.3, .3},
{.2, .3},
{.2, .2},
{.3, .1}
};
MLDataSet trainingSet = new BasicMLDataSet(input, ideal);
BasicNetwork network = new BasicNetwork();
BasicLayer inputLayer = new BasicLayer(INPUT_NEURONS);
BasicLayer hidden1Layer = new BasicLayer(HIDDEN1_NEURONS);
BasicLayer hidden2Layer = new BasicLayer(HIDDEN2_NEURONS);
BasicLayer outputLayer = new BasicLayer(OUTPUT_NEURONS);
inputLayer.setActivation(new ActivationSigmoid());
hidden1Layer.setActivation(new ActivationSigmoid());
hidden2Layer.setActivation(new ActivationSigmoid());
//outputLayer.setActivation(new ActivationSigmoid());
network.addLayer(inputLayer);
network.addLayer(hidden1Layer);
network.addLayer(hidden2Layer);
network.addLayer(outputLayer);
network.getStructure().finalizeStructure();
network.reset();
ResilientPropagation train = new ResilientPropagation(network, trainingSet);
do {
train.iteration();
//log("i:" + train.getIteration() + " - e:" + train.getError());
} while(train.getError() > .000000001);
//log("Training complete! (e:" + train.getError() + ")");
Scanner in;
int iteration = 1;
try {
in = new Scanner(new File("input.txt"));
in.nextLine();
String line = "";
while(in.hasNext()) {
line = in.nextLine();
double[] inputCode = new double[9];
for(int i = 0; i < 9; i++) inputCode[i] = Double.parseDouble(line.split(" ")[i]);
MLData output = network.compute(new BasicMLData(inputCode));
System.out.println("Case #" + iteration++ + ": " + Math.round(output.getData(0)*10) + " " + Math.round(output.getData(1)*10));
};
} catch (Exception e) {}
}
public static void log(String msg) {
System.out.println("[" + new Timestamp(new java.util.Date().getTime()) + "] " + msg);
}
public static void error(String msg) {
System.out.println("[" + new Timestamp(new java.util.Date().getTime()) + "] ERROR: " + msg);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment