public Features(IMultHeuristic multHeuristic, Func <double, double> responseFunc, Func <double, double> responseFuncInv) { if (Global.DOMAINTYPE != typeof(SlidingPuzzle)) { throw new Exception(); } this.numInputs = multHeuristic.HArr.Length + 1; this.multHeuristic = multHeuristic; this.responseFunc = responseFunc; this.responseFuncInv = responseFuncInv; }
public Features(IMultHeuristic multHeuristic, Func <double, double> responseFunc, Func <double, double> responseFuncInv) { if (Global.DOMAINTYPE != typeof(PancakePuzzle)) { throw new Exception(); } this.numInputs = multHeuristic.HArr.Length + 2; this.multHeuristic = multHeuristic; this.responseFunc = responseFunc; this.responseFuncInv = responseFuncInv; this.middleTokenIndex = Global.SIZE / 2; }
static void Main(string[] args) { Control.UseNativeMKL(); Console.WriteLine("start1"); //PancakePuzzle.BuildPDBs.BuildPDBs24(); //GenTest(null, 50,Global.MAXSTEPS); multHeuristic = null; representationSolve = new SlidingPuzzle.Representations.TwoDim(new Func <double, double>(x => x / 10), new Func <double, double>(x => x * 10)); representationUncert = new SlidingPuzzle.Representations.TwoDim(null, null); for (int r = 1; r <= 5; r++) { { List <Tuple <int, bool, int> > paramaters = new List <Tuple <int, bool, int> >(); paramaters.Add(new Tuple <int, bool, int>(1, true, 1)); foreach (var p in paramaters) { Train(r, Global.NITER, p.Item1, p.Item2, p.Item3, false); } } { int nnIndex = Global.NITER - 1; List <Tuple <string, int, double?> > paramaters = new List <Tuple <string, int, double?> >(); paramaters.Add(new Tuple <string, int, double?>("1", nnIndex, null)); foreach (var p in paramaters) { TestAdmissibility(r, p.Item1, p.Item2, p.Item3); } } { List <Tuple <int, bool, int> > paramaters = new List <Tuple <int, bool, int> >(); paramaters.Add(new Tuple <int, bool, int>(2, true, 1)); foreach (var p in paramaters) { Train(r, Global.NITER, p.Item1, p.Item2, p.Item3, false); } } { int nnIndex = Global.NITER - 1; List <Tuple <string, int, double?> > paramaters = new List <Tuple <string, int, double?> >(); paramaters.Add(new Tuple <string, int, double?>("2", nnIndex, 0.5)); paramaters.Add(new Tuple <string, int, double?>("2", nnIndex, 0.95)); paramaters.Add(new Tuple <string, int, double?>("2", nnIndex, 0.9)); paramaters.Add(new Tuple <string, int, double?>("2", nnIndex, 0.75)); paramaters.Add(new Tuple <string, int, double?>("2", nnIndex, 0.25)); paramaters.Add(new Tuple <string, int, double?>("2", nnIndex, 0.1)); paramaters.Add(new Tuple <string, int, double?>("2", nnIndex, 0.05)); foreach (var p in paramaters) { TestAdmissibility(r, p.Item1, p.Item2, p.Item3); } } { List <Tuple <int, bool, int> > paramaters = new List <Tuple <int, bool, int> >(); paramaters.Add(new Tuple <int, bool, int>(1, true, 1)); paramaters.Add(new Tuple <int, bool, int>(1, false, 1)); paramaters.Add(new Tuple <int, bool, int>(1, false, 2)); paramaters.Add(new Tuple <int, bool, int>(1, false, 4)); paramaters.Add(new Tuple <int, bool, int>(1, false, 6)); paramaters.Add(new Tuple <int, bool, int>(1, false, 8)); paramaters.Add(new Tuple <int, bool, int>(1, false, 10)); foreach (var p in paramaters) { Train(r, Global.NITER, p.Item1, p.Item2, p.Item3, true); } } { int numTasks = 1000; int numIter = 5; int nnIndex = Global.NITER - 1; TestDomainData[][] testData = new TestDomainData[numIter][]; for (int i = 0; i < numIter; i++) { TestDomainData[] data = new TestDomainData[numTasks]; for (int j = 0; j < numTasks; j++) { data[j] = GenTest(null, 1, j + 1, false, false)[0]; } testData[i] = data; } List <Tuple <string, int> > paramaters = new List <Tuple <string, int> >(); paramaters.Add(new Tuple <string, int>("1e", nnIndex)); paramaters.Add(new Tuple <string, int>("k1", nnIndex)); paramaters.Add(new Tuple <string, int>("k2", nnIndex)); paramaters.Add(new Tuple <string, int>("k4", nnIndex)); paramaters.Add(new Tuple <string, int>("k6", nnIndex)); paramaters.Add(new Tuple <string, int>("k8", nnIndex)); paramaters.Add(new Tuple <string, int>("k10", nnIndex)); foreach (var p in paramaters) { TestEfficiency(r, p.Item1, p.Item2, testData); } } } Console.ReadLine(); }
public MaxHeuristic(IMultHeuristic multHeuristic) { this.multHeuristic = multHeuristic; }