Пример #1
0
        // StreamWriter sw = new StreamWriter("sss.txt", false);
        public PdbPlaner(List <Agent> m_agents, List <Landmark> goals, PatternDatabase pd)
        {
            // d = m_d;
            // p = m_p;
            agents        = m_agents;
            this.pd       = pd;
            publicActions = new List <Action>();

            foreach (Agent agent in agents)
            {
                agentEffect.Add(agent.name, new HashSet <CompoundFormula>());
                foreach (Action act in agent.publicActions)
                {
                    CompoundFormula eff = new CompoundFormula("and");
                    foreach (GroundedPredicate gp in act.HashEffects)
                    {
                        if (agent.PublicPredicates.Contains(gp))
                        {
                            eff.AddOperand(gp);
                        }
                    }
                    if (!agentEffect[agent.name].Contains(eff))
                    {
                        agentEffect[agent.name].Add(eff);
                    }
                }
                agent.initPdbPlaner();
                countOfLandmarks += agent.GetNumberOfRestLandmarks();
            }
            PdbVertex.initVertxClass(agents, d, p, goals, pd);
        }
        public PdbLama(List <Agent> m_agents)
        {
            // d = m_d;
            // p = m_p;
            agents = m_agents;

            publicActions = new List <Action>();

            foreach (Agent agent in agents)
            {
                publicActions.AddRange(agent.publicActions);
                agent.initPlaner();
            }
            countOfLandmarks = agents[0].publicRelevantLandmark.Count;
            PdbVertex.initVertxClass(agents);
            //countOfLandmarks = (countOfLandmarks / agents.Count) * 2;
        }