File size: 2,397 Bytes
4db1c3f
 
 
 
 
 
 
 
 
 
a283aa6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6004586
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
---
tags:
  - reinforcement-learning
  - openenv
  - environment
  - gymnasium
license: mit
library_name: openenv
---

<h1 align="center">⚡ EVChargeEnv</h1>
<p align="center">
  <img src="assets/evchargeenv-banner.png" width="800" />
</p>

<h3 align="center">Green Agent Benchmark for EV Charging Optimization</h3>

---

## Overview

EVChargeEnv is a lightweight, stochastic reinforcement-learning environment designed for the  
AgentX + AgentBeats Competition (Berkeley RDI 2025).

It simulates:

- Electric vehicle battery charging
- Dynamic electricity pricing
- Fluctuating grid load
- Continuous control actions
- Multi-objective tradeoffs (cost vs. speed vs. grid stability)

---

## Task Goal

The purple agent must:

- Charge the EV battery to full (1.0)
- Minimize electricity cost
- Avoid high grid load
- Adapt to changing conditions

---

## State Space (Observation)

The agent receives:

charge_level (0-1), price (0-1), grid_load (0-1), time_step_norm (0-1)

---

## Action Space

Continuous charge rate 0.0 → 1.0.

---

## Reward Function

Reward combines:

- progress_reward

* cost_penalty
* overload_penalty
* time_penalty

---

## Scenarios

easy / medium / hard difficulty with different volatility and load patterns.

---

## Episode Termination

Ends if full charge or max steps reached.

---

## Example Agent Behaviors

Greedy agent = fast but expensive  
Price-aware agent = slower but cheaper  
Random agent = unstable

---

## Evaluation Output

Running:

python run_evaluation.py

Generates JSON like:

{
"avg_reward": ...,
"avg_steps": ...,
"episodes": 5
}

---

## Docker Support

Image: oozan/evchargeenv:latest

---

## File Structure

env/  
agent/  
run_evaluation.py  
Dockerfile  
requirements.txt  
README.md

---

## Future Improvements

- renewable energy factor
- blackout events
- degradation model
- RL baseline
- trajectory visualizer
- mini-game UI

## Benchmark Specification

This repository also includes a machine-readable benchmark manifest:

- `evchargeenv_manifest.json`

It documents:

- state and action spaces
- reward components
- termination conditions
- supported scenarios (`easy`, `medium`, `hard`)
- evaluation output format (JSON fields)

This makes EVChargeEnv easier to integrate as a standardized benchmark and aligns with the spirit of the OpenEnv challenge: environments that are transparent, reproducible, and extensible.
''