Define objectives and environment
Specify the state, action space and at least two reward signals or a method to combine them, and implement or select a simulator that reflects the problem.
Optimise multiple objectives. Trade off competing rewards.
Multi-objective reinforcement learning optimises policies when decisions must balance several, often conflicting, criteria (for example reward, safety and resource use). Important practical issues include defining scalarisation or Pareto objectives, designing state and action spaces, and evaluating trade-offs across seeds and edge cases.
Learning concept · Not a validated service
Multi-objective reinforcement learning optimises policies when decisions must balance several, often conflicting, criteria (for example reward, safety and resource use). Important practical issues include defining scalarisation or Pareto objectives, designing state and action spaces, and evaluating trade-offs across seeds and edge cases.
A proposed application: a decision-support policy that suggests actions while exposing trade-offs (e.g. benefit versus cost) so a human operator can choose. Any real deployment should keep a human reviewer in the loop and not use the prototype for automated high-risk decisions.
Specify the state, action space and at least two reward signals or a method to combine them, and implement or select a simulator that reflects the problem.
Implement simple baselines such as scalarised Q-learning or multi-objective bandits before moving to policy-gradient or RLlib agents.
Track per-objective returns, Pareto front approximations and stability across random seeds; inspect failure modes under edge states.
Expose policy suggestions with uncertainty and human-override hooks, and add telemetry for safety violations and drift.
The supplied starter implements an epsilon-greedy multi-armed bandit simulation: four Bernoulli arms with fixed true reward rates, an incremental sample-average estimator for each arm, and an epsilon-greedy action selection loop that runs for 2,000 steps before printing counts and estimates.
for step in range(1, 2001):
if rng.random() < epsilon:
action = rng.integers(len(true_reward_rates))
else:
action = int(np.argmax(estimated_values))
reward = 1 if rng.random() < true_reward_rates[action] else 0
action_counts[action] += 1
total_reward += reward
estimated_values[action] += (reward - estimated_values[action]) / action_counts[action]The code is a single-objective, stateless multi-armed bandit and does not implement reinforcement learning with states, episodes, or multiple objectives. It provides no environment, policy-gradient or value-based RL algorithm, no Pareto or scalarisation logic, and the synthetic arm rewards are fixed and simplistic.
A proposed extension: replace the bandit with a simulator exposing state and multiple reward streams, then train a multi-objective agent using scalarisation, constrained RL or Pareto-front approximation and compare baselines across seeds.
This is a potential application pathway, not a delivered product. The supplied starter does not implement this service or validate it with real users.
Networkers Home runs this topic inside its AI Engineer Course, with placement support and hands-on labs.