Belle II Software  release-08-01-10
HopfieldNetwork.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 #pragma once
9 
10 //basf2
11 #include <tracking/trackFindingVXD/trackSetEvaluator/OverlapResolverNodeInfo.h>
12 
13 
14 namespace Belle2 {
34  public:
42  HopfieldNetwork(float omega = 0.5, float T = 3.1, float Tmin = 0.1, float cmax = 0.01):
43  m_omega(omega), m_T(T), m_Tmin(Tmin), m_cmax(cmax)
44  {}
45 
57  unsigned short doHopfield(std::vector<OverlapResolverNodeInfo>& overlapResolverNodeInfos, unsigned short nIterations = 20);
58 
59  private:
60  float m_omega;
61  float m_T;
62  float m_Tmin;
63  float m_cmax;
65  };
67 }
Hopfield Algorithm with number based inputs.
float m_omega
tuning parameter of the hopfield network
float m_T
start temperature of annealing
float m_cmax
maximal change of weights between iterations
unsigned short doHopfield(std::vector< OverlapResolverNodeInfo > &overlapResolverNodeInfos, unsigned short nIterations=20)
Performance of the actual algorithm.
HopfieldNetwork(float omega=0.5, float T=3.1, float Tmin=0.1, float cmax=0.01)
Constructor taking parameters for the algorithm.
float m_Tmin
minimal temperature allowed
Abstract base class for different kinds of events.