001 package aima.probability.decision; 002 003 import java.util.List; 004 005 import aima.probability.Randomizer; 006 007 /** 008 * @author Ravi Mohan 009 * 010 */ 011 012 public interface MDPSource<STATE_TYPE, ACTION_TYPE> { 013 MDP<STATE_TYPE, ACTION_TYPE> asMdp(); 014 015 STATE_TYPE getInitialState(); 016 017 MDPTransitionModel<STATE_TYPE, ACTION_TYPE> getTransitionModel(); 018 019 MDPRewardFunction<STATE_TYPE> getRewardFunction(); 020 021 List<STATE_TYPE> getNonFinalStates(); 022 023 List<STATE_TYPE> getFinalStates(); 024 025 MDPPerception<STATE_TYPE> execute(STATE_TYPE state, ACTION_TYPE action, 026 Randomizer r); 027 028 List<ACTION_TYPE> getAllActions(); 029 030 }