コード例 #1
0
        public void InitializeComponent_DistributionResults(string[] engineResults)
        {
            int n = Convert.ToInt32(engineResults[2]); //Number of points
            int j = 3;

            this.doubleX = new double[n];
            this.doubleY = new double[n];
            for (int i = 0; i < n; i++)
            {
                doubleX[i] = Math.Round(Double.Parse(engineResults[j++]), 2);
                doubleY[i] = Double.Parse(engineResults[j++]);
            }


            this.MC_histogram.LB_Mean.Text   = engineResults[j]; j++;
            this.MC_histogram.LB_Median.Text = engineResults[j]; j++;
            this.MC_histogram.LB_Mode.Text   = engineResults[j];
            j++;
            this.MC_histogram.LB_Var.Text = engineResults[j];
            this.MC_histogram.CH_histogram.Series["Series1"].Points.Clear();
            this.MC_histogram.CH_histogram.Series["Series1"].Points.DataBindXY(doubleX, doubleY);
            for (int i = 0; i < n; i++)
            {
                System.Windows.Forms.DataVisualization.Charting.StripLine stripLine = new System.Windows.Forms.DataVisualization.Charting.StripLine();
                stripLine.BackColor      = System.Drawing.Color.Gray;
                stripLine.StripWidth     = 0.001D;
                stripLine.IntervalOffset = doubleX[i];
                this.MC_histogram.CH_histogram.ChartAreas[0].AxisX.StripLines.Add(stripLine);
            }

            this.x = ElicitationHelper.unDoubleXVector(doubleX);
        }
コード例 #2
0
        virtual public void setQuestionAlternatives()
        {
            double[]        doubleX      = ElicitationHelper.doubleXVector(this.x);
            int             n            = this.x.Length;
            List <DBEntity> alternatives = new List <DBEntity> (0);
            int             j            = 0;
            string          event_i      = "";
            Alternative     alt_i        = null;

            this.question = this.ifPrincipal.getQuestion();
            //if(this.question.alternatives.Count==0){
            for (int i = 0; i < n - 2; i++)
            {
                event_i = "[ " + Math.Round(doubleX[j], 3).ToString()
                          + "; " + Math.Round(doubleX[j + 1], 3).ToString() + " )";
                alt_i        = new Alternative(this.question, access.expert, null);
                alt_i.isNew  = true;
                alt_i.evento = event_i;
                alternatives.Add(alt_i);
                j += 2;
            }
            event_i      = "[ " + Math.Round(doubleX[j], 3).ToString() + "; " + Math.Round(doubleX[j + 1], 3).ToString() + " ]";
            alt_i        = new Alternative(this.question, access.expert, null);
            alt_i.evento = event_i;
            alternatives.Add(alt_i);
            this.question.alternatives = alternatives;
            //}
        }
コード例 #3
0
        static ElicitationHelper instance(IFormPrincipal ifPrincipal)
        {
            if (_instance == null)
            {
                _instance = new ElicitationHelper(ifPrincipal);
            }

            return(_instance);
        }
コード例 #4
0
        override protected IMethod updateMethod()
        {
            try
            {
                double[] creds = getCredibilities();
                this.W = new double[this.numberInterval + 1];
                creds.CopyTo(this.W, 1);
                this.Fx = ElicitationHelper.getCumulative(this.W);

                this.times.Add(timeConsuption / 1000);  //Armazenar nas listas os valores do tempo consumido e das respostas
                this.InitializeComponent_DistributionResults(ElicitationHelper.buildStatistics(this.x, this.Fx, this.numberInterval, this.p.min, this.p.max));
            } catch (Exception exc) {
                ifPrincipal.DisplayMessage(exc.StackTrace, true);
            }
            return(null);
        }
コード例 #5
0
        public void initMethod2()
        {
            int nPoints = 2 * this.k - 2;

            this.y = new double[nPoints];

            this.Fx = ElicitationHelper.getCumulative(this.W);//cumulatives

            label_texts = new String[this.numberInterval];
            this.setQuestionAlternatives();
            for (int i = 0; i < this.numberInterval; i++)
            {
                label_texts[i] = ((Alternative)this.question.alternatives[i]).evento;
            }
            this.lista = ElicitationHelper.buildStatistics(this.x, Fx, this.numberInterval, this.p.min, this.p.max);

            configInputControls2(label_texts);

            this.InitializeComponent_DistributionResults(this.lista);
        }
コード例 #6
0
 override public double[] getCredibilities()
 {
     return(ElicitationHelper.updateCredibilitiesDirectMethod(NUDL_options.getProbabilities()));
 }
コード例 #7
0
 override public Double[] getCredibilities()
 {
     Double[] probabilities = numericUpDownList1.getProbabilities();
     return ElicitationHelper.updateCredibilitiesDirectMethod(probabilities);
 }
コード例 #8
0
        public List <double> getGrid()
        {
            int                   entreCount = 0;
            Question              question   = ifPrincipal.getQuestion();
            int                   nAltern    = question.alternatives.Count;
            List <double>         grid       = new List <double>();
            List <List <double> > gridBuild  = new List <List <double> >();

            string distribuicao = question.distribuicao;

            if (question.distribuicao.IndexOf("\t") > 0)
            {
                distribuicao = question.distribuicao.Replace("\t", " ");
            }

            String[] dist = distribuicao.Split(new char[] { ';' });

            if (question.ehVariavelNominal == 0)  //Eh Numerico

            {
                if (doubleX != null) //TODO: Prof Paulo write: pra que esse "&& !dist.Equals(DefaultConfig.ST_DIST_GEOMETRIC)"???
                {
                    grid = ElicitationHelper.unDoubleXVector(doubleX).ToList();
                }
                else
                {
                    for (int i = 0; i < nAltern; i++)
                    {
                        gridBuild.Add(getPatternsAndValue(((Alternative)question.alternatives[i]).evento));
                    }

                    grid.Add(gridBuild[0][1]);
                    grid.Add(gridBuild[0][2]);

                    for (int i = 1; i < nAltern - 1; i++)
                    {
                        if ((int)SimbolosMatematicos.entre == gridBuild[i][0] && entreCount == 0)
                        {
                            entreCount += 1;
                            //grid.Add(gridBuild[i][1]);
                            grid.Add(gridBuild[i][2]);
                        }
                        else if (entreCount >= 1 && (dist.Equals(DefaultConfig.ST_DIST_BINOMIAL) || dist.Equals(DefaultConfig.ST_DIST_GEOMETRIC)))
                        {
                            grid.Add(gridBuild[i][1] + 1);
                            //grid.Add(gridBuild[i][2]);
                        }
                        else
                        {
                            grid.Add(gridBuild[i][1]);
                            //grid.Add(gridBuild[i][2]);
                        }
                    }

                    grid.Add(gridBuild[nAltern - 1][2]);
                }
            }
            else
            {
                if (dist[0].Trim() == DefaultConfig.ST_DIST_DIRAC)
                {
                    nAltern += 1; //Adicionando mais um elemento para que funcione com o mesmo código que o Geométrico.
                }
                for (int i = 0; i < nAltern; i++)
                {
                    grid.Add(i);
                }
                //grid = this.getX().ToList();
            }

            return(grid);
        }
コード例 #9
0
        virtual public double[] getCredibilities() //TODO: O retorno desta credibilidades estão errados..
        {
            double[] p = ElicitationHelper.getCredibilities(this.doubleX, this.doubleY);

            return(p);
        }