agentsociety.agent.distribution¶
Module Contents¶
Classes¶
Defines the types of distribution types. |
|
Configuration for different types of distributions used in the simulation. |
|
Abstract base class for all distribution types. |
|
Distribution that samples from a list of choices with equal probability. |
|
Distribution that samples integers uniformly from a range. |
|
Distribution that samples floats uniformly from a range. |
|
Distribution that samples from a normal (Gaussian) distribution. |
|
Distribution that always returns the same value. |
Functions¶
Get the distribution for a specific field. |
|
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¶
-
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.BaseModelConfiguration for different types of distributions used in the simulation.
- model_config¶
‘ConfigDict(…)’
- dist_type: agentsociety.agent.distribution.DistributionType¶
‘Field(…)’
The type of the distribution
- 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
- 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 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.DistributionDistribution 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 fromweights(Optional[List[float]]): Optional probability weights for choices
Returns:
None
Initialization
- class agentsociety.agent.distribution.UniformIntDistribution(min_value: int, max_value: int)¶
Bases:
agentsociety.agent.distribution.DistributionDistribution 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
- class agentsociety.agent.distribution.UniformFloatDistribution(min_value: float, max_value: float)¶
Bases:
agentsociety.agent.distribution.DistributionDistribution 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
- class agentsociety.agent.distribution.NormalDistribution(mean: float, std: float, min_value: Optional[float] = None, max_value: Optional[float] = None)¶
Bases:
agentsociety.agent.distribution.DistributionDistribution 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 distributionstd(float): Standard deviation of the distributionmin_value(Optional[float]): Minimum allowed value (for truncation)max_value(Optional[float]): Maximum allowed value (for truncation)
Returns:
None
Initialization
- class agentsociety.agent.distribution.ConstantDistribution(value: Any)¶
Bases:
agentsociety.agent.distribution.DistributionDistribution 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
- 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 usefield(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