Ejemplo n.º 1
0
 public void CreateRandomAI()
 {
     _rand    = new System.Random();
     _network = new NeuralDecisionNetwork(81, 16, new int[2] {
         50, 30
     });
     Debug.Log("created");
     _loopsCountLabel.text = _loopsCount.ToString();
 }
    public NeuralDecisionNetwork Clone()
    {
        NeuralDecisionNetwork clone = new NeuralDecisionNetwork(InputLength, OutputLength, new int[1] {
            1
        });

        clone._networks.Clear();
        for (int i = 0; i < _networks.Count; i++)
        {
            clone._networks.Add(_networks [i].Clone());
        }
        return(clone);
    }
    private float GetError()
    {
        NeuralDecisionNetwork decider = _decider.Clone();
        int successes = 0;

        for (int i = 0; i < _trainingModels.Count; i++)
        {
            if (_trainingModels [i].Output == decider.Think(_trainingModels [i].Inputs, _trainingModels [i].Options))
            {
                successes++;
            }
        }
        return((_trainingModels.Count - successes) / (float)_trainingModels.Count);
    }
 public void Init(DecisionType type, List <TrainingDecisionModel> trainingModels, AINeuralPlayer2 player)
 {
     _trainingModels = new List <TrainingDecisionModel> ();
     foreach (var model in trainingModels)
     {
         if (model.Type == type && model.RewardPercent > 0.5f)
         {
             _trainingModels.Add(model);
         }
     }
     _trainingsDataSize.text = _trainingModels.Count.ToString();
     _decider        = player.GetChooserDecider(type);
     _trainingsCount = 0;
 }
Ejemplo n.º 5
0
    private int GetDecisionInd(DecisionType type, Game game, PlayerModel player, List <int> randoms, int points, Resource receivedRecource, WhereToGo whereToGo)
    {
        List <int> optionInds = AINeuralPlayer.GetOptionInds(type, game, _model, randoms, points, receivedRecource, whereToGo);

        int[]    inputs       = AINeuralPlayer.GetInputs(type, game, _model, receivedRecource, whereToGo);
        double[] inputsDouble = new double[inputs.Length];
        for (int i = 0; i < inputs.Length; i++)
        {
            inputsDouble [i] = inputs [i];
        }
        NeuralDecisionNetwork chooser = GetChooserDecider(type);
        int decisionInd = chooser.Think(inputs, optionInds);

        return(decisionInd);
    }
Ejemplo n.º 6
0
 private void InitGetUsedHumans()
 {
     _getUsedHumansDecider = new NeuralDecisionNetwork(9, 10, new int[2] {
         6, 6
     });
 }
Ejemplo n.º 7
0
 private void InitWhereToGo()
 {
     _whereToGoDecider = new NeuralDecisionNetwork(81, 16, new int[2] {
         50, 30
     });
 }