⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 connexions.java

📁 application som kohonen , pour une classification de couleur et voir l application de l algorithme
💻 JAVA
字号:
package neuronespack;

/**
 * Package Neurones
 * Fonctionalit閟 de base des r閟eaux neuronaux.
 * R閟eaux Neauronaux, Vuibert 2006.
 * Jean-Philippe Rennard
 * version 1.0, 17/3/2006
 */

import java.util.*;

/**
 * <p>Title: Connexions</p>
 * <p>Description: Gestion des connexions entre unit閟.</p>
 */
public class Connexions {

  /** Matrice des poids */
  protected double matricePoids[][];
  /** Matrice des des delta poids */
  protected double matriceDeltaPoids[][];
  /** Liste des synapses */
  private Vector lesSynapses;
  /** Nombre de synapses */
  private int nbSynapses;
  /** Nombre d'unit閟 閙ettrices */
  private int nbUnitesEmettrices;
  /** Nombre d'unit閟 r閏eptrices */
  private int nbUnitesReceptrices;
  /** Groupe d'origine */
  private GroupeUnites groupeOrigineConnexions;
  /** Groupe de destination */
  private GroupeUnites groupeDestinationConnexions;
  /** Type de connexion */
  private int typeConnexions;

  /**
   * Constructeur
   * @param t int : Type de connexion
   * @param c1 GroupeUnites : Groupe d'origine
   * @param c2 GroupeUnites : Groupe de destination
   * @param mc boolean[][] : Matrice des connexions Emission x R閏eption.
   */
  public Connexions(int t, GroupeUnites c1, GroupeUnites c2, boolean mc[][]) {
    setTypeConnexions(t);
    nbUnitesEmettrices = c1.getNbUnites();
    nbUnitesReceptrices = c2.getNbUnites();
    nbSynapses = getNbConnexions(mc);
    lesSynapses = new Vector(nbSynapses);
    setGroupeOrigineConnexions(c1);
    setGroupeDestinationConnexions(c2);
    matricePoids = new double[nbUnitesEmettrices]
        [nbUnitesReceptrices];
    matriceDeltaPoids = new double[nbUnitesEmettrices]
        [nbUnitesReceptrices];

    connecte(mc);
  }

  /**
   * Connecte des unit閟
   * @param mc boolean[][] : matrice des connexions.
   */
  public void connecte(boolean mc[][]) {
    for (int i=0; i<getNbUnitesEmettrices(); i++) {
      for (int j=0; j<getNbUnitesReceptrices(); j++) {
        if (sontConnecte(mc, i, j)) {
          Synapse sy = new Synapse(this);
          sy.connecteUniteDeA(getGroupeOrigineConnexions().getUnite(i),
                             getGroupeDestinationConnexions().getUnite(j));
          addSynapse(sy);
        }
      }
    }
  }


  /** MAJ de la matrice des poids */
  public void setMatricePoids(double m[][]) {
    matricePoids = m;
  }

  /**
   * Fixe le poids d'une connexion
   * @param x int : Position x de la matrice de connexions (origine)
   * @param y int : Position y de la matrice de connexions (destination)
   * @param valeur double : Valeur de la connexion
   */
  public void setPoids(int x, int y, double valeur) {
    matricePoids[x][y] = valeur;
  }

  /**
   * Initialisation al閍toire des poids des connexions
   * @param min double : Valeur minimum
   * @param max double : Valeur maximum
   */
  public void setPoidsAleat(double min, double max) {
    for (int i = 0; i < nbSynapses; i++) {
      ((Synapse)lesSynapses.elementAt(i))
          .setPoids(FonctionTransfert.getRandom(min, max));
    }
  }

  /** Fixe tout les poids 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -