Exemple #1
0
        protected override List <int> GenerateWord(int currentState, int currentPeriod, int symbolNumber)
        {
            List <int> result = new List <int>();

            double[] errorDistribution = GenerateErrorDistribution(currentState, currentPeriod);

            double[] symbolDistribution = MatrixUtils.GetRow(Model.B, currentState);

            for (int i = 0; i < symbolNumber; i++)
            {
                bool hasError = ProbabilityHandler.RealizeBinaryProbability(errorDistribution[i]) == 1;
                int  symbol;
                if (hasError)
                {
                    symbol = ProbabilityHandler.RealizeProbability(symbolDistribution) + 1;
                }
                else
                {
                    symbol = 0;
                }

                result.Add(symbol);
            }
            return(result);
        }
        protected override List <int> GenerateWord(int currentState, int currentPeriod, int symbolNumber)
        {
            List <int> result = new List <int>();

            double[] symbolDistribution = MatrixUtils.GetRow(Model.B, currentState);
            for (int i = 0; i < symbolNumber; i++)
            {
                result.Add(ProbabilityHandler.RealizeProbability(symbolDistribution));
            }
            return(result);
        }
 protected AbstractHsmModelGenerator(T model, IPseudoRandomNumberGenerator pRnGenerator)
 {
     Model = model;
     ProbabilityHandler = new ProbabilityHandler(pRnGenerator);
 }