コード例 #1
0
ファイル: Program.cs プロジェクト: jferdelyi/ActressMas
        private static void Main(string[] args)
        {
            var env = new TurnBasedEnvironment(100);

            var brokerAgent = new BrokerAgent(); env.Add(brokerAgent, "broker");

            ProviderAgent pa1 = new ProviderAgent(ServiceType.Add); env.Add(pa1, "provider1");
            ProviderAgent pa2 = new ProviderAgent(ServiceType.Add); env.Add(pa2, "provider2");
            ProviderAgent pa3 = new ProviderAgent(ServiceType.Sub); env.Add(pa3, "provider3");
            ProviderAgent pa4 = new ProviderAgent(ServiceType.Sub); env.Add(pa4, "provider4");

            ClientAgent ca1 = new ClientAgent(ServiceType.Add); env.Add(ca1, "client1");
            ClientAgent ca2 = new ClientAgent(ServiceType.Add); env.Add(ca2, "client2");
            ClientAgent ca3 = new ClientAgent(ServiceType.Sub); env.Add(ca3, "client3");
            ClientAgent ca4 = new ClientAgent(ServiceType.Sub); env.Add(ca4, "client4");

            env.Start();

            pa1.Send("provider1", "force-unregister");

            ProviderAgent pa5 = new ProviderAgent(ServiceType.Sub); env.Add(pa5, "provider5");

            env.Continue(100);

            ClientAgent ca5 = new ClientAgent(ServiceType.Add); env.Add(ca5, "client5");
            ClientAgent ca6 = new ClientAgent(ServiceType.Sub); env.Add(ca6, "client6");

            env.Continue(100);
        }
