예제 #1
0
    private void Start()
    {
        newestNetwork = new NeuralNetworkCompact
                            (initSettings.layers,
                            initSettings.weightMutationChance,
                            initSettings.weightMaxMutationRange);

        for (int i = 0; i < 10; i++)
        {
            newestNetwork.Mutate();
        }

        SpawnAgents();
    }
예제 #2
0
    private void Update()
    {
        if (Input.GetKeyDown(KeyCode.Space))
        {
            NeuralNetwork fittestNetwork = agents[0].NN;
            for (int i = 1; i < agents.Count; i++)
            {
                if (agents[i].NN.Fitness > fittestNetwork.Fitness)
                {
                    fittestNetwork = agents[i].NN;
                }
            }

            NeuralNetworkCompact cachedNN;
            for (int i = 1; i < agents.Count; i++)
            {
                cachedNN = new NeuralNetworkCompact(fittestNetwork as NeuralNetworkCompact);
                cachedNN.Mutate();
                agents[i].NN = cachedNN;
            }
        }
    }