Object.Exploration (object v0.1.2)
Object-Oriented Exploration strategies for OORL framework.
Implements novelty-based and uncertainty-based exploration as specified in AAOS section 10, enabling objects to discover novel interactions and configurations in their environment.
Key exploration strategies:
- Novelty-based exploration using state visitation counts
- Uncertainty-based exploration using prediction confidence
- Curiosity-driven exploration with information gain
- Social exploration through interaction dyads
- Meta-exploration for learning strategy optimization
Summary
Functions
Adapts exploration parameters based on performance feedback.
Computes exploration bonus for a given state-action pair based on the exploration strategy.
Evaluates the effectiveness of the current exploration strategy.
Identifies novel interaction patterns and opportunities with other objects.
Creates a new exploration system for an object.
Selects an action based on exploration strategy and value estimates.
Updates exploration state based on observed outcome.
Types
@type collaboration_record() :: %{ partner_id: object_id(), exploration_outcome: float(), timestamp: DateTime.t() }
@type object_id() :: String.t()
@type state_key() :: term()
@type strategy_type() ::
:novelty_based | :uncertainty_based | :curiosity_driven | :hybrid | :social
@type t() :: %Object.Exploration{ curiosity_model: curiosity_model(), exploration_history: [exploration_record()], exploration_parameters: exploration_params(), exploration_strategy: strategy_type(), novelty_tracker: novelty_tracker(), object_id: String.t(), social_exploration_state: social_exploration_state(), uncertainty_estimator: uncertainty_estimator() }
Functions
Adapts exploration parameters based on performance feedback.
Parameters
explorer
: Exploration system structperformance_metrics
: Recent performance data
Returns
Updated exploration system with adapted parameters
Computes exploration bonus for a given state-action pair based on the exploration strategy.
Parameters
explorer
: Exploration system structstate
: Current stateaction
: Action being considered
Returns
Exploration bonus value (higher values encourage exploration)
Evaluates the effectiveness of the current exploration strategy.
Parameters
explorer
: Exploration system struct
Returns
Map with overall effectiveness score, detailed metrics, and recommendations
Identifies novel interaction patterns and opportunities with other objects.
Parameters
explorer
: Exploration system structavailable_partners
: List of potential interaction partners
Returns
Map with novel partners, recommendations, and expected information gain
Creates a new exploration system for an object.
Parameters
object_id
: ID of the objectstrategy
: Exploration strategy (:novelty_based
,:uncertainty_based
,:curiosity_driven
,:hybrid
,:social
)opts
: Optional configuration parameters
Returns
New exploration system struct
Examples
iex> Object.Exploration.new("agent1", :hybrid)
%Object.Exploration{object_id: "agent1", exploration_strategy: :hybrid, ...}
Selects an action based on exploration strategy and value estimates.
Parameters
explorer
: Exploration system structavailable_actions
: List of possible actionsvalue_estimates
: Map of action -> estimated value
Returns
Selected action that balances exploration and exploitation
Updates exploration state based on observed outcome.
Parameters
explorer
: Exploration system structstate
: State where action was takenaction
: Action that was executedoutcome
: Observed outcome/result
Returns
Updated exploration system with recorded experience