コード例 #1
0
 public GULossInputEngine(IGraphState _graphstate, IExecutableMatrixGraph _graph, IVectorEvent _event)
 {
     graphstate = _graphstate;
     graph      = _graph;
     Event      = _event;
 }
コード例 #2
0
 public MatrixGraphExecuter(IExecutableMatrixGraph _graph)
 {
     Graph = _graph;
 }
コード例 #3
0
 public GraphOfMatrix(long ID, IExecutableMatrixGraph _matrixGraph, Declarations _declarations)
     : base(ID, _declarations)
 {
     matrixGraph = _matrixGraph;
     //TopCover = _topCover;
 }
コード例 #4
0
        public GraphState(IExecutableMatrixGraph graph)
        {
            if (graph.NumOfLevels != 0)
            {
                termlevelstates  = new Dictionary <int, LevelState>();
                ARITElevelstates = new Dictionary <int, SimpleLevelState>();

                int NumOfLevels = graph.NumOfLevels;

                //Add both ARITE level state and Term/Node Level State for Upper levels
                for (int level = 0; level < NumOfLevels - 1; level++)
                {
                    int NumOfLevelNodes = graph.GetNodeAggInfo(level).NumOfNodes; //actually this is the number of terms
                    int NumOfARites     = graph.GetAtomicRITEInfo(level).NumOfARITEs;
                    termlevelstates.Add(level, new LevelState(NumOfLevelNodes));
                    ARITElevelstates.Add(level, new SimpleLevelState(NumOfARites));
                }

                //Add ARITE level state for lowest level, don't add Term/Node Level State
                int lowestlevel            = graph.LowestLevel;
                int NumOfLowestLevelARites = graph.GetAtomicRITEInfo(lowestlevel).NumOfARITEs;
                ARITElevelstates.Add(graph.LowestLevel, new SimpleLevelState(NumOfLowestLevelARites));
            }

            #region delete later: old version: create one loss state per level
            //For Covers:

            //int NumOfCoverLevels = graph.NumOfLevelsForCover;
            //int LowestCoverLevel = graph.LowestCoverLevel;

            //for (int coverlevel = LowestCoverLevel; coverlevel <= NumOfCoverLevels; coverlevel++)
            //{
            //    int NumOfCoverLevelNodes = graph.GetCoverNodeAggInfo(coverlevel).NumOfNodes;
            //    coverlevelstate.Add(coverlevel, new CoverLevelState(NumOfCoverLevelNodes));
            //}

            ////Add level state for lowest cover level.
            //int NumOfResidules = graph.GetCoverResiduleInfo(LowestCoverLevel).NumOfResidules;
            //int NumOfArites = graph.GetCoverAriteInfo(LowestCoverLevel).NumOfARITEs;
            //lowestCoverLevelResiduleState = new CoverLevelState(NumOfResidules);
            //lowestCoverLevelAriteState = new CoverLevelState(NumOfArites);
            #endregion

            //For Covers:
            int leafCoverLevel   = graph.LowestCoverLevel + 1;
            int TotalNumOfCovers = 0;
            int TopLevel         = graph.NumOfCoverLevels + leafCoverLevel - 1;
            //graph.levelLenghtArray = new int[NumofLevels];
            coverLevelAllocationRatioStates = new Dictionary <int, CoverAllocationRatioState>();

            for (int i = leafCoverLevel; i <= TopLevel; i++)
            {
                int NumOfNodes = graph.GetCoverNodeAggInfo(i).NumOfNodes;
                TotalNumOfCovers += NumOfNodes;
                //int j = 0;
                //graph.levelLenghtArray[j] = NumOfNodes;
                //j++;

                //Allocation state is Per Level, due to the overlap that
                //the same cover will have to keep two ratios
                //coverLevelAllocationRatioStates.Add(i, new CoverAllocationRatioState(NumOfNodes));  //this will not work, ratio should be same length as the ChildMap
                coverLevelAllocationRatioStates.Add(i, new CoverAllocationRatioState(graph.GetCoverNodeAggInfo(i).GetChildrenMap().Count()));
            }
            TotalCoverState = new CoverState(TotalNumOfCovers);

            lowestCoverLevelResiduleState           = new CoverState(graph.GetCoverResiduleInfo().NumOfResidules);
            lowestCoverLevelAriteState              = new CoverState(graph.GetCoverAriteInfo().NumOfARITEs);
            lowestCoverLevelAriteAllocationRatio    = new CoverAllocationRatioState(graph.GetCoverAriteInfo().NumOfARITEs);
            lowestCoverLevelResidualAllocationRatio = new CoverAllocationRatioState(graph.GetCoverResiduleInfo().NumOfResidules);
        }
コード例 #5
0
 public MatrixGraphAllocation(IExecutableMatrixGraph _graph, IGraphState _graphState)
 {
     Graph      = _graph;
     graphState = _graphState;
 }