org.apache.commons.math3.ml.neuralnet

## Class Network

- java.lang.Object
- - org.apache.commons.math3.ml.neuralnet.Network

- All Implemented Interfaces:
    Serializable, Iterable<Neuron>

      public class Network
      extends Object
      implements Iterable<Neuron>, Serializable

  Neural network, composed of `Neuron` instances and the links between them. Although updating a neuron's state is thread-safe, modifying the network's topology (adding or removing links) is not.
  Since:
    3.3
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `Network.NeuronIdentifierComparator` Comparator that prescribes an order of the neurons according to the increasing order of their identifier.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Network(long initialIdentifier, int featureSize)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addLink(Neuron a, Neuron b)` Adds a link from neuron `a` to neuron `b`.
    `Network` | `copy()` Performs a deep copy of this instance.
    `long` | `createNeuron(double[] features)` Creates a neuron and assigns it a unique identifier.
    `void` | `deleteLink(Neuron a, Neuron b)` Deletes the link between neurons `a` and `b`.
    `void` | `deleteNeuron(Neuron neuron)` Deletes a neuron.
    `int` | `getFeaturesSize()` Gets the size of the neurons' features set.
    `Collection<Neuron>` | `getNeighbours(Iterable<Neuron> neurons)` Retrieves the neurons in the neighbourhood of any neuron in the `neurons` list.
    `Collection<Neuron>` | `getNeighbours(Iterable<Neuron> neurons, Iterable<Neuron> exclude)` Retrieves the neurons in the neighbourhood of any neuron in the `neurons` list.
    `Collection<Neuron>` | `getNeighbours(Neuron neuron)` Retrieves the neighbours of the given neuron.
    `Collection<Neuron>` | `getNeighbours(Neuron neuron, Iterable<Neuron> exclude)` Retrieves the neighbours of the given neuron.
    `Neuron` | `getNeuron(long id)` Retrieves the neuron with the given (unique) `id`.
    `Collection<Neuron>` | `getNeurons(Comparator<Neuron> comparator)` Creates a list of the neurons, sorted in a custom order.
    `Iterator<Neuron>` | `iterator()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Network

          public Network(long initialIdentifier,
                 int featureSize)

      Parameters:
        `initialIdentifier` - Identifier for the first neuron that will be added to this network.
        `featureSize` - Size of the neuron's features.

  - ### Method Detail

    - #### copy

          public Network copy()

      Performs a deep copy of this instance. Upon return, the copied and original instances will be independent: Updating one will not affect the other.
      Returns:
        a new instance with the same state as this instance.
      Since:
        3.6

    - #### iterator

          public Iterator<Neuron> iterator()

      Specified by:
        `iterator` in interface `Iterable<Neuron>`

    - #### getNeurons

          public Collection<Neuron> getNeurons(Comparator<Neuron> comparator)

      Creates a list of the neurons, sorted in a custom order.
      Parameters:
        `comparator` - `Comparator` used for sorting the neurons.
      Returns:
        a list of neurons, sorted in the order prescribed by the given `comparator`.
      See Also:
        `Network.NeuronIdentifierComparator`

    - #### createNeuron

          public long createNeuron(double[] features)

      Creates a neuron and assigns it a unique identifier.
      Parameters:
        `features` - Initial values for the neuron's features.
      Returns:
        the neuron's identifier.
      Throws:
        `DimensionMismatchException` - if the length of `features` is different from the expected size (as set by the `constructor`).

    - #### deleteNeuron

          public void deleteNeuron(Neuron neuron)

      Deletes a neuron. Links from all neighbours to the removed neuron will also be `deleted`.
      Parameters:
        `neuron` - Neuron to be removed from this network.
      Throws:
        `NoSuchElementException` - if `n` does not belong to this network.

    - #### getFeaturesSize

          public int getFeaturesSize()

      Gets the size of the neurons' features set.
      Returns:
        the size of the features set.

    - #### addLink

          public void addLink(Neuron a,
                     Neuron b)

      Adds a link from neuron `a` to neuron `b`. Note: the link is not bi-directional; if a bi-directional link is required, an additional call must be made with `a` and `b` exchanged in the argument list.
      Parameters:
        `a` - Neuron.
        `b` - Neuron.
      Throws:
        `NoSuchElementException` - if the neurons do not exist in the network.

    - #### deleteLink

          public void deleteLink(Neuron a,
                        Neuron b)

      Deletes the link between neurons `a` and `b`.
      Parameters:
        `a` - Neuron.
        `b` - Neuron.
      Throws:
        `NoSuchElementException` - if the neurons do not exist in the network.

    - #### getNeuron

          public Neuron getNeuron(long id)

      Retrieves the neuron with the given (unique) `id`.
      Parameters:
        `id` - Identifier.
      Returns:
        the neuron associated with the given `id`.
      Throws:
        `NoSuchElementException` - if the neuron does not exist in the network.

    - #### getNeighbours

          public Collection<Neuron> getNeighbours(Iterable<Neuron> neurons)

      Retrieves the neurons in the neighbourhood of any neuron in the `neurons` list.
      Parameters:
        `neurons` - Neurons for which to retrieve the neighbours.
      Returns:
        the list of neighbours.
      See Also:
        `getNeighbours(Iterable,Iterable)`

    - #### getNeighbours

          public Collection<Neuron> getNeighbours(Iterable<Neuron> neurons,
                                         Iterable<Neuron> exclude)

      Retrieves the neurons in the neighbourhood of any neuron in the `neurons` list. The `exclude` list allows to retrieve the "concentric" neighbourhoods by removing the neurons that belong to the inner "circles".
      Parameters:
        `neurons` - Neurons for which to retrieve the neighbours.
        `exclude` - Neurons to exclude from the returned list. Can be `null`.
      Returns:
        the list of neighbours.

    - #### getNeighbours

          public Collection<Neuron> getNeighbours(Neuron neuron)

      Retrieves the neighbours of the given neuron.
      Parameters:
        `neuron` - Neuron for which to retrieve the neighbours.
      Returns:
        the list of neighbours.
      See Also:
        `getNeighbours(Neuron,Iterable)`

    - #### getNeighbours

          public Collection<Neuron> getNeighbours(Neuron neuron,
                                         Iterable<Neuron> exclude)

      Retrieves the neighbours of the given neuron.
      Parameters:
        `neuron` - Neuron for which to retrieve the neighbours.
        `exclude` - Neurons to exclude from the returned list. Can be `null`.
      Returns:
        the list of neighbours.

Copyright © 2003–2016 The Apache Software Foundation. All rights reserved.