Сети адаптивного резонанса fuzzy ART

Автор работы: Пользователь скрыл имя, 07 Декабря 2010 в 14:09, Не определен

Описание работы

Лабораторная работа

Файлы: 1 файл

4лаба.doc

— 103.00 Кб (Скачать файл)

                for (int j = 0; j < 10; j++)

                {

                    if (dataGridView1.Rows[i].Cells[j].Style.BackColor == Color.White)

                    {

                        x[index] = 0;

                    }

                    else

                    {

                        x[index] = 1;

                        bul = true;

                    }

                    index++;

                }

            } 

            ///////////////////////////////////////////////Вычисляется функция выбора  

            for (int j=0; j < 10; j++)

            {

                int intX=0;

                int intT=0;

                for (int i = 0; i < 100; i++)

                {

                    if (x[i]*t[i,j]==1) intX++;

                    if (t[i,j]==1) intT++;

                }

                 FX[j] =(intX*100)/(intT+1);

            }

            ///////////////////////// поиск нейрона победителя

            restert: 

            int neiron_pobeditel = -1;

            float temp = 0;

            for (int i = 0; i < 10; i++)

            {

                if ((temp < FX[i]) && (G2[i]==1))

                {

                    temp = FX[i];

                    neiron_pobeditel = i;

                }

            }

            if (neiron_pobeditel == -1) goto ennd;

            /////////////////////////////////вычисляем норму

           int ix=0;

            for (int i = 0; i < 100; i++)

              {

                if (x[i]==1) ix++;

              }

        /*. Определение момента резонанса

          Резонанс фиксируется в том  случае, если значение функции 

              соответст-вия выбранной категории  j удовлетворяет критерию сходства  ρ: */ 

            int schet = 0;

            for (int i = 0; i < 100; i++)

            {

                XX[i] = t[i, neiron_pobeditel] * x[i];

                if (XX[i] == 1)

                    schet++;

            } 

            if ((schet / ix) >= q)

            {

                /*При резонансе поиск прекращается, и веса

                * нейрона-победителя с номером j подстраиваются в соответствии

                 * с уравнением:*/

                goto go;

            }

            else ///проводим сброс

            {

                G2[neiron_pobeditel] = -1;

                goto restert;

            }

 /***************************************************************************************/         

 

          go:

            for (int i = 0; i < 100; i++)

            {

                t[i, neiron_pobeditel] = t[i, neiron_pobeditel] * x[i];

            }

            ennd:;

        } 

        private void button4_Click(object sender, EventArgs e)

        {

            Application.Exit();

        } 

        private void dataGridView2_Click(object sender, EventArgs e)

        {

           

        } 

        private void textBox1_TextChanged(object sender, EventArgs e)

        {

            if (textBox1.Text == "")

            {

                button1.Enabled = false;

            }

            else

            {

                button1.Enabled = true;

            } 

        } 

        private void button3_Click(object sender, EventArgs e)

        {

            for (int i = 0; i < 1000; i++)

            {

                for (int j = 0; j < 10; j++)

                {

                    dataGridView2.Rows[i].Cells[j].Style.BackColor = Color.White;

                }

            }

            int min = 0;

            int max = 10;

            for (int k = 0; k < 10; k++)

            {

                int index = 0;

                for (int i = min; i < max; i++)

                {

                    for (int j = 0; j < 10; j++)

                    {

                        if (t[index, k] == 1)

                        {

                            dataGridView2.Rows[i].Cells[j].Style.BackColor = Color.Maroon;

                        }

                        else

                        {

                            dataGridView2.Rows[i].Cells[j].Style.BackColor = Color.White;

                       

                        }

                        index++;

                    }

                }

                min = min + 10;

                max = max + 10;

            } 

        }

    }

}

Информация о работе Сети адаптивного резонанса fuzzy ART