Skip to content

swarmrl.sampling_strategies.sampling_strategy Module API Reference

Parent class for sampling strategies.

SamplingStrategy

Parent class for sampling strategies.

Source code in swarmrl/sampling_strategies/sampling_strategy.py
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class SamplingStrategy:
    """
    Parent class for sampling strategies.
    """

    def compute_entropy(self, probabilities: np.ndarray) -> float:
        """
        Compute the Shannon entropy of the probabilities.

        Parameters
        ----------
        probabilities : np.ndarray (n_colloids, n_actions)
                Probabilities for each colloid to take specific actions.
        """
        eps = 1e-8
        probabilities += eps
        return -np.sum(probabilities * np.log(probabilities))

    def __call__(self, logits: np.ndarray) -> int:
        """
        Sample from the distribution.

        Parameters
        ----------
        logits : np.ndarray (n_colloids, n_dimensions)
                Logits from the model to use in the computation for each colloid.

        Returns
        -------
        sample : int
                Index of the selected option in the distribution.
        """
        raise NotImplementedError("Implemented in child classes.")

__call__(logits)

Sample from the distribution.

Parameters

logits : np.ndarray (n_colloids, n_dimensions) Logits from the model to use in the computation for each colloid.

Returns

sample : int Index of the selected option in the distribution.

Source code in swarmrl/sampling_strategies/sampling_strategy.py
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
def __call__(self, logits: np.ndarray) -> int:
    """
    Sample from the distribution.

    Parameters
    ----------
    logits : np.ndarray (n_colloids, n_dimensions)
            Logits from the model to use in the computation for each colloid.

    Returns
    -------
    sample : int
            Index of the selected option in the distribution.
    """
    raise NotImplementedError("Implemented in child classes.")

compute_entropy(probabilities)

Compute the Shannon entropy of the probabilities.

Parameters

probabilities : np.ndarray (n_colloids, n_actions) Probabilities for each colloid to take specific actions.

Source code in swarmrl/sampling_strategies/sampling_strategy.py
13
14
15
16
17
18
19
20
21
22
23
24
def compute_entropy(self, probabilities: np.ndarray) -> float:
    """
    Compute the Shannon entropy of the probabilities.

    Parameters
    ----------
    probabilities : np.ndarray (n_colloids, n_actions)
            Probabilities for each colloid to take specific actions.
    """
    eps = 1e-8
    probabilities += eps
    return -np.sum(probabilities * np.log(probabilities))