/**
   * Creates Outstar architecture with specified number of neurons in output layer
   *
   * @param outputNeuronsCount number of neurons in output layer
   */
  private void createNetwork(int outputNeuronsCount) {

    // set network type
    this.setNetworkType(NeuralNetworkType.OUTSTAR);

    // init neuron settings for this type of network
    NeuronProperties neuronProperties = new NeuronProperties();
    neuronProperties.setProperty("transferFunction", TransferFunctionType.STEP);

    // create input layer
    Layer inputLayer = LayerFactory.createLayer(1, neuronProperties);
    this.addLayer(inputLayer);

    // createLayer output layer
    neuronProperties.setProperty("transferFunction", TransferFunctionType.RAMP);
    Layer outputLayer = LayerFactory.createLayer(outputNeuronsCount, neuronProperties);
    this.addLayer(outputLayer);

    // create full conectivity between input and output layer
    ConnectionFactory.fullConnect(inputLayer, outputLayer);

    // set input and output cells for this network
    NeuralNetworkFactory.setDefaultIO(this);

    // set outstar learning rule for this network
    this.setLearningRule(new OutstarLearning());
  }
  @Override
  public NeuralNetwork<? extends LearningRule> createNeuralNetwork(WizardDescriptor settings) {
    String neuralNetworkName = (String) settings.getProperty("neural network name");
    int instarInputNeurons = Integer.parseInt((String) settings.getProperty("input number"));
    Instar nnet11 = NeuralNetworkFactory.createInstar(instarInputNeurons);
    nnet11.setLabel(neuralNetworkName);

    InstarVisualPanel1.getInstance().clearForm();
    return nnet11;
  }
  @Override
  public NeuralNetwork<? extends LearningRule> createNeuralNetwork(WizardDescriptor settings) {
    String neuralNetworkName = (String) settings.getProperty("neural network name");
    int kohonenInputNeurons = Integer.parseInt((String) settings.getProperty("input number"));
    int kohonenMapNeurons = Integer.parseInt((String) settings.getProperty("map number"));
    Kohonen nnet5 = NeuralNetworkFactory.createKohonen(kohonenInputNeurons, kohonenMapNeurons);
    nnet5.setLabel(neuralNetworkName);

    KohonenVisualPanel1.getInstance().clearForm();
    return nnet5;
  }