Exemple #1
0
        private static void MakeDecision()
        {
            Console.Write("Please type the number of your desired action: ");
            switch (Console.ReadKey().Key)
            {
            case ConsoleKey.D1:
                ConstantGenerator.Run(BASE_MAP_PATH, SOURCE_CODE_PROJECT_FOLDER_PATH, new ConstantGeneratorOptions
                {
                    IncludeCode = false
                });
                break;

            case ConsoleKey.D2:
                Build(false);
                break;

            case ConsoleKey.D3:
                Build(true);
                break;

            default:
                Console.WriteLine($"{Environment.NewLine}Invalid input. Please choose again.");
                MakeDecision();
                break;
            }
        }
        private ITaskListGenerator CreateGenerator(int taskLength, int maxDelay, int taskPerTick)
        {
            var taskLengthGenerator  = new ConstantGenerator();
            var maxDelayGenerator    = CreateConstantNumberGenerator <IMaxDelayGenerator>(maxDelay);
            var taskPerTickGenerator = CreateConstantNumberGenerator <ITaskPerTickGenerator>(taskPerTick);
            var configuration        = CreateConfiguration(0, taskLength);

            var listGenerator = new TaskListGenerator(taskLengthGenerator, maxDelayGenerator, taskPerTickGenerator, configuration, new TaskQuantityCalculator(), new AverageTaskDurationCalculator());

            return(listGenerator);
        }
        /// <summary>
        ///   Constructs a new potential function modeling Hidden Markov Models.
        /// </summary>
        ///
        /// <param name="states">The number of states.</param>
        /// <param name="symbols">The number of symbols.</param>
        /// <param name="initialization">The random number generator to use when initializing weights.</param>
        ///
        public MarkovDiscreteFunction(int states, int symbols, IRandomNumberGenerator <double> initialization = null)
        {
            if (initialization == null)
            {
                initialization = new ConstantGenerator(0);
            }

            this.Symbols = symbols;

            var factorParams   = new List <double>();
            var factorFeatures = new List <IFeature <int> >();

            var stateParams   = new List <double>();
            var stateFeatures = new List <IFeature <int> >();

            var edgeParams   = new List <double>();
            var edgeFeatures = new List <IFeature <int> >();


            // Create features for initial state probabilities
            for (int i = 0; i < states; i++)
            {
                edgeParams.Add(initialization.Generate());
                edgeFeatures.Add(new InitialFeature <int>(this, 0, i));
            }

            // Create features for state transition probabilities
            for (int i = 0; i < states; i++)
            {
                for (int j = 0; j < states; j++)
                {
                    edgeParams.Add(initialization.Generate());
                    edgeFeatures.Add(new TransitionFeature <int>(this, 0, i, j));
                }
            }

            // Create features for symbol emission probabilities
            for (int i = 0; i < states; i++)
            {
                for (int k = 0; k < symbols; k++)
                {
                    stateParams.Add(initialization.Generate());
                    stateFeatures.Add(new EmissionFeature(this, 0, i, k));
                }
            }


            // 1. edges
            factorFeatures.AddRange(edgeFeatures);
            factorParams.AddRange(edgeParams);

            // 2. states
            factorFeatures.AddRange(stateFeatures);
            factorParams.AddRange(stateParams);

            this.Features = factorFeatures.ToArray();
            this.Weights  = factorParams.ToArray();



            this.Factors = new[] // First features and parameters always belong to edges
            {
                new MarkovDiscreteFactor(this, states, 0, symbols,
                                         edgeIndex: 0, edgeCount: edgeParams.Count,                   // 1. edges
                                         stateIndex: edgeParams.Count, stateCount: stateParams.Count) // 2. states
            };
        }
Exemple #4
0
 void before_each()
 {
     generator = new ConstantGenerator();
 }
Exemple #5
0
 public void TestInitialize()
 {
     Generator = new ConstantGenerator();
 }