Example #1
0
        public double CalculateFitness(string text, string genes)
        {
            string decr = Decrypt.DecryptText(text, genes);

            Dictionary <string, double> monogramM = LetterFrequancy(decr, 1);
            Dictionary <string, double> bigramM   = LetterFrequancy(decr, 2);
            Dictionary <string, double> trigramM  = LetterFrequancy(decr, 3);


            double diff1, diff2, diff3, f;
            int    w = WordFrequancy(decr);

            diff1 = CompareDictionaries(monogramD, monogramM);
            diff2 = CompareDictionaries(bigramD, bigramM);
            diff3 = CompareDictionaries(trigramD, trigramM);

            f = -(diff1 + diff2 * 0.6 + diff3 * 0.5) + (double)w / 20; //+ count of words / 20

            return(f);
        }
Example #2
0
        static void Main(string[] args)
        {
            string encrypt = "EFFPQLEKVTVPCPYFLMVHQLUEWCNVWFYGHYTCETHQEKLPVMSAKSPVPAPVYWMVHQLUSPQLYWLASLFVWPQLMVHQLUPLRPSQLULQESPBLWPCSVRVWFLHLWFLWPUEWFYOTCMQYSLWOYWYETHQEKLPVMSAKSPVPAPVYWHEPPLUWSGYULEMQTLPPLUGUYOLWDTVSQETHQEKLPVPVSMTLEUPQEPCYAMEWWYOYULULTCYWPQLSEOLSVOHTLUYAPVWLYGDALSSVWDPQLNLCKCLRQEASPVILSLEUMQBQVMQCYAHUYKEKTCASLFPYFLMVHQLUHULIVYASHEUEDUEHQBVTTPQLVWFLRYGMYVWMVFLWMLSPVTTBYUNESESADDLSPVYWCYAMEWPUCPYFVIVFLPQLOLSSEDLVWHEUPSKCPQLWAOKLUYGMQEUEMPLUSVWENLCEWFEHHTCGULXALWMCEWETCSVSPYLEMQYGPQLOMEWCYAGVWFEBECPYASLQVDQLUYUFLUGULXALWMCSPEPVSPVMSBVPQPQVSPCHLYGMVHQLUPQLWLRPHEUEDUEHQMYWPEVWSSYOLHULPPCVWPLULSPVWDVWGYUOEPVYWEKYAPSYOLEFFVPVYWETULBEUF";

            Generation task = new Generation(250, 10, encrypt);
            DNA        best = task.Population[0];

            Console.WriteLine($"generation 0 decrypt: {Decrypt.DecryptText(encrypt, best.Genes())}");

            for (int i = 0; i < 200; i++)
            {
                task.CreateNewPopulation();
                Console.WriteLine($"\n Generation: {i + 1}");
                best = task.Population[0];
                Console.WriteLine($"key: {best.Genes()} fitness: {best.Fit}");

                Console.WriteLine($"decrypt: {Decrypt.DecryptText(encrypt, best.Genes())}");
            }

            Console.Read();
        }