Скачиваний:
0
Добавлен:
26.10.2025
Размер:
133.02 Кб
Скачать

3.6. Входные данные InputData.Cs

namespace PerceptronSymbolsHybrid

{

public static class InputData

{

static Random rnd = new Random();

public static List<TrainingSample> GetSymbolSamples()

{

var samples = new List<TrainingSample>();

int[] symbol1 = new int[]

{

1, 0, 0, 0, 0,

1, 0, 0, 0, 0,

1, 1, 1, 1, 1,

1, 0, 0, 0, 0,

1, 0, 0, 0, 0

};

samples.Add(new TrainingSample(symbol1, "├"));

int[] symbol2 = new int[]

{

0, 0, 0, 0, 1,

0, 0, 0, 0, 1,

1, 1, 1, 1, 1,

0, 0, 0, 0, 1,

0, 0, 0, 0, 1

};

samples.Add(new TrainingSample(symbol2, "┤"));

int[] symbol3 = new int[]

{

1, 1, 1, 1, 1,

0, 0, 1, 0, 0,

0, 0, 1, 0, 0,

0, 0, 1, 0, 0,

0, 0, 1, 0, 0

};

samples.Add(new TrainingSample(symbol3, "┬"));

int[] symbol4 = new int[]

{

0, 0, 1, 0, 0,

0, 0, 1, 0, 0,

0, 0, 1, 0, 0,

0, 0, 1, 0, 0,

1, 1, 1, 1, 1

};

samples.Add(new TrainingSample(symbol4, "┴"));

int[] symbol5 = new int[]

{

0, 0, 1, 0, 0,

0, 0, 1, 0, 0,

1, 1, 1, 1, 1,

0, 0, 1, 0, 0,

0, 0, 1, 0, 0

};

samples.Add(new TrainingSample(symbol5, "┼"));

int[] symbol6 = new int[]

{

0, 0, 0, 0, 0,

1, 1, 1, 1, 1,

0, 0, 0, 0, 0,

1, 1, 1, 1, 1,

0, 0, 0, 0, 0

};

samples.Add(new TrainingSample(symbol6, "═"));

int[] symbol7 = new int[]

{

0, 1, 0, 1, 0,

0, 1, 0, 1, 0,

0, 1, 0, 1, 0,

0, 1, 0, 1, 0,

0, 1, 0, 1, 0

};

samples.Add(new TrainingSample(symbol7, "║"));

return samples;

}

public static TrainingSample GenerateNoiseSample()

{

int[] pattern = new int[25];

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

{

pattern[i] = rnd.NextDouble() > 0.5 ? 1 : 0;

}

return new TrainingSample(pattern, "None");

}

public static int[] ReadUserInput()

{

int[] userInput = new int[25];

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

{

string? line = Console.ReadLine();

if (string.IsNullOrWhiteSpace(line))

{

i--;

continue;

}

string[] parts = line.Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);

if (parts.Length != 5)

{

i--;

continue;

}

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

{

userInput[i * 5 + j] = parts[j] == "1" ? 1 : 0;

}

}

return userInput;

}

}

}

4. Результаты настройки генетического алгоритма: число особей в популяции, вероятность мутации, время выполнения обучения с помощью генетического алгоритма, число поколений, число выполненных вычислений фитнес-функции.

В конфигурации алгоритма популяция состоит из 20 особей. Используется альтернативная равномерная мутация с вероятностью 0.1. Время работы зависит от числа поколений и вычислительных затрат на оценку фитнес-функции. Эволюция продолжается до достижения порога фитнеса или максимального числа поколений до 10 000 поколений. Алгоритм продолжает эволюцию до тех пор, пока не будет достигнут заданный порог фитнес-функции или не исчерпается максимальное число поколений. Фитнес-функция вычисляется при создании каждой особи (при инициализации популяции) и повторно после каждой мутации. При популяции из 20 особей и 10 000 поколениях, общее число вычислений может достигать примерно 200000.

Соседние файлы в предмете Методы и модели искусственного интеллекта в управлении техническими системами