Example #1
0
        public void AlphabetTranslatingIntsToChars()
        {
            char[] set = new[] { 'a', 'b', 'c', 'd' };
            Alphabet alphabet = new Alphabet(set);

            List<int> list = new List<int>() {0, 2, 1, 0, 2};
            var s = alphabet.Translate(list);

            Assert.AreEqual("acbac", s);
        }
Example #2
0
        public void AlphabetTranslatingCharsToInts()
        {
            char[] set = new[] { 'a', 'b', 'c', 'd' };
            Alphabet alphabet = new Alphabet(set);

            var list = alphabet.Translate("baca");
            Assert.AreEqual(1, list[0]);
            Assert.AreEqual(0, list[1]);
            Assert.AreEqual(2, list[2]);
            Assert.AreEqual(0, list[3]);
        }
Example #3
0
 /// <summary>
 /// Metoda generuje losowy automat (o losowej poprawnej funkcji przejścia) o zadanej ilości stanów i alfabecie
 /// </summary>
 /// <param name="states">Ilość stanów</param>
 /// <param name="alphabet">alfabet</param>
 /// <returns>Losowy automat</returns>
 public static Machine GenerateRandomMachine(int states, Alphabet alphabet)
 {
     double[,] SF = new double[states, alphabet.Letters.Length];
     for (int i = 0; i < states; i++)
     {
         for (int j = 0; j < alphabet.Letters.Length; j++)
         {
             SF[i, j] = R.Next(states);
         }
     }
     return new Machine(alphabet, SF);
 }
Example #4
0
 /// <summary>
 /// Metoda inicjalizująca parametry PSO
 /// </summary>
 /// <param name="words">Lista par słów testowych</param>
 /// <param name="relation">Delegat opisujący relacje indukowaną przez język</param>
 /// <param name="MaxStates">Maksymalna ilość stanów osiągalna przez automat</param>
 /// <param name="A">Alfabet dla którego rozwiązywany jest problem</param>
 public static void Initialize(List<Tuple<int[], int[]>> words, LanguageRelation relation, int MaxStates, Alphabet A,List<int[]> allwords)
 {
     Particles = new List<Particle>();
     Words = words;
     AllWords = allwords;
     MachinePSO.relation = relation;
     BestError = int.MaxValue;
     BestMachine = Machine.GenerateRandomMachine(1, A);
     alphabet = A;
     MachinePSO.MaxStates = MaxStates;
 }
Example #5
0
 /// <summary>
 /// Konstruktor Automatu
 /// </summary>
 /// <param name="A"> Alfabet przypisany do automatu</param>
 /// <param name="SF"> Funkcja przejścia automatu </param>
 public Machine(Alphabet A, double[,] SF)
 {
     alphabet = A;
     stateFunction = SF;
 }