private bool ResolveProbabilisticTransitions(DTAnalyzer analyzer)
        {
            bool      HasChanges = false;
            DataTable dt         = this.GetDataSheet(Strings.DATASHEET_PT_NAME).GetData();

            for (int Index = dt.Rows.Count - 1; Index >= 0; Index--)
            {
                DataRow dr = dt.Rows[Index];

                if (dr.RowState == DataRowState.Deleted)
                {
                    continue;
                }

                int?StratumIdSource    = null;
                int StateClassIdSource = 0;
                int?StratumIdDest      = null;
                int?StateClassIdDest   = null;

                DTAnalyzer.GetDTFieldValues(dr, ref StratumIdSource, ref StateClassIdSource, ref StratumIdDest, ref StateClassIdDest);

                if (!analyzer.StateClassExists(StratumIdSource, StateClassIdSource))
                {
                    DataTableUtilities.DeleteTableRow(dt, dr);
                    HasChanges = true;

                    continue;
                }

                if (!StateClassIdDest.HasValue)
                {
                    continue;
                }

                if (!analyzer.CanResolveStateClass(StratumIdSource, StratumIdDest, StateClassIdDest.Value))
                {
                    DataTableUtilities.DeleteTableRow(dt, dr);
                    HasChanges = true;
                }
            }

            return(HasChanges);
        }