Esempio n. 1
0
        public override ISearchInfo GetSearchInfo()
        {
            ISearchInfo result = base.GetSearchInfo();

            // result.SearchParameters.Add(winSize_Name, winSize.ToString());
            return(result);
        }
Esempio n. 2
0
        private void LogSearch(State state, ISearchAlgorithm searcher, ISearchInfo info)
        {
            if (!EnableOutput)
            {
                return;
            }

            _output.WriteLine($"Search() on {state} with {searcher} yielded score={info.Score}, pv={string.Join(' ', info.Pv)}, nodesSearched={info.NodesSearched}");
        }
Esempio n. 3
0
        public ChartForm(ISearchInfo result)
        {
            InitializeComponent();
            this.result = result;


            foreach (Chart chart in result.ChartList)
            {
                flowPanel.Controls.Add(configChart(chart));
            }

            flowPanel.Update();
        }
Esempio n. 4
0
    int ISortable <ISearchInfo> .Compare(string sortType, bool isDescendingOrder, ISearchInfo other)
    {
        switch (sortType)
        {
        case SectionSearchHandler.NAME_SORT_TYPE_ASC:
            return(String.CompareOrdinal(name, other.name));

        case SectionSearchHandler.NAME_SORT_TYPE_DESC:
            return(String.CompareOrdinal(other.name, name));

        case SectionSearchHandler.SIZE_SORT_TYPE_DESC:
            return(other.size - size);

        case SectionSearchHandler.SIZE_SORT_TYPE_ASC:
            return(size - other.size);

        default:
            return(0);
        }
    }
Esempio n. 5
0
        public bool SetParameters(ISolver solver)
        {
            try
            {
                ISearchInfo    info = solver.GetSearchInfo();
                ParametersForm pf   = new ParametersForm(info);
                pf.ShowDialog();

                if (pf.DialogResult != DialogResult.OK)
                {
                    return(false);
                }

                solver.setParameters(info.SearchParameters);
            }
            catch (Exception ex)
            {
                MessageBox.Show("error in parameters");
                ReadyState();
                return(false);
            }

            return(true);
        }
Esempio n. 6
0
        public ParametersForm(ISearchInfo info)
        {
            InitializeComponent();
            int     i = 0;
            TextBox textBox;
            Label   label;

            this.info = info;
            foreach (KeyValuePair <string, string> pair in info.SearchParameters)
            {
                label      = new Label();
                label.Text = pair.Key;
                tablePanel.Controls.Add(label, 0, i);


                textBox      = new TextBox();
                textBox.Text = pair.Value;
                tablePanel.Controls.Add(textBox, 1, i);

                dic.Add(label, textBox);

                i++;
            }
        }
Esempio n. 7
0
 void ISectionSearchHandler.RemoveItem(ISearchInfo item)
 {
     scenesSearchHandler.RemoveItem(item);
 }
Esempio n. 8
0
 void ISectionSearchHandler.AddItem(ISearchInfo item)
 {
     scenesSearchHandler.AddItem(item);
 }
Esempio n. 9
0
        public SolutionForm(ISolver A, IEnvironment env, INode start, INode goal)
        {
            InitializeComponent();

            DataGridViewTextBoxColumn col = new DataGridViewTextBoxColumn();

            col.HeaderText = "Operators";
            col.SortMode   = DataGridViewColumnSortMode.NotSortable;
            operatorsView.Columns.Add(col);
            operatorsView.RowHeadersWidth = 50;
            col.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;


            IState      currentState = start.State;
            IPolicy     policy       = A.getPolicy();
            ISearchInfo info         = A.GetSearchInfo();

            if (policy == null)
            {
                MessageBox.Show("No solution found");
            }


            //use policy to find solution

            int             i    = 0;
            int             maxi = 3000;
            double          SumQ = 0;
            DataGridViewRow row;

            while (policy != null && !currentState.Equals(goal.State) && i < maxi)
            {
                row = new DataGridViewRow();

                row.HeaderCell.Value = String.Format("{0}", i + 1);

                IOperator op = policy.action(currentState);

                operatorsView.Rows.Add(row);

                operatorsView.Rows[i].Cells[0].Value = op.Name;

                IOutcome outcome = env.act(currentState, policy.action(currentState));

                currentState = outcome.State;
                stateList.Add(outcome.State);

                SumQ += outcome.Reward;

                i += 1;
            }

            if (i >= maxi)
            {
                MessageBox.Show("No solution found");
                stateList.Clear();
            }
            operatorsView.Update();

            // print solver parameters + results
            col            = new DataGridViewTextBoxColumn();
            col.HeaderText = "Properties";
            ResultView.Columns.Add(col);
            ResultView.RowHeadersWidth = 50;

            col            = new DataGridViewTextBoxColumn();
            col.HeaderText = "Values";
            ResultView.Columns.Add(col);
            ResultView.RowHeadersWidth = 50;
            col.AutoSizeMode           = DataGridViewAutoSizeColumnMode.Fill;

            i = 0;
            foreach (KeyValuePair <string, string> pair in info.SearchResults.Union(info.SearchParameters))
            {
                row = new DataGridViewRow();

                row.HeaderCell.Value = String.Format("{0}", i + 1);

                ResultView.Rows.Add(row);

                ResultView.Rows[i].Cells[0].Value = pair.Key;
                ResultView.Rows[i].Cells[1].Value = pair.Value;
                i += 1;
            }


            //print total reward
            row = new DataGridViewRow();
            row.HeaderCell.Value = String.Format("{0}", i + 1);
            ResultView.Rows.Add(row);
            ResultView.Rows[i].Cells[0].Value = "Cummulative reward";
            ResultView.Rows[i].Cells[1].Value = SumQ.ToString();

            ResultView.Width = col.Width + ResultView.RowHeadersWidth + 20;
            ResultView.Update();

            ConfigureDGV(N);
            NPuzzleState npState = (NPuzzleState)start.State;

            FillDGV(npState.Tiles, N);
        }