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(); }
/// <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(); }
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(); }