示例#1
0
        static void Main(string[] args)
        {
            var env = new ActressMas.Environment();

            for (int i = 1; i <= Utils.NoOfProcessorAgent; i++)
            {
                int agentWorkload  = Utils.randomMinWorkload + Utils.RandNoGen.Next(Utils.randomMaxWorkload - Utils.randomMinWorkload);
                var processorAgent = new ProcessorAgent(agentWorkload);
                env.Add(processorAgent, string.Format("ProcessorAgent{0}", i));
                Utils.processorAgents.Add(string.Format("ProcessorAgent{0}", i));
                processorAgent.Start();
            }
            Thread.Sleep(100);

            var tasksManagement = new TasksManagementAgent();

            env.Add(tasksManagement, "tasksManagement");
            tasksManagement.Start();
            Thread.Sleep(100);

            var dispatcherAgent = new DispatcherAgent();

            env.Add(dispatcherAgent, "dispatcherAgent");
            dispatcherAgent.Start();
            Thread.Sleep(100);

            var distributorAgent = new DistributorAgent();

            env.Add(distributorAgent, "distributorAgent");
            distributorAgent.Start();
            //Thread.Sleep(100);

            env.WaitAll();
        }
示例#2
0
        /// <summary>
        /// Starts the execution of the concurrent multiagent system defined in the environment.
        /// </summary>
        /// <param name="environment">The concurrent environment</param>
        /// <param name="mas">The multiagent system to be executed</param>
        public void RunConcurrentMas(ConcurrentEnvironment environment, RunnableMas mas)
        {
            _environment = environment;
            _environment.SetContainer(this);

            RaiseNewTextEvent("Running MAS...\r\n");

            Thread t = new Thread(new ThreadStart(() => mas.RunConcurrentMas(environment)));

            t.Start();
        }
示例#3
0
        static void Main(string[] args)
        {
            Utils.Init(Case.WORST);

            var env = new ActressMas.Environment();

#if MERGESORT
            var masterAgent = new MasterAgent();
            var leftAgent   = new WorkerAgent();
            var rightAgent  = new WorkerAgent();

            env.Add(leftAgent, Agents.WorkerAgentLeft);
            leftAgent.Start();

            env.Add(rightAgent, Agents.WorkerAgentRight);
            rightAgent.Start();

            env.Add(masterAgent, Agents.MasterAgent);
            masterAgent.Start();
#elif ENUMERATION
            for (int i = 0; i < Utils.NoAgents; i++)
            {
                var workerAgent = new WorkerAgent(i);
                env.Add(workerAgent, string.Format("Slave{0:D2}", i));
                workerAgent.Start();
            }

            var masterAgent = new MasterAgent();
            env.Add(masterAgent, Agents.MasterAgent);
            masterAgent.Start();
#else
            for (int i = 0; i < 2; i++)
            {
                var workerAgent = new WorkerAgent(i);
                env.Add(workerAgent, string.Format("Slave{0:D2}", i));
                workerAgent.Start();
            }

            var masterAgent = new MasterAgent();
            env.Add(masterAgent, Agents.MasterAgent);
            masterAgent.Start();
#endif
            env.WaitAll();
        }