Esempio n. 1
0
 public MazeState(int iX, int iY, Direction d, MazeDomain md)
 {
     X = iX;
     Y = iY;
     CurrentDirection = d;
     m_mdMaze         = md;
 }
Esempio n. 2
0
        static void Main(string[] args)
        {
            string     path = System.IO.Directory.GetCurrentDirectory();
            FileStream fs   = new FileStream(path + "Debug.txt", FileMode.Create);

            Debug.Listeners.Add(new TextWriterTraceListener(Console.Out));
            Debug.Listeners.Add(new TextWriterTraceListener(fs));

            MazeDomain maze = new MazeDomain(path + "/Maze3.txt");

            PointBasedValueIteration pbvi = new PointBasedValueIteration(maze);

            pbvi.PointBasedVI(100, 20);

            //MDPValueFunction v = new MDPValueFunction(maze);
            //v.ValueIteration(0.5);

            //RandomPolicy p0 = new RandomPolicy(maze);
            //MostLikelyStatePolicy p1 = new MostLikelyStatePolicy(v);
            //VotingPolicy p2 = new VotingPolicy(v);
            //QMDPPolicy p3 = new QMDPPolicy(v, maze);

            //double dADR1 = maze.ComputeAverageDiscountedReward(p1, 100, 100);
            //double dADR2 = maze.ComputeAverageDiscountedReward(p2, 100, 100);
            //double dADR3 = maze.ComputeAverageDiscountedReward(p3, 100, 100);
            double dADR4 = maze.ComputeAverageDiscountedReward(pbvi, 100, 100);

            MazeViewer viewer = new MazeViewer(maze);

            viewer.Start();
            maze.SimulatePolicy(pbvi, 10, viewer);

            Debug.Close();
        }
Esempio n. 3
0
 internal MazeViewer(MazeDomain maze)
 {
     InitializeComponent();
     m_mdMaze            = maze;
     Size                = new Size(m_mdMaze.Width * SCALE + 50, 100 + (m_mdMaze.Height + 3) * SCALE);
     MazePictureBox.Size = new Size(m_mdMaze.Width * SCALE, (m_mdMaze.Height + 3) * SCALE);
     RefreshForm         = new RefreshDelegate(RefreshFormMethod);
     HideForm            = new HideDelegate(HideFormMethod);
     CurrentState        = null;
     SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.UserPaint | ControlStyles.SupportsTransparentBackColor | ControlStyles.AllPaintingInWmPaint, true);
     Active             = false;
     m_bThreadRunning   = false;
     CurretnUpdateState = null;
 }