Programmation C++ de l'algorithme de kohonen

Fermé
W-B Messages postés 3 Date d'inscription mercredi 15 mars 2017 Statut Membre Dernière intervention 13 avril 2017 - 13 avril 2017 à 15:30
Raghad.Jr Messages postés 1 Date d'inscription samedi 6 mai 2017 Statut Membre Dernière intervention 6 mai 2017 - 6 mai 2017 à 20:23
Bonjour,
Dans le cadre de mon projet de fin d'étude, j'ai besoin de programme l'algorithme de réseau de kohonen avec C ou C++. J'ai eu des problèmes lors de la programmation (la partie de mise à jour des poids ).
Pourriez vous m'aider s'il vous plait.
Merci d'avance.
A voir également:

1 réponse

baladur13 Messages postés 46391 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 23 avril 2024 13 217
13 avril 2017 à 15:32
Bonjour,
Nous ne ferons pas votre exercice à votre place.
Merci de décrire précisément votre problème et en postant le code déjà réalisé.

Cliquez ici pour des conseils d'écriture des messages et ici concernant les devoirs scolaires ou PFE.

Pour poster votre code, merci de penser à la coloration syntaxique.
0
W-B Messages postés 3 Date d'inscription mercredi 15 mars 2017 Statut Membre Dernière intervention 13 avril 2017
Modifié le 13 avril 2017 à 16:06
le problème, après avoir calculer les distances, c'est de savoir comment déterminer la position d'un neurone gagnant sur une carte 2D qui a la distance minimale, puis d'effectuer la mise à jours de poids de ce neurone et ces voisins.
voici la première partie de ce code

<code>
//Déclaration des variables 
const int       m_dX = 5;
const int    m_dY = 5;
const int NumWeights = 25;
const int InNumber = 3;
double    m_dWeights[NumWeights][InNumber];
double    IN[InNumber] = { 0.21, 0.85, 0.5 };
double   D[NumWeights];
const int alpha = 0.6;


//calcul et affichage de distance 
void CalculateDistance(double X[])
{
 for (int i = 0; i < NumWeights; i++)
 {
  for (int j = 0; j < InNumber; j++)
  {
 D[i] += ((X[j] - m_dWeights[i][j])*(X[j] - m_dWeights[i][j]));
 cout << "D=" << D[i] << " ";
  }system("pause");
 }
}
  
//calcule de la distance minimale 
double  minimum()
{
 double min = D[0];
 for (int i = 0; i < NumWeights; i++)
 {
  if (min > D[i])
  
   min = D[i];
   cout << "\n" << min;
 // cout << "\n" << i << " est le neurone gagnant";       
// afficher la position de neurone gagnant 
 }system("pause"); 
 return min;
}
</code>
0
Raghad.Jr Messages postés 1 Date d'inscription samedi 6 mai 2017 Statut Membre Dernière intervention 6 mai 2017
6 mai 2017 à 20:23
Bonjour je suis en train de développer mon projet, j'ai fini la partie de l'etat de l'art et je passe maintenent à la partie programmtion en c d'un algorithme SOM
j'ai besoin vraiment de votre aide , comment réaliser la fonction de voisinage et les mises à jour des poids , avez vous un code ? et un énorme merci d'avance
0