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; }
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); }
private void InitGetUsedHumans() { _getUsedHumansDecider = new NeuralDecisionNetwork(9, 10, new int[2] { 6, 6 }); }
private void InitWhereToGo() { _whereToGoDecider = new NeuralDecisionNetwork(81, 16, new int[2] { 50, 30 }); }