Example #1
0
        static void Main(string[] args)
        {
            PythonProxy.StartUpPython();

            //トーナメントに使うデータを読み込む
            var group           = InOutput.ReadRaw(MySettings.GetInstance().InputLearningCsvPath).GroupBy(line => new { start = line.MyRouteList[0].RouteColumnDic["a0"], goal = line.MyRouteList[0].RouteColumnDic["g0"] });
            var group_list      = group.OrderByDescending(g => g.Count()).ToList();
            var tournament_data = group.ToList().OrderByDescending(g => g.Count()).FirstOrDefault().ToList();

            foreach (var group_data in group_list)
            {
                Console.WriteLine(group_data.Key);
                Console.WriteLine(group_data.Count());
                new Rapid_Experiment().Execute(group_data.ToList());
            }

            //new Simple_Experiment().Execute();
            //new Rapid_Experiment().Execute(tournament_data);
        }
Example #2
0
        public void Execute()
        {
            //トーナメントに使うデータを読み込む
            var tournament_data = InOutput.ReadRaw(MySettings.GetInstance().InputTournamentCsvPath);
            //貨物
            var cargo = tournament_data[0].MyCargo;

            //トーナメント1試合目
            //経路4つ
            var route10 = tournament_data[0].MyRouteList[0];
            var route11 = tournament_data[0].MyRouteList[1];
            var route12 = tournament_data[0].MyRouteList[2];
            var route13 = tournament_data[0].MyRouteList[3];
            //経路をまとめる
            var route_list_1 = new List <Route>();

            route_list_1.Add(route10);
            route_list_1.Add(route11);
            route_list_1.Add(route12);
            route_list_1.Add(route13);
            //貨物と経路をまとめる
            var cargo_and_route_1 = new CargoAndRoutes(false);

            cargo_and_route_1.Register(cargo, route_list_1);
            //試合をする
            var win_route_1 = Predict.PredictBranchs(cargo_and_route_1);


            //トーナメント2試合目
            //経路4つ
            var route20 = tournament_data[1].MyRouteList[0];
            var route21 = tournament_data[1].MyRouteList[1];
            var route22 = tournament_data[1].MyRouteList[2];
            var route23 = tournament_data[1].MyRouteList[3];
            //経路をまとめる
            var route_list_2 = new List <Route>();

            route_list_2.Add(route20);
            route_list_2.Add(route21);
            route_list_2.Add(route22);
            route_list_2.Add(route23);
            //貨物と経路をまとめる
            var cargo_and_route_2 = new CargoAndRoutes(false);

            cargo_and_route_2.Register(cargo, route_list_2);
            //試合をする
            var win_route_2 = Predict.PredictBranchs(cargo_and_route_2);


            //トーナメント3試合目
            //経路4つ
            var route30 = tournament_data[2].MyRouteList[0];
            var route31 = tournament_data[2].MyRouteList[1];
            var route32 = tournament_data[2].MyRouteList[2];
            var route33 = tournament_data[2].MyRouteList[3];
            //経路をまとめる
            var route_list_3 = new List <Route>();

            route_list_3.Add(route30);
            route_list_3.Add(route31);
            route_list_3.Add(route32);
            route_list_3.Add(route33);
            //貨物と経路をまとめる
            var cargo_and_route_3 = new CargoAndRoutes(false);

            cargo_and_route_3.Register(cargo, route_list_3);
            //試合をする
            var win_route_3 = Predict.PredictBranchs(cargo_and_route_3);


            //トーナメント4試合目
            //経路4つ
            var route40 = tournament_data[3].MyRouteList[0];
            var route41 = tournament_data[3].MyRouteList[1];
            var route42 = tournament_data[3].MyRouteList[2];
            var route43 = tournament_data[3].MyRouteList[3];
            //経路をまとめる
            var route_list_4 = new List <Route>();

            route_list_4.Add(route40);
            route_list_4.Add(route41);
            route_list_4.Add(route42);
            route_list_4.Add(route43);
            //貨物と経路をまとめる
            var cargo_and_route_4 = new CargoAndRoutes(false);

            cargo_and_route_4.Register(cargo, route_list_4);
            //試合をする
            var win_route_4 = Predict.PredictBranchs(cargo_and_route_4);

            //トーナメント最終試合
            //4試合の勝利経路をまとめる
            List <Route> win_route_list = new List <Route>();

            win_route_list.AddRange(win_route_1);
            win_route_list.AddRange(win_route_2);
            win_route_list.AddRange(win_route_3);
            win_route_list.AddRange(win_route_4);
            //貨物と上の勝利経路4つをまとめる
            CargoAndRoutes car = new CargoAndRoutes(false);

            car.Register(cargo, win_route_list);
            //試合をする
            var final_win_route = Predict.PredictBranchs(car);

            Console.WriteLine($"最終勝利ルートは {final_win_route[0].PublicRouteID} です");
            Console.ReadLine();
        }