def save(self, path=None):
        """
        Save the model in the path provided

        :param path: path to dave the model to
        :return: nothing
        """

        # Don't save if not training
        if not self.is_training:
            return

        if not path:
            path = 'models/policies/minimax_q_policy.pkl'
            print('No dialogue_policy file name provided. Using default: {0}'
                  .format(path))

        # If the directory does not exist, create it
        if not os.path.exists(os.path.dirname(path)):
            os.makedirs(os.path.dirname(path), exist_ok=True)

        obj = {'Q': self.Q,
               'V': self.V,
               'pi': self.pi,
               'a': self.alpha,
               'e': self.epsilon,
               'g': self.gamma}

        with open(path, 'wb') as file:
            pickle.dump(obj, file, pickle.HIGHEST_PROTOCOL)

        Save the model in the path provided

        :param path: path to dave the model to
        :return: nothing
        
plato/agent/component/dialogue_policy/reinforcement_learning/minimax_q_policy.py