-
Notifications
You must be signed in to change notification settings - Fork 37
Description
Hi EV2Gym team,
Thank you for this excellent simulator! I'm trying to replicate the results from Table VII (V2G Profit Maximization with 10 EV Chargers) in your paper, but I'm encountering fundamental issues with user satisfaction metrics that might suggest a deeper configuration or implementation problem.
My Setup:
- Configuration: V2GProfitPlusLoads.yaml
- 10 chargers, 85 timesteps (15 min each), V2G enabled, Workplace scenario
- 100 stochastic runs
Problem:
I have tested all heuristic variants in baselines/heuristics.py but none achieve the user satisfaction values reported in Table VII:
-
ALAP: Paper reports 100±0% , but I get significantly lower values with both ChargeAsLateAsPossible and ChargeAsLateAsPossibleToDesiredCapacity
-
Round Robin: Paper reports 99±1%, but I get much lower values with RoundRobin, RoundRobin_GF, and RoundRobin_GF_off_allowed
Why This Is Concerning:
ALAP should logically achieve 100% user satisfaction since it charges vehicles as late as possible while meeting departure requirements. The fact that none of the variants achieve this suggests a configuration mismatch or implementation issue rather than just using the wrong algorithm class.
This problem persists even when I modify configuration parameters such as transformer limits, number of chargers, and inflexible loads. I cannot achieve stable high user satisfaction under any configuration.
Code structure:
from ev2gym.models.ev2gym_env import EV2Gym
from ev2gym.baselines.heuristics import ChargeAsLateAsPossible, RoundRobin
config_path = "ev2gym/example_config_files/V2GProfitPlusLoads.yaml"
n_runs = 100
for run in range(n_runs):
env = EV2Gym(config_file=config_path)
state, info = env.reset()
algorithm = ChargeAsLateAsPossible()
done = False
while not done:
action = algorithm.get_action(env)
state, reward, done, truncated, info = env.step(action)
user_satisfaction = info['average_user_satisfaction']Specific Questions:
- Would it be possible to share the exact configuration file that was used to generate the Table VII results? I suspect there may be some parameter differences from the example configs that could explain the discrepancy.
- Could you clarify which specific heuristic class names correspond to each baseline algorithm in Table VII? For example, which variant of Round Robin was used - the basic RoundRobin, RoundRobin_GF, or RoundRobin_GF_off_allowed?
- Would you be willing to share a reproduction script that demonstrates how to generate the Table VII results? Even a minimal example would be incredibly helpful for understanding the correct setup.
- Are there any specific initialization seeds, random state settings, or other parameters that need to be configured for reproducibility that might not be obvious from the configuration file alone?