Parfais alors , merci beaucoup de tes explication j’y voit beaucoup plus clair maintenant grace a toi !!
Voici un petit exemple .. si tu peut me dire si mes raisonnement etc.. sont bon.
Imaginons simplement un scroller tres simple ou un IA cours vers la gauche et doit : soit sauter par dessus un trou, soit se pencher sous un bloc.
On a donc 2 donnees : soit deux 1 ou 0 selon si les cases respectives ont un bloc ou un trou ..
On a 2 neurones : 1 pour se pencher , 1 pour sauter.
ce qui me donne basiquement …
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 | #include <iostream>
#include <vector>
class Neurone{
private:
double seuil_;
public:
Neurone(double seuil = 0.5) :
seuil_{seuil}
{}
bool activate(std::vector<int> datas_ , std::vector<double> weigths_){
double sum = 0;
for(size_t i = 0; i < datas_.size() ; i++){
sum += (datas_[i]*weigths_[i]);
}
std::cout<<sum <<std::endl;
return sum > seuil_ ? true : false;
}
};
int main(void){
std::vector<int> datas_1{1,0}; // soit un bloc en haut mais pas de trou
std::vector<int> datas_2{0,1}; // soit un trou mais pas de bloc
std::vector<double> weigths_1{0,1};
std::vector<double> weigths_2{1,0};
Neurone n_saut(0.5);
Neurone n_penche(0.5);
std::cout<<"Premier test : un bloc mais pas de trou" <<std::endl;
bool saut = n_saut.activate(datas_1,weigths_1);
bool penche = n_penche.activate(datas_1,weigths_2);
if(saut)
std::cout<<"Pour le premier test , il saute" <<std::endl;
else
std::cout<<"Pour le premier test , il ne saute pas" <<std::endl;
if(penche)
std::cout<<"Pour le premier test , il se penche" <<std::endl;
else
std::cout<<"Pour le premier test , il ne se penche pas" <<std::endl <<std::endl;
std::cout<<"Deuxieme test : un trou mais pas de bloc" <<std::endl;
saut = n_saut.activate(datas_2,weigths_1);
penche = n_penche.activate(datas_2,weigths_2);
if(saut)
std::cout<<"Pour le deuxieme test , il saute" <<std::endl;
else
std::cout<<"Pour le deuxieme test , il ne saute pas" <<std::endl;
if(penche)
std::cout<<"Pour le deuxieme test , il se penche" <<std::endl;
else
std::cout<<"Pour le deuxieme test , il ne se penche pas" <<std::endl;
return 0;
}
`
|
et avec comme sortie ( je peux pas copier la console … ) , ca me parait bien.
Premier test : penche , pas de saut
Deuxieme test : saut , se penche pas