POMDPPlanners.environments.rock_sample_pomdp.rock_sample_pomdp_utils package
Submodules
POMDPPlanners.environments.rock_sample_pomdp.rock_sample_pomdp_utils.rock_sample_reward_models module
Reward models for the RockSample POMDP.
Mirrors the abstract-base / concrete-subclass layout used by
POMDPPlanners.environments.light_dark_pomdp.light_dark_pomdp_utils.light_dark_reward_models
and
POMDPPlanners.environments.laser_tag_pomdp.laser_tag_pomdp_utils.laser_tag_reward_models,
so that further RockSample reward variants can be added without growing
the env class.
Three concrete variants are provided. They share all of the
non-dangerous-area scoring (exit, sample, sense, step-penalty) via the
RockSampleRewardModel base; each variant only customises the
dangerous-area contribution:
RockSampleRewardModel(CONSTANT_HAZARD_PENALTY): constant-probability penalty when the realised next position is in any dangerous area.RockSampleZeroMeanHazardShockRewardModel(ZERO_MEAN_HAZARD_SHOCK):±dangerous_area_penalty50/50 in-zone — zero expected contribution, high variance.RockSampleDistanceDecayedHazardPenaltyRewardModel(DISTANCE_DECAYED_HAZARD_PENALTY): penalty applied with probabilityexp(-min_dist / penalty_decay)based on the closest zone centre — no radius cutoff.
- class POMDPPlanners.environments.rock_sample_pomdp.rock_sample_pomdp_utils.rock_sample_reward_models.BaseRockSampleRewardModel[source]
Bases:
ABCAbstract reward model for RockSample POMDP variants.
- class POMDPPlanners.environments.rock_sample_pomdp.rock_sample_pomdp_utils.rock_sample_reward_models.RockSampleDistanceDecayedHazardPenaltyRewardModel(map_size, rock_positions, step_penalty, bad_rock_penalty, good_rock_reward, sensor_use_penalty, exit_reward, dangerous_areas, dangerous_area_radius, dangerous_area_penalty, dangerous_area_hit_probability, penalty_decay)[source]
Bases:
RockSampleRewardModelDISTANCE_DECAYED_HAZARD_PENALTY variant.
Penalty is applied with probability
exp(-min_dist / penalty_decay)wheremin_distis the Euclidean distance from the realised next position to the closest dangerous-area centre. No radius cutoff — every step risks some (vanishingly small at large distance) penalty. Each call draws one uniform regardless of distance, matching the existing decaying-prob kernel and light-dark’s analogous reward model.dangerous_area_radiusanddangerous_area_hit_probabilityare ignored in this model.
- class POMDPPlanners.environments.rock_sample_pomdp.rock_sample_pomdp_utils.rock_sample_reward_models.RockSampleRewardModel(map_size, rock_positions, step_penalty, bad_rock_penalty, good_rock_reward, sensor_use_penalty, exit_reward, dangerous_areas, dangerous_area_radius, dangerous_area_penalty, dangerous_area_hit_probability)[source]
Bases:
BaseRockSampleRewardModelStandard RockSample reward model.
- Reward structure:
Exit (action
2East from the rightmost column):+exit_reward.Sample (action
0) at a rock cell:+good_rock_rewardif the rock is good,+bad_rock_penaltyif it is bad.Check actions (
>= 5):+sensor_use_penalty.Per-step:
+step_penaltybaseline applied to every action.Dangerous area:
+dangerous_area_penaltyis added whenever the realised next robot position lies inside a dangerous area, gated by a per-call Bernoulli with probabilitydangerous_area_hit_probability(deterministic when== 1.0).
Note that this model uses the additive convention: pass a negative
dangerous_area_penaltyto penalise danger entry.Subclasses override
_dangerous_area_contribution_scalar()and_apply_dangerous_area_contribution_batch()to express different stochastic penalty models; the rest of the scoring is identical.- Parameters:
- class POMDPPlanners.environments.rock_sample_pomdp.rock_sample_pomdp_utils.rock_sample_reward_models.RockSampleZeroMeanHazardShockRewardModel(map_size, rock_positions, step_penalty, bad_rock_penalty, good_rock_reward, sensor_use_penalty, exit_reward, dangerous_areas, dangerous_area_radius, dangerous_area_penalty, dangerous_area_hit_probability)[source]
Bases:
RockSampleRewardModelZERO_MEAN_HAZARD_SHOCK variant.
Replaces the constant-probability penalty with a 50/50 split between
+dangerous_area_penaltyand-dangerous_area_penaltywhenever the realised next position is in any dangerous area. Expected contribution is0; variance isdangerous_area_penalty**2. Suitable for benchmarking risk-sensitive planners against expected-value planners on identical means.dangerous_area_hit_probabilityis ignored in this model.