Source code for autompc.costs.cost_factory

# Created by William Edwards (wre2@illinois.edu), 2021-01-24

from abc import ABC, abstractmethod
from pdb import set_trace

[docs]class CostFactory(ABC): """ The CostFactory class constructs cost objects and contains information about hyperparameter information. """ def __init__(self, system): """ Consctruct CostFactory. Parameters ---------- system : System Robot system for cost factory """ self.system = system
[docs] @abstractmethod def get_configuration_space(self): """ Returns ConfigurationSpace for cost factory. """ raise NotImplementedError
# @abstractmethod # def is_compatible(self, system, task, Model): # raise NotImplementedError
[docs] @abstractmethod def __call__(self, cfg, task, trajs): """ Build Cost according to configuration. Parameters ---------- cfg : Configuration Cost hyperparameter configuration task : Task Input task trajs : List of Trajectory Trajectory training set. This is mostly used for regularization cost terms and is not required by all CostFactories. If not required, None can be passed instead. """ raise NotImplementedError
def __add__(self, other): from .sum_cost_factory import SumCostFactory if isinstance(other, SumCostFactory): return other.__radd__(self) else: return SumCostFactory(self.system, [self, other])