def __init__(self, alphaStepSize=1e-4, **kwargs):

        SARSA.__init__(self, alphaStepSize=1e-4, **kwargs)

        self.numFeatures = self.numRays + 1
        self.initializeWeights()
        self.resetElibilityTraces()

        grid = np.arange(0, self.numRays)
        self.plotGrid = grid - np.mean(grid)
    def __init__(self, alphaStepSize=1e-4, **kwargs):

        SARSA.__init__(self, alphaStepSize=1e-4, **kwargs)


        self.numFeatures = self.numRays + 1
        self.initializeWeights()
        self.resetElibilityTraces()

        grid = np.arange(0, self.numRays)
        self.plotGrid = grid - np.mean(grid)
    def __init__(self, numInnerBins=4, numOuterBins=4, binCutoff=0.5, alphaStepSize=0.2,
                 useQLearningUpdate= False, **kwargs):

        SARSA.__init__(self, alphaStepSize=0.2, **kwargs)

        self.numInnerBins=numInnerBins
        self.numOuterBins=numOuterBins
        self.numBins=numInnerBins + numOuterBins
        self.binCutoff=binCutoff
        self.useQLearningUpdate = useQLearningUpdate
        self.initializeQValues()
        self.initializeBinData()
        self.resetElibilityTraces()
        self.eligibilityTraceThreshold = 0.1
    def __init__(self, numInnerBins=4, numOuterBins=4, binCutoff=0.5, alphaStepSize=0.2, forceDriveStraight=False,
                 useQLearningUpdate= False, **kwargs):

        SARSA.__init__(self, alphaStepSize=0.2, **kwargs)

        self.numInnerBins=numInnerBins
        self.numOuterBins=numOuterBins
        self.numBins=numInnerBins + numOuterBins
        self.binCutoff=binCutoff
        self.useQLearningUpdate = useQLearningUpdate
        self.forceDriveStraight = forceDriveStraight
        self.initializeQValues()
        self.initializeBinData()
        self.resetElibilityTraces()
        self.eligibilityTraceThreshold = 0.1