Example #1
0
 public void trainloop(MInt64 m, long oSetMin, long oSetMax, bool output = true)
 {
     ts = DateTime.Now;
     while (!Train(m, oSetMin, oSetMax, output))
     {
     }
 }
Example #2
0
 private void Finished(MInt64 m)
 {
     Console.Write("Finished in " + (DateTime.Now - ts) + $" Final Vaule:{m.Variable}, FInal Longs:");
     for (var i = 0; i < m.length; i++)
     {
         Console.Write($"doubs[{i}]: {m.Doubles[i]}, ");
     }
     Console.WriteLine();
 }
Example #3
0
        public bool Train(MInt64 m, long oSetMin, long oSetMax, bool output = true)
        {
            if (m.doubs)
            {
                if (m.w == 0)
                {
                    if (m.addition)
                    {
                        m.w = oSetMin;
                    }
                    else
                    {
                        m.w = -oSetMin;
                    }
                }

                var prev = (long)m.Variable;

                m.Longs[m.currentIndex] += m.w;
                m.algo.OnMainInt64(m);

                if (m.Variable > m.Ziehl && m.Variable < prev)
                {
                    m.addition = false;
                }
                else if ((m.Variable < m.Ziehl && m.Variable < prev) || (m.Variable > m.Ziehl && m.Variable > prev))
                {
                    m.addition = !m.addition;
                }
                else if (m.Variable < m.Ziehl && m.Variable > prev)
                {
                    m.addition = true;
                }
                m.w = 0;

                if (m.Variable < m.Ziehl + m.tolleranz && m.Variable > m.Ziehl - m.tolleranz)
                {
                    Finished(m);
                    return(true);
                }
                if (prev == m.Variable)
                {
                    m.w += m.addition ? oSetMax : -oSetMin;
                }
                if (output)
                {
                    Console.WriteLine($"ONext:{m.w}, prew:{prev}, post:{m.Variable}, tolleranz:{m.tolleranz}");
                }
                m.round += 1;
            }
            if (m.round == 10)
            {
                m.currentIndex += 1;
                if (m.currentIndex >= m.Longs.Length)
                {
                    m.currentIndex = 0;
                }
            }
            if (m.round > 20)
            {
                m.round = 0;
            }

            return(false);
        }
Example #4
0
 public virtual void OnMainInt64(MInt64 m)
 {
 }
Example #5
0
 private static MInt64 init(MInt64 m)
 {
     m.init = true;
     return(m);
 }