Я создаю проект, похожий на this , который был создан Карлом Симсом. Основываясь на публикации , опубликованной Симсом, я понял, что для создания «мозга» для существа мне нужно создать своего рода нейронную сеть, которая в данном случае представляет собой ориентированный граф узлов. Я не буду go подробно рассказывать о том, как работает вся сеть.
Мне нужно создать нейроны, которые являются узлами, которые получают некоторые входные значения и производят еще одно значение на основе своих функций. На них можно указать и указать один или несколько других узлов. Каждый нейрон также имеет функцию, которую он использует для производства своей стоимости. Первым шагом в создании сети является создание экземпляров нейронов без указателей, затем назначение каждому нейрону функции, а затем указание указателей нейронов на входы (другие узлы в сети). Моя проблема в том, что я не могу связать выбранную функцию с количеством требуемых параметров.
Например, предположим, что нейроны могут иметь эти 3 функции:
public float Sum2(float a, float b)
{
return a + b;
}
public float Mul3(float a, float b, float c)
{
return a * b * c;
}
public float Threshold(float a){
if(a > 0.5)
return a;
return 0;
}
Где-то в коде Мне нужен класс, подобный следующему:
class NeuronData{
FunctionIdendifier func; // An object that points to one of the functions Sum2, Mul3, or Threshold. Through it I can reach the original method easily.
int numOfInputs;
}
Я думал о создании словаря, в котором ключи являются функциями, а значения являются суммами параметров, но это кажется слишком сложным, и в нем также есть место для человеческая ошибка.
Заранее спасибо:)