Автор работы: Пользователь скрыл имя, 31 Декабря 2010 в 00:58, курсовая работа
Принятие решения в большинстве случаев заключается в генерации всех возможных альтернатив, их оценке и выборе лучшей среди них. Принять "правильное" решение - значит выбрать такой вариант из числа возможных, в котором с учетом всех разнообразных факторов и противоречивых требований будет оптимизирована некая общая ценность, то есть решение будет в максимальной степени способствовать достижению поставленной цели.
ВВЕДЕНИЕ 5
1 МОДЕЛИРОВАНИЕ РАБОТЫ НЕЙРОННОЙ СЕТИ 6
2 АЛГОРИТМ ОБРАТНОГО РАСПРОСТРОНЕНИЯ ОШИБКИ 10
3 ГЕНЕТИЧЕСКИЙ АЛГОРИТМ 15
4 ЭФФЕКТИВНОСТЬ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ 22
4.1 Показатели эффективности генетических алгоритмов 22
4.2 Скорость работы генетических алгоритмов 22
4.3 Устойчивость работы генетических алгоритмов 24
4.4 Направления развития генетических алгоритмов 27
ЗАКЛЮЧЕНИЕ 30
СПИСОК ЛИТЕРАТУРЫ 31
ПРИЛОЖЕНИЕ 32
input_x0[4][
input_x0[4][
input_x0[4][
input_x0[4][
input_x0[4][
//тестовая
input_x1[0][
input_x1[0][
input_x1[0][
input_x1[0][
input_x1[0][
input_x1[1][
input_x1[1][
input_x1[1][
input_x1[1][
input_x1[1][
input_x1[2][
input_x1[2][
input_x1[2][
input_x1[2][
input_x1[2][
input_x1[3][
input_x1[3][
input_x1[3][
input_x1[3][
input_x1[3][
input_x1[4][
input_x1[4][
input_x1[4][
input_x1[4][
input_x1[4][
double nu = 0.01;//скорость
обучения,которая на самом
SandY[] neuro_data = new SandY[2];
double[] y = new double[2];//результат
double[] d0 = new double[2];//идеальные значения для 0
double[] d1 = new double[2];//идеальные значения для 1
d0[0] = 1.0;
d0[1] = 0.0;
d1[0] = 0.0;
d1[1] = 1.0;
int step = 0;
double[] delta = new double[2];
/*
Console.
Console.
Console.
////////////
//по
////////////
while(step <=1000000)
{
step++
for (int neuron = 0; neuron < 2; neuron ++ )//всего два нейрона
{
}
if (Math.Abs(neuro_data[0].Y - neuro_data[1].Y) >= 0.9)
for (int neuron = 0; neuron < 2; neuron++)
{
}
}
if (neuro_data[0].Y > neuro_data[1].Y)
Consol
else
Consol
*/
////////////
//по
////////////
Console.
Console.
Console.
//целевая
// где y - реальное
значение ф-ции активизации
int kolPopul = 8;
double[][][]
for (int n = 0; n < 2; n++)
{
weight
seed = 0;
for (int o = 0; o < kolPopul; o++)//заполняем веса случайными значениями от 0,0 до 0,1
{
}
}
double[][] F = new double[2][]; //
массив для хранения значений
целевой функции для 4-х
for (int n = 0; n < 2; n++)
{
F[n] = new double[kolPopul];
}
double[][] F_temp = new double[2][];
// массив для хранения значений
целевой функции для
for (int n = 0; n < 2; n++)
{
F_
}
double[][] F_potomki = new double[2][]; // массив для хранения значений целевой функции для потомков для двух нейронов
for (int n = 0; n < 2; n++)
{
F_
}
int k = 0;
SandY[] neuro_dataGA = new SandY[2];
while (k < 10)//количество поколений
{
Consol
k++;
for (int neuron = 0; neuron < 2; neuron++)
{