agentsociety.agent.distribution

Module Contents

Classes

DistributionType

Defines the types of distribution types.

DistributionConfig

Configuration for different types of distributions used in the simulation.

Distribution

Abstract base class for all distribution types.

ChoiceDistribution

Distribution that samples from a list of choices with equal probability.

UniformIntDistribution

Distribution that samples integers uniformly from a range.

UniformFloatDistribution

Distribution that samples floats uniformly from a range.

NormalDistribution

Distribution that samples from a normal (Gaussian) distribution.

ConstantDistribution

Distribution that always returns the same value.

Functions

get_distribution

Get the distribution for a specific field.

sample_field_value

Sample a value for a specific field using its configured distribution.

Data

API

agentsociety.agent.distribution.__all__

[‘Distribution’, ‘ChoiceDistribution’, ‘UniformIntDistribution’, ‘UniformFloatDistribution’, ‘Normal…

class agentsociety.agent.distribution.DistributionType

Bases: str, enum.Enum

Defines the types of distribution types.

  • Description:

    • Enumerates different types of distribution types.

  • Types:

    • CHOICE: Choice distribution.

    • UNIFORM_INT: Uniform integer distribution.

    • UNIFORM_FLOAT: Uniform float distribution.

    • NORMAL: Normal distribution.

    • CONSTANT: Constant distribution.

Initialization

Initialize self. See help(type(self)) for accurate signature.

CHOICE

‘choice’

UNIFORM_INT

‘uniform_int’

UNIFORM_FLOAT

‘uniform_float’

NORMAL

‘normal’

CONSTANT

‘constant’

class agentsociety.agent.distribution.DistributionConfig

Bases: pydantic.BaseModel

Configuration for different types of distributions used in the simulation.

model_config

‘ConfigDict(…)’

dist_type: agentsociety.agent.distribution.DistributionType

‘Field(…)’

The type of the distribution

choices: Optional[list[Any]]

None

A list of possible discrete values - used for [CHOICE] type

weights: Optional[list[float]]

None

Weights corresponding to each discrete choice - used for [CHOICE] type

min_value: Optional[Union[int, float]]

None

Minimum value for continuous distributions - used for [UNIFORM_INT, UNIFORM_FLOAT, NORMAL] type

max_value: Optional[Union[int, float]]

None

Maximum value for continuous distributions - used for [UNIFORM_INT, UNIFORM_FLOAT, NORMAL] type

mean: Optional[float]

None

Mean value for the distribution if applicable - used for [NORMAL] type

std: Optional[float]

None

Standard deviation for the distribution if applicable - used for [NORMAL] type

value: Optional[Any]

None

A fixed value that can be used instead of a distribution - used for [CONSTANT] type

class agentsociety.agent.distribution.Distribution

Abstract base class for all distribution types.

  • Description:

    • Provides an interface for sampling values from a distribution.

  • Args:

    • None

  • Returns:

    • None

abstract __repr__() str

Return a string representation of the distribution.

__str__() str
abstract sample() Any

Sample a value from this distribution.

  • Description:

    • Abstract method to be implemented by subclasses.

  • Args:

    • None

  • Returns:

    • Any: A value sampled from the distribution.

static create(dist_type: str, **kwargs) agentsociety.agent.distribution.Distribution

Factory method to create a distribution of the specified type.

  • Description:

    • Creates and returns a distribution instance based on the provided type.

  • Args:

    • dist_type (str): Type of distribution to create (‘uniform’, ‘normal’, etc.)

    • **kwargs: Parameters specific to the distribution type

  • Returns:

    • Distribution: A distribution instance

static from_config(config: agentsociety.agent.distribution.DistributionConfig) agentsociety.agent.distribution.Distribution

Create a distribution from a configuration.

  • Description:

    • Creates a distribution instance from a DistributionConfig object.

  • Args:

    • config (DistributionConfig): The distribution configuration.

  • Returns:

    • Distribution: A distribution instance

class agentsociety.agent.distribution.ChoiceDistribution(choices: List[Any], weights: Optional[List[float]] = None)

Bases: agentsociety.agent.distribution.Distribution

Distribution that samples from a list of choices with equal probability.

  • Description:

    • Randomly selects one item from a provided list of choices.

  • Args:

    • choices (List[Any]): List of possible values to sample from

    • weights (Optional[List[float]]): Optional probability weights for choices

  • Returns:

    • None

Initialization

__repr__() str
sample() Any
class agentsociety.agent.distribution.UniformIntDistribution(min_value: int, max_value: int)

Bases: agentsociety.agent.distribution.Distribution

Distribution that samples integers uniformly from a range.

  • Description:

    • Samples integers with equal probability from [min_value, max_value].

  • Args:

    • min_value (int): Minimum value (inclusive)

    • max_value (int): Maximum value (inclusive)

  • Returns:

    • None

Initialization

__repr__() str
sample() int
class agentsociety.agent.distribution.UniformFloatDistribution(min_value: float, max_value: float)

Bases: agentsociety.agent.distribution.Distribution

Distribution that samples floats uniformly from a range.

  • Description:

    • Samples floating point values with equal probability from [min_value, max_value).

  • Args:

    • min_value (float): Minimum value (inclusive)

    • max_value (float): Maximum value (exclusive)

  • Returns:

    • None

Initialization

__repr__() str
sample() float
class agentsociety.agent.distribution.NormalDistribution(mean: float, std: float, min_value: Optional[float] = None, max_value: Optional[float] = None)

Bases: agentsociety.agent.distribution.Distribution

Distribution that samples from a normal (Gaussian) distribution.

  • Description:

    • Samples values from a normal distribution with given mean and standard deviation.

  • Args:

    • mean (float): Mean of the distribution

    • std (float): Standard deviation of the distribution

    • min_value (Optional[float]): Minimum allowed value (for truncation)

    • max_value (Optional[float]): Maximum allowed value (for truncation)

  • Returns:

    • None

Initialization

__repr__() str
sample() float
class agentsociety.agent.distribution.ConstantDistribution(value: Any)

Bases: agentsociety.agent.distribution.Distribution

Distribution that always returns the same value.

  • Description:

    • Returns a constant value every time sample() is called.

  • Args:

    • value (Any): The constant value to return

  • Returns:

    • None

Initialization

__repr__() str
sample() Any
agentsociety.agent.distribution.get_distribution(distributions: dict[str, agentsociety.agent.distribution.Distribution], field: str) agentsociety.agent.distribution.Distribution

Get the distribution for a specific field.

  • Description:

    • Returns the configured distribution for a field, preferring custom over default.

  • Args:

    • distributions (dict[str, Distribution]): The distributions to use

    • field (str): The field name

  • Returns:

    • Distribution: The distribution to use for sampling values

agentsociety.agent.distribution.sample_field_value(distributions: dict[str, agentsociety.agent.distribution.Distribution], field: str) Any

Sample a value for a specific field using its configured distribution.

  • Description:

    • Samples a value using the field’s configured distribution.

  • Args:

    • field (str): The field name

  • Returns:

    • Any: A sampled value for the field