Esempio n. 1
0
    /// <summary>
    /// Initializes a new instance of the <see cref="StatisticsWriter"/> class.
    /// </summary>
    /// <param name="paramSet">The set of project parameters.</param>
    public StatisticsWriter(Garden garden, ParamSet paramSet)
    {
        this.garden             = garden;
        this.statisticsFileName = paramSet.StringParam(ParamSet.ParamGroupStatisticsWriter, ParamSet.ParamStatisticsFileName);
        GameObject stepGenGameObject = GameObject.FindGameObjectWithTag("StepGenerator");

        this.stepGenerator = stepGenGameObject.GetComponent <StepGenerator>();
        EpisodeManager.AddEpisodeChangesReceiver(this);
        // Write the statistics headline into the csv file
        WriteValuesIntoCSVLine(new string[] { statisticsNameEpisode, statisticsNameStepsNeeded });
    }
Esempio n. 2
0
    /// <summary>
    /// Initializes a new instance of the <see cref="Mower"/> class.
    /// </summary>
    /// <param name="x">The x coordinate of the start position.</param>
    /// <param name="y">The y coordinate of the start position.</param>
    /// <param name="garden">The <see cref="T:Garden"/> this mower operates in.</param>
    /// <param name="paramSet">The <see cref="T:ParamSet"/> of the project which contains the neccessary parameters for the mower.</param>
    public Mower(uint x, uint y, Garden garden, ParamSet paramSet)
        : base(x, y)
    {
        this.Garden            = garden;
        this.PossibleMovements = MovementAction.VonNeumannNeighbourhoodMovements();
        this.MowReward         = paramSet.FloatParam(ParamSet.ParamGroupMower, ParamSet.ParamMowReward);
        this.NotMownReward     = paramSet.FloatParam(ParamSet.ParamGroupMower, ParamSet.ParamNotMownReward);
        string learnerParam = paramSet.StringParam(ParamSet.ParamGroupMower,
                                                   ParamSet.ParamLearnerType);

        if (learnerParam.Equals(QLearner.LearnerType))
        {
            this.learner = new QLearner(new StateExtractor(this), this, paramSet);
        }
        else if (learnerParam.Equals(RandomLearner.LearnerType))
        {
            this.learner = new RandomLearner(new StateExtractor(this));
        }
        else
        {
            throw new Exception("Unknown LearnerType detected.");
        }
        EpisodeManager.AddEpisodeChangesReceiver(this);
    }
Esempio n. 3
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)
               )
    {
    }