1
0
mirror of https://github.com/vcmi/vcmi.git synced 2024-12-20 20:23:03 +02:00
vcmi/AI/GeniusAI/AIPriorities.h
Trevor Standley a3b6bb4892 AI loads .brain file which contains a list of objects to visit and what features are necessary to determine how valuable that objective is.
AI creates random neural networks and assumes that their outputs are trained values.
2009-08-18 07:37:45 +00:00

39 lines
934 B
C++

#ifndef AIP_H
#define AIP_H
#include <string>
#include "CGeniusAI.h"
#include "neuralNetwork.h"
namespace GeniusAI {
class Network
{
public:
Network();
Network(vector<unsigned int> whichFeatures);// random network
Network(istream & input);
vector<unsigned int> whichFeatures;
float feedForward(const vector<float> & stateFeatures);
neuralNetwork net; //a network with whichFeatures.size() inputs, and 1 output
};
class Priorities
{
public:
Priorities(); //random brain
Priorities(const string & filename); //read brain from file
vector<float> stateFeatures;
int specialFeaturesStart;
int numSpecialFeatures;
void fillFeatures(const CGeniusAI::HypotheticalGameState & AI);
float getValue(const CGeniusAI::AIObjective & obj);
float getCost(vector<int> &resourceCosts,const CGHeroInstance * moved,int distOutOfTheWay);
vector<vector<Network> > networks;
};
}
#endif