import abc import numpy as np from typing import Dict, Any class BasePolicy(abc.ABC): """ Base Policy Class for LeHome Challenge. All participant submissions must inherit from this class and implement the `select_action` and `reset` methods. """ def __init__(self, **kwargs): """ Initialize the policy. Model weights and configurations should be loaded here. """ pass def reset(self): """ Reset the policy state. Called at the beginning of each episode (e.g., to clear RNN hidden states or action buffers). """ pass @abc.abstractmethod def select_action(self, observation: Dict[str, np.ndarray]) -> np.ndarray: """ Generate an action based on the given observation. Args: observation (Dict[str, np.ndarray]): Environmental observation data (Numpy format). - Images: (H, W, C), uint8, range [0, 255] - States: (N,), float32 Returns: action (np.ndarray): Action command (Numpy format, float32). """ raise NotImplementedError("The select_action method must be implemented.")