Exemplo n.º 1
0
    /// <summary>
    /// Used to setup all major components in the project.
    /// </summary>
    void Awake()
    {
        UnityEngine.Random.seed = 42;

        string gardenWorldXML;
        string projectParamsXML;

        string [] argv = Environment.GetCommandLineArgs();
        if (argv.Length < 3)
        {
            // Files used during testing inside the Unity Editor
            gardenWorldXML   = Path.Combine("..", "experiment_garden.xml");
            projectParamsXML = Path.Combine("..", "smartmower_params.xml");
        }
        else
        {
            // Use filenames from command line
            gardenWorldXML   = argv[1];
            projectParamsXML = argv[2];
        }
        // Load parameters
        projectParamSet = new ParamSet(projectParamsXML);
        showUI          = projectParamSet.BoolParam(ParamSet.ParamGroupSetupManager, ParamSet.ParamShowUI);
        autoRun         = projectParamSet.BoolParam(ParamSet.ParamGroupSetupManager, ParamSet.ParamAutoRun);
        // Create garden
        garden = GardenFactory.CreateGardenFromFile(gardenWorldXML, projectParamSet);

        // Handle UI
        if (showUI)
        {
            guiGarden.Init(garden);
        }
        else
        {
            guiGarden.gameObject.SetActive(false);
            GameObject.Find("EpisodeLabel").SetActive(false);
            GameObject.Find("StepLabel").SetActive(false);
        }

        // Set episode limit
        EpisodeManager.EpisodeLimit = projectParamSet.IntParam(ParamSet.ParamGroupEpisodeManager, ParamSet.ParamEpisodeLimit);

        // Create statistics writer
        this.statisticsWriter = new StatisticsWriter(garden, projectParamSet);
    }
Exemplo n.º 2
0
    /// <summary>
    /// Constructor for XML
    /// </summary>
    /// <param name="stateExtractor"></param>
    /// <param name="mower"></param>
    /// <param name="paramSet"></param>

    public QLearner(StateExtractor stateExtractor, Mower mower, ParamSet paramSet)
        : this(stateExtractor,
               mower,
               paramSet.FloatParam(ParamSet.ParamGroupQLearner, ParamSet.ParamGreediness),
               paramSet.FloatParam(ParamSet.ParamGroupQLearner, ParamSet.ParamDiscountValue),
               paramSet.FloatParam(ParamSet.ParamGroupQLearner, ParamSet.ParamLearnRate),
               paramSet.FloatParam(ParamSet.ParamGroupQLearner, ParamSet.ParamInitialQValue),
               paramSet.StringParam(ParamSet.ParamGroupQLearner, ParamSet.ParamQTableDeserialiaztionFile),
               paramSet.StringParam(ParamSet.ParamGroupQLearner, ParamSet.ParamQTableSerialiaztionFile),
               paramSet.BoolParam(ParamSet.ParamGroupMower, ParamSet.ParamEligTraces),
               paramSet.FloatParam(ParamSet.ParamGroupMower, ParamSet.ParamGamma),
               paramSet.StringParam(ParamSet.ParamGroupMower, ParamSet.ParamEligibilityTableDeserialiaztionFile),
               paramSet.StringParam(ParamSet.ParamGroupMower, ParamSet.ParamEligibilityTableSerialiaztionFile),
               paramSet.BoolParam(ParamSet.ParamGroupMower, ParamSet.ParamModelPlanning),
               paramSet.BoolParam(ParamSet.ParamGroupMower, ParamSet.ParamModelPlanningRefined),
               paramSet.StringParam(ParamSet.ParamGroupMower, ParamSet.ParamModelTableDeserialiaztionFile),
               paramSet.StringParam(ParamSet.ParamGroupMower, ParamSet.ParamModelTableSerialiaztionFile),
               paramSet.IntParam(ParamSet.ParamGroupMower, ParamSet.ParamN),
               paramSet.BoolParam(ParamSet.ParamGroupSetupManager, ParamSet.ParamShow)
               )
    {
    }