Newer
Older

Michal Kravcenko
committed
/**
* DESCRIPTION OF THE FILE
*
* @author Michal Kravčenko
* @date 13.6.18 -
*/

Michal Kravcenko
committed
//TODO pouvazovat o pridani indexu k neuronum, abychom meli urcitou kontrolu nad poradim vstupu a vystupu?

Michal Kravcenko
committed
#ifndef INC_4NEURO_NEURALNETWORK_H
#define INC_4NEURO_NEURALNETWORK_H

Michal Kravcenko
committed
#include <vector>
#include "../Neuron/Neuron.h"

Michal Kravcenko
committed
enum NET_TYPE{GENERAL};

Michal Kravcenko
committed

Michal Kravcenko
committed
/**
*
*/
class NeuralNetwork {
private:
/**
*
*/
NET_TYPE network_type = GENERAL;

Michal Kravcenko
committed
/**
*
*/
std::vector<Neuron*> *neurons = nullptr;
/**
*
*/
std::vector<Neuron*>* input_neurons = nullptr;
/**
*
*/
std::vector<Neuron*>* output_neurons = nullptr;
/**
*
*/
int n_inputs = -1;
/**
*
*/
int n_outputs = -1;
/**
*
*/
bool in_out_determined = false;
std::vector<Neuron*>* active_eval_set = nullptr;

Michal Kravcenko
committed
/**
*
*/

Michal Kravcenko
committed
void determine_inputs_outputs();

Michal Kravcenko
committed
public:
/**
*
*/

Michal Kravcenko
committed
NeuralNetwork();
/**
*
*/
~NeuralNetwork();
/**
*
* @param[in] input
* @param[in,out] output
*/
void eval_single(std::vector<double> &input, std::vector<double> &output);
/**
*
* @param n
*/
void add_neuron(Neuron* n);

Michal Kravcenko
committed
};
#endif //INC_4NEURO_NEURALNETWORK_H