Ejemplo n.º 1
0
        private void ShowBtn_Click(object sender, EventArgs e)
        {
            if (A == null)
            {
                return;
            }

            GridWorldForm2 sf = new GridWorldForm2(gwMap, blockSize, A, start, goal);

            sf.Show();
        }
Ejemplo n.º 2
0
        private void beginBtn_Click(object sender, EventArgs e)
        {
            if (exeThread != null && exeThread.IsAlive)
            {
                return;
            }
            InSearchState();

            hcal.BlockSize = blockSize;


            if (radioButton1.Checked)
            {
                A     = new AWA(new ANodeSucGen(new GridWorld(gwMap, blockSize)), hcal, 1);
                start = new ANode();
                goal  = new ANode();
            }
            else
            if (radioButton3.Checked)

            {
                A     = new AWinA(new ANodeSucGen(new GridWorld(gwMap, blockSize)), hcal);
                start = new ANode();
                goal  = new ANode();
            }
            else
            if (radioButton2.Checked)
            {
                A     = new Astar(new ANodeSucGen(new GridWorld(gwMap, blockSize)), hcal);
                start = new ANode();
                goal  = new ANode();
            }
            else
            if (radioButton5.Checked)
            {
                A     = new QLearning(new GridWorld(gwMap, blockSize), 0.5, 0.99, 0.2);
                start = new QNode();
                goal  = new QNode();
            }
            else
            if (radioButton4.Checked)
            {
                A     = new UCT(new UCTNodeSucGen(new GridWorld(gwMap, blockSize)), 2, 30);
                start = new UCTNode();
                goal  = new UCTNode();
            }
            else
            if (radioButton6.Checked)
            {
                A     = new SARSA(new GridWorld(gwMap, blockSize), 0.5, 0.99, 0.2);
                start = new QNode();
                goal  = new QNode();
            }



            start.State        = new GridWorldState(StartX, StartY);
            start.UsedOperator = new DefaultOperator("Init");
            start.Parent       = null;

            goal.State        = new GridWorldState(GoalX, GoalY);
            goal.UsedOperator = new DefaultOperator("Init");
            goal.Parent       = null;



            if (!SetParameters(A))
            {
                ReadyState();
                return;
            }


            A.InitStates(start, goal);

            exeThread = new Thread(() => A.Execute());

            exeThread.Start();


            while (exeThread.IsAlive)
            {
                Application.DoEvents();
            }

            StoppedState();


            GridWorldForm2 sf = new GridWorldForm2(gwMap, blockSize, A, start, goal);

            sf.Show();
        }