AIPriorities.h 894 B

123456789101112131415161718192021222324252627282930313233343536
  1. #pragma once
  2. #include "CGeniusAI.h"
  3. #include "neuralNetwork.h"
  4. namespace geniusai {
  5. class Network
  6. {
  7. public:
  8. Network();
  9. Network(vector<ui32> whichFeatures);// random network
  10. Network(istream & input);
  11. vector<ui32> whichFeatures;
  12. double feedForward(const vector<double> & stateFeatures);
  13. neuralNetwork net; //a network with whichFeatures.size() inputs, and 1 output
  14. };
  15. class Priorities
  16. {
  17. public:
  18. Priorities(const string & filename); //read brain from file
  19. vector<double> stateFeatures;
  20. int specialFeaturesStart;
  21. int numSpecialFeatures;
  22. void fillFeatures(const CGeniusAI::HypotheticalGameState & AI);
  23. double getValue(const CGeniusAI::AIObjective & obj);
  24. double getCost(vector<int> &resourceCosts,const CGHeroInstance * moved,int distOutOfTheWay);
  25. vector<vector<Network> > objectNetworks;
  26. vector<map<int,Network> > buildingNetworks;
  27. };
  28. }