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
| int neurone(float x1, float x2, float seuil, float poids)
{
float result = poids*(x1+x2);
if(result <= seuil)
return 0;
if(result >= seuil)
return 1;
}
void learn(float *poids, float alpha, float seuil, float x1, float x2, float entreeAct)
{
int yk = neurone(x1, x2, seuil, *poids); // Calcul du résultat actuel avec les entrées x1 et x2
*poids += alpha*(yk - *poids)*entreeAct; // Correction du poids
}
int main()
{
// Apprentissage pour l'entrée x1
for(int i = 1; i < nbIter + 1; i++)
{
learn(pPoids, alpha, seuil, x1, x2, x1);
}
// Apprentissage pour l'entrée x2
for(int i = 1; i < nbIter + 1; i++)
{
learn(pPoids, alpha, seuil, x1, x2, x2);
}
} |