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

📄 nodegng.java

📁 关于自组织神经网络的一种新结构程序,并包含了其它几种神经网络的程序比较
💻 JAVA
字号:
// ========================================================================== ;//                                                                            ;//     Copyright (1996-1998)  Hartmut S. Loos                                 ;//                                                                            ;//     Institut f"ur Neuroinformatik   ND 03                                  ;//     Ruhr-Universit"at Bochum                                               ;//     44780 Bochum                                                           ;//                                                                            ;//     Tel  : +49 234 7007845                                                 ;//     Email: Hartmut.Loos@neuroinformatik.ruhr-uni-bochum.de                 ;//                                                                            ;//     For version information and parameter explanation have a look at       ;//     the file 'DemoGNG.java'.                                               ;//                                                                            ;// ========================================================================== ;//                                                                            ;// Copyright 1996-1998 Hartmut S. Loos                                        ;//                                                                            ;// This program is free software; you can redistribute it and/or modify       ;// it under the terms of the GNU General Public License as published by       ;// the Free Software Foundation; either version 1, or (at your option)        ;// any later version.                                                         ;//                                                                            ;// This program is distributed in the hope that it will be useful,            ;// but WITHOUT ANY WARRANTY; without even the implied warranty of             ;// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              ;// GNU General Public License for more details.                               ;//                                                                            ;// You should have received a copy of the GNU General Public License          ;// along with this program; if not, write to the Free Software                ;// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.                  ;//                                                                            ;// ========================================================================== ;import java.util.*;/** * A class representing a node for all neural algorithms. * */class NodeGNG {  /**   * The maximum number of neighbors of a node   */  protected final int MAX_NEIGHBORS = 10;  /**   * The flag for mouse-selection   */  protected boolean fixed = false;  /**   * The flag for the winner.   *  This node is nearest to the input signal.   */  protected boolean winner = false;  /**   * The flag for the second winner.   *  This node is second nearest to the input signal.   */  protected boolean second = false;  /**   * The flag for movement.   *  This node moved from the last position (GNG, LBG).   */  protected boolean moved = false;  /**   * The flag for insertion.   *  This node was inserted last (GNG).   */  protected boolean inserted = false;  /**   * The x index in the grid (GG, SOM).   */  protected int x_grid = -1;  /**   * The y index in the grid (GG, SOM).   */  protected int y_grid = -1;  /**   * The x-position of the node.   */  protected float x = 0.0f;  /**   * The old x-position of the moved node.   */  protected float x_old = 0.0f;  /**   * The y-position of the node.   */  protected float y = 0.0f;  /**   * The old y-position of the moved node.   */  protected float y_old = 0.0f;  /**   * The error of the node.   */  protected float error = 0.0f;  /**   * The distance from the input signal.   */  protected float dist = Float.MAX_VALUE;  /**   * The utility for GNG-U and LBG-U   */  protected float utility = 0.0f;  /**   * The number of neighbors.   */  protected int nNeighbor = 0;  /**   * The list of neighbors.   */  protected int neighbor[] = new int[MAX_NEIGHBORS];  /**   * The list of neighbors.   */  protected Vector signals = new Vector();  /**   * Return number of signals.   *   * @return		number of signals   */  protected int numSignals() {    return(signals.size());  }  /**   * Add a signal index.   *   * @param sig		The index of the signal   */  protected void addSignal(int sig) {    signals.addElement( new Integer(sig) );  }  /**   * Remove a signal index and return the index.   *   * @return		The index of the signal or -1.   */  protected int removeSignal() {	int size = signals.size();    if (size < 1)       return(-1);	// remove last element from the vector and return it	Integer lastSignal = (Integer)signals.lastElement();	signals.removeElementAt(size-1);    return(lastSignal.intValue());  }  /**   * Return the number of neighbors.   *   * @return	Number of neighbors   */  protected int numNeighbors() {    return nNeighbor;  }  /**   * Is there space for more neighbors?   *   * @return	Space enough?   */  protected boolean moreNeighbors() {    return (MAX_NEIGHBORS != nNeighbor);  }  /**   * Returns the i-th neighbor.   *   * @param i	The index of a neighbor   * @return	The index of a node   */  protected int neighbor(int i) {    return neighbor[i];  }  /**   * Deletes the node from the list of neighbors.   *   * @param node	The index of a node   */  protected void deleteNeighbor(int node) {    for (int i = 0; i < nNeighbor; i++) {      if (node == neighbor[i]) {		nNeighbor--;		neighbor[i] = neighbor[nNeighbor];		neighbor[nNeighbor] = -1;		return;      }    }  }  /**   * Replaces the old node with a new node.   *   * @param old		The index of a node   * @param newN	The index of a node   * @see ComputeGNG#deleteNode   */  protected void replaceNeighbor(int old, int newN) {    for (int i = 0; i < nNeighbor; i++) {      if (old == neighbor[i]) {		neighbor[i] = newN;		return;      }    }  }  /**   * Is the node a neighbor?   *   * @param n		The index of a node   * @return		Neighbor?   */  protected boolean isNeighbor(int n) {    for (int i = 0; i < nNeighbor; i++)      if (n == neighbor[i])		return true;    return false;  }  /**   * Add a node to the neighborhood.   *   * @param node	The index of a node   */  protected void addNeighbor(int node) {    if (nNeighbor == MAX_NEIGHBORS)       return;    neighbor[nNeighbor] = node;    nNeighbor++;  }}

⌨️ 快捷键说明

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