Package ch.idsia.ai.tasks

Source Code of ch.idsia.ai.tasks.MultiDifficultyProgressTask

package ch.idsia.ai.tasks;

import ch.idsia.tools.EvaluationOptions;
import ch.idsia.tools.Evaluator;
import ch.idsia.tools.EvaluationInfo;
import ch.idsia.ai.agents.Agent;

import java.util.List;

/**
* Created by IntelliJ IDEA.
* User: julian
* Date: Jun 13, 2009
* Time: 2:44:59 PM
*/
public class MultiDifficultyProgressTask implements Task {

    private EvaluationOptions options;
    private int startingSeed = 0;
    private int[] difficulties = {0, 3, 5, 10};

    public MultiDifficultyProgressTask(EvaluationOptions evaluationOptions) {
        setOptions(evaluationOptions);
    }

    public double[] evaluate(final Agent controller) {
        double distanceTravelled = 0;
        double[] fitnesses = new double[difficulties.length + 1];
        for (int i = 0; i < difficulties.length; i++) {
            controller.reset();
            options.setLevelRandSeed(startingSeed);
            options.setLevelDifficulty(difficulties[i]);
            options.setAgent(controller);
            Evaluator evaluator = new Evaluator(options);
            List<EvaluationInfo> results = evaluator.evaluate();
            EvaluationInfo result = results.get(0);
            double thisDistance = result.computeDistancePassed();
            fitnesses[i + 1] = thisDistance;
            distanceTravelled += thisDistance;
        }
        distanceTravelled = distanceTravelled / difficulties.length;
        fitnesses[0] = distanceTravelled;
        return fitnesses;
        //return new double[]{distanceTravelled};
    }

    public void setStartingSeed (int seed) {
        startingSeed = seed;
    }

    public void setOptions(EvaluationOptions options) {
        this.options = options;
    }

    public EvaluationOptions getOptions() {
        return options;
    }
}
TOP

Related Classes of ch.idsia.ai.tasks.MultiDifficultyProgressTask

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.