Ejemplo n.º 1
0
        private void CalculateDecisionFunctions()
        {
            bool IsClassification = true;
            int  iteration        = 0;

            while (IsClassification && (iteration < MAX_ITERATIONS_COUNT))
            {
                for (int i = 0; i < classes.Count; i++)
                {
                    PerceptronClass  currentClass  = classes[i];
                    PerceptronObject currentWeigth = weigths[i];

                    for (int j = 0; j < currentClass.objects.Count; j++)
                    {
                        PerceptronObject currentObject = currentClass.objects[j];

                        IsClassification = CorrectWeigth(currentObject, currentWeigth, i);
                    }
                }
                iteration++;
            }

            if (iteration == MAX_ITERATIONS_COUNT)
            {
                MessageBox.Show("Количество итераций превысило 1000." + "\n" +
                                "Решаюшие функции, возможно, найдены неправильно.");
            }

            decisionFunctions = weigths;
        }
Ejemplo n.º 2
0
        private void CreateRandomClasses()
        {
            var rand = new Random();

            for (int i = 0; i < classesCount; i++)
            {
                var currentClass = new PerceptronClass();

                for (int j = 0; j < objectsInClassCount; j++)
                {
                    var currentObject = new PerceptronObject();

                    for (int k = 0; k < attributesCount; k++)
                    {
                        currentObject.attributes.Add(rand.Next(RANDOM) - RANDOM / 2);
                    }

                    currentClass.objects.Add(currentObject);
                }
                classes.Add(currentClass);
            }

            foreach (PerceptronClass perceptronClass in classes)
            {
                var weigth = new PerceptronObject();

                for (int i = 0; i <= attributesCount; i++)
                {
                    weigth.attributes.Add(0);
                }

                weigths.Add(weigth);
                decisions.Add(0);
            }

            foreach (PerceptronClass perceptronClass in classes)
            {
                foreach (PerceptronObject perceptronObject in perceptronClass.objects)
                {
                    perceptronObject.attributes.Add(1);
                }
            }
        }