Performs an action on the world that changes it's internal state.
            @param action: an action that should be executed in the Environment
            @type action: array: [ g1_prc, g2_prc, g1_qty, g2_qty, ... ]

def performAction(self, action):
        """ Performs an action on the world that changes it's internal state.
            @param action: an action that should be executed in the Environment
            @type action: array: [ g1_prc, g2_prc, g1_qty, g2_qty, ... ]
        """
        self._lastAction = []

        n = self.numOffbids * len(self.generators)

        if self.maxWithhold is not None:
            markups = action[:n]
            withholds = action[n:]
        else:
            markups = action
            withholds = [0.0] * n

        self._offbid(markups, withholds)