📄 connexions.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 + -