コード例 #2
0
        private static void Main(string[] args)
        {
            var env = new TurnBasedEnvironment(1000);

            for (int i = 1; i <= 3; i++) // MaxLevel
            {
                for (int j = 1; j <= 3; j++)
                {
                    for (int k = 1; k <= 3; k++)
                    {
                        var workerAgent = new WorkerAgent(i, j, k);
                        env.Add(workerAgent, $"worker{i}{j}{k}");
                    }
                }
            }

            var calculatorAgent = new CalculatorAgent();

            env.Add(calculatorAgent, "shapley");

            var managerAgent = new ManagerAgent();

            env.Add(managerAgent, "manager");

            env.Memory.Add("NoAttributes", 3);
            env.Memory.Add("MaxLevel", 3);
            env.Memory.Add("NoTasks", 100);
            env.Memory.Add("NoBids", 3);

            env.Start();
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: jferdelyi/ActressMas
        private static void Main(string[] args)
        {
            var env = new TurnBasedEnvironment(100);
            var a1  = new MyAgent(); env.Add(a1, "agent1");
            var a2  = new MyAgent(); env.Add(a2, "agent2");
            var m   = new MonitorAgent(); env.Add(m, "monitor");

            env.Start();
        }
コード例 #4
0
        private static void Main(string[] args)
        {
            var env      = new TurnBasedEnvironment(5, 100);
            int noAgents = 10;

            for (int i = 1; i <= noAgents; i++)
            {
                env.Add(new MyAgent(), $"agent{i}");
            }
            env.Start();
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: jferdelyi/ActressMas
        private static void Main(string[] args)
        {
            var env    = new TurnBasedEnvironment();
            var agent1 = new BargainingAgent(); env.Add(agent1, "agent1");
            var agent2 = new BargainingAgent(); env.Add(agent2, "agent2");

            env.Memory["Eps"]      = 0.1;
            env.Memory["Utility1"] = (Func <double, double>)((double deal) => 5.0 - deal);
            env.Memory["Utility2"] = (Func <double, double>)((double deal) => 2.0 / 3.0 * deal);

            env.Start();
        }
コード例 #6
0
ファイル: Program.cs プロジェクト: jferdelyi/ActressMas
        private static void Main(string[] args)
        {
            var env         = new TurnBasedEnvironment();
            var mapAgent    = new MapAgent(); env.Add(mapAgent, "map");
            var searchAgent = new SearchAgent(); env.Add(searchAgent, "agent1");

            env.Memory.Add("MapName", "Pendulum");
            //env.Memory.Add("MapName", "StrangeHeuristic");
            env.Memory.Add("Delay", 100);

            env.Start();
        }
コード例 #7
0
        private static void Main(string[] args)
        {
            int noAgents = 5;

            var env = new TurnBasedEnvironment(5, 100);

            env.Add(new WriterAgent(), "writer");
            for (int i = 1; i <= noAgents; i++)
            {
                env.Add(new MyAgent(), $"a{i}");
            }
            env.Start();
        }
コード例 #8
0
        private static void Main(string[] args)
        {
            var env = new TurnBasedEnvironment(0, 250, false);

            var terrainAgent = new TerrainAgent();

            env.Add(terrainAgent, "terrain");

            var patrolAgent = new PatrolAgent();

            env.Add(patrolAgent, "patrol");

            env.Memory.Add("Size", 15);

            env.Start();
        }
コード例 #9
0
ファイル: Program.cs プロジェクト: jferdelyi/ActressMas
        private static void Main(string[] args)
        {
            var env = new TurnBasedEnvironment(0, 100); // no turn limit, delay 100 ms

            var planetAgent = new PlanetAgent();

            env.Add(planetAgent, "planet");

            for (int i = 1; i <= 5; i++) // 5 explorers
            {
                var explorerAgent = new ExplorerAgent();
                env.Add(explorerAgent, $"explorer{i}");
            }

            env.Memory.Add("Size", 11);
            env.Memory.Add("NoResources", 10);

            env.Start();
        }
コード例 #10
0
        private static void Main(string[] args)
        {
            var env = new TurnBasedEnvironment();

            Random rand = new Random();

            for (int i = 1; i <= Settings.NoBidders; i++)
            {
                int agentValuation = Settings.MinPrice + rand.Next(Settings.MaxPrice - Settings.MinPrice);
                var bidderAgent    = new BidderAgent(agentValuation);
                env.Add(bidderAgent, $"bidder{i:D2}");
            }

            var auctioneerAgent = new AuctioneerAgent();

            env.Add(auctioneerAgent, "auctioneer");

            env.Start();
        }
コード例 #11
0
        private static void Main(string[] args)
        {
            // inefficient, uses broadcast to simulate public open-cry auction

            var env = new TurnBasedEnvironment(0, 0, false);

            var auctioneerAgent = new AuctioneerAgent();

            env.Add(auctioneerAgent, "auctioneer");

            Random rand = new Random();

            for (int i = 1; i <= Settings.NoBidders; i++)
            {
                int agentValuation = Settings.MinPrice + rand.Next(Settings.MaxPrice - Settings.MinPrice);
                var bidderAgent    = new BidderAgent(agentValuation);
                env.Add(bidderAgent, $"bidder{i:D2}");
            }

            env.Start();
        }
コード例 #12
0
ファイル: MasSetup.cs プロジェクト: jferdelyi/ActressMas
        override public void RunTurnBasedMas(TurnBasedEnvironment env)
        {
            string home = env.ContainerName;

            if (home == "")
            {
                Commons.Rtb.AppendText("Container not activated.\r\n");
                return;
            }

            Commons.Rtb.AppendText("This is " + home + "\r\n");

            switch (home)
            {
            case "Container1":
                env.Add(new MobileAgent(), "mobile");
                env.Add(new StaticAgent(), "a1");
                break;

            case "Container2":
                for (int i = 1; i <= 2; i++)
                {
                    env.Add(new StaticAgent(), "b" + i);
                }
                break;

            case "Container3":
                for (int i = 1; i <= 3; i++)
                {
                    env.Add(new StaticAgent(), "c" + i);
                }
                break;

            default:
                break;
            }

            env.Start();
        }
コード例 #13
0
        private static void Main(string[] args)
        {
            var env = new TurnBasedEnvironment(100, 0, false);

            Settings.AisLying = false;
            var agentA  = new BeneficiaryAgent(); env.Add(agentA, "a");
            var agentB  = new BeneficiaryAgent(); env.Add(agentB, "b");
            var agentC  = new BeneficiaryAgent(); env.Add(agentC, "c");
            var dmAgent = new DecisionMakerAgent(); env.Add(dmAgent, "dm");

            env.Start();

            Console.WriteLine("\r\n--------------------------------------------\r\n");

            env = new TurnBasedEnvironment(100, 0, false);

            Settings.AisLying = true;
            agentA            = new BeneficiaryAgent(); env.Add(agentA, "a");
            agentB            = new BeneficiaryAgent(); env.Add(agentB, "b");
            agentC            = new BeneficiaryAgent(); env.Add(agentC, "c");
            dmAgent           = new DecisionMakerAgent(); env.Add(dmAgent, "dm");

            env.Start();
        }
コード例 #14
0
ファイル: RunnableMas.cs プロジェクト: jferdelyi/ActressMas
 /// <summary>
 /// Starts the execution of a turn-based environment within a container
 /// </summary>
 /// <param name="env">The turn-based environment</param>
 public virtual void RunTurnBasedMas(TurnBasedEnvironment env)
 {
 }
コード例 #15
0
 private void buttonRunMas_Click(object sender, EventArgs e)
 {
     _environment = new TurnBasedEnvironment(0, 1000);
     _container.RunTurnBasedMas(_environment, new MasMobileGuiTB.MasSetup());
 